mateusm1403/LogIntel
GitHub: mateusm1403/LogIntel
一款模块化的高性能 Python 日志处理流水线,专为大规模日志的标准化、关联分析和威胁检测而设计。
Stars: 0 | Forks: 0
# LogIntel



高性能 Python pipeline,用于大规模日志处理和流式传输。专为 SOC、DFIR 和 Threat Hunting 设计的模块化架构,专注于低内存消耗、数据标准化和威胁检测。
# 动机
在进行安全分析和故障排除时,处理海量日志通常需要使用多种工具并进行大量手动处理。
LogIntel Pipeline 的目标是简化这一流程,为事件的摄取、标准化、关联和分析提供模块化且可扩展的基础。
# 功能
- 大规模日志处理
- 流式读取
- 模块化 Parsers
- 事件标准化
- 时间关联
- 提取 IOCs
- brute force 检测
- 识别可疑 IPs
- 事件 Timeline
- 导出为 JSON、Markdown 和 HTML 格式
- 兼容 MITRE ATT&CK 架构
- 集成 Sigma Rules 的基础
# 支持的格式
- JSON / JSONL
- CSV
- TXT
- Syslog
- Apache Logs
- Nginx Logs
- XML
- EVTX
- CSV
# 项目结构
```
.
├── config/
│ └── default_config.json
├── data/
│ └── samples/
│ ├── apache_access.log
│ ├── auth.log
│ ├── events.jsonl
│ └── windows.xml
├── reports/
│ └── templates/
│ └── final_report.md
├── src/
│ └── logintel/
│ ├── analysis/
│ ├── correlation/
│ ├── enrichment/
│ ├── export/
│ ├── ingestion/
│ ├── normalization/
│ ├── parsing/
│ ├── pipeline/
│ └── utils/
├── main.py
└── requirements.txt
```
# 使用 Pandas 分析 CSV
`--csv` 模式使用 Pandas 作为分析引擎,并通过 `csv_analysis.chunksize` 配置按 chunks 处理文件。它是为处理 Wazuh、Splunk、SIEMs、firewalls、EDR/XDR、Windows Events、CrowdStrike、Microsoft Sentinel、Zabbix 和 Elastic Stack 的导出数据而创建的。
该引擎会自动标准化常见的列别名,例如 `source_ip`、`srcip` 和 `source.ip` 会转换为 `src_ip`;`user`、`accountname` 和 `user.name` 会转换为 `username`;`_time`、`@timestamp` 和 `event_time` 会转换为 `timestamp`。
当前的分析功能包括:
按源/目的 IP、用户、主机、严重程度、事件类型、动作和状态码 (status code) 统计 top-N
按时间窗口计数
按来源/用户/窗口检测 brute force
检测可疑 keywords
识别异常的流量峰值
# 安装说明
克隆仓库
git clone https://github.com/mateusm1403/logintel-pipeline.git
cd logintel-pipeline
安装依赖项
pip install -r requirements.txt
# 快速使用
创建并激活虚拟环境
1. Windows (PowerShell)
python -m venv .venv
.venv\Scripts\activate
2. Linux / WSL
python3 -m venv .venv
source .venv/bin/activate
创建一个测试日志文件
1. Windows
echo Failed password for root from 10.0.0.1 > logs.txt
2. Linux / WSL
echo "Failed password for root from 10.0.0.1" > logs.txt
执行 pipeline
python main.py --input logs.txt
输出示例
INFO logintel.pipeline.engine - Iniciando pipeline
INFO logintel.pipeline.engine - Pipeline finalizado
Eventos processados: 13
Achados: 0
Relatorios em: output/
处理整个目录
也可以处理多个日志:
python main.py --input ./data
可用参数
参数 描述
--input 包含日志的文件或目录
--output 报告的输出目录
--config JSON/YAML 配置文件
--log-level 日志级别 (INFO, DEBUG, ERROR)
完整示例
python main.py ^
--input logs.txt ^
--output output ^
--config config/default_config.json ^
--log-level INFO
Linux/WSL:
python3 main.py \
--input logs.txt \
--output output \
--config config/default_config.json \
--log-level INFO
处理 Pipeline
主流程遵循以下步骤:
摄取 (Ingestão)
解析 (Parsing)
标准化 (Normalização)
丰富 (Enriquecimento)
关联 (Correlação)
分析 (Análise)
导出 (Exportação)
检测示例
brute force 尝试
异常的身份验证峰值
可疑 IPs
时间关联
提取 IOCs
按实体分组的事件
# 开发说明
建议:
Python 3.11 或 3.12(仅出于稳定性考虑,您可以在其他版本上进行测试)
VSCode + Python 扩展
隔离的虚拟环境 (venv)
requirements.txt 中的框架
标签:AMSI绕过, IP 地址批量处理, Python, 威胁检测, 安全运营, 扫描框架, 无后门, 流式处理, 红队行动, 逆向工具