开源恶意流量检测系统

admin 2024年8月26日01:21:10评论32 views字数 2728阅读9分5秒阅读模式
 

1.摘要

Maltrail是一款功能强大免费的开源恶意流量检测系统, 它利用公开的黑名单以及从各种AV报告和自定义用户特征来识别恶意流量, 同时,该系统还拥有可选的高级启发式机制, 可以帮助使用者发现一些未知的威胁。

开源项目地址:

https://github.com/stamparm/maltrail

2.系统架构

Maltrail基于流量 -> 传感器 <-> 服务器 <-> 客户端架构。传感器是一个独立组件, 运行在监控节点上, 例如: 通过SPAN/镜像端口被动连接或在Linux网桥上透明内联的Linux平台, 或者独立蜜罐机器上。它主要负责监控经过的流量中是否存在恶意域名、URL、IP地址等向量, 如果发现匹配, 则会将事件详情发送到中央服务器, 这些详情信息会被存储在指定的日志目录中。如果传感器与服务器运行在同一台服务器上, 则日志直接存储在本地日志目录中。否则, 它们会通过UDP消息发送到远程服务器。架构图如下:

开源恶意流量检测系统

服务器的主要角色是存储事件详情并为报告网络应用程序提供后端支持。在默认配置中,服务器和传感器将在同一台机器上运行。因此,为了防止传感器活动可能出现的中断,前端报告部分基于"胖客户端"架构(即所有数据后处理都在客户端的网络浏览器实例中完成)。选定(24小时)期间的事件(即日志条目)被传输到客户端,在那里报告网络应用程序仅负责展示部分。数据以压缩块的形式发送到客户端,然后按顺序处理。最终报告以高度压缩的形式创建,实际上允许呈现几乎无限数量的事件。

注意:服务器组件可以完全跳过,只使用独立的传感器。在这种情况下,所有事件将存储在本地日志目录中,而日志条目可以通过手动方式或某些CSV读取应用程序进行检查。

3.系统安装

开源恶意流量检测系统

因每个使用者的机器环境有差异,为了提高安装成功率, 建议将以下内容保存为:install.sh文件执行安装, 脚本内容如下:

#!/bin/bash
export MALTRAIL_LOCAL=$(realpath ~/.local/share/maltrail)
mkdir -p $MALTRAIL_LOCAL
cd $MALTRAIL_LOCAL
wget https://raw.githubusercontent.com/stamparm/maltrail/master/docker/Dockerfile
wget https://raw.githubusercontent.com/stamparm/maltrail/master/maltrail.conf
sudo su
apt -qq -y install coreutils net-tools docker.io
for dev in $(ifconfig | grep mtu | grep -Eo '^w+'); do ifconfig $dev promisc; done
mkdir -p /var/log/maltrail/
docker build -t maltrail . && 
docker run -d --name maltrail-docker --privileged -p 8337:8337/udp -p 8338:8338 -v /var/log/maltrail/:/var/log/maltrail/ -v $(pwd)/maltrail.conf:/opt/maltrail/maltrail.conf:ro maltrail

该段脚本主要自动完成以下操作:

  • MALTRAIL_LOCAL 环境变量设置为

    ~/.local/share/maltrail 的绝对路径。

  • 创建 MALTRAIL_LOCAL 目录(如果不存在)。
  • 切换到 MALTRAIL_LOCAL 目录。
  • 从 GitHub 下载 Maltrail 的 Dockerfile。
  • 从 GitHub 下载 Maltrail 的配置文件。
  • 切换到 root 用户。
  • 安装所需的软件包(coreutils、net-tools 和 docker.io),-qq 表示安静模式,-y 表示自动确认。
  • 对于每个网络接口,将其设置为混杂模式。
  • 创建 /var/log/maltrail/ 目录(如果不存在)。
  • 使用当前目录中的 Dockerfile 构建名为 maltrail 的 Docker 镜像。
  • 运行名为 maltrail-docker 的 Docker 容器,使用构建的 maltrail 镜像。-d 表示在后台运行,--privileged 授予容器额外的权限,-p 映射端口,-v 挂载卷。

执行脚本过程如下:

开源恶意流量检测系统

安装完毕后,使用命令:docker ps -a命令可以看到Maltrail系统已经启动成功,如图:

开源恶意流量检测系统

该容器运行后,传感器与服务端将运行在同一台机器上。

如果要将传感器和服务器分开安装, 可以使用以下命令单独安装传感器:

适合ubuntu/Debain系统:

sudo apt-get install git python3 python3-dev python3-pip python-is-python3 libpcap-dev build-essential procps schedtool
sudo pip3 install pcapy-ng
git clone --depth 1 https://github.com/stamparm/maltrail.git
cd maltrail
sudo python3 sensor.py

适合SUSE/OpenSUSE系统:

sudo zypper install gcc gcc-c++ git libpcap-devel python3-devel python3-pip procps schedtool
sudo pip3 install pcapy-ng
git clone --depth 1 https://github.com/stamparm/maltrail.git
cd maltrail
sudo python3 sensor.py

在服务器端,使用以下命令开启服务端:

[[ -d maltrail ]] || git clone --depth 1 https://github.com/stamparm/maltrail.git
cd maltrail
python server.py

如图:

开源恶意流量检测系统

4.系统使用

开源恶意流量检测系统

容器启动成功后, 可以打开浏览器, 输入:http://服务器IP:8338进行系统访问, 系统登录界面如下图:

开源恶意流量检测系统

该系统的默认账号密码为:admin:changeme!, 登录成功的界面如下图:

开源恶意流量检测系统

以下是触发恶意流量规则记录的信息,如图:

开源恶意流量检测系统

如果需要完整的功能体验, 可查询官方文档, 介绍的非常详细:

https://github.com/stamparm/maltrail?tab=readme-ov-file#suspicious-http-requests

开源恶意流量检测系统
点个在看你最好看

开源恶意流量检测系统

原文始发于微信公众号(Nil聊安全):开源恶意流量检测系统

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月26日01:21:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   开源恶意流量检测系统http://cn-sec.com/archives/3094442.html

发表评论

匿名网友 填写信息