icepaule/IcePorge-MWDB-Feeder
GitHub: icepaule/IcePorge-MWDB-Feeder
一个自动化从多个威胁情报源聚合恶意软件样本并上传至 MWDB 仓库的 Docker 化管道工具。
Stars: 0 | Forks: 0
# IcePorge MWDB-Feeder
**多源恶意软件样本聚合器**
[](LICENSE)
聚合来自多个威胁情报源的恶意软件样本,并将其上传至 MWDB。
# MWDB-Feeder 操作手册 - 多源恶意软件聚合器
**文档信息**
| 属性 | 值 |
|----------|------|
| 文档版本 | 1.0 |
| 创建日期 | 2026-01-22 |
| 最后修改 | 2026-01-22 |
| 分类 | 内部 |
| 目标受众 | ITSO / 网络安全分析师 Level 3 |
| 文档负责人 | IT 安全运营 |
| 审查周期 | 每季度 |
## 目录
1. [目的与适用范围](#1-zweck-und-geltungsbereich)
2. [系统概览与架构](#2-systemübersicht-und-architektur)
3. [合规性要求](#3-regulatorische-anforderungen)
4. [安装与配置](#4-installation-und-konfiguration)
5. [操作流程](#5-betriebsverfahren)
6. [维护流程](#6-wartungsverfahren)
7. [事件响应程序](#7-incident-response-prozeduren)
8. [故障排除](#8-troubleshooting)
9. [安全注意事项](#9-sicherheitsaspekte)
10. [附录](#10-anhänge)
## 1. 目的与适用范围
### 1.1 文档目的
本操作手册记录了 MWDB-Feeder 系统的运营情况,这是一条自动化 pipeline,用于从多个外部威胁情报源聚合恶意软件样本,并上传到 MWDB(Malware Database)仓库。
### 1.2 适用范围
本手册适用于:
- 位于 `/opt/mwdb-feeder/` 的 MWDB-Feeder 安装
- Docker 容器基础设施
- 与 MWDB-Core + Karton Stack 的集成
### 1.3 系统目的
MWDB-Feeder 自动化地从各种“野外”来源持续获取恶意软件样本:
1. **轮询 (Polling)**:定期从多个威胁情报源获取新样本
2. **去重**:基于 SQLite 避免重复上传
3. **下载**:通过 Hash 校验安全获取恶意软件样本
4. **上传**:通过 mwdblib 自动上传至 MWDB
5. **打标 (Tagging)**:自动使用来源和恶意软件标签进行标记
6. **报告**:JSONL 日志记录,用于 SIEM 集成
### 1.4 与 CAPE-Feed 的区别
| 方面 | CAPE-Feed | MWDB-Feeder |
|--------|-----------|-------------|
| **目标** | 直接提交至 CAPE | 构建 MWDB 仓库 |
| **来源** | MalwareBazaar, ransomware.live | URLhaus, ThreatFox, Hybrid Analysis, (ANY.RUN) |
| **Pipeline** | Feed → CAPE → MISP | Feed → MWDB → Karton → CAPE |
| **侧重点** | 专注于勒索软件 | 广泛的恶意软件类型 |
**来源**:`/opt/mwdb-feeder/app/feeder.py:1-14`
## 2. 系统概览与架构
### 2.1 架构图

abuse.ch
Poll: 5 min"] ThreatFox["ThreatFox
abuse.ch
Poll: 5 min"] Hybrid["Hybrid Analysis
Falcon Sandbox
Poll: 15 min"] AnyRun["ANY.RUN
API-Key nötig
Deaktiviert"] end subgraph CONTAINER["Docker: mwdb-feeder"] Poll["1. Poll Feed APIs"] Dedupe["2. Deduplizierung
SQLite"] Download["3. Download
+ Hash-Verify"] Upload["4. Upload + Tags
via mwdblib"] Poll --> Dedupe --> Download --> Upload end subgraph STORAGE["Persistente Daten"] StateDB["state.db"] Reports["reports/mwdb-feeder.jsonl"] end FEEDS --> CONTAINER CONTAINER --> MWDB["MWDB-Core
http://mwdb:8080/api"] CONTAINER -.-> STORAGE subgraph KARTON["Karton Pipeline"] Classifier["classifier"] Archive["archive-extractor"] Config["config-extractor"] CapeSubmit["cape-submitter"] Classifier --> Archive --> Config --> CapeSubmit end MWDB --> KARTON CapeSubmit --> CAPE["CAPE Sandbox"] style FEEDS fill:#667eea,color:#fff style CONTAINER fill:#11998e,color:#fff style MWDB fill:#f093fb,color:#fff style KARTON fill:#4facfe,color:#fff style CAPE fill:#ff0844,color:#fff ```
### 2.2 威胁情报源
| Feed | URL | 轮询 | 认证 | 状态 | 描述 |
|------|-----|---------|------|--------|--------------|
| URLhaus | https://urlhaus-api.abuse.ch/v1/ | 5 分钟 | Auth-Key | ✅ 激活 | 恶意软件 Payloads(ZIP 加密) |
| ThreatFox | https://threatfox-api.abuse.ch/api/v1/ | 5 分钟 | Auth-Key | ✅ 激活 | IOCs(仅记录 Hash,不下载) |
| Hybrid Analysis | https://www.hybrid-analysis.com/api/v2/ | 15 分钟 | API-Key | ✅ 激活 | Falcon Sandbox 公共 Feed |
| ANY.RUN | https://api.any.run/v1/ | 10 分钟 | API-Key | ❌ 需要 API-Key | 需要付费计划 |
**来源**:`/opt/mwdb-feeder/.env`
### 2.3 目录结构
```
/opt/mwdb-feeder/
├── app/
│ ├── feeder.py # Hauptskript (v1.0.0)
│ └── requirements.txt # Python Dependencies
├── work/ # Persistente Daten (Volume)
│ ├── state.db # SQLite State-Datenbank
│ └── reports/ # JSONL-Reports
│ └── mwdb-feeder.jsonl
├── .env # Konfiguration (API-Keys)
├── docker-compose.yml # Docker-Compose-Datei
└── Dockerfile # Container-Image-Definition
```
### 2.4 Feed 详情
#### URLhaus (abuse.ch)
- **数据格式**:ZIP 加密的恶意软件样本
- **密码**:`infected`
- **Hash 校验**:解压后进行 SHA256 校验
- **标签**:`source:urlhaus`, `malware:{signature}`
#### ThreatFox (abuse.ch)
- **数据格式**:基于 Hash 的 IOCs(无直接下载)
- **用途**:记录 SHA256 Hash 以供交叉引用
- **标签**:`source:threatfox`
#### Hybrid Analysis (Falcon Sandbox)
- **数据格式**:原始二进制文件或 GZIP 压缩文件
- **限制**:并非所有样本都可下载(HTTP 400)
- **标签**:`source:hybrid_analysis`, `verdict:{verdict}`, `malware:{vx_family}`
#### ANY.RUN
- **状态**:需要付费 API-Key(Searcher 计划或更高)
- **API-Key**:https://app.any.run/profile → API & Limits
- **注意**:网页抓取会被 Cloudflare 拦截
## 3. 合规性要求
### 3.1 BaFin / MaRisk
| MaRisk 要求 | 实施方式 |
|-------------------|-----------|
| AT 7.2(IT 风险管理) | 多源威胁情报聚合 |
| AT 4.3.2(风险识别) | 持续捕获新威胁 |
### 3.2 BAIT
| BAIT 章节 | 相关性 | 措施 |
|--------------|----------|----------|
| IV. 信息安全 | 威胁情报 | 自动化多 Feed 集成 |
| VIII. 外包 | 外部服务 | abuse.ch,Hybrid Analysis 已记录在案 |
### 3.3 DORA
| DORA 条款 | 要求 | 实施方式 |
|--------------|-------------|-----------|
| 第 5 条 | ICT 风险管理 | 自动化威胁检测 |
| 第 13 条 | 威胁情报 | 集成多个外部 Feed |
### 3.4 ISO 27001
| 控制 | 实施方式 |
|---------|-----------|
| A.5.7 威胁情报 | 多源 Feed 集成 |
| A.12.2 防范恶意软件 | 通过 MWDB/Karton 进行主动样本分析 |
## 4. 安装与配置
### 4.1 前置条件
```
# 检查 Docker 和 Docker Compose
docker --version
docker compose version
# MWDB-Core Stack 必须运行
cd /opt/mwdb-core
docker compose ps
```
### 4.2 环境变量
配置通过 `/opt/mwdb-feeder/.env` 进行:
**MWDB 连接**:
```
# /opt/mwdb-feeder/.env
MWDB_URL=http://mwdb:8080/api
MWDB_API_KEY=eyJ0eXAiOiJKV1Q... # JWT Token aus MWDB UI
```
**URLhaus (abuse.ch)**:
```
URLHAUS_ENABLED=true
URLHAUS_URL=https://urlhaus-api.abuse.ch/v1/
URLHAUS_AUTH_KEY=b3437fd58ef417... # abuse.ch Auth-Key
URLHAUS_POLL_SECONDS=300
URLHAUS_ZIP_PASSWORD=infected
```
**ThreatFox (abuse.ch)**:
```
THREATFOX_ENABLED=true
THREATFOX_URL=https://threatfox-api.abuse.ch/api/v1/
THREATFOX_AUTH_KEY=b3437fd58ef417... # Gleicher abuse.ch Auth-Key
THREATFOX_POLL_SECONDS=300
```
**Hybrid Analysis**:
```
HYBRID_ANALYSIS_ENABLED=true
HYBRID_ANALYSIS_API_KEY=nzkq8o2t310c9d... # Von hybrid-analysis.com
HYBRID_ANALYSIS_POLL_SECONDS=900
```
**ANY.RUN**(可选 - 付费):
```
ANYRUN_ENABLED=false
ANYRUN_API_KEY= # API-Key von any.run/profile
ANYRUN_POLL_SECONDS=600
```
**通用设置**:
```
WORK_DIR=/work
STATE_DB=/work/state.db
REPORT_PATH=/work/reports/mwdb-feeder.jsonl
MAX_MB_PER_FILE=50 # Max. Dateigröße in MB
```
**来源**:`/opt/mwdb-feeder/.env`
### 4.3 Docker-Compose 配置
```
# /opt/mwdb-feeder/docker-compose.yml
services:
mwdb-feeder:
build: .
container_name: mwdb-feeder
restart: unless-stopped
env_file:
- .env
volumes:
- ./work:/work
networks:
- mwdb-core_default # Verbindung zum MWDB-Stack
stop_grace_period: 30s
networks:
mwdb-core_default:
external: true
```
**来源**:`/opt/mwdb-feeder/docker-compose.yml`
### 4.4 获取 API-Key
| 服务 | 注册 | 费用 |
|--------|---------------|--------|
| abuse.ch (URLhaus/ThreatFox) | https://auth.abuse.ch/ | 免费 |
| Hybrid Analysis | https://www.hybrid-analysis.com/signup | 免费(有速率限制) |
| ANY.RUN | https://app.any.run/ → Profile → API | 付费(Searcher 计划) |
## 5. 操作流程
### 5.1 启动容器
```
cd /opt/mwdb-feeder
# 启动 Container
docker compose up -d
# 跟踪 Logs
docker compose logs -f mwdb-feeder
# Container 状态
docker compose ps
```
### 5.2 停止容器
```
cd /opt/mwdb-feeder
# 优雅停止(等待30秒)
docker compose down
# 立即停止
docker compose kill
```
### 5.3 重建容器
在修改 `feeder.py` 或 `.env` 后:
```
cd /opt/mwdb-feeder
# 使用 Cache 重新构建
docker compose build && docker compose up -d
# 不使用 Cache 重新构建(在 Dependency 更改时)
docker compose build --no-cache && docker compose up -d
```
### 5.4 监控
**容器日志**:
```
# 实时 Logs
docker logs -f mwdb-feeder
# 最后 100 行
docker logs --tail 100 mwdb-feeder
# 仅显示错误
docker logs mwdb-feeder 2>&1 | grep -i error
```
**JSONL 报告**:
```
# 当前条目
tail -f /opt/mwdb-feeder/work/reports/mwdb-feeder.jsonl
# 今日上传
cat /opt/mwdb-feeder/work/reports/mwdb-feeder.jsonl | \
grep "$(date +%Y-%m-%d)" | \
jq -r 'select(.uploaded==true) | .sha256' | wc -l
```
**状态数据库**:
```
# 已处理 Sample 总数
sqlite3 /opt/mwdb-feeder/work/state.db "SELECT COUNT(*) FROM processed;"
# 最后 10 个 Sample
sqlite3 /opt/mwdb-feeder/work/state.db \
"SELECT sha256, source, processed_at FROM processed ORDER BY processed_at DESC LIMIT 10;"
# 按来源统计
sqlite3 /opt/mwdb-feeder/work/state.db \
"SELECT source, COUNT(*) as count FROM processed GROUP BY source;"
```
### 5.5 Feed 统计
```
# 按来源上传(今日)
for source in urlhaus hybrid_analysis anyrun; do
count=$(cat /opt/mwdb-feeder/work/reports/mwdb-feeder.jsonl | \
grep "$(date +%Y-%m-%d)" | \
jq -r "select(.source==\"$source\" and .uploaded==true) | .sha256" | wc -l)
echo "$source: $count"
done
```
## 6. 维护流程
### 6.1 状态数据库维护
```
# 检查数据库大小
ls -lh /opt/mwdb-feeder/work/state.db
# 清理旧条目(> 90 天)
sqlite3 /opt/mwdb-feeder/work/state.db "
DELETE FROM processed
WHERE processed_at < datetime('now', '-90 days');
VACUUM;
"
```
### 6.2 日志轮转
```
# 压缩 JSONL-Logs(早于 7 天)
find /opt/mwdb-feeder/work/reports -name "*.jsonl" -mtime +7 -exec gzip {} \;
# 删除旧的压缩 Logs(早于 180 天)
find /opt/mwdb-feeder/work/reports -name "*.jsonl.gz" -mtime +180 -delete
```
### 6.3 API-Key 轮换
```
# 1. 在 .env 中输入新 Key
nano /opt/mwdb-feeder/.env
# 2. 重启 Container
docker compose restart mwdb-feeder
# 3. 检查 Logs 中的 Auth 错误
docker logs --tail 50 mwdb-feeder | grep -i "auth\|error\|401"
```
### 6.4 更新 MWDB API-Key
如果 MWDB API-Key 过期:
```
# 1. 在 MWDB UI 中生成新 Key
# https://:8443/ → Profile → API Keys
# 2. 输入到 .env 中
nano /opt/mwdb-feeder/.env
# MWDB_API_KEY=
# 3. 重启 Container
docker compose restart mwdb-feeder
```
## 7. 事件响应程序
### 7.1 Feed 故障
**症状**:没有来自某一来源的新样本,日志中出现错误
**诊断**:
```
# 测试 URLhaus API
curl -s -H "Auth-Key: $URLHAUS_AUTH_KEY" \
"https://urlhaus-api.abuse.ch/v1/payloads/recent/?limit=1" | jq .query_status
# 测试 Hybrid Analysis API
curl -s -H "api-key: $HYBRID_ANALYSIS_API_KEY" \
-H "User-Agent: Falcon Sandbox" \
"https://www.hybrid-analysis.com/api/v2/feed/latest" | head -100
# 检查 Container-Logs
docker logs --tail 100 mwdb-feeder | grep -i error
```
**措施**:
1. 检查 API 可达性(防火墙,DNS)
2. 验证 API-Key 有效性
3. 检查速率限制(特别是 Hybrid Analysis)
4. 如果故障持续:暂时禁用该来源
### 7.2 MWDB 上传错误
**症状**:下载成功,但没有 MWDB 上传
```
# 测试 MWDB 可达性
curl -s -H "Authorization: Bearer $MWDB_API_KEY" \
"http://mwdb:8080/api/ping"
# 检查 MWDB-Container
cd /opt/mwdb-core && docker compose ps
```
**措施**:
1. 检查 MWDB 服务
2. 验证 API-Key 有效性
3. 检查容器之间的网络连接
### 7.3 存储空间问题
```
# 内存消耗
du -sh /opt/mwdb-feeder/work/*
# 优化 State-DB
sqlite3 /opt/mwdb-feeder/work/state.db "VACUUM;"
```
## 8. 故障排除
### 8.1 常见错误
| 错误 | 原因 | 解决方案 |
|--------|---------|--------|
| `MWDB client not available` | API-Key 无效 | 在 MWDB UI 中检查/更新 Key |
| `Invalid ZIP and hash mismatch` | URLhaus 下载损坏 | 正常现象,将被跳过 |
| `Hybrid Analysis download failed: 400` | 样本无法下载 | 正常现象(API 限制) |
| `ANY.RUN: API key invalid` | 无/错误的 API-Key | 购买付费计划 |
| `too large (X bytes)` | 样本超过 MAX_MB | 预期行为 |
### 8.2 调试模式
```
# 使用 Shell 启动 Container
docker compose run --rm mwdb-feeder /bin/sh
# 手动 Python 测试
python3 /app/feeder.py
```
### 8.3 状态重置
如果状态数据库损坏:
```
# 停止 Container
docker compose down
# 备份并删除 State-DB
mv /opt/mwdb-feeder/work/state.db /opt/mwdb-feeder/work/state.db.backup
rm -f /opt/mwdb-feeder/work/state.db-journal
# 重启 Container(创建新 DB)
docker compose up -d
```
**注意**:状态重置后,已存在于 MWDB 中的样本将被再次处理,但 mwdblib 会自动识别重复项。
## 9. 安全注意事项
### 9.1 网络隔离
- 容器仅与 MWDB 网络通信
- 外部连接仅指向已记录的 API(HTTPS)
### 9.2 凭据管理
| 凭据 | 存储位置 | 保护 |
|------------|-------------|--------|
| MWDB_API_KEY | .env | 文件权限 640 |
| URLHAUS_AUTH_KEY | .env | 文件权限 640 |
| HYBRID_ANALYSIS_API_KEY | .env | 文件权限 640 |
| ANYRUN_API_KEY | .env | 文件权限 640 |
```
# 设置权限
chmod 640 /opt/mwdb-feeder/.env
```
### 9.3 TLS 配置
| 连接 | TLS | 备注 |
|------------|-----|-----------|
| URLhaus API | HTTPS (TLS 1.2+) | abuse.ch |
| ThreatFox API | HTTPS (TLS 1.2+) | abuse.ch |
| Hybrid Analysis | HTTPS (TLS 1.2+) | Falcon Sandbox |
| MWDB API | HTTP | Docker 内部网络 |
### 9.4 Hash 校验
所有下载在上传前都会进行 SHA256 校验:
- URLhaus:在 ZIP 解压后
- Hybrid Analysis:在可选的 GZIP 解压后
- ANY.RUN:在下载后直接进行
## 10. 附录
### 10.1 配置文件参考
| 文件 | 用途 |
|-------|-------|
| `/opt/mwdb-feeder/.env` | 环境变量 + API-Keys |
| `/opt/mwdb-feeder/docker-compose.yml` | 容器编排 |
| `/opt/mwdb-feeder/Dockerfile` | 镜像定义 |
| `/opt/mwdb-feeder/app/feeder.py` | 主脚本 |
| `/opt/mwdb-feeder/work/state.db` | SQLite 状态数据库 |
### 10.2 命令参考
```
# Container 管理
docker compose up -d # Starten
docker compose down # Stoppen
docker compose restart mwdb-feeder # Neustart
docker compose logs -f mwdb-feeder # Logs
docker compose build --no-cache # Rebuild
# 监控
docker ps | grep mwdb-feeder # Status
tail -f /opt/mwdb-feeder/work/reports/mwdb-feeder.jsonl # Reports
# State-DB
sqlite3 /opt/mwdb-feeder/work/state.db "SELECT COUNT(*) FROM processed;"
sqlite3 /opt/mwdb-feeder/work/state.db "SELECT source, COUNT(*) FROM processed GROUP BY source;"
```
### 10.3 Feed 来源概览
| Feed | 提供商 | 类型 | 费用 | 注册 |
|------|----------|-----|--------|---------------|
| URLhaus | abuse.ch | 恶意软件 Payloads | 免费 | https://auth.abuse.ch/ |
| ThreatFox | abuse.ch | IOCs(基于 Hash) | 免费 | https://auth.abuse.ch/ |
| Hybrid Analysis | CrowdStrike | 沙箱样本 | 免费(有速率限制) | https://www.hy-analysis.com/signup |
| ANY.RUN | ANY.RUN Ltd | 沙箱样本 | 付费 | https://app.any.run/ |
### 10.4 与 MWDB + Karton 的交互
```
mwdb-feeder
│
▼
┌─────────────────┐
│ MWDB │ ← Sample-Repository
│ (Port 8081) │
└────────┬────────┘
│ Karton Task
▼
┌─────────────────┐
│ karton-system │ ← Task-Dispatcher
└────────┬────────┘
│
┌────┴────┬────────────┐
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌──────────────┐
│class- │ │archive-│ │cape-submitter│
│ifier │ │extract │ │ → CAPE │
└────────┘ └────────┘ └──────────────┘
```
### 10.5 凭据参考
所有访问凭据均记录在:
- `/root/.claude/mwdb-credentials.md`
### 10.6 修订历史
| 版本 | 日期 | 作者 | 更改 |
|---------|-------|-------|----------|
| 1.0 | 2026-01-22 | IT 安全 | 初始创建 |
**文档结束**
*本文档分类为内部机密,仅供机构内部使用。*
Mermaid 图(点击展开)
``` flowchart TB subgraph FEEDS["EXTERNE THREAT FEEDS"] URLhaus["URLhausabuse.ch
Poll: 5 min"] ThreatFox["ThreatFox
abuse.ch
Poll: 5 min"] Hybrid["Hybrid Analysis
Falcon Sandbox
Poll: 15 min"] AnyRun["ANY.RUN
API-Key nötig
Deaktiviert"] end subgraph CONTAINER["Docker: mwdb-feeder"] Poll["1. Poll Feed APIs"] Dedupe["2. Deduplizierung
SQLite"] Download["3. Download
+ Hash-Verify"] Upload["4. Upload + Tags
via mwdblib"] Poll --> Dedupe --> Download --> Upload end subgraph STORAGE["Persistente Daten"] StateDB["state.db"] Reports["reports/mwdb-feeder.jsonl"] end FEEDS --> CONTAINER CONTAINER --> MWDB["MWDB-Core
http://mwdb:8080/api"] CONTAINER -.-> STORAGE subgraph KARTON["Karton Pipeline"] Classifier["classifier"] Archive["archive-extractor"] Config["config-extractor"] CapeSubmit["cape-submitter"] Classifier --> Archive --> Config --> CapeSubmit end MWDB --> KARTON CapeSubmit --> CAPE["CAPE Sandbox"] style FEEDS fill:#667eea,color:#fff style CONTAINER fill:#11998e,color:#fff style MWDB fill:#f093fb,color:#fff style KARTON fill:#4facfe,color:#fff style CAPE fill:#ff0844,color:#fff ```
ASCII 图(旧版)
``` ┌────────────────────────────────────────────────────────────────────────┐ │ MWDB-Feeder Pipeline (v1.0.0) │ ├────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ Externe Threat Feeds │ │ │ ├─────────────┬─────────────┬─────────────┬───────────────────┤ │ │ │ URLhaus │ ThreatFox │ Hybrid │ ANY.RUN │ │ │ │ (abuse.ch) │ (abuse.ch) │ Analysis │ (API-Key) │ │ │ │ Poll: 5min │ Poll: 5min │ Poll: 15min│ Poll: 10min │ │ │ └─────────────┴─────────────┴─────────────┴───────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ Docker Container: mwdb-feeder │ │ │ │ /opt/mwdb-feeder/app/feeder.py │ │ │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 1. Poll Feed APIs (parallel) │ │ │ │ 2. Check State DB (SQLite Deduplizierung) │ │ │ │ 3. Size Check (max 50 MB) │ │ │ │ 4. Download Sample + Hash Verify │ │ │ │ 5. Upload to MWDB via mwdblib │ │ │ │ 6. Add Tags (source, malware family, verdict) │ │ │ │ 7. Update State + JSONL Log │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ MWDB-Core │ │ │ │ http://mwdb:8080/api │ │ │ │ (Docker-Netzwerk) │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ Karton Pipeline │ │ │ │ classifier → archive-extractor → config-extractor │ │ │ │ ↓ │ │ │ │ cape-submitter → CAPE Sandbox │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ Persistente Daten │ │ │ │ /opt/mwdb-feeder/work/ │ │ │ │ ├── state.db (SQLite State) │ │ │ │ └── reports/ (JSONL Logs) │ │ │ │ └── mwdb-feeder.jsonl │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ └────────────────────────────────────────────────────────────────────────┘ ```标签:DAST, PB级数据处理, 入侵检测系统, 威胁情报, 安全数据湖, 安全运维, 开发者工具, 恶意软件分析, 自动化采集, 请求拦截, 逆向工具