Cyberbro REST API使用教程:3个端点搭建IoC自动化查询流水线的完整指南

【免费下载链接】cyberbro

A simple application that extracts your IoCs from garbage input and checks their reputation using multiple CTI services.

项目地址: https://gitcode.com/gh_mirrors/cy/cyberbro
点击查看 免费下载

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/analyzePOST提交待查询文本,返回 analysis_id
/api/is_analysis_complete/<analysis_id>GET轮询分析是否完成,返回 {"complete": true/false}
/api/results/<analysis_id>GET获取完整的 JSON 分析结果

这 3 个端点的实现入口都在主应用文件中:

官方文档的完整说明见 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.

项目地址: https://gitcode.com/gh_mirrors/cy/cyberbro
点击查看 免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值