【免费下载链接】cyberbro
A simple application that extracts your IoCs from garbage input and checks their reputation using multiple CTI services.
Cyberbro 是一款开源的 IoC 信誉检查工具,它能从杂乱文本中自动提取 IP、域名、URL、哈希等威胁指标(IoC),并调用多个 CTI 威胁情报服务统一查询信誉。本文带你用 Cyberbro REST API 的 3 个端点——/api/analyze、/api/is_analysis_complete、/api/results——搭建一条完整的 IoC 自动化查询流水线,全程只需 3 步,新手也能快速上手。
先看懂 Cyberbro 的 3 个 API 端点
Cyberbro 的 API 默认挂载在 /api/ 前缀下(可通过环境变量 API_PREFIX 自定义)。整套 API 是"提交 → 轮询 → 取结果"的三段式设计,共 3 个端点:
| 端点 | 方法 | 作用 |
|---|---|---|
/api/analyze | POST | 提交待查询文本,返回 analysis_id |
/api/is_analysis_complete/<analysis_id> | GET | 轮询分析是否完成,返回 {"complete": true/false} |
/api/results/<analysis_id> | GET | 获取完整的 JSON 分析结果 |
这 3 个端点的实现入口都在主应用文件中:
- 提交分析:analyze_api
- 状态检查:is_analysis_complete
- 结果获取:get_results
官方文档的完整说明见 API-usage-and-engine-names.md。
第一步:用 /api/analyze 提交 IoC 文本
只需把原始日志、邮件正文或任何"垃圾输入"塞进 text 字段,Cyberbro 会自动解析出其中的 IP、域名、URL 等观测项,无需你手动清洗。同时在 engines 数组中指定要调用的查询引擎(引擎名称列表参考 API-usage-and-engine-names.md,比如免密钥的 reverse_dns、rdap_whois、ipquery、crtsh 等)。
用 cURL 发起请求(一行即可):
curl -X POST "http://localhost:5000/api/analyze" \
-H "Content-Type: application/json" \
-d '{"text": "cyberbro.net", "engines": ["reverse_dns", "rdap_whois"]}'
成功响应会立即返回一个任务 ID,分析在后台线程中异步执行,请求不会被卡住:
{
"analysis_id": "e88de647-b153-4904-91e5-8f5c79174854",
"link": "/results/e88de647-b153-4904-91e5-8f5c79174854"
}
拿到 analysis_id 后先保存好,它是后续两步的"通行证"。link 字段则是该次分析在 Web 界面中的查看地址,方便人工复核。
第二步:轮询 /api/is_analysis_complete 确认完成
⚠️ 关键习惯:必须先确认分析完成,再请求结果。多引擎并发查询时,过早拉取结果可能拿到的数据不完整。
curl "http://localhost:5000/api/is_analysis_complete/e88de647-b153-4904-91e5-8f5c79174854"
返回结果很简单:
{ "complete": true }
在自动化脚本里,把这条请求放进一个带休眠的循环(例如每 2 秒查一次,设置最大重试次数防止死循环),complete 变为 true 时立刻进入第三步。
第三步:用 /api/results 拉取完整 JSON 结果
分析完成后,用同一个 analysis_id 拉取结果:
curl "http://localhost:5000/api/results/e88de647-b153-4904-91e5-8f5c79174854"
返回的是一个 JSON 数组,每个元素对应一个被提取出的观测项,包含它的类型(type,如 FQDN)以及各引擎的查询结果,例如:
[
{
"observable": "cyberbro.net",
"type": "FQDN",
"reverse_dns": { "reverse_dns": ["172.67.197.226", "104.21.42.7"] },
"rdap_whois": {
"registrar": "Cloudflare, Inc.",
"creation_date": "2024-12-20",
"abuse_contact": "registrar-abuse@cloudflare.com"
}
}
]
拿到这份结构化 JSON 后,你就可以自由接入下游动作:写入 SIEM、生成告警、推送到工单系统,或喂给 LLM 生成情报简报。
进阶技巧:缓存机制与引擎选择
- 24 小时缓存:相同文本 + 相同引擎组合的 API 请求默认缓存 24 小时(结果直接复用,不重复消耗各服务的 API 配额)。可通过环境变量
API_CACHE_TIMEOUT调整,配置样例见 .env.sample。 - 绕过缓存:在请求体中加入
"ignore_cache": true,强制重新执行一次完整分析,适合情报时效性要求高的场景。 - 引擎用
name字段:engines数组里填的是各引擎的name(如virustotal、shodan、alienvault),完整清单及是否需要 API Key 的说明在 API-usage-and-engine-names.md。 - 自定义 API 前缀:把
API_PREFIX改成自己的值即可换掉/api路径,参考 Advanced-options-for-deployment.md。 - 想省事? 社区还维护了 Cyberbro CLI 命令行工具,可直接从终端批量提交 IOC 文件,介绍见 Cyberbro-CLI.md。
常见问题速答
Q:请求 /api/results 返回 404 怎么办? 说明该 analysis_id 不存在(拼写错误或数据库已被清理),请回到第一步重新提交分析。
Q:可以一次查询多个引擎吗? 可以。engines 是数组,想开多少个引擎就填多少个;引擎内部多线程并发执行,速度很快。
Q:没有 API Key 能用吗? 能。Cyberbro 内置了 reverse_dns、rdap_whois、ipquery、crtsh、urlscan 等大量免密钥引擎,先把流水线跑通,再逐步接入 VirusTotal、Shodan 等付费/密钥引擎。
总结
| 步骤 | 端点 | 一句话概括 |
|---|---|---|
| 1️⃣ | POST /api/analyze | 扔入原始文本,换回 analysis_id |
| 2️⃣ | GET /api/is_analysis_complete/<id> | 循环轮询直到 complete: true |
| 3️⃣ | GET /api/results/<id> | 领取结构化 JSON 结果 |
只需 3 次 HTTP 请求,你就拥有了一条可嵌入任何安全流水线的 IoC 自动化查询通道。更多部署细节可参考 Quick-start-&-Installation.md,动手试试吧!
【免费下载链接】cyberbro
A simple application that extracts your IoCs from garbage input and checks their reputation using multiple CTI services.
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



