dedunufernando/ARIA
GitHub: dedunufernando/ARIA
ARIA 是一款 SOC 级 Python 安全工具,集成多源日志解析、MITRE ATT&CK 威胁检测、跨日志关联、自动响应剧本和实时可视化仪表板,帮助安全团队高效发现并处置安全事件。
Stars: 0 | Forks: 0
# ARIA v2.0 — 自动化响应与事件分析器
[](https://github.com/dedunufernando/ARIA/actions/workflows/ci.yml)
[](https://www.python.org/)
[](LICENSE)
一款达到 SOC 级别的 Python 安全工具,能够解析日志、检测威胁、自动响应,并通过实时的深色主题 Web dashboard 展示所有信息 —— 还提供由 Claude 或本地 Ollama 驱动的可选 AI 分析师聊天功能。
## 功能
| 类别 | 能力 |
|---|---|
| **日志解析** | Linux auth/syslog、nginx/Apache、UFW 防火墙、Windows Event Log、AWS CloudTrail、GCP Cloud Audit |
| **威胁检测** | 65 条 MITRE ATT&CK 规则引擎、YAML 自定义规则、Z-score 异常检测 |
| **关联分析** | 多源 IP 关联、攻击链检测、横向移动 |
| **响应** | 封禁 IP、锁定用户、隔离文件、结束进程 —— 全部支持安全试运行 |
| **剧本** | 基于 YAML 定义的多步响应剧本,支持遇错即停 |
| **信息丰富** | GeoIP 查询(免费,无需密钥)、AbuseIPDB、VirusTotal、Shodan、AlienVault OTX |
| **通知** | Slack webhook、SMTP 邮件、通用 webhook |
| **导出** | CEF (ArcSight/QRadar)、NDJSON (Elastic/Splunk HEC)、Jira 工单 |
| **监控** | 实时日志追踪、文件系统完整性监控器 (FSIM)、Windows 注册表 |
| **仪表板** | 实时深色主题 Flask UI —— 严重程度卡片、 top 攻击者、MITRE 热力图、时间轴、AI 聊天 |
| **AI 聊天** | Claude (Anthropic API) 或 Ollama(本地免费)—— 自动检测 |
| **审计** | SHA-256 哈希链不可变审计日志 |
## 快速开始
```
git clone https://github.com/dedunufernando/ARIA.git
cd ARIA
pip install -r requirements.txt
# 分析日志文件
python aria.py --mode=analyze --log-file /var/log/auth.log
# 启动 dashboard
python aria.py --mode=dashboard
# → http://127.0.0.1:5000
```
### Windows —— 双击启动器
双击 **`start_aria.bat`**(或桌面上的 **ARIA Dashboard** 快捷方式)即可启动服务器并自动打开浏览器。
## 模式
```
python aria.py --mode=analyze --log-file auth.log [--respond] [--playbook] [--geoip] [--report]
python aria.py --mode=monitor --log-file auth.log,access.log # real-time tail
python aria.py --mode=dashboard # web UI
python aria.py --mode=fsim --watch-path /etc --baseline # file integrity
python aria.py --mode=registry --baseline # Windows registry
python aria.py --mode=status # DB summary
```
### 关键标志
| 标志 | 描述 |
|---|---|
| `--respond` | 执行响应操作(默认为 dry-run —— 添加 `--no-dry-run` 执行真实操作) |
| `--playbook [FILE]` | 运行 YAML 剧本(默认:`config/playbooks.yaml`) |
| `--notify` | 针对 HIGH 及以上级别的威胁发送 Slack/邮件警报 |
| `--geoip` | 使用 GeoIP 数据丰富威胁 IP |
| `--report [FILE]` | 保存 JSON 事件报告(如未指定路径则自动命名) |
| `--correlate` | 运行跨日志关联引擎 |
| `--enrich` | 通过 Claude 进行 AI 驱动的威胁信息丰富 |
| `--reputation` | 针对 AbuseIPDB / VirusTotal 检查 IP |
| `--anomaly` | 对事件量进行 Z-score 异常检测 |
| `--log-type` | 强制指定日志类型:`auth`、`nginx`、`ufw`、`windows_event`、`cloudtrail`、`gcp_audit`、`auto` |
## 配置
将 `.env.example` 复制到 `.env` 并填写您需要的值:
```
cp .env.example .env
```
```
# AI chat(可选 — Ollama 无需此项即可运行)
ANTHROPIC_API_KEY=sk-ant-...
# IP reputation(提供免费 key)
ABUSEIPDB_KEY=...
VIRUSTOTAL_KEY=...
# Alerts
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/...
SMTP_HOST=smtp.gmail.com
SMTP_USER=you@gmail.com
SMTP_PASS=your-app-password
ALERT_EMAIL_FROM=aria@yourdomain.com
ALERT_EMAIL_TO=soc@yourdomain.com
```
密钥的加载顺序为:**OS 密钥环 → `.env` 文件 → 环境变量**。
## 仪表板
```
python aria.py --mode=dashboard
```
打开 `http://127.0.0.1:5000`
| 面板 | 描述 |
|---|---|
| 严重程度卡片 | 实时统计 CRITICAL / HIGH / MEDIUM / LOW / INFO 数量 |
| Top 攻击者 | 按事件数量统计的 top IP —— 点击以过滤表格 |
| MITRE 战术 | MITRE ATT&CK 战术分布的柱状图 |
| 事件量 (24h) | 堆叠柱状时间轴图表 —— 过去 24 小时按小时统计 |
| 事件报告 | 列出已保存的 `--report` JSON 文件 —— 点击查看摘要 |
| 事件表格 | 所有近期事件 —— 点击任意行查看完整详情模态框 |
| 过滤栏 | 按严重程度、事件类型或 IP 进行过滤 |
| ⬇ CSV | 将所有事件下载为 CSV 文件 |
| AI 分析师 | 与 Claude 或 Ollama 聊天以分析当前威胁 |
### 无需 API 密钥的 AI 聊天(免费)
```
# 从 https://ollama.com/download 安装 Ollama,然后:
ollama pull llama3
# 重启 ARIA — 它会自动检测 localhost:11434 上的 Ollama
```
或者将您的 `ANTHROPIC_API_KEY` 粘贴到仪表板的琥珀色横幅中。
## Docker
```
# 启动 dashboard
docker compose up
# 对主机日志文件运行分析
docker compose run --rm aria --mode=analyze --log-file /host_logs/auth.log
```
环境变量将自动从您的 shell 或 `.env` 文件中读取。
## 构建 Windows 可执行文件
```
build_windows.bat
# 输出:dist\aria\aria.exe
dist\aria\aria.exe --mode=dashboard
```
需要 `pyinstaller`(如果缺失,脚本会自动安装)。
## 剧本
在 `config/playbooks.yaml` 中定义自动化的多步响应:
```
playbooks:
- id: brute_force_response
name: SSH Brute Force Response
trigger:
event_types: [BRUTE_FORCE, PASSWORD_SPRAY]
min_severity: HIGH
requires_ip: true
steps:
- action: block_ip
- action: notify
channel: slack
message: "Brute force from {ip} — auto-blocked"
- action: tag
value: auto-responded
```
运行方式:`python aria.py --mode=analyze --log-file auth.log --playbook`
## YAML 自定义规则
在 `config/response_rules.yaml` 中添加针对特定事件类型的响应规则:
```
rules:
BRUTE_FORCE:
- block_ip
- lockout_user
AWS_IAM_CHANGE:
- block_ip
```
## 测试
```
pytest tests/ -v
# 444+ 项测试 — 运行时间约 6 秒
```
CI 通过 GitHub Actions 在每次推送时自动运行(支持 Python 3.11、3.12、3.13)。
## 项目结构
```
ARIA/
├── aria.py # CLI entry point
├── aria/
│ ├── models.py # AriaEvent, SEVERITY_ORDER, MITRE_MAPPING
│ ├── parsers/ # Log parsers (auth, nginx, ufw, windows, cloudtrail, gcp)
│ ├── detectors/ # Rule engine, correlation, anomaly detection
│ ├── responders/ # Response engine, playbook engine, incident report
│ ├── notifications/ # Alert notifier (Slack, email)
│ ├── reputation/ # GeoIP, AbuseIPDB, VirusTotal, Shodan, OTX
│ ├── ai/ # Claude AI enrichment
│ ├── monitors/ # Log monitor, FSIM, registry monitor
│ ├── exporters/ # SIEM export (CEF, NDJSON)
│ ├── integrations/ # Jira client
│ ├── storage/ # SQLite DB, hash-chained audit log
│ └── dashboard/ # Flask app, templates, static
├── config/
│ ├── playbooks.yaml # Response playbooks
│ ├── response_rules.yaml # Custom YAML rules
│ └── secrets.py # Secrets vault
├── rules/ # Detection rule definitions
├── tests/ # 444+ pytest tests
├── Dockerfile
├── docker-compose.yml
├── aria.spec # PyInstaller build spec
└── build_windows.bat # Windows build script
```
## 许可证
MIT —— 详见 [LICENSE](LICENSE)。
标签:AI风险缓解, AMSI绕过, Cloudflare, MITRE ATT&CK, PE 加载器, PKI安全, Python, x64dbg, 威胁检测, 安全运营(SOC), 无后门, 漏洞挖掘, 自动化响应, 请求拦截, 逆向工具