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

news2024/11/26 11:12:39

关于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-miner

pip install -r requirements.txt

Debian安装

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

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

Wget安装

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

cd $HOME

wget https://raw.githubusercontent.com/ait-aecid/logdata-anomaly-miner/main/scripts/aminer_install.sh

chmod +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: True

 

LogResourceList:

        - 'file:///var/log/apache2/access.log'

 

Parser:

        - id: 'START'

          start: True

          type: ApacheAccessModel

          name: 'apache'

 

Input:

        timestamp_paths: "/accesslog/time"

 

Analysis:

        - type: "NewMatchPathValueDetector"

          paths: ["/accesslog/status"]

          output_logline: True

 

EventHandlers:

        - 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.coloradmin.cn/o/2223089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通过异地组网工具+RustDesk实现虚拟局域网使用远程桌面RDP

通过异地组网工具RustDesk实现虚拟局域网使用远程桌面RDP 预期效果 常见的远程桌面工具就不多说,麻烦而且不好用 QQ 使用普及率高 卡顿、延迟高 TeamViewer 功能强大、兼容性好 官方查询商业用途频繁 向日葵 安全性高、支持多种设备 强制登录、免费用户限速、限…

10. mapreduce实现wordcount

一. mapreduce 概述 mapreduce是一个并行计算框架,它起源于Google的MapReduce论文,它主要用于离线海量数据计算。 优点:海量数据离线处理,开发简单,部署方便缺点:仅适用于批处理,不支持实时数…

二极管那些事儿

一.发光二极管(LED) 1.压降很大(2~3v) 二.普通二极管(eg:1N4007) 1.一般用于整流和续流 2.比较廉价 3.一般压降0.7v 4.可用于防反接电路如下: 三:肖特基 1.开关速度第一&#…

UE5之5.4 第一人称示例代码阅读1 FirstPersonProjectile

既然如此,这几个文件都看看 先看看FirstPersonProjectile头文件 定义了几个函数 然后是两个component 这个projectilemovement应该是控制物理运动的 看看CPP文件 sphere那个就创建了一个subobject,初始化了一下,然后这里 CollisionComp-&g…

【C++差分数组】P10903 商品库存管理

本文涉及知识 C差分数组 洛谷 P10903 商品库存管理 题目简述: 有n中商品,编号[1,n]。有m中操作 ope[i]{LI,RI},将编号LI到LR的商品都加1。 有m个查询,第i个查询 ,执行所有ope[i],i ≠ \neq  i 后为0的商品数。 1…

基于PID控制器和四象限DC-DC功率转换器的永磁直流电机速度控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于PID控制器和四象限DC-DC功率转换器的永磁直流电机速度控制系统simulink建模与仿真。系统包括电流PI控制器,速度PI控制器,四象限DC-DC功率转换器&am…

Leetcode3. 无重复字符的最长子串

问题描述: 给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2: 输入: s "bbbbb&q…

Ubuntu 24.04 系统上配置 Node.js 运行环境

本文我们重点介绍两种安装 Node.js 的方法。第一种方法使用 NVM (Node VersionManager),这是安装和管理多个 Node.js 版本的最好和最快的方法。第二种方法使用官方包存储库在 Ubuntu 上安装 Node.js,一次只允许安装一个版本。 必备条件 A running Ubun…

Java学习Day52:金酬外护遭魔毒,圣显幽魂救本原(验证码补全,新增预约逻辑)

1.验证码补全 //发送验证码sendValidateCode() {/*** 1.手机号不能为空* 2.手机号符合规范* 3.发送一分钟后才可再次发送*///获取手机号let telephone this.orderInfo.telephone;//验证手机号不能空if (telephone undefined){this.$message.error("请输入手机号");…

CentOS 8在Linux虚拟机修改IP地址,出现:错误:“ens160“ 不是活动的连接。错误:未提供活动连接。

问题:错误:"ens160" 不是活动的连接。错误:未提供活动连接。 1.查看网络服务运行状态: 1)CentOS 7执行命令:systemctl status network 2)CentOS 8执行命令:systemctl status NetworkManager&a…

【深度学习基础】详解Pytorch搭建CNN卷积神经网络实现手写数字识别

MNIST 数据集,其包含70000 个2828 的手写数字的数据集,其中又分为60000 个训练样本与10000 个测试样本。 安装实验用到的包 anaconda promt 安装python包, 首先在开始界面打开prompt 进入到相应的虚拟环境中,下面的python38你自己创建的虚拟环境名称。 # 激活虚拟环境,v…

微信小程序中关闭默认的 `navigationBar`,并使用自定义的 `nav-bar` 组件

要在微信小程序中关闭默认的 navigationBar,并使用自定义的 nav-bar 组件,你可以按照以下步骤操作: 1. 关闭默认的 navigationBar 在你的页面的配置文件 *.json 中设置 navigationBar 为 false。你需要在页面的 JSON 配置文件中添加以下代码…

如何在Debian操作系统上安装Doker

本章教程,主要介绍如何在Debian 11 系统上安装Docker。主要使用一键安装Docker脚本和一键卸载脚本来完成。 一、安装Docker #!/bin/bashRED\033[0;31m GREEN\033[0;32m YELLOW\033[0;33m BLUE\033[0;34m NC\033[0mCURRENT_DIR$(cd "$(dirname "$0")…

微知-Linux内核自带的模块被压缩为ko.xz后如何恢复成不压缩版本?(xz -d xxx.ko.xz)

背景 在使用crash定位问题的时候需要使用ko使用对应的符号信息。直接用ko.xz无法正确加载。需要恢复成ko文件。本文介绍如何解压缩。 恢复步骤 在Linux系统中,.xz文件是一种使用LZMA2算法压缩的文件格式。要解压ko.xz文件,你可以使用xz命令行工具。 …

UML外卖系统报告(包含具体需求分析)

1 系统背景 随着互联网技术的快速发展,外卖订餐服务逐渐成为人们生活中的一部分。传统的电话订餐方式面临诸多不便和限制,而基于互联网的外卖订餐系统则提供了更加便捷、快速和高效的订餐服务。这种系统通过将餐厅、顾客和配送人员连接起来,…

职业规划:程序员的成长之路

引言 在快速发展的技术行业中,作为一名程序员,职业规划是至关重要的。从初出茅庐到成为技术专家,每一步都需要明确的目标和不懈的努力。 成长历程 初级阶段(0-2年) 学习与适应:刚入行时,主要任…

Redis 安装部署与常用命令

目录 一、关系数据库与非关系型数据库 1.1 关系型数据库 1.2 非关系型数据库 1.3关系型数据库和非关系型数据库区别 (1)数据存储方式不同 (2)扩展方式不同 (3)对事务性的支持不同 1.4 非关系型数据…

大数据Azkaban(二):Azkaban简单介绍

文章目录 Azkaban简单介绍 一、Azkaban特点 二、Azkaban组成结构 三、Azkaban部署模式 1、solo-server ode(独立服务器模式) 2、two server mode(双服务器模式) 3、distributed multiple-executor mode(分布式多…

54页可编辑PPT | 大型集团企业数据治理解决方案

这份PPT是关于大型集团企业数据治理的全面解决方案,它详细介绍了数据治理的背景、需求、管理范围、框架、解决思路,以及数据治理在实际操作中的关键步骤。内容涵盖了数据架构、数据质量、数据应用等方面的问题,并提出了数据资产透视、智能搜索…

使用 NumPy 和 Matplotlib 实现交互式数据可视化

使用 NumPy 和 Matplotlib 实现交互式数据可视化 在数据分析中,交互式可视化可以更好地帮助我们探索和理解数据。虽然 Matplotlib 是静态绘图库,但结合一些技巧和 Matplotlib 的交互功能(widgets、event handlers),我…