JMousqueton/IoCManager
GitHub: JMousqueton/IoCManager
一个面向SOC和威胁情报团队的Web版IOC管理平台,集成自动情报丰富化、多平台检测规则生成和STIX导出能力。
Stars: 14 | Forks: 1
# IOC Manager (作者:Julien Mousqueton)
[](https://www.python.org/downloads/)
[](https://flask.palletsprojects.com/)
[](https://opensource.org/licenses/MIT)
一个综合性的基于 Web 的平台,用于管理、丰富和分析失陷指标。专为安全运营中心、计算机应急响应小组 (CERT) 和威胁情报团队构建。
## 🎬 演示

## 🌟 功能特性
### 核心功能
- **IOC 管理**:支持多种指标类型的 IOC 创建、读取、更新和删除
- **支持的 IOC 类型**:IPv4、IPv6、Domain、URL、MD5、SHA1、SHA256、SHA512、SSDEEP、Email
- **风险分类**:严重程度级别(低、中、高、严重)及置信度评分
- **TLP 支持**:用于信息共享的交通灯协议 (WHITE, GREEN, AMBER, RED)
- **标签系统**:使用可自定义的彩色标签组织 IOC
- **IOC 过期**:基于 TTL 的自动过期及可配置策略
- **协作审查**:标记 IOC 以供审查,允许任何用户进行协作编辑
- **生命周期管理**:完整的审批工作流,包含草稿 → 审核中 → 活跃 → 已归档 状态
- **操作系统标记**:为基于哈希的 IOC(MD5、SHA1、SHA256、SHA512、SSDEEP)标记目标操作系统(Windows x64/x86、Linux ELF、macOS、Android APK 等)
- **IOC 共享**:为单个 IOC 生成匿名的可共享链接
### 威胁情报丰富化
- **VirusTotal 集成**:针对哈希和 URL 的自动恶意软件分析、信誉评分及 MITRE ATT&CK 映射
- **URLScan.io 集成**:URL 截图、判定结果及页面分析
- **GeoIP 查询**:IP 地址的地理位置数据 (MaxMind GeoLite2)
- **ASN 查询**:自治系统号和组织信息
- **域名丰富化**:WHOIS 数据、DNS 记录 (A, AAAA, MX, NS, TXT) 及 SSL/TLS 证书详情
- **URL 丰富化**:HTTP 头、服务器指纹识别、技术检测、安全头及 favicon 哈希
- **智能缓存**:基于服务的智能数据库缓存,以减少 API 调用
- **缓存刷新**:通过 **Refresh IOC Enrichment** 按钮强制刷新过时的丰富化数据
### 协作与分析
- **IOC 关系**:链接相关指标(resolves_to、contains、communicates_with、downloads_from、drops、connects_to 等)
- **关系图**:基于 Cytoscape.js 的 IOC 关系交互式多跳可视化(1-3 跳遍历、多种布局、支持深色模式)
- **评论与讨论**:支持 @提及 和 Markdown 的主题评论
- **YARA 规则生成**:为所有 IOC 类型自动生成 YARA 和 YARA-X 检测规则
- **狩猎查询**:自动生成可用于 **Splunk**、**KQL (Microsoft Sentinel / Defender XDR)**、**Sigma** 和 **CrowdStrike Falcon** 的威胁狩猎查询
- **STIX 2.1 导出**:导出 STIX 格式的 IOC 用于 TAXII 共享
- **审计日志**:完整的审计跟踪,记录所有操作并追踪用户
- **变更追踪**:追踪每个 IOC 的创建者和最后更新者
### 报告与自动化
- **邮件报告**:包含统计信息和趋势的自动日报和周报
- **生命周期摘要**:包含待审批、已审批、已拒绝和已归档内容的每日邮件摘要
- **仪表盘**:实时指标和可视化
- **搜索与过滤**:按类型、严重程度、标签、生命周期状态和日期范围进行高级过滤
- **批量导入**:一次导入多个 IOC
### 用户界面
- **深色模式**:在浅色和深色主题之间切换,偏好设置持久保存
- **响应式设计**:针对桌面和移动浏览器优化
- **关系图视图**:在 IOC 详情页面上,可视化图表与传统列表视图并存
### 管理与配置
- **管理面板**:集中管理界面
- **报告配置**:基于 Web 的邮件/SMTP 配置,支持热重载
- **API 密钥管理**:安全的 API 密钥配置 (VirusTotal, URLScan.io 等)
- **审计日志查看器**:搜索、过滤和清除审计日志,带有可点击的资源链接
- **用户管理**:创建、编辑和管理用户账户及权限
- **审查员管理**:按用户授予或撤销审查员标志(独立于角色)
- **操作系统管理**:配置哈希 IOC 的目标操作系统选项
### 安全与访问控制
- **基于角色的访问控制 (RBAC)**:Admin、User 和 Viewer 角色
- **多因素认证 (MFA)**:可选的每用户基于 TOTP 的 2FA,支持二维码设置、备用代码和速率限制
- **用户管理**:用户注册、认证和会话管理
- **注册控制**:启用/禁用公开注册
- **全面审计跟踪**:追踪所有用户操作、IOC 变更和系统事件
- **管理员审计查看器**:审计日志的高级搜索和过滤,带有智能资源链接
## 📋 系统要求
- Python 3.8+
- SQLite (默认) 或 PostgreSQL/MySQL
- SMTP 服务器 (用于邮件报告)
- VirusTotal API 密钥 (可选)
- URLScan.io API 密钥 (可选)
- MaxMind GeoLite2 数据库 (可选,用于 GeoIP/ASN)
## 🚀 快速开始
### 安装说明
1. **克隆仓库**
git clone https://github.com/JMousqueton/IoCManager.git
cd IoCManager
2. **创建虚拟环境**
python3 -m venv venv
source venv/bin/activate # 在 Windows 上: venv\Scripts\activate
3. **安装依赖**
pip install -r requirements.txt
4. **配置环境**
cp .env.example .env
# 使用你的设置编辑 .env (API 密钥, SMTP 等)
nano .env
5. **初始化数据库**
python scripts/init_db.py
6. **下载 GeoIP 数据库** (可选)
python scripts/download_asn_db.py
7. **启动应用**
python run.py
8. **访问应用**
- 打开浏览器:http://localhost:5000
- 默认管理员凭据:`admin` / `admin` (请立即修改!)
## ⚙️ 配置
### 环境变量
可以通过以下方式进行配置:
1. **`.env` 文件** - 在初始设置时手动编辑
2. **管理面板** (推荐) - 基于 Web 的配置,支持以下功能的热重载:
- API 密钥 (VirusTotal, URLScan.io)
- 邮件/SMTP 设置
- 报告收件人
`.env` 中的主要配置选项:
```
# Flask 配置
SECRET_KEY=your-secret-key-here
FLASK_ENV=development
FLASK_DEBUG=True
# Server Binding
FLASK_HOST=127.0.0.1
FLASK_PORT=5000
# VirusTotal API
VIRUSTOTAL_API_KEY=your-virustotal-api-key
VIRUSTOTAL_CACHE_DAYS=7 # Cache duration (default: 7 days)
VIRUSTOTAL_RATE_LIMIT=4 # Requests per minute (free tier: 4)
# URLScan.io API
URLSCAN_API_KEY=your-urlscan-api-key
URLSCAN_CACHE_DAYS=7
URLSCAN_RATE_LIMIT=1
# Domain & URL Enrichment Cache
DOMAIN_ENRICHMENT_CACHE_DAYS=30
URL_ENRICHMENT_CACHE_DAYS=7
# 电子邮件报告
REPORT_ENABLED=True
DAILY_REPORT_RECIPIENTS=cert-team@example.com
WEEKLY_REPORT_RECIPIENTS=cert-team@example.com,management@example.com
# SMTP 配置
MAIL_SERVER=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your-email@example.com
MAIL_PASSWORD=your-app-password
# IOC 过期
IOC_DEFAULT_TTL_DAYS=90
IOC_AUTO_EXPIRE_ENABLED=True
# IOC 生命周期管理
DRAFT_RETENTION_DAYS=30 # Auto-archive drafts older than N days
NOTIFICATION_RETENTION_DAYS=7 # Purge processed notifications after N days
# 身份验证
REGISTRATION_ENABLED=False # Disable public registration
```
有关所有可用选项,请参阅 `.env.example`。
## 📖 使用指南
### 创建 IOC
1. 从菜单导航至 **Add IOC**
2. 选择 IOC 类型(IPv4、Domain、Hash 等)
3. 输入 IOC 值
4. 设置严重程度、置信度和 TLP 级别
5. 添加描述和标签
6. 对于哈希类型(MD5、SHA1、SHA256 等),可选择 **目标操作系统**
7. 选择一个 **生命周期状态**:*To be reviewed* (默认)、*Active* 或 *Draft*
8. 点击 **Create IOC**
### 丰富化 IOC
在任何 IOC 详情页面点击 **Enrich IOC** 以自动获取威胁情报:
- **IP 地址** — GeoIP 位置、ASN 和组织数据
- **哈希** — VirusTotal 恶意软件分析、检测率、MITRE ATT&CK 技术
- **URL** — URLScan.io 截图/判定、VirusTotal URL 分析、HTTP 头、服务器指纹识别、解析 IP 的 GeoIP
- **域名** — WHOIS 注册数据、DNS 记录 (A, AAAA, MX, NS, TXT)、SSL/TLS 证书
丰富化完成后,按钮会变为 **Refresh IOC Enrichment** — 点击它会清除服务缓存并从每个来源重新获取最新数据。
### 创建关系
将相关的 IOC 链接在一起:
1. 打开一个 IOC 详情页面
2. 在 Related IOCs 部分点击 **Add Relationship**
3. 搜索目标 IOC
4. 选择关系类型 (resolves_to、contains、downloads_from 等)
5. 添加可选备注
详情页面上的 **Graph View** 标签页可以可视化完整的关系网络,并支持可配置的跳数深度 (1-3)。
### 生成 YARA 规则
1. 打开任意 IOC 详情页面
2. 点击 **Generate YARA**
3. 复制或下载规则 (`.yar`)
4. 如需要,切换到 YARA-X 语法 (`.yarax`)
支持所有 IOC 类型:哈希(使用 VT 丰富化获取额外哈希)、IP、域名、URL。
### 生成狩猎查询
1. 打开任意 IOC 详情页面
2. 点击 **Hunting Queries**
3. 选择一个平台标签页:**Splunk**、**KQL / Sentinel**、**Sigma** 或 **CrowdStrike**
4. 复制到剪贴板或使用原生文件扩展名下载 (`.spl`、`.kql`、`.yml`、`.fql`)
查询会尽可能利用丰富化数据(例如 VirusTotal 中的所有已知哈希)。时间范围默认为过去 30 天 — 请根据您的环境调整索引名和表名。
### 评论
为 IOC 添加评论以便协作:
- 使用 **Markdown** 格化富文本
- **@mention** 用户以通知他们
- **回复** 以创建主题讨论
- **编辑/删除** 你自己的评论
### 分享 IOC
在任何 IOC 详情页面点击 **Share** 以复制匿名的可分享链接。分享视图会去除敏感元数据,以便安全地对外分享。
### IOC 生命周期管理
IOC 遵循结构化的审批工作流程,以确保质量和责任。
#### 状态
| 状态 | 描述 |
|-------|-------------|
| **Draft** | 进行中的工作 — 只有创建者和管理员可以查看和编辑 |
| **In Review** | 已提交审批 — 审查员会收到通知并可批准或拒绝 |
| **Active** | 已批准并生效 — 对所有用户可见 |
| **Archived** | 已退役 — 保留作历史参考,不再生效 |
#### 工作流
```
Draft ──→ In Review ──→ Active ──→ Archived
│ ↑
└─── (rejected) ──→ Draft └─── Restore
```
#### 对于 IOC 创建者
1. 创建一个 IOC — 它默认为 **In Review**,审查员会自动收到通知
2. 或者,保存为 **Draft** 以便在提交前继续编辑
3. 在草稿 IOC 上,准备好后点击 **Submit for Review**
4. 一旦批准,IOC 变为 **Active**
5. 如果被拒绝,IOC 返回 **Draft** 状态,并附上你可以处理的拒绝原因
#### 对于审查员 / 管理员
1. 导航栏中的徽章显示待审查的 IOC 数量
2. 导航到顶部菜单中的 **Approvals** 查看完整队列
3. 对于任何审查中的 IOC,点击 **Approve** 使其生效,或点击 **Reject** 并提供原因
4. 审查员还可以 **Archive** 活跃的 IOC 并 **Restore** 已归档的 IOC
#### 标记以供审查 (快速路径)
在任何 **Active** IOC 详情页面上:
1. 切换 **"To be reviewed"** 开关
2. 生命周期状态自动移动到 **In Review**,审查员会收到通知
3. 关闭它会将状态恢复为 **Active**
#### 审查员角色
审查员标志独立于用户的角色,可以授予任何用户:
1. 导航到 **Admin → Reviewers**
2. 点击任意用户旁的 **Grant** 授予他们审查员权限
3. 点击 **Revoke** 移除审查员访问权限
### 多因素认证 (MFA)
使用可选的基于 TOTP 的双因素认证增强账户安全:
**启用 MFA**:
1. 导航到你的个人资料页面
2. 在多因素认证部分点击 **"Enable MFA"**
3. 使用你的身份验证器应用(Google Authenticator、Authy、Microsoft Authenticator)扫描二维码
4. 输入 6 位验证码以确认设置
5. 将你的 10 个备用代码保存在安全的地方(每个只能使用一次)
**使用 MFA 登录**:
1. 像往常一样输入你的用户名和密码
2. 你将被重定向到 MFA 验证页面
3. 输入来自身份验证器应用的 6 位代码
4. 或者,勾选 "Use a backup code instead" 并输入你的一个备用代码
**管理 MFA**:
- **查看备用代码**:查看剩余的备用代码数量
- **重新生成代码**:如果你已使用大部分代码,生成新的备用代码(需要 MFA 验证)
- **禁用 MFA**:关闭 MFA 保护(需要密码 + 当前 MFA 代码)
**安全功能**:
- 速率限制:每 15 分钟最多 10 次失败的验证尝试
- 会话超时:MFA 验证必须在 5 分钟内完成
- 备用代码:10 个一次性使用代码,用于设备丢失场景
- 审计日志:所有 MFA 事件(启用、禁用、登录尝试)都会被记录
- 管理员可见性:管理员可以查看哪些用户启用了 MFA
**注意**:MFA 是可选的,并按用户配置。添加 MFA 系统时不会影响现有用户。
### 管理面板 (仅限管理员)
访问综合管理功能:
**API 密钥 标签页**:
- 配置 VirusTotal API 密钥
- 配置 URLScan.io API 密钥
- 无需重启即可热重载配置
**报告 标签页**:
- 配置 SMTP 服务器设置(服务器、端口、TLS/SSL)
- 设置邮件凭据
- 配置报告收件人(日报/周报)
- 启用/禁用自动报告
- 更改立即生效,无需重启
**审计日志 标签页**:
- 搜索和过滤审计日志,可按:
- 资源类型 (IOC、User、Tag、Configuration、Comment)
- 操作 (CREATE、UPDATE、DELETE、LOGIN、ENRICH、EXPORT、SEARCH)
- 用户
- 日期范围
- 智能过滤:选择 "IOC" 会包含 IOC、IOCRelationship 和 Comment 条目
- 点击资源查看详情(在新标签页中打开)
- 清除 30 天前的日志
**用户 标签页**:
- 创建、编辑和删除用户账户
- 分配角色 (Admin、User、Viewer)
- 激活/停用账户
- 查看用户统计信息(创建的 IOC、审计日志)
**审查员 标签页**:
- 按用户授予或撤销审查员权限
- 独立于用户的角色
**操作系统 标签页**:
- 管理哈希类型 IOC 显示的目标操作系统选项
- 自定义图标和描述
## 🔧 高级功能
### 邮件报告
在 `.env` 中配置自动报告:
```
REPORT_ENABLED=True
DAILY_REPORT_RECIPIENTS=team@example.com
WEEKLY_REPORT_RECIPIENTS=team@example.com,management@example.com
```
使用 cron 调度:
```
# 每日上午 8 点报告
0 8 * * * cd /path/to/IoCManager && /path/to/venv/bin/python scripts/send_daily_report.py
# 每周一上午 8 点报告
0 8 * * 1 cd /path/to/IoCManager && /path/to/venv/bin/python scripts/send_weekly_report.py
```
### IOC 生命周期自动化
使用 cron 调度生命周期任务:
```
# 每日生命周期摘要邮件(通知审核者待处理的 IOC,通知创建者相关决策)
0 8 * * * cd /path/to/IoCManager && PYTHONPATH=. venv/bin/python3 scripts/send_daily_lifecycle_digest.py >> /var/log/iocmanager-digest.log 2>&1
# 保留策略执行(自动归档过期草稿和已过期的活动 IOC)
0 2 * * * cd /path/to/IoCManager && PYTHONPATH=. venv/bin/python3 scripts/enforce_retention_policies.py >> /var/log/iocmanager-retention.log 2>&1
```
在 `.env` 中配置保留策略:
```
DRAFT_RETENTION_DAYS=30 # Drafts untouched for 30 days → auto-archived
NOTIFICATION_RETENTION_DAYS=7 # Processed notifications purged after 7 days
```
### IOC 过期
自动使旧 IOC 过期:
```
# 在 .env 中配置
IOC_DEFAULT_TTL_DAYS=90
IOC_AUTO_EXPIRE_ENABLED=True
# 计划过期检查
0 2 * * * cd /path/to/IoCManager && /path/to/venv/bin/python scripts/expire_iocs.py
```
### 自动部署
使用 `update.sh` 进行生产部署:
- Git 更新检查,包含代码和数据库备份
- 依赖管理和自动迁移运行
- Systemd 服务重启 (`iocmanager`) 和健康检查
- 失败时自动回滚
- 日志记录到 `/var/log/iocmanager-update.log`
### 审计日志与合规
**记录内容**:
- 用户认证 (LOGIN, LOGOUT)
- IOC 操作 (CREATE, UPDATE, DELETE, ENRICH, EXPORT)
- 用户管理 (CREATE, UPDATE, DELETE users)
- 配置变更 (API 密钥, 邮件设置)
- 评论活动
- 审查和生命周期状态变更
**访问审计日志** (仅限管理员):
1. 导航到 **Admin → Audit Logs**
2. 使用过滤器查找特定事件
3. 点击资源查看详细视图
4. 使用清除按钮清理旧日志
### STIX 2.1 导出
导出 IOC 用于 TAXII 共享:
1. 导航到 IOC 详情页面
2. 点击 **Export STIX**
3. 下载 STIX 2.1 JSON 包
## 🎨 用户角色
| 角色 | 权限 |
|------|-------------|
| **Admin** | 完全访问权限:管理用户、删除任何内容、访问管理面板、配置系统设置。可以批准/拒绝/归档/恢复 IOC。 |
| **User** | 创建和编辑自己的 IOC 和评论。可以提交 IOC 以供审查。可以编辑标记为审查的 IOC。 |
| **Viewer** | 对 IOC 和评论的只读访问权限 |
### 审查员标志
**审查员** 标志是一个独立于用户角色的权限修饰符。它可以与任何角色结合使用:
| 权限 | Viewer | User | Admin | 审查员 (任意角色) |
|------------|:------:|:----:|:-----:|:-------------------:|
| 查看 IOC | ✓ | ✓ | ✓ | ✓ |
| 创建 IOC | | ✓ | ✓ | |
| 编辑自己的 IOC | | ✓ | ✓ | |
| 提交审查 | | ✓ | ✓ | |
| **批准 / 拒绝** | | | ✓ | **✓** |
| **归档 / 恢复** | | | ✓ | **✓** |
| 管理面板 | | | ✓ | |
审查员访问权限在 **Admin → Reviewers** 中管理。
## 📊 仪表盘指标
仪表盘提供:
- IOC 总数
- 活跃 vs 非活跃指标
- 严重程度分布
- 最近添加的 IOC
- 丰富化统计
- 用户活动
## 🔒 安全性
- **CSRF 保护**:所有表单均受 CSRF 令牌保护
- **会话管理**:安全的会话处理,具有可配置的超时
- **密码哈希**:Werkzeug 密码哈希
- **SQL 注入防护**:使用参数化查询的 SQLAlchemy ORM
- **XSS 防护**:使用 Bleach 进行 Markdown 净化
- **多因素认证 (MFA)**:可选的每用户基于 TOTP 的 2FA:
- 使用标准身份验证器应用进行二维码设置
- 每用户 10 个一次性备用恢复代码
- 速率限制(15 分钟内 10 次尝试)
- 使用 Fernet 对称加密的加密秘密存储
- 使用 bcrypt 哈希的备用代码
- 完整的 MFA 事件审计跟踪
- **全面审计日志**:所有用户操作、IOC 操作和配置变更
## 🗂️ 项目结构
```
IoCManager/
├── app/
│ ├── __init__.py # Flask app factory
│ ├── config.py # Configuration
│ ├── models/ # Database models
│ │ ├── ioc.py
│ │ ├── user.py
│ │ ├── comment.py
│ │ ├── cache.py
│ │ ├── notification.py
│ │ ├── operating_system.py
│ │ └── ...
│ ├── routes/ # Flask blueprints
│ │ ├── ioc.py
│ │ ├── auth.py
│ │ ├── admin.py
│ │ ├── comment.py
│ │ └── ...
│ ├── services/ # Business logic
│ │ ├── virustotal.py
│ │ ├── urlscan.py
│ │ ├── geoip.py
│ │ ├── domain_enrichment.py
│ │ ├── url_enrichment.py
│ │ ├── yara_generator.py
│ │ ├── hunting_query_generator.py
│ │ ├── report_generator.py
│ │ └── notification_service.py
│ ├── utils/ # Utilities
│ │ └── markdown.py
│ └── templates/ # Jinja2 templates
├── scripts/ # Management & automation scripts
│ ├── init_db.py
│ ├── download_asn_db.py
│ ├── send_daily_report.py
│ ├── send_weekly_report.py
│ ├── expire_iocs.py
│ ├── send_daily_lifecycle_digest.py
│ └── enforce_retention_policies.py
├── instance/ # Instance-specific files (DB, uploads)
├── update.sh # Automated deployment script
├── .env # Environment variables
├── requirements.txt # Python dependencies
└── run.py # Application entry point
```
## 🛠️ 开发
### 在开发模式下运行
```
export FLASK_ENV=development
export FLASK_DEBUG=True
python run.py
```
## 🤝 贡献
欢迎贡献!请:
1. Fork 本仓库
2. 创建一个功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交你的更改 (`git commit -m 'Add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 打开一个 Pull Request
### 开发指南
- 遵循 PEP 8 风格指南
- 为函数和类编写文档字符串
- 为新功能添加测试
- 根据需要更新文档
## 🐛 故障排除
### 常见问题
**问题**:邮件报告未发送
- **解决方案**:检查 `.env` 中的 SMTP 设置,验证 `REPORT_ENABLED=True`
**问题**:VirusTotal 丰富化失败
- **解决方案**:验证 API 密钥,检查速率限制(免费层为 4 次请求/分钟)
**问题**:GeoIP 数据不可用
- **解决方案**:运行 `python scripts/download_asn_db.py` 下载 MaxMind 数据库
**问题**:权限被拒绝错误
- **解决方案**:确保脚本可执行:`chmod +x scripts/*.py`
## 📄 许可证
本项目采用 MIT 许可证授权 - 详情请参见 [LICENSE](LICENSE) 文件。
## 🙏 致谢
- [Flask](https://flask.palletsprojects.com/) - Web 框架
- [Bootstrap 5](https://getbootstrap.com/) - UI 框架
- [Cytoscape.js](https://cytoscape.org/) - 图可视化
- [VirusTotal](https://www.virustotal.com/) - 恶意软件分析
- [URLScan.io](https://urlscan.io/) - URL 分析
- [MaxMind](https://www.maxmind.com/) - GeoIP 数据
- [YARA](https://virustotal.github.io/yara/) - 恶意软件检测规则
- [STIX](https://oasis-open.github.io/cti-documentation/) - 威胁情报格式
- [Sigma](https://sigmahq.io/) - 通用 SIEM 检测格式
## 📧 联系方式
- **项目链接**:https://github.com/JMousqueton/IoCManager
- **问题反馈**:https://github.com/JMousqueton/IoCManager/issues
## 🌟 表示支持
如果这个项目对你有帮助,请给一个 ⭐️!
**用 ❤️ 为网络安全社区构建**
标签:Ask搜索, ASN查询, CERT, Cloudflare, DAST, Flask, GeoIP, IOC管理, IP地址查询, MD5, MITRE ATT&CK, Python, SHA256, TLP, VirusTotal, Web安全, 入侵指标, 商业软件, 域名情报, 威胁情报, 威胁情报富化, 安全运营中心, 库, 应急响应, 开发者工具, 开源安全工具, 恶意软件分析, 无后门, 测试用例, 网络映射, 蓝队分析, 逆向工具, 逆向工程平台, 风险分类