meetpandya19/apptrana-siem-log-collector
GitHub: meetpandya19/apptrana-siem-log-collector
一套 Python 脚本工具,通过 REST API 自动化采集 Indusface AppTrana WAF 的攻击日志并存储到本地,便于后续 SIEM 集成与分析。
Stars: 0 | Forks: 0
# apptrana-siem-log-collector
一个基于 Python 的自动化工具包,通过 REST API 从 Indusface AppTrana WAF 门户获取攻击日志,并将其存储在本地,以便进行 SIEM 集成或分析。
📌 概述
本项目由两个协同工作的脚本组成:
[1] Generate_AuthToken.py:与 AppTrana API 进行身份验证,并在本地保存 Bearer token。
[2] Fetch_AttackLogs.py:使用保存的 token 获取过去 5 分钟的攻击日志,并将其写入每日日志文件中。
这些脚本旨在通过计划任务(例如,通过 Windows 任务计划程序或 cron)进行调度,以持续将 WAF 攻击数据拉取到本地 SIEM pipeline 中。
🗂️ 项目结构
```
apptrana-siem-log-collector
├── Generate_AuthToken.py # Step 1: Generate and store auth token
├── Fetch_AttackLogs.py # Step 2: Fetch and log attack data
├── README.md
└── logs/ # Auto-created folder for output logs
├── Indusface.ini # Stores the active Bearer token
├── indusface-YYYY-MM-DD.log # Daily attack log files
└── Error.log # Error tracking
```
⚙️ 前置条件
```
Python 3.7+
requests library
```
安装依赖项:
```
pip install requests
```
🔧 配置说明
在运行之前,请更新 "Generate_AuthToken.py" 中的以下变量:
```
pythonLog_Folder = r'path\to\your\log\folder' # Where logs and token will be stored
API_ID = 'your_api_id'
API_Key = 'your_api_key'
And update Log_Folder in Fetch_AttackLogs.py to match the same path.
```
⚠️ 重要提示:切勿将您的真实 API_ID 或 API_Key 提交到公共仓库。在生产环境中,请使用环境变量或 .env 文件。
🚀 用法
第 1 步 — 生成 Auth Token
首先运行此命令进行身份验证并保存 token:
```
python Generate_AuthToken.py
```
这将会创建或更新 Indusface.ini,并写入一个新的 Bearer token。
第 2 步 — 获取攻击日志
运行此命令从 AppTrana 拉取最新的攻击数据:
```
python Fetch_AttackLogs.py
```
日志将保存到您配置的日志文件夹中的 indusface-YYYY-MM-DD.log 文件中。
🕐 通过任务计划程序实现自动化
要每 24 小时 5 分钟运行一次这两个脚本:
```
Open Task Scheduler → Create Basic Task
Set trigger: Every 24 hour & 5 minutes
Action: Run python Generate_AuthToken.py for every 24 hour & Fetch_AttackLogs.py for every 5 mins.
```
请确保工作目录已设置为该项目的文件夹
📄 日志格式
每日日志文件中的每一行代表一条由 AppTrana API 返回的攻击记录:
```
{'attack_type': 'SQLi', 'src_ip': '1.2.3.4', 'timestamp': ..., ...}
```
错误信息及其时间戳将被记录到 Error.log 中:
```
14:32:01 ConnectionError: ...
```
🔒 安全提示
本项目使用基于 API key 的身份验证。为了在生产环境中获得更好的安全性:
```
Store credentials in environment variables
Add Indusface.ini and *.log to .gitignore
```
👤 作者
Meet Pandya
MSS Engineer — Indusface Private Limited
[LinkedIn](https://www.linkedin.com/in/meet-pandya-soc/)
📃 许可证
本项目仅供内部或个人使用。不附属于 Indusface Pvt. Ltd.,也未获得其官方认可。
标签:Python, REST API, SIEM集成, WAF日志, 数字取证, 无后门, 日志采集, 自动化脚本, 运维工具, 逆向工具