Skip to content

spotiex/Primitive-Analysis

Repository files navigation

网络流量行为基元分析项目 (Traffic Analysis Project)

本项目旨在从网络流量(PCAP 文件)中自动提取行为基元(Behavior Primitives),用于识别异常流量、暴力破解、扫描行为及 C2 通讯特征。项目集成了 Zeek 和 Suricata 两种强大的流量分析引擎,并基于提取的日志进行深度行为建模。

项目组成

项目主要由以下核心模块组成:

  1. 传感器层 (sensors/):
    • wrapper.py: 封装了对 Zeek 和 Suricata 的调用逻辑,负责将 PCAP 转换为结构化日志。
  2. 分析层 (analyzer/):
    • loader.py: 负责加载不同来源的日志文件(如 conn.log, http.log, eve.json)并转换为 Pandas DataFrame。
    • primitives.py: 核心提取引擎。包含了 46 条预定义的行为基元规则,涵盖扫描、爆破、隧道、异常传输等维度。
  3. 展示层:
    • analyze.py: 一键式命令行分析工具。
    • data/: 统一的数据管理目录。

数据组织规范

为了确保分析任务的可追溯性,项目采用了统一的 data 目录结构:

  • data/pcaps/: 存放待分析的原始 PCAP 流量文件。
  • data/logs/: 存放分析结果。每个分析任务会根据 时间戳-文件名 创建独立子目录。
    • 示例: data/logs/20231230-1500-sample/
    • 子项目包括:Zeek 日志、Suricata 告警、primitives.json(原始数据)以及 report.txt(人类易读简报)。

快速上手

环境准备

确保您的系统中已安装 zeeksuricata,且 Python 环境已配置好相关的依赖(pandas, numpy)。

运行分析

使用一键分析工具处理 PCAP 文件:

python analyze.py --pcap data/pcaps/example.pcap

性能优化:按类型分析

如果您只对特定的行为感兴趣,可以使用 --type 参数。这不仅会过滤输出,还会跳过无关规则的执行并仅加载必要的日志文件,从而显著降低处理开销(内存和计算):

# 仅针对扫描行为进行高效提取
python analyze.py --pcap ... --type SCAN

参数说明

  • --pcap: (必选) 指向要分析的 PCAP 文件。
  • --type: (可选) 仅输出特定类型的基元,例如 python analyze.py --pcap ... --type SCAN
  • --out_base: (可选) 指定输出根目录,默认为 data/logs

基元输出说明

提取出的每个行为基元包含以下关键信息:

  • Type: 基元种类名称。
  • Rule: 命中该基元时使用的逻辑规则描述。
  • Source: 对应的原始日志文件路径。
  • Evidence: 命中的具体证据详细信息(如流量大小、错误率、User-Agent 等)。

Behavior Primitive Analysis Project

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages