logdata-anomaly-miner:一款安全日志解析与异常检测工具

server/2024/10/25 7:53:32/

关于logdata-anomaly-miner

logdata-anomaly-miner是一款安全日志解析与异常检测工具,该工具旨在以有限的资源和尽可能低的权限运行分析,以使其适合生产服务器使用。

为了确保 logdata-anomaly-miner的正常运行,推荐安装了python >= 3.6的Linux 系统。更具体地说,支持的系统包括 Debian Buster、Debian Bullseye、Debian Bookworm、Ubuntu 20.04、Ubuntu 22.04、Fedora(docker image fedora:latest)和 RedHat(docker image redhat/ubi9)。

工具架构

工具要求

scipy==1.10.0

pylibacl==0.5.4

kafka_python==2.0.2

pytz==2020.4

urllib3==1.26.19

numpy==1.22.0

Cerberus==1.3.2

psutil==5.7.3

kafka==1.3.5

pyzmq==20.0.0

python_dateutil==2.8.1

PyYAML==5.4

statsmodels==0.12.2

工具安装

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。

源码安装

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/ait-aecid/logdata-anomaly-miner.git

然后切换到项目目录中,使用pip命令和项目提供的requirements.txt安装该工具所需的其他依赖组件:

cd logdata-anomaly-minerpip install -r requirements.txt

Debian安装

在官方 Debian/Ubuntu 存储库中,有适用于 logdata-anomaly-miner 的 Debian 软件包:

apt-get update && apt-get install logdata-anomaly-miner

Wget安装

以下命令将安装最新的稳定版本:

cd $HOMEwget https://raw.githubusercontent.com/ait-aecid/logdata-anomaly-miner/main/scripts/aminer_install.shchmod +x aminer_install.sh./aminer_install.sh

工具配置

现在让我们将 Apache 解析器模型添加到 aminer-config:

alice@ubuntu2004:~$ sudo ln -s /etc/aminer/conf-available/generic/ApacheAccessModel.py /etc/aminer/conf-enabled/alice@ubuntu2004:~$

在以前版本的 aminer 中,我们必须用 python 编写配置文件。在当前版本中,我们可以使用以 yaml 编写的配置。现在创建并编辑文件 /etc/aminer/config.yml:

LearnMode: TrueLogResourceList:- 'file:///var/log/apache2/access.log'Parser:- id: 'START'start: Truetype: ApacheAccessModelname: 'apache'Input:timestamp_paths: "/accesslog/time"Analysis:- type: "NewMatchPathValueDetector"paths: ["/accesslog/status"]output_logline: TrueEventHandlers:- id: "stpe"type: "StreamPrinterEventHandler"

如果我们现在启动 aminer,它将读取 access.log 并了解所有解析器路径。我们将在启动 aminer 之前使用“-C”参数清除持久性。(请注意,您可以使用 CTRL+c 终止 aminer)

alice@ubuntu2004:~$ sudo cat /var/log/apache2/access.log

127.0.0.1 - - [17/May/2021:11:25:14 +0000] "GET / HTTP/1.1" 200 11229 "-" "Wget/1.20.3 (linux-gnu)"

alice@ubuntu2004:~$ sudo aminer -C --config /etc/aminer/config.yml

2021-05-17 12:12:36 New path(es) detected

NewMatchPathDetector: "DefaultNewMatchPathDetector" (1 lines)

/accesslog: 127.0.0.1 - - [17/May/2021:11:25:14 +0000] "GET / HTTP/1.1" 200 11229 "-" "Wget/1.20.3 (linux-gnu)"

/accesslog/host: 127.0.0.1

/accesslog/sp0:

/accesslog/ident: -

/accesslog/sp1:

/accesslog/user: -

/accesslog/sp2:

/accesslog/time: 1621250714

/accesslog/sp3: ] "

/accesslog/fm/request: GET / HTTP/1.1

/accesslog/fm/request/method: 0

/accesslog/fm/request/sp5:

/accesslog/fm/request/request: /

/accesslog/fm/request/sp6:

/accesslog/fm/request/version: HTTP/1.1

/accesslog/sp6: "

/accesslog/status: 200

/accesslog/sp7:

/accesslog/size: 11229

/accesslog/combined:  "-" "Wget/1.20.3 (linux-gnu)"

/accesslog/combined/combined:  "-" "Wget/1.20.3 (linux-gnu)"

/accesslog/combined/combined/sp9:  "

/accesslog/combined/combined/referer: -

/accesslog/combined/combined/sp10: " "

/accesslog/combined/combined/user_agent: Wget/1.20.3 (linux-gnu)

/accesslog/combined/combined/sp11: "

['/accesslog', '/accesslog/host', '/accesslog/sp0', '/accesslog/ident', '/accesslog/sp1', '/accesslog/user', '/accesslog/sp2', '/accesslog/time', '/accesslog/sp3', '/accesslog/fm/request', '/accesslog/sp6', '/accesslog/status', '/accesslog/sp7', '/accesslog/size', '/accesslog/combined', '/accesslog/combined/combined', '/accesslog/combined/combined/sp9', '/accesslog/combined/combined/referer', '/accesslog/combined/combined/sp10', '/accesslog/combined/combined/user_agent', '/accesslog/combined/combined/sp11', '/accesslog/fm/request/method', '/accesslog/fm/request/sp5', '/accesslog/fm/request/request', '/accesslog/fm/request/sp6', '/accesslog/fm/request/version']

127.0.0.1 - - [17/May/2021:11:25:14 +0000] "GET / HTTP/1.1" 200 11229 "-" "Wget/1.20.3 (linux-gnu)"

2021-05-17 12:12:36 New value(s) detected

NewMatchPathValueDetector: "NewMatchPathValueDetector2" (1 lines)

{'/accesslog/status': 200}

127.0.0.1 - - [17/May/2021:11:25:14 +0000] "GET / HTTP/1.1" 200 11229 "-" "Wget/1.20.3 (linux-gnu)"

工具运行演示

演示视频:【点我观看】

许可证协议

本项目的开发与发布遵循GPL-3.0开源许可协议。

项目地址

logdata-anomaly-miner:【GitHub传送门】

参考资料

AMiner: A Modular Log Data Analysis Pipeline for Anomaly-based Intrusion Detection | Digital Threats: Research and Practice

SciTePress - Publication Details

AECID-PG: A Tree-Based Log Parser Generator To Enable Log Analysis | IEEE Conference Publication | IEEE Xplore

https://securitylab.no/cyberhunt2019/


http://www.ppmy.cn/server/134648.html

相关文章

如何构建一个支持GPU的Llamafile容器

用CPU玩那些大型的语言模型确实挺有意思的,但看着电脑一个字一个字地慢慢显示结果,那股兴奋劲儿很快就过去了。让这些语言模型软件在GPU上跑起来可能会有点麻烦,因为这得看你的系统和硬件支不支持。我这篇文章就是想告诉你,怎么在…

【Linux】Linux进程间通信

1.进程间通信 进程之间具有独立性,进程间如果要发生通信,就需要打破这种独立性。进程间通信必定需要一块公共的区域来作为信息的存放点,操作系统需要直接或间接给通信进程双方提供内存空间,例如这块内存空间就是文件系统提供的&a…

【 xiangshan分支预测单元结构及时序介绍】

xiangshan分支预测单元结构及时序介绍 1.1 子预测器接口信号1 in2 out3 流水线控制信号4 update更新请求5 redirect重定向请求 1.2 预测器接口连接1.3 分支预测单元时序介绍1.3.1 一周期无空泡预测 1.3.2 预测结果重定向1.4 相关使能信号 本节主要介绍xiangshan BPU内部是如何整…

Django+Vue全栈开发项目入门(一)

Vue项目搭建过程 1、使用脚手架工具搭建项目 2、准备静态资源 3、调整生成项目结构 使用脚手架工具搭建项目 网络请求库axios Axios是一个基于Promise的HTTP库,适用于浏览器和node.js环境,用于发送网络请求。 特点 跨平台性:Axios既可…

简单工厂(Simple Factory)

简单工厂(Simple Factory) 在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。 说明: 简单工厂把实例化的操作单独放到一个类中,这个类就成为简单工厂类,让简单工厂类来决定应该用哪…

网络爬虫中的几种数据存储方式(中篇)

在上一篇文章中,带大家了解了文本的存储方式和json的存储方式,而这篇文章是要大家掌握其余的数据存储方式。 CSV存储文件存储 CSV,全称为 Comma-Separated Values,中文可以叫作逗号分隔值或字符分隔值,其文件以纯文本…

解决后端给前端的返回数据过大的问题(压缩)

解决后端给前端的返回数据过大的问题(压缩) 问题 后端返回数据过大导致的前端接收数据慢的问题 方案 注解方式压缩后端给前端的返回数据,注解Gzip压缩后端返回数据(前端不用做任何处理) import com.fasterxml.jack…

基于ElementPlus的Form组件封装

前言 我们在项目开发过程中遇到最多就是表单页面的开发,那么使用频率比较高的就是Form组件,无论是vue亦或者是react,我们在项目中使用到UI库都会有Form组件。多数情况下都是用到了Form组件,我们先根据UI库或者其他类似的页面直接…