Zannu-Opeyemi/Threat-Intelligence-Honeypot-Report-system
GitHub: Zannu-Opeyemi/Threat-Intelligence-Honeypot-Report-system
该系统是一个基于 Python 的离线威胁情报流水线,可将授权的 Cowrie 蜜罐日志自动解析、规范化并转化为交互式分析仪表板和标准化 IOC 报告。
Stars: 0 | Forks: 0
# 威胁情报蜜罐报告系统
一个仅用于实验室防御的 Python 系统,可将授权的 Cowrie 蜜罐 JSON 日志转换为规范化事件、源 IP 指标、分析就绪报告、可移植导出文件以及交互式 Streamlit 仪表板。
## 项目概述
威胁情报蜜罐报告系统提供了一个可重复的本地工作流程,用于:
1. 解析 Cowrie JSON 或 JSON Lines 日志
2. 规范化选定的事件字段
3. 将事件存储在 SQLite 中
4. 提取源 IP 地址作为妥协指标 (IOC)
5. 跟踪首次出现、最后出现和事件频率
6. 统计尝试的用户名和观察到的命令
7. 添加明确标记的占位符富化信息
8. 生成每日 Markdown 情报报告
9. 将 IOC 导出为 CSV、JSON 或类 STIX JSON 格式
10. 通过可过滤的 Streamlit 仪表板探索事件
内置的示例包含合成记录和 [RFC 5737](https://www.rfc-editor.org/rfc/rfc5737) 仅用于文档说明的 IP 地址。密码字段已被故意省略。
## 解决的问题
Cowrie 日志非常有用,但在以下情况下可能难以一致地进行审查:
- 分布在多个 JSON Lines 文件中
- 混合了不同的事件类型和会话
- 缺少简明的指标摘要
- 在没有一致的首次出现和最后出现跟踪的情况下进行审查
- 手动复制到报告中
- 在没有明确限制或归属警告的情况下呈现
本项目将原始实验室遥测数据转化为一个小型、可审计的情报流水线。它支持可重复的分析,同时保留了以下重要区别:
## 功能
- Cowrie JSON Lines 和 JSON 数组解析
- 源 IP 和用户名上下文的会话感知规范化
- UTC 时间戳规范化
- 带有索引事件和 IOC 表的 SQLite schema
- 原始重复事件保护
- 源 IP IOC 提取
- 首次出现和最后出现跟踪
- 每个 IOC 的事件频率
- 用户名尝试频率
- 命令观察频率
- 离线占位符富化
- 每日 Markdown 报告生成
- CSV IOC 导出
- 结构化 JSON IOC 导出
- 受 STIX 2.1 启发的教学性导出
- Streamlit 仪表板
- 日期、IP、用户名和命令过滤器
- 过滤后的事件 CSV 下载
- 合成示例数据集
- 针对解析器、数据库、提取器、导出器和报告的单元测试
- 法律范围、威胁模型、架构、设置和作品集文档
## 架构
```
flowchart LR
Logs["Authorized Cowrie JSON/JSONL
Synthetic sample by default"] Parser["Parser and normalizer
app/parser.py"] DB[("SQLite
events + iocs")] Extractor["IOC extractor
first/last seen + count"] Enrichment["Offline placeholder enrichment
No network requests"] Report["Daily Markdown report"] Exports["CSV / JSON / STIX-like JSON"] Dashboard["Streamlit dashboard
Filtered analysis"] Logs --> Parser Parser --> DB DB --> Extractor Extractor --> DB DB --> Enrichment Enrichment --> DB DB --> Report DB --> Exports DB --> Dashboard ``` 详细设计:[docs/architecture.md](docs/architecture.md) ## 数据流 ### 1. 获取 `app/parser.py` 从 JSON Lines 或 JSON 数组中读取 Cowrie 事件。它会拒绝格式错误的 JSON 和无效的时间戳,并给出明确的错误提示。 ### 2. 规范化 每个事件转换为: | 字段 | 来源 | |---|---| | `timestamp` | Cowrie `timestamp` 或 `time`,规范化为 UTC | | `event_id` | Cowrie `eventid` 或 `event_id` | | `source_ip` | `src_ip`、`source_ip` 或已知会话上下文 | | `username` | 事件字段或已知会话上下文 | | `command` | 命令事件的 `input`/`command` | | `session_id` | `session` 或 `session_id` | | `raw_event` | 规范化且经过安全脱敏的 JSON 表示 | 系统不会将密码值提取到其规范化 schema 中。在写入 `raw_event` 之前,它会对常见的机密字段进行脱敏,并替换可能会回显凭据的登录事件消息。 ### 3. 存储 SQLite 存储规范化的事件。`raw_event` 上的唯一索引可防止精确的重复摄取。 ### 4. 提取指标 有效的 IPv4 和 IPv6 源地址被聚合到 `iocs` 表中,包含: - 指标类型和值 - 首次观察时间戳 - 最后观察时间戳 - 事件计数 - 可选的富化字段 ### 5. 分析与呈现 同一个数据库支持: - 每日 Markdown 报告生成 - CSV、JSON 和类 STIX 导出 - 交互式仪表板过滤 ## 数据库 schema ### 事件 | 列名 | 用途 | |---|---| | `id` | 本地整型主键 | | `timestamp` | 规范化的 UTC 观察时间 | | `event_id` | Cowrie 事件标识符 | | `source_ip` | 观察到的源 IP(有效且可用时) | | `username` | 尝试或与会话关联的用户名 | | `command` | Cowrie 观察到的命令字符串 | | `session_id` | Cowrie 会话标识符 | | `raw_event` | 规范化的事件 JSON,常见的机密字段和登录消息已脱敏 | ### iocs | 列名 | 用途 | |---|---| | `id` | 本地整型主键 | | `indicator_type` | 当前为 `ip` | | `indicator_value` | IPv4 或 IPv6 地址 | | `first_seen` | 最早的本地观察记录 | | `last_seen` | 最新的本地观察记录 | | `event_count` | 本地存储的事件数 | | `country` | 可选的富化值 | | `asn` | 可选的富化值 | | `abuse_score` | 可选的富化值 | | `notes` | 分析师或富化说明 | ## 项目结构 ``` threat-intelligence-honeypot-report-system/ ├── app/ │ ├── __init__.py │ ├── config.py │ ├── parser.py │ ├── database.py │ ├── models.py │ ├── ioc_extractor.py │ ├── enrichment.py │ ├── exporter.py │ └── report_generator.py ├── dashboard/ │ └── streamlit_app.py ├── sample_logs/ │ └── cowrie_sample.json ├── data/ ├── reports/ ├── exports/ ├── tests/ │ ├── test_parser.py │ ├── test_ioc_extractor.py │ ├── test_database.py │ ├── test_exporter.py │ └── test_report_generator.py ├── docs/ │ ├── architecture.md │ ├── legal-scope.md │ ├── threat-model.md │ ├── setup-guide.md │ └── portfolio-writeup.md ├── README.md ├── requirements.txt ├── .env.example ├── .streamlit/ │ └── config.toml ├── main.py ├── AGENTS.md └── .gitignore ``` ## 安装 ### 要求 - Python 3.11 或更高版本 - Git - Windows、Linux 或 macOS - 约 500 MB 可用空间(用于本地虚拟环境) ### 克隆 ``` git clone https://github.com/YOUR-USERNAME/threat-intelligence-honeypot-report-system.git cd threat-intelligence-honeypot-report-system ``` ### 创建虚拟环境 Windows PowerShell: ``` python -m venv .venv .\.venv\Scripts\Activate.ps1 python -m pip install --upgrade pip python -m pip install -r requirements.txt ``` Linux 或 macOS: ``` python3 -m venv .venv source .venv/bin/activate python -m pip install --upgrade pip python -m pip install -r requirements.txt ``` 如果 PowerShell 阻止激活,你可以直接调用该环境: ``` .\.venv\Scripts\python.exe main.py --help ``` 详见 [docs/setup-guide.md](docs/setup-guide.md) 获取详细的安装和故障排除说明。 ## 用法 ### 最快演示 运行完整的示例流水线: ``` python main.py demo ``` 此操作将: - 解析合成的 Cowrie 示例 - 创建 `data/honeypot.db` - 提取源 IP IOC - 应用离线占位符富化 - 生成 `reports/daily-threat-report.md` - 导出 `exports/iocs.csv` - 导出 `exports/iocs.json` - 导出 `exports/iocs_stix.json` 重复运行此命令是安全的:完全重复的示例事件将被忽略。 ## CLI 示例 ### 解析 Cowrie 日志 ``` python main.py parse --input sample_logs/cowrie_sample.json --db data/honeypot.db ``` ### 提取源 IP IOC ``` python main.py extract-iocs --db data/honeypot.db ``` ### 添加离线占位符富化 ``` python main.py enrich-iocs --db data/honeypot.db --provider placeholder ``` 此命令不执行任何外部查询。它将国家和 ASN 值标记为占位符,并保留滥用分数不予评估。 ### 生成每日报告 ``` python main.py report --db data/honeypot.db --output reports/daily-threat-report.md ``` 默认情况下,报告使用数据库中最新事件的日期。选择特定的 UTC 日期: ``` python main.py report --db data/honeypot.db --date 2026-06-18 --output reports/2026-06-18-report.md ``` ### 导出 CSV ``` python main.py export-iocs --db data/honeypot.db --format csv --output exports/iocs.csv ``` ### 导出 JSON ``` python main.py export-iocs --db data/honeypot.db --format json --output exports/iocs.json ``` ### 导出类 STIX JSON ``` python main.py export-iocs --db data/honeypot.db --format stix --output exports/iocs_stix.json ``` 类 STIX 输出仅用于教学目的,并已被明确标记。在生产环境共享之前,请使用官方的 STIX 工具对其进行验证。 ## 仪表板指南 从仓库根目录启动仪表板: ``` streamlit run dashboard/streamlit_app.py ``` 或者在 Windows 上不激活环境直接运行: ``` .\.venv\Scripts\streamlit.exe run dashboard\streamlit_app.py ``` 仪表板提供: - 过滤后的总事件数 - 唯一源 IP 数量 - 用户名尝试次数 - 命令数量 - 事件时间轴 - 热门源 IP - 尝试最多的用户名 - 观察最多的命令 - 事件类型计数 - IOC 表 - 规范化事件表 - 过滤后的 CSV 下载 侧边栏过滤器: - 开始和结束日期 - 源 IP 子字符串 - 用户名子字符串 - 命令子字符串 - 明确的 **应用过滤器** 操作 仪表板读取本地 SQLite 文件,不发出任何富化或扫描请求。包含的 `.streamlit/config.toml` 默认将服务绑定到 `127.0.0.1`,因此它不会在外部接口上公开。 ## 示例报告 生成的 Markdown 报告包含: ``` Daily Honeypot Threat Intelligence Report ├── Report metadata ├── Executive summary ├── Key metrics ├── Top source IPs ├── Top usernames attempted ├── Top commands observed ├── IOC table ├── Analyst notes ├── Recommendations └── Limitations ``` 执行摘要示例: ## 测试 运行所有测试: ``` python -m pytest -q ``` 预期结果: ``` 9 passed ``` 测试覆盖率包括: - JSON Lines 和 JSON 数组解析 - 会话上下文传播 - 无效 JSON 处理 - 凭据和登录消息脱敏 - SQLite schema 创建 - 重复事件保护 - IOC 首次/最后出现聚合 - CSV、JSON 和类 STIX 导出 - 所需的报告部分和指标 ## 截图占位符 为作品集截取这些图片: | 截图 | 应证明的内容 | |---|---| | `01-cli-demo.png` | 使用合成数据的完整流水线成功运行 | | `02-sqlite-schema.png` | `events` 和 `iocs` 表存在 | | `03-dashboard-overview.png` | 指标和时间轴正常渲染 | | `04-dashboard-filters.png` | 日期、IP、用户名和命令过滤有效 | | `05-ioc-table.png` | 首次出现、最后出现、频率和富化字段 | | `06-markdown-report.png` | 专业的每日报告结构 | | `07-csv-json-exports.png` | 可移植的 IOC 输出 | | `08-stix-like-export.png` | 结构化的指标包和免责声明 | | `09-tests-passing.png` | 自动化测试通过 | | `10-project-architecture.png` | 系统数据流和安全边界 | 请脱敏本地用户名、文件系统路径、API key、真实 IP 地址以及无关的浏览器内容。 ## 法律和道德范围 允许的用途: - 合成示例日志 - 来自你拥有的蜜罐的日志 - 你获得明确授权进行分析的日志 - 在隔离实验室进行的防御性情报开发 - 经过脱敏处理的教育和作品集演示 禁止的用途: - 公共目标扫描 - 未经授权的收集或监控 - 凭据窃取或密码收集功能 - 恶意软件、漏洞利用、隐蔽、持久化或规避 - 执行从蜜罐遥测数据中复制的命令 - 自动化反击或“入侵反击” - 仅基于 IP 地址的归属声明 - 未经核实和变更控制的操作封禁 在使用真实遥测数据之前,请阅读 [docs/legal-scope.md](docs/legal-scope.md)。 ## 威胁模型 本项目将以下内容视为敏感信息: - 原始蜜罐日志 - 源 IP 指标 - 时间戳和会话标识符 - 由欺骗系统记录的命令 - 分析师笔记 - 用于未来任何富化集成的 API key - 报告和导出文件 主要风险包括不受信任的日志内容、报告注入、机密泄露、数据库篡改、错误归属以及意外共享敏感遥测数据。 控制措施包括: - 不执行日志内容 - 参数化的 SQLite 过滤器 - 输出转义 - 精确的重复保护 - 默认使用占位符富化 - 排除 `.env` 和数据库 - 明确的情报限制 - 单元测试 完整分析:[docs/threat-model.md](docs/threat-model.md) ## 限制 - 该系统不部署或配置 Cowrie。 - 它不会持续摄取日志。 - 它将所有规范化数据存储在单个本地 SQLite 数据库中。 - 它不实现用户身份验证或基于角色的访问控制。 - 它不提供取证获取、哈希或证据链管理。 - 占位符富化不提供任何信誉或地理位置判定。 - 类 STIX 输出不保证能通过生产级别的 STIX 验证。 - 观察到源 IP 并不能证明归属。 - 命令频率并不能证明在欺骗环境之外成功执行。 - 蜜罐的视角是刻意狭窄的,可能会因部署位置和配置而产生偏差。 ## 未来改进 - 添加带有身份验证的只读 REST API。 - 添加定时的摄取和报告生成。 - 添加日志文件哈希和来源元数据。 - 添加 schema 迁移。 - 添加经过审查的可选富化适配器,并带有速率限制和缓存。 - 通过维护的库添加官方的 STIX 2.1 验证。 - 添加向批准的内部服务器进行 TAXII 导出的功能。 - 添加案例和分析师笔记工作流。 - 添加置信度、严重性和来源可靠性评分。 - 在人工验证后添加 ATT&CK 技术映射。 - 添加带有非 root 执行的 Docker 打包。 - 为测试、代码检查和审查添加 CI。 - 在任何共享部署之前添加仪表板身份验证。 ## 作品集说明 本项目展示了: - Python 软件工程 - 结构化日志解析 - 数据规范化 - SQLite schema 设计 - 威胁指标生命周期跟踪 - 情报报告撰写 - 导出格式设计 - Streamlit 仪表板开发 - 单元测试 - 威胁建模 - 法律和道德范围控制 - 观察与归属之间的明确区分 使用 [docs/portfolio-writeup.md](docs/portfolio-writeup.md) 作为可展示的案例研究。 ## 文档 - [架构](docs/architecture.md) - [法律和道德范围](docs/legal-scope.md) - [威胁模型](docs/threat-model.md) - [设置指南](docs/setup-guide.md) - [作品集说明](docs/portfolio-writeup.md) ## 免责声明 本仓库仅用于合法的防御性教育。它不是法律建议、取证证据平台或归属系统。用户需对适用于其环境的授权、隐私、保留、披露和证据要求负责。
Synthetic sample by default"] Parser["Parser and normalizer
app/parser.py"] DB[("SQLite
events + iocs")] Extractor["IOC extractor
first/last seen + count"] Enrichment["Offline placeholder enrichment
No network requests"] Report["Daily Markdown report"] Exports["CSV / JSON / STIX-like JSON"] Dashboard["Streamlit dashboard
Filtered analysis"] Logs --> Parser Parser --> DB DB --> Extractor Extractor --> DB DB --> Enrichment Enrichment --> DB DB --> Report DB --> Exports DB --> Dashboard ``` 详细设计:[docs/architecture.md](docs/architecture.md) ## 数据流 ### 1. 获取 `app/parser.py` 从 JSON Lines 或 JSON 数组中读取 Cowrie 事件。它会拒绝格式错误的 JSON 和无效的时间戳,并给出明确的错误提示。 ### 2. 规范化 每个事件转换为: | 字段 | 来源 | |---|---| | `timestamp` | Cowrie `timestamp` 或 `time`,规范化为 UTC | | `event_id` | Cowrie `eventid` 或 `event_id` | | `source_ip` | `src_ip`、`source_ip` 或已知会话上下文 | | `username` | 事件字段或已知会话上下文 | | `command` | 命令事件的 `input`/`command` | | `session_id` | `session` 或 `session_id` | | `raw_event` | 规范化且经过安全脱敏的 JSON 表示 | 系统不会将密码值提取到其规范化 schema 中。在写入 `raw_event` 之前,它会对常见的机密字段进行脱敏,并替换可能会回显凭据的登录事件消息。 ### 3. 存储 SQLite 存储规范化的事件。`raw_event` 上的唯一索引可防止精确的重复摄取。 ### 4. 提取指标 有效的 IPv4 和 IPv6 源地址被聚合到 `iocs` 表中,包含: - 指标类型和值 - 首次观察时间戳 - 最后观察时间戳 - 事件计数 - 可选的富化字段 ### 5. 分析与呈现 同一个数据库支持: - 每日 Markdown 报告生成 - CSV、JSON 和类 STIX 导出 - 交互式仪表板过滤 ## 数据库 schema ### 事件 | 列名 | 用途 | |---|---| | `id` | 本地整型主键 | | `timestamp` | 规范化的 UTC 观察时间 | | `event_id` | Cowrie 事件标识符 | | `source_ip` | 观察到的源 IP(有效且可用时) | | `username` | 尝试或与会话关联的用户名 | | `command` | Cowrie 观察到的命令字符串 | | `session_id` | Cowrie 会话标识符 | | `raw_event` | 规范化的事件 JSON,常见的机密字段和登录消息已脱敏 | ### iocs | 列名 | 用途 | |---|---| | `id` | 本地整型主键 | | `indicator_type` | 当前为 `ip` | | `indicator_value` | IPv4 或 IPv6 地址 | | `first_seen` | 最早的本地观察记录 | | `last_seen` | 最新的本地观察记录 | | `event_count` | 本地存储的事件数 | | `country` | 可选的富化值 | | `asn` | 可选的富化值 | | `abuse_score` | 可选的富化值 | | `notes` | 分析师或富化说明 | ## 项目结构 ``` threat-intelligence-honeypot-report-system/ ├── app/ │ ├── __init__.py │ ├── config.py │ ├── parser.py │ ├── database.py │ ├── models.py │ ├── ioc_extractor.py │ ├── enrichment.py │ ├── exporter.py │ └── report_generator.py ├── dashboard/ │ └── streamlit_app.py ├── sample_logs/ │ └── cowrie_sample.json ├── data/ ├── reports/ ├── exports/ ├── tests/ │ ├── test_parser.py │ ├── test_ioc_extractor.py │ ├── test_database.py │ ├── test_exporter.py │ └── test_report_generator.py ├── docs/ │ ├── architecture.md │ ├── legal-scope.md │ ├── threat-model.md │ ├── setup-guide.md │ └── portfolio-writeup.md ├── README.md ├── requirements.txt ├── .env.example ├── .streamlit/ │ └── config.toml ├── main.py ├── AGENTS.md └── .gitignore ``` ## 安装 ### 要求 - Python 3.11 或更高版本 - Git - Windows、Linux 或 macOS - 约 500 MB 可用空间(用于本地虚拟环境) ### 克隆 ``` git clone https://github.com/YOUR-USERNAME/threat-intelligence-honeypot-report-system.git cd threat-intelligence-honeypot-report-system ``` ### 创建虚拟环境 Windows PowerShell: ``` python -m venv .venv .\.venv\Scripts\Activate.ps1 python -m pip install --upgrade pip python -m pip install -r requirements.txt ``` Linux 或 macOS: ``` python3 -m venv .venv source .venv/bin/activate python -m pip install --upgrade pip python -m pip install -r requirements.txt ``` 如果 PowerShell 阻止激活,你可以直接调用该环境: ``` .\.venv\Scripts\python.exe main.py --help ``` 详见 [docs/setup-guide.md](docs/setup-guide.md) 获取详细的安装和故障排除说明。 ## 用法 ### 最快演示 运行完整的示例流水线: ``` python main.py demo ``` 此操作将: - 解析合成的 Cowrie 示例 - 创建 `data/honeypot.db` - 提取源 IP IOC - 应用离线占位符富化 - 生成 `reports/daily-threat-report.md` - 导出 `exports/iocs.csv` - 导出 `exports/iocs.json` - 导出 `exports/iocs_stix.json` 重复运行此命令是安全的:完全重复的示例事件将被忽略。 ## CLI 示例 ### 解析 Cowrie 日志 ``` python main.py parse --input sample_logs/cowrie_sample.json --db data/honeypot.db ``` ### 提取源 IP IOC ``` python main.py extract-iocs --db data/honeypot.db ``` ### 添加离线占位符富化 ``` python main.py enrich-iocs --db data/honeypot.db --provider placeholder ``` 此命令不执行任何外部查询。它将国家和 ASN 值标记为占位符,并保留滥用分数不予评估。 ### 生成每日报告 ``` python main.py report --db data/honeypot.db --output reports/daily-threat-report.md ``` 默认情况下,报告使用数据库中最新事件的日期。选择特定的 UTC 日期: ``` python main.py report --db data/honeypot.db --date 2026-06-18 --output reports/2026-06-18-report.md ``` ### 导出 CSV ``` python main.py export-iocs --db data/honeypot.db --format csv --output exports/iocs.csv ``` ### 导出 JSON ``` python main.py export-iocs --db data/honeypot.db --format json --output exports/iocs.json ``` ### 导出类 STIX JSON ``` python main.py export-iocs --db data/honeypot.db --format stix --output exports/iocs_stix.json ``` 类 STIX 输出仅用于教学目的,并已被明确标记。在生产环境共享之前,请使用官方的 STIX 工具对其进行验证。 ## 仪表板指南 从仓库根目录启动仪表板: ``` streamlit run dashboard/streamlit_app.py ``` 或者在 Windows 上不激活环境直接运行: ``` .\.venv\Scripts\streamlit.exe run dashboard\streamlit_app.py ``` 仪表板提供: - 过滤后的总事件数 - 唯一源 IP 数量 - 用户名尝试次数 - 命令数量 - 事件时间轴 - 热门源 IP - 尝试最多的用户名 - 观察最多的命令 - 事件类型计数 - IOC 表 - 规范化事件表 - 过滤后的 CSV 下载 侧边栏过滤器: - 开始和结束日期 - 源 IP 子字符串 - 用户名子字符串 - 命令子字符串 - 明确的 **应用过滤器** 操作 仪表板读取本地 SQLite 文件,不发出任何富化或扫描请求。包含的 `.streamlit/config.toml` 默认将服务绑定到 `127.0.0.1`,因此它不会在外部接口上公开。 ## 示例报告 生成的 Markdown 报告包含: ``` Daily Honeypot Threat Intelligence Report ├── Report metadata ├── Executive summary ├── Key metrics ├── Top source IPs ├── Top usernames attempted ├── Top commands observed ├── IOC table ├── Analyst notes ├── Recommendations └── Limitations ``` 执行摘要示例: ## 测试 运行所有测试: ``` python -m pytest -q ``` 预期结果: ``` 9 passed ``` 测试覆盖率包括: - JSON Lines 和 JSON 数组解析 - 会话上下文传播 - 无效 JSON 处理 - 凭据和登录消息脱敏 - SQLite schema 创建 - 重复事件保护 - IOC 首次/最后出现聚合 - CSV、JSON 和类 STIX 导出 - 所需的报告部分和指标 ## 截图占位符 为作品集截取这些图片: | 截图 | 应证明的内容 | |---|---| | `01-cli-demo.png` | 使用合成数据的完整流水线成功运行 | | `02-sqlite-schema.png` | `events` 和 `iocs` 表存在 | | `03-dashboard-overview.png` | 指标和时间轴正常渲染 | | `04-dashboard-filters.png` | 日期、IP、用户名和命令过滤有效 | | `05-ioc-table.png` | 首次出现、最后出现、频率和富化字段 | | `06-markdown-report.png` | 专业的每日报告结构 | | `07-csv-json-exports.png` | 可移植的 IOC 输出 | | `08-stix-like-export.png` | 结构化的指标包和免责声明 | | `09-tests-passing.png` | 自动化测试通过 | | `10-project-architecture.png` | 系统数据流和安全边界 | 请脱敏本地用户名、文件系统路径、API key、真实 IP 地址以及无关的浏览器内容。 ## 法律和道德范围 允许的用途: - 合成示例日志 - 来自你拥有的蜜罐的日志 - 你获得明确授权进行分析的日志 - 在隔离实验室进行的防御性情报开发 - 经过脱敏处理的教育和作品集演示 禁止的用途: - 公共目标扫描 - 未经授权的收集或监控 - 凭据窃取或密码收集功能 - 恶意软件、漏洞利用、隐蔽、持久化或规避 - 执行从蜜罐遥测数据中复制的命令 - 自动化反击或“入侵反击” - 仅基于 IP 地址的归属声明 - 未经核实和变更控制的操作封禁 在使用真实遥测数据之前,请阅读 [docs/legal-scope.md](docs/legal-scope.md)。 ## 威胁模型 本项目将以下内容视为敏感信息: - 原始蜜罐日志 - 源 IP 指标 - 时间戳和会话标识符 - 由欺骗系统记录的命令 - 分析师笔记 - 用于未来任何富化集成的 API key - 报告和导出文件 主要风险包括不受信任的日志内容、报告注入、机密泄露、数据库篡改、错误归属以及意外共享敏感遥测数据。 控制措施包括: - 不执行日志内容 - 参数化的 SQLite 过滤器 - 输出转义 - 精确的重复保护 - 默认使用占位符富化 - 排除 `.env` 和数据库 - 明确的情报限制 - 单元测试 完整分析:[docs/threat-model.md](docs/threat-model.md) ## 限制 - 该系统不部署或配置 Cowrie。 - 它不会持续摄取日志。 - 它将所有规范化数据存储在单个本地 SQLite 数据库中。 - 它不实现用户身份验证或基于角色的访问控制。 - 它不提供取证获取、哈希或证据链管理。 - 占位符富化不提供任何信誉或地理位置判定。 - 类 STIX 输出不保证能通过生产级别的 STIX 验证。 - 观察到源 IP 并不能证明归属。 - 命令频率并不能证明在欺骗环境之外成功执行。 - 蜜罐的视角是刻意狭窄的,可能会因部署位置和配置而产生偏差。 ## 未来改进 - 添加带有身份验证的只读 REST API。 - 添加定时的摄取和报告生成。 - 添加日志文件哈希和来源元数据。 - 添加 schema 迁移。 - 添加经过审查的可选富化适配器,并带有速率限制和缓存。 - 通过维护的库添加官方的 STIX 2.1 验证。 - 添加向批准的内部服务器进行 TAXII 导出的功能。 - 添加案例和分析师笔记工作流。 - 添加置信度、严重性和来源可靠性评分。 - 在人工验证后添加 ATT&CK 技术映射。 - 添加带有非 root 执行的 Docker 打包。 - 为测试、代码检查和审查添加 CI。 - 在任何共享部署之前添加仪表板身份验证。 ## 作品集说明 本项目展示了: - Python 软件工程 - 结构化日志解析 - 数据规范化 - SQLite schema 设计 - 威胁指标生命周期跟踪 - 情报报告撰写 - 导出格式设计 - Streamlit 仪表板开发 - 单元测试 - 威胁建模 - 法律和道德范围控制 - 观察与归属之间的明确区分 使用 [docs/portfolio-writeup.md](docs/portfolio-writeup.md) 作为可展示的案例研究。 ## 文档 - [架构](docs/architecture.md) - [法律和道德范围](docs/legal-scope.md) - [威胁模型](docs/threat-model.md) - [设置指南](docs/setup-guide.md) - [作品集说明](docs/portfolio-writeup.md) ## 免责声明 本仓库仅用于合法的防御性教育。它不是法律建议、取证证据平台或归属系统。用户需对适用于其环境的授权、隐私、保留、披露和证据要求负责。
标签:CISA项目, Kubernetes, Python, Streamlit, 威胁情报, 安全数据分析, 安全规则引擎, 开发者工具, 无后门, 蜜罐系统, 访问控制, 逆向工具