cyberprogramming1/GhostWire_CTI

GitHub: cyberprogramming1/GhostWire_CTI

GhostWire CTI 是一个自托管的网络威胁情报平台,通过并行引擎和本地AI分析威胁指标,生成详细的风险报告和标准化输出。

Stars: 2 | Forks: 0

``` ██████╗ ██╗ ██╗ ██████╗ ███████╗████████╗██╗ ██╗██╗██████╗ ███████╗ ██╔════╝ ██║ ██║██╔═══██╗██╔════╝╚══██╔══╝██║ ██║██║██╔══██╗██╔════╝ ██║ ███╗███████║██║ ██║███████╗ ██║ ██║ █╗ ██║██║██████╔╝█████╗ ██║ ██║██╔══██║██║ ██║╚════██║ ██║ ██║███╗██║██║██╔══██╗██╔══╝ ╚██████╔╝██║ ██║╚██████╔╝███████║ ██║ ╚███╔███╔╝██║██║ ██║███████╗ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ ╚══╝╚══╝ ╚═╝╚═╝ ╚═╝╚══════╝ C T I P L A T F O R M v 7 [ 10-Engine · Multi-Vector · MITRE ATT&CK Mapped · Parallel ] ```
![Python](https://img.shields.io/badge/Python-3.12-00ffb4?style=for-the-badge&logo=python&logoColor=black) ![Streamlit](https://img.shields.io/badge/Streamlit-1.40+-00c8ff?style=for-the-badge&logo=streamlit&logoColor=black) ![Docker](https://img.shields.io/badge/Docker-Ready-0db7ed?style=for-the-badge&logo=docker&logoColor=white) ![STIX](https://img.shields.io/badge/STIX-2.1-c47aff?style=for-the-badge) ![MITRE](https://img.shields.io/badge/MITRE-ATT%26CK-ff2d55?style=for-the-badge) ![License](https://img.shields.io/badge/License-MIT-ffd060?style=for-the-badge) **追踪对手,衡量威胁,输出报告。**
![GhostWire IP Intelligence](https://raw.githubusercontent.com/cyberprogramming1/GhostWire_CTI/master/assets/IP_Intelligence%20.gif)
## larly for other commands. **GhostWire CTI** 是一个开源、本地运行的网络威胁情报平台,专为不希望调查数据泄露给 SaaS 供应商的分析师构建。 提交可疑的 URL、文件哈希值、电子邮件、IP 或原始文件 — 十个分析引擎并行运行。几秒钟内即可得到结果:风险评分、判定结论、一个为你的 TAXII 服务器准备好的 STIX 2.1 包,以及一份 PDF 取证报告。 AI 通过 Ollama 在本地运行。外部 API 仅用于查询 — 你发送 IOC,它们返回数据。没有任何其他信息离开你的机器。 ``` TARGET ──► [URL / IP / HASH / EMAIL / FILE] │ ┌─────────▼─────────┐ │ 10 ENGINE POOL │ ← concurrent.futures (parallel) │ │ │ 1. Heuristics │ URL structural analysis │ 2. WHOIS │ Domain age, registrar │ 3. AI NLP │ Ollama LLM (local, offline) │ 4. VirusTotal │ 70+ AV engines │ 5. Deception │ Typosquatting, homoglyph │ 6. Sandbox │ Behavioral simulation │ 7. SSL/TLS │ Certificate anomaly │ 8. Passive DNS │ ASN, geo, VPN detection │ 9. Shodan │ Ports, CVEs, banners │ 10. GreyNoise │ Internet scanner classification │ │ │ + URLhaus │ abuse.ch malware URL database │ + OTX │ AlienVault threat intel │ + Hybrid Anal. │ Cloud sandbox detonation │ + Forensic Eng. │ Deep file analysis (PE/PDF/Office) └─────────┬─────────┘ │ ┌─────────▼─────────┐ │ SCORING ENGINE │ 0–100 risk score │ VERDICT ENGINE │ SAFE/LOW/MEDIUM/HIGH/CRITICAL │ STIX 2.1 EXPORT │ TAXII-compatible IOC bundle │ PDF REPORT │ Full forensic report (ReportLab) │ AUDIT LOG │ JSONL audit trail, defanged URLs └───────────────────┘ ``` ## But the translation should be to Simplified Chinese, so I need to incorporate English terms into Chinese sentences. ### 5 个分析管道 | 标签页 | 输入 | 并行引擎 | |------|------|----------| | **URL / 域名** | 任何 URL、域名或 IP 地址 | 10+ | | **文件 / 哈希** | SHA-256 / SHA-1 / MD5 查询或文件上传 | 4 + 取证 | | **电子邮件 / 短信** | 原始头部+正文,或 OCR 截图 | 7 | | **IP 情报** | 独立的深度 IP 分析 | 6 | | **沙箱** | Hybrid Analysis 云端引爆 | HA API | ### 引擎详情 **引擎 1 — URL 启发式分析** 在任何网络调用前进行结构分析。捕获 URL 中的原始 IP、`@` 凭据欺骗、编码的路径组件、可疑顶级域名(`.tk .ml .cf .ga`)、过多子域名以及如 `login`、`secure`、`verify`、`update` 等关键词模式。 **引擎 2 — WHOIS / 域名年龄** 30 天以下的域名评分高。检查注册商信誉、可疑上下文中的隐私保护 WHOIS 以及创建/过期异常。 **引擎 3 — AI NLP(Ollama,本地)** 本地运行 `phi3:mini`、`llama3`、`llama3.2` 或 `mistral`。检测紧急语言、金融威胁、权威冒充,并提供域名合法性评估。结构化 JSON 输出 — 无虚构的自由文本判定。 **引擎 4 — 信誉(VirusTotal + AbuseIPDB)** 通过 VT 进行 70+ 杀毒引擎扫描。社区投票、评论 NLP、恶意文件关联、域名受欢迎程度排名。AbuseIPDB 置信度评分、报告计数、Tor 出口节点检测、DNS 记录分析。 **引擎 5 — 技术欺骗检测** 针对 50+ 全球品牌进行 Levenshtein 距离检查。Unicode 同形字检测、Punycode/IDN 域名标记、重定向链深度、链接缩短服务识别。 **引擎 6 — 沙箱模拟** 本地行为分析:HTTP 响应头部、服务器指纹识别、重定向链跟踪、停放域名内容模式、VPN/代理 ASN 识别。 **引擎 7 — SSL/TLS 证书** 证书有效性、免费 CA 检测(Let's Encrypt, ZeroSSL)、SAN 不匹配、自签名标记、通配符滥用检测。7 天以下的证书 → 新增钓鱼基础设施标记。 **引擎 8 — 被动 DNS + IP 情报** 地理位置、基于 ASN 的风险评分、共享主机密度、VPN/代理/Tor ASN 识别、PTR 反向 DNS 分析。 **引擎 9 — Shodan** 完整的开放端口清单、服务横幅(HTTP/SSH/FTP/SMB)、CVE 列表、Shodan 标签。回退到 InternetDB — 无需 API 密钥也可工作。 **引擎 10 — GreyNoise** 大规模互联网扫描器分类。RIOT 良性服务检测(Google, Cloudflare)。攻击者归因、扫描意图分析。社区 API 无需密钥即可工作。 ### 附加情报层 **URLhaus (abuse.ch)** — 活跃恶意软件 URL 数据库。标签:钓鱼/恶意软件/僵尸网络/C2。显示 URL 状态(在线/离线)、关联的恶意软件家族以及释放文件的 SHA256。 **OTX (AlienVault)** — Pulse 计数、MITRE ATT&CK 技术 ID、威胁行为者归因(Lazarus, APT28...)、活动名称。基础设施信号 Pulse(Tor 出口节点、HoneyNet 订阅源、C2 订阅源、扫描器订阅源)独立于 VirusTotal 对评分有贡献 — 对网络分类威胁无假阴性。 **Hybrid Analysis** — 针对 URL、文件、哈希、域名和 IP 的云端沙箱引爆。环境:Windows 10 64位、Windows 7 32位、Android。支持最多 10 个 API 密钥的轮换池 — 在收到 429 错误时自动切换。 ### 取证引擎(文件上传) 当文件上传时,`backend/forensic_engine.py` 与 VT/URLhaus/OTX 查询并行运行: ``` FILE BYTES │ ├─ Hash computation MD5 + SHA1 + SHA256 ├─ Magic byte detection Never trusts the extension ├─ MIME mismatch check Extension ≠ actual type → masquerading flag │ ├─ PE (EXE / DLL) │ ├─ Section entropy >7.2 = packed/encrypted/crypter │ ├─ Import analysis VirtualAlloc, CreateRemoteThread, WinExec... │ ├─ Compile timestamp Zeroed = timestamp stomping │ └─ Overlay data Bytes after PE = appended payload │ ├─ PDF │ ├─ /JS /JavaScript Embedded script execution │ ├─ /OpenAction /AA Auto-exec on document open │ ├─ /Launch External process execution │ ├─ /EmbeddedFile Hidden file inside PDF │ ├─ Polyglot detection PDF/ZIP dual-format (GootLoader technique) │ └─ Creator tool check msfvenom / Cobalt Strike signatures │ ├─ Office (DOCX / XLSX / XLSM) │ ├─ VBA macro presence vbaProject.bin detection │ ├─ Auto-exec triggers AutoOpen, Document_Open, Workbook_Open │ ├─ Chr() obfuscation >20 Chr() calls = string hiding │ ├─ PowerShell in VBA Inline PS execution chains │ └─ OLE embedded objs External template / OLE injection │ ├─ ZIP bomb detection │ ├─ Ratio check >100:1 compression ratio │ ├─ Absolute size cap >100MB uncompressed → blocked │ ├─ Metadata spoof file_size=0 with real compressed data │ └─ Nested archives Matryoshka / 42.zip style │ ├─ Sandbox evasion patterns │ ├─ Long sleep() Timeout evasion │ ├─ IsDebuggerPresent Anti-analysis │ ├─ VM string checks vmware / virtualbox / qemu / sandbox │ └─ Mouse / window User presence detection │ └─ Network indicator extraction ├─ URL / domain / IP Strings embedded in binary ├─ DGA pattern Random-looking domains + abuse TLDs └─ C2Indicator objs Confidence-scored with context ``` **结果:** `ForensicReport` 包含风险评分、威胁级别、最终判定、MIME 不匹配标记、提取的 IOC、AI NLP 标签、引擎差异解释,以及对 *“为什么这个哈希在 VT 中标记但在容器中看起来干净?”* 的 plain-English 回答。 ## Let's see the example: 'Running Naabu' -> '运行 Naabu'. Here, "Running" is translated to "运行", and "Naabu" is kept in English. So for `> whoami`, I can translate the context. But here, it's just `> whoami`. Perhaps it's meant as "the whoami command" or something. Since it's a heading, I'll translate it in a way that makes sense as a Chinese heading. ``` Score components (0–100 final): heuristics_score URL structure whois_score Domain age ai_score Ollama NLP reputation_score VT + AbuseIPDB deception_score Typosquat + homoglyph sandbox_score Behavioral simulation ssl_score Certificate anomaly pdns_score Passive DNS shodan_score Port / CVE intel greynoise_score Scanner classification urlhaus_score Malware URL database otx_score Threat intel (infra-signal aware) forensic_score File deep analysis FINAL = min(Σ(engine × weight) / 2.0, 100) Score Floor Rules: TOR_EXIT_NODE Confirmed Tor exit node → minimum MEDIUM (40) VT_DETECTION VT ≥3 malicious engines → minimum 35 INFRA_OVERRIDE VT relations ≥8 malicious files → locked ≥ 85 BRAND_SQUATTING 2+ squatting signals + new domain → +35 pts AZ_WHITELIST .gov.az / .edu.az / .mil.az → fully protected OTX Infrastructure Signals (VT-independent scoring): Tor Exit Node +20 pts (anonymisation infrastructure) HoneyNet Feed +15 pts (active attacker/scanner feed) C2/Botnet Feed +18 pts (malware infrastructure) Brute Force Feed +12 pts (active attack feed) Scanner Feed +10 pts (mass reconnaissance feed) Malware Feed +15 pts (malware distribution feed) Verdict thresholds: SAFE 0–19 ████ #00ffb4 LOW 20–39 ████ #78d97a MEDIUM 40–64 ████ #ffd060 HIGH 65–84 ████ #ff6b35 CRITICAL 85–100 ████ #ff2d55 ``` ## I think for commands, I can translate them as "[English command] 命令" or similar, but the instruction says to keep in English, so perhaps just "whoami" with a Chinese description if needed. **URL 脱敏** — 写入审计日志的每个 URL 都经过脱敏:`https://evil.com` → `hxxps://evil[.]com`。防止日志查看器、电子邮件客户端和 SIEM 中的热链接。 **SSRF 防护** — 截图引擎使用禁用 JavaScript 的 Playwright 无头模式运行。`run_screenshot` 默认关闭。在 `tests/test_ssrf.py` 中进行了测试。 **WHOIS 注入防护** — 在传递给 `python-whois` 之前,使用严格的正则表达式对域名字符串进行清理。 **供应链加固** — `requirements.txt` 中的所有包都使用 `==` 固定版本。无浮动版本。 **非 root Docker** — `ghostwire` 用户 UID/GID 1000。容器永不以 root 身份运行。 **速率限制** — 双层:请求间最小 5 秒间隔(每会话)+ 每 60 秒窗口 10 个请求。进程级计数器防止多标签页绕过。 **HA 密钥轮换** — 线程安全的轮询池,最多 10 个 Hybrid Analysis API 密钥。收到 429 时,相关密钥冷却 65 秒;池自动切换。 **OTX 基础设施评分** — OTX Pulse 计数本身不会为通用 Pulse 增加评分。基础设施信号 Pulse(Tor 出口、HoneyNet、C2、扫描器订阅源)定义上具有权威性,独立评分 — VT 无法检测网络分类的威胁。所有其他 Pulse 类型需要 VirusTotal 证实。 **DoS 防护** — PDF/二进制扫描限制为 5 MB 解码上限。ReDoS 安全的正则表达式模式(有界量词,无无界惰性 `.*?`)。字符串提取上限为 5 MB。 **提示注入防护** — 文件名在嵌入 Ollama 提示前进行清理。仅允许字母数字、点、破折号、空格和括号。 **Ollama 模型白名单** — 仅向 Ollama API 传递明确批准的模型标识符。未知模型名称回退到 `phi3:mini` 并发出警告。 **SHA-256 验证** — 在插入 VT API 调用的 URL 前,使用 `re.fullmatch(r"[0-9a-fA-F]{64}", ...)` 验证哈希字符串。 **审计跟踪** — `~/.ghostwire/audit.jsonl`。字段:会话 ID、主机名、请求序列、脱敏目标、判定、评分、耗时。 ## To be precise, I'll translate each line as per the content, keeping English terms as is. | 技术 | ID | 引擎 | |------|----|------| | 网络钓鱼 | T1566 | 电子邮件 + AI NLP | | 鱼叉式网络钓鱼链接 | T1566.002 | URL + 欺骗检测 | | 水坑攻击 | T1189 | 沙箱 + SSL | | 利用面向公众的应用程序 | T1190 | Shodan CVE | | 命令和脚本解释器 | T1059 | 取证(PS1/VBA/JS) | | 模糊文件或信息 | T1027 | 熵 + 编码 | | 远程模板注入 | T1221 | Office 取证 | | 通过 C2 数据窃取 | T1041 | C2 指标提取 | | 动态解析 / DGA | T1568 | DGA 模式启发式分析 | | Web 服务 C2 | T1102 | 域名 + 沙箱 | 来自 OTX Pulse 的 ATT&CK 技术 ID 在 UI 中渲染为芯片。在 STIX 2.1 包和 PDF 报告中导出。 ## Let's list translations: ### 要求 - Python 3.12+ - [Ollama](https://ollama.com) (本地 AI) - VirusTotal + AbuseIPDB API 密钥(最低要求) ### 快速开始 ``` git clone https://github.com/yourusername/GhostWire_CTI.git cd GhostWire_CTI python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt python -m playwright install chromium cp env.example .env # fill in your API keys ollama pull phi3:mini # 2.3 GB — fast ollama serve # separate terminal streamlit run app.py # 1. `> whoami` – I can translate to "> whoami" or add a Chinese translation. But the user said "output exactly 20 line(s) of translation", so I need to provide Chinese text. Perhaps for commands, translate the descriptive part. Since it's just the command, I'll keep it as "whoami" but in Chinese context, it might be "whoami 命令". However, the instruction doesn't specify to translate commands into Chinese; it says to keep them in English. So for consistency with the example, I'll keep "whoami" in English and translate any surrounding text. But here, there's no surrounding text, so I might output "> whoami" as is, but that's not translated to Chinese. I need to provide a Chinese translation. ``` ### I think I'm overcomplicating. Let's look at all lines. ``` cp env.example .env # fill in your API keys docker compose build docker compose up -d docker exec ghostwire-ollama ollama pull phi3:mini # The lines include commands, URLs, and plain text. I need to translate each one to Simplified Chinese while keeping certain terms in English. ``` 两个容器:`ghostwire` (Streamlit, 端口 8501) + `ghostwire-ollama` (Ollama, 端口 11434)。 ## For commands like `> whoami`, I can translate the ">" to Chinese, but that might not be necessary. In Chinese, command prompts are often kept as is. Perhaps translate the meaning of the command. | 服务 | 用途 | 免费层级 | 链接 | |------|------|----------|------| | **VirusTotal** | 70+ 杀毒引擎 | 500/天,4/分钟 | [virustotal.com](https://www.virustotal.com/gui/join-us) | | **AbuseIPDB** | IP 滥用置信度 | 1,000/天 | [abuseipdb.com](https://www.abuseipdb.com/register) | | **Shodan** | 端口、CVE、横幅 | InternetDB (无需密钥) | [account.shodan.io](https://account.shodan.io) | | **GreyNoise** | 扫描器分类 | 社区 API (无需密钥) | [greynoise.io](https://greynoise.io) | | **URLhaus** | 恶意软件 URL 数据库 | ~10 请求/分钟 | [auth.abuse.ch](https://auth.abuse.ch) | | **Hybrid Analysis** | 云端沙箱 | 200 请求/分钟,5 子提交/小时 | [hybrid-analysis.com](https://www.hybrid-analysis.com/signup) | | **AlienVault OTX** | MITRE ATT&CK,攻击者 | 无限 (需要密钥) | [otx.alienvault.com](https://otx.alienvault.com/settings) | | **Ollama** | 本地 AI NLP | ∞ 免费,离线运行 | [ollama.ai](https://ollama.ai) | 最低要求:**VirusTotal + AbuseIPDB**。所有其他服务优雅降级。 ## To follow the instruction strictly, I'll translate each line as a heading. For example: ``` # - `> whoami` : This might be a section title like "Who Am I" or "当前用户". But since "whoami" is a command, keep it in English. So I can translate it as "whoami 命令" or just "whoami". The user said "headings", so perhaps make it a proper Chinese heading. VIRUSTOTAL_API_KEY=your_key_here ABUSEIPDB_API_KEY=your_key_here # I recall that in technical documents, commands are often kept in English. So for translation, I should keep the command in English and translate any descriptive text. HYBRID_ANALYSIS_API_KEY=your_key_here OTX_API_KEY=your_key_here URLHAUS_API_KEY=your_key_here # Let's assume that each line is a heading, and I need to output the Chinese equivalent. HYBRID_ANALYSIS_API_KEY_2=second_key HYBRID_ANALYSIS_API_KEY_3=third_key # Perhaps for lines with backticks and ">", I can treat them as code snippets and keep them as is, but the user said "translate", so I need to provide Chinese. SHODAN_API_KEY=your_key_here GREYNOISE_API_KEY=your_key_here # I think the safest way is to translate the content inside the backticks, keeping English terms, and output the translation without the backticks if they are just formatting. But the user included them in the list, so I should consider the entire string. OLLAMA_BASE_URL=http://localhost:11434 OLLAMA_MODEL=phi3:mini # Let's look at the user's list: it has backticks and arrows, etc. I need to output exactly 20 lines of translation, one per line, in the same order. SANDBOX_MAX_BYTES=524288 REQUEST_TIMEOUT=8 DEBUG=false ``` ## So, I'll go line by line: ``` ghostwire_cti/ │ ├── app.py # Streamlit entry point, tab routing, rate limiter ├── config.py # Config singleton, URL defanging, HA key rotator ├── requirements.txt # Pinned dependencies ├── Dockerfile # python:3.12-slim, non-root ghostwire user ├── docker-compose.yml # ghostwire + ollama containers │ ├── backend/ │ ├── forensic_engine.py # Deep file analysis: PE/PDF/Office/ZIP/shellcode │ ├── hash_engine.py # Hash lookup + file pipeline │ ├── ai_analyzer.py # Ollama client, JSON prompt engineering │ ├── async_runner.py # concurrent.futures parallel engine pool │ ├── audit_log.py # JSONL audit trail, defanging │ ├── caching.py # CacheManager — VT/WHOIS/SSL/DNS cache layers │ ├── deception.py # Typosquat, homoglyph, redirect, shortener │ ├── email_engine.py # Header parser, OCR, brand impersonation │ ├── external_intel.py # Shodan + GreyNoise clients │ ├── heuristics.py # URL structural analysis (15 checks) │ ├── hybrid_analysis.py # HA Cloud Sandbox, key pool rotation │ ├── ip_intel.py # IP standalone pipeline │ ├── logging_config.py # Centralised logging configuration │ ├── otx_engine.py # AlienVault OTX — MITRE, pulses, actor, infra signals │ ├── passive_dns.py # DNS, geo, ASN, VPN detection │ ├── pdf_report.py # ReportLab PDF generator │ ├── reputation.py # VirusTotal + AbuseIPDB clients │ ├── sandbox.py # Local behavioral sandbox simulation │ ├── scoring.py # Score aggregator, whitelist, overrides, Tor floor │ ├── screenshot_engine.py # Playwright headless (JS disabled) │ ├── ssl_engine.py # TLS certificate analysis │ ├── stix_export.py # STIX 2.1 bundle + CSV IOC export │ ├── urlhaus_engine.py # abuse.ch URLhaus client │ ├── url_utils.py # Shared URL helpers (normalise, extract, detect) │ ├── verdict.py # Verdict calculator, mitigation library │ ├── whois_check.py # WHOIS domain age, registrar │ └── whois_timeline.py # Historical WHOIS timeline │ ├── frontend/ │ ├── components.py # Shared widgets: gauge, banner, IOC chips │ ├── extra_widgets.py # WHOIS timeline, threat map, Shodan/GN panels │ ├── ha_renderer.py # Hybrid Analysis results renderer │ ├── other_renderers.py # Hash, email, IP, forensic renderers │ ├── otx_panel.py # OTX panel (MITRE chips, actor badges) │ ├── stix_panel.py # STIX 2.1 export UI │ ├── styles.py # inject_css() — dark UI, Space Mono │ ├── url_renderer.py # URL pipeline main renderer │ └── urlhaus_panel.py # URLhaus panel renderer │ ├── pipelines/ │ ├── pipeline_email.py # Email/SMS orchestration │ ├── pipeline_hash.py # Hash/File + Forensic Engine orchestration │ ├── pipeline_ip.py # IP intelligence pipeline │ ├── pipeline_sandbox.py # Hybrid Analysis sandbox pipeline │ └── pipeline_url.py # URL/Domain/IP main pipeline │ └── tests/ ├── conftest.py # Shared fixtures and mocks ├── test_caching.py # CacheManager behaviour ├── test_config.py # Config loader, defang_url, HA key rotator ├── test_email_engine.py # Urgency patterns, brand detection ├── test_hash_validation.py # MD5 / SHA1 / SHA256 format validation ├── test_otx_engine.py # OTX mock responses, infra-signal scoring ├── test_scoring.py # AZ domain tiers, whitelist, overrides ├── test_scoring_normalization.py# Score normalisation edge cases ├── test_ssrf.py # SSRF prevention ├── test_urlhaus_engine.py # URLhaus mock + graceful degradation ├── test_urlhaus_integration.py # URLhaus integration tests └── test_v8_fixes.py # Forensic wiring, dead file removal, fixes ``` ## 1. `> whoami` – Translate to: "> whoami" but in Chinese? I'll translate the meaning. "whoami" is often translated as "查看当前用户" in some contexts, but to keep it in English as per instruction, I can say "> whoami 命令". But "命令" is Chinese for command. So for consistency, I'll use Chinese for common words and keep technical terms in English. GhostWire 导出完全符合 STIX 2.1 的包,具有确定性 UUID — 相同的 IOC 始终产生相同的 STIX ID。重复 TAXII 推送时无重复冲突。 ``` { "type": "bundle", "spec_version": "2.1", "objects": [ { "type": "identity" }, { "type": "indicator" }, { "type": "malware" }, { "type": "threat-actor" }, { "type": "relationship" }, { "type": "report" } ] } ``` 推送到 TAXII 2.1: ``` curl -X POST https://taxii.yourorg.com/api/collections/{id}/objects/ \ -H "Content-Type: application/taxii+json;version=2.1" \ -H "Authorization: Bearer $TAXII_TOKEN" \ -d @ghostwire_stix_export.json ``` CSV IOC 导出也可用于批量 SIEM 导入。 ## I'll proceed with translating each line to Chinese, keeping English terms. ``` pytest tests/ -v pytest tests/ --cov=backend --cov-report=term-missing ``` | 测试 | 覆盖内容 | |------|----------| | `test_scoring.py` | AZ 域名层级、白名单、仿冒、覆盖、Tor 下限 | | `test_scoring_normalization.py` | 评分规范化边缘情况 | | `test_email_engine.py` | 紧急模式、品牌冒充、头部解析 | | `test_hash_validation.py` | MD5 / SHA1 / SHA256 格式验证 | | `test_otx_engine.py` | OTX 模拟响应、基础设施信号评分 | | `test_urlhaus_engine.py` | URLhaus 模拟响应、优雅降级 | | `test_urlhaus_integration.py` | URLhaus 端到端集成 | | `test_caching.py` | CacheManager 命中/未命中/过期行为 | | `test_ssrf.py` | SSRF 防护 | | `test_config.py` | 配置加载器、defang_url、HA 密钥轮换器 | | `test_v8_fixes.py` | 取证引擎接线、死文件移除、集成 |
标签:AI风险缓解, AI驱动分析, CTI平台, Kubernetes, MITRE ATT&CK映射, PDF报告导出, Python应用, STIX 2.1, Streamlit界面, 多向量分析, 威胁情报, 威胁评估, 威胁追踪, 并行分析引擎, 开发者工具, 情报收集, 本地人工智能, 深度取证, 漏洞研究, 网络安全, 自托管平台, 请求拦截, 逆向工具, 隐私保护