oscarkam/argus-honeypot
GitHub: oscarkam/argus-honeypot
ARGUS 是一个 AI 辅助的云端蜜罐平台,通过自动化框架映射和本地大模型解读,将蜜罐捕获的攻击遥测数据转化为分析师可直接使用的威胁情报报告。
Stars: 0 | Forks: 0
# ARGUS
一个 AI 辅助的威胁情报平台,用于自动化云端蜜罐遥测可视化以及与框架映射的报告。
ARGUS 使用基础设施即代码将多传感器蜜罐部署到云基础设施,摄取由此产生的攻击遥测数据,根据三个网络安全框架对其进行分类,并生成 Markdown、PDF 和 Word 格式的、分析师可直接使用的报告。本地托管的语言模型负责生成文本解读,无需将遥测数据传输到任何外部服务。
## 概述
蜜罐可以捕获高保真的攻击者行为,但大多数部署都止步于日志存储。将原始遥测数据转化为可用情报的分析工作被留给了操作员,这限制了它们对于小型团队、学生以及没有专门安全运营中心的组织的实际价值。
ARGUS 通过在成熟的传感器发行版之上添加三层架构来解决这个问题:
- **分析层**:根据 MITRE ATT&CK、Lockheed Martin Cyber Kill Chain 和 NIST Cybersecurity Framework 对观察到的活动进行分类
- **叙述层**:使用本地托管的语言模型将分类统计数据转化为易读的文本
- **可访问性层**:通过通俗易懂的界面展示结果,并为有需要的用户提供专家级分析界面
## 架构
该系统分为四个平面,每个平面都是一个独立的信任边界。
| 平面 | 功能 | 组件 |
|---|---|---|
| **Deception(欺骗)** | 展示暴露的服务并捕获对手交互 | T-Pot Community Edition 24.04,在隔离的容器网络上运行 24 个蜜罐服务 |
| **Ingestion(摄取)** | 规范化并索引捕获的遥测数据 | Logstash、Elasticsearch、GeoIP 和 ASN 扩充 |
| **Analytical(分析)** | 分类、解读和报告 | ARGUS 分析器、框架映射器、Ollama 推理、报告流水线 |
| **Accessibility(可访问性)** | 向操作员展示结果 | ARGUS Control Center、Kibana |
Deception 平面运行在一个云端实例上,入站流量仅限六个端口。Analytical 和 Accessibility 平面运行在操作员工作站上,并通过 SSH 隧道连接到该云端实例。Deception 平面与操作员工作站之间不存在入站路径。
## 环境要求
**操作员工作站**
| 组件 | 版本 |
|---|---|
| Terraform | 1.14.3 |
| Ansible | 2.19 |
| Python | 3.12 |
| Ollama | 0.32.5 |
| pandoc | 3.1.3 |
| XeLaTeX | TeX Live 2023 |
**云账户**
一个具有创建 VPC、EC2、Elastic IP 和 IAM 资源权限的 AWS 账户。部署将配置一个带有 128 GiB 存储卷的 `t3.xlarge` 实例。
**可选**
AbuseIPDB、VirusTotal 和 GreyNoise 的 API key,仅外部验证模块需要。
## 部署说明
### 1. 克隆并配置
```
git clone https://github.com/oscarkam/argus-honeypot
cd argus-honeypot
cp analyzer/config.example.yml analyzer/config.yml
cp infra/ansible/vars/tpot_secrets.example.yml infra/ansible/vars/tpot_secrets.yml
```
使用您自己的值编辑这两个文件。它们均不受 git 追踪。
### 2. 配置基础设施
```
cd infra/terraform
terraform init
terraform plan
terraform apply
```
Terraform 将输出实例标识符、公网地址和连接字符串。
### 3. 安装传感器
```
cd ../ansible
# 使用上一步中的 address 更新 inventory
ansible-playbook -i inventory site.yml
ansible-playbook -i inventory install_tpot.yml
```
安装大约需要 20 分钟。实例将在完成后重启。
### 4. 准备分析器
```
cd ../../analyzer
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
ollama pull llama3.2:3b
```
## 配置
`analyzer/config.yml` 控制分析器。主要部分:
| 键 | 用途 |
|---|---|
| `elasticsearch.hosts` | Index endpoint,通常为通过隧道的 `http://localhost:9200` |
| `ollama.host` | 推理 endpoint |
| `ollama.model` | 模型标识符,默认为 `llama3.2:3b` |
| `ollama.temperature` | 采样温度,默认为 `0.3` |
| `report.organization` | 显示在生成的报告标题中的名称 |
环境变量,在您的 shell profile 中设置,切勿提交:
```
export ABUSEIPDB_API_KEY="..."
export VIRUSTOTAL_API_KEY="..."
export GREYNOISE_API_KEY="..."
export ARGUS_OPERATOR_IP="..." # your admin source address, excluded from analysis
```
## 用法
### 启动会话
```
./scripts/session-start.sh
```
如果实例已挂起,此操作会启动实例,建立 SSH 隧道,并验证 index 和推理服务是否可达。
### 从命令行生成报告
```
cd analyzer
source .venv/bin/activate
python analyzer.py --period monthly --style full --theme light
```
| 标志 | 取值 |
|---|---|
| `--period` | `daily`, `weekly`, `monthly` |
| `--style` | `brief`, `full` |
| `--theme` | `dark`, `light` |
输出内容将以 Markdown、PDF 和 Word 格式写入 `reports/`。
### 启动 Control Center
```
./scripts/argus-web.sh
```
在 `http://localhost:8501` 打开,包含五个视图:Home、Report Studio、Reports Archive、T-Pot Bridge 和 System Health。
### 验证捕获的地址
```
cd analyzer
python validate_ips.py --population-audit --hours 720
python validate_ips.py --live --stratified --top-n 100 --tail-n 100 --hours 720
```
第一个命令报告有多少捕获的遥测数据源自平台基础设施而非外部来源。第二个命令将源地址的分层样本与外部威胁情报源进行交叉比对。
### 挂起实例
```
./scripts/instance-stop.sh
```
计算费用将停止;存储和地址费用将继续产生。
## 仓库结构
```
infra/
terraform/ Infrastructure definitions: network, compute, addressing, identity
ansible/ Sensor installation and configuration playbooks
analyzer/
analyzer.py Pipeline entry point
es_client.py Index query layer
frameworks/ ATT&CK, Kill Chain and CSF classifiers
charts.py Chart rendering
exporters.py Document conversion
metrics.py Pipeline instrumentation
validate_ips.py External threat intelligence validation
templates/ Report templates
prompts/ Language model prompt templates
argus_web/ Control Center application
scripts/ Session lifecycle helpers
docs/ Architecture and troubleshooting documentation
```
## 安全提示
- 入站流量仅限于六个欺骗端口和两个管理端口。传感器发行版的默认配置暴露了更广的范围;此部署则不然。
- 管理 SSH 从端口 22 移开。端口 22 暴露的是一个欺骗服务。
- 每个欺骗服务都在具有独立子网的专用容器网络上运行,因此没有任何服务与其他服务共享二层或三层路径。
- `config.yml`、`tpot_secrets.yml`、Terraform state 和所有凭证材料均被排除在版本控制之外。
- 本部署旨在用于受控的研究用途。在不受您控制的网络上,或未经授权暴露的情况下,运行面向互联网的蜜罐是不合适的。
## 故障排除
请参阅 [TROUBLESHOOTING.md](TROUBLESHOOTING.md)。
## 致谢
基于 Telekom Security 的 [T-Pot Community Edition](https://github.com/telekom-security/tpotce) 构建,后者提供了传感器和索引基础设施。ARGUS 在此基础上贡献了分析、叙述和可访问性层。
## 许可证
请参阅 [LICENSE](LICENSE)。
标签:AI风险缓解, DLL 劫持, Kubernetes, 云原生部署, 内容过滤, 大语言模型, 威胁情报, 开发者工具, 系统提示词, 自动化报告, 蜜罐系统, 请求拦截, 越狱测试, 逆向工具