feat: add qianxin-tianyan-platform service package#214
Conversation
|
Review 阻塞:这个 PR 标题是新增 |
|
提供的截图和日志,都不是对 octobus 做的测试? |
…assets, threat hunting, whitelist
…s from 26 doc files)
be815c7 to
6c356c9
Compare
|
PR Title: feat: add qianxin-tianyan-platform service package Commit: 本次 PR 新增奇安信天眼平台(QIANXIN TianYan)OctoBus 服务包,包含:
核心实现
另外测试中的 mock Headers 直接实现了 |
…correct endpoints
|
@monkeyscan review 一下这个 pr |
|
PR Title: feat: add qianxin-tianyan-platform service package Commit: 本次 PR 新增奇安信天眼分析平台 OctoBus 服务包,包含9个RPC方法及配套的三步认证流程(login_key派生→access_token→session cookie/CSRF token)。主实现文件约622行,测试约1084行。 已确认两个历史发现仍然有效:
本次审查新增两个发现:
其余代码结构清晰,proto/schema/service.json 定义一致,各 handler 参数校验与错误映射完整。建议优先修复认证 cookie 获取问题并同步更新测试 mock。 |
…2 status check
- Replace headers.get('set-cookie') with headers.getSetCookie() to correctly
retrieve Set-Cookie headers in Node.js 18+ where the Fetch spec forbids
reading set-cookie via get()
- Parse each cookie individually from the array instead of splitting on commas,
avoiding breakage when cookie attributes contain commas (e.g. Expires)
- Add HTTP status validation for auth step2 so non-2xx responses throw a clear
PERMISSION_DENIED or UNAVAILABLE error instead of a misleading csrf-token error
- Update test mock to implement getSetCookie() and use array format for multiple
cookies; add two new tests covering step2 HTTP error scenarios
|
PR Title: feat: add qianxin-tianyan-platform service package Commit: 本次修复了奇安信天眼平台认证流程中的三个问题:1)在认证第二步添加了 HTTP 状态码检查,使 401/403 返回 PERMISSION_DENIED,其他非 2xx 返回 UNAVAILABLE,避免了错误响应被错误解析为 HTML 导致误导性异常;2)将 Cookie 读取方式从 |
|
@innomentats 已补充 OctoBus Connect 真实设备测试截图,请再看一下 |
|
修下ci |
|
MonkeyScan 正在评审本次 push 新增到 PR 的变更,完成后会更新到本评论中,请稍后刷新查看。 |
|
@eetoc 请评审 |
|
@innomentats 请查查并合并 |
变更概述
@chaitin-ai/octobus-sdk开发的奇安信天眼威胁监测与分析系统 Service Package。接入设备信息
已实现方法
ListAlarms:查询威胁告警列表,支持按级别/时间/IP/IOC/处置状态多条件过滤,IP 参数自动 gzip+base64 编码UpdateAlarmStatus:批量更新告警处置状态(0=未处置 1=已处置 6=忽略 7=误报)SearchLogs:原始日志检索,支持关键词及 SPL 过滤,返回命中_source记录列表及字段元数据SPLSearch:SPL 专家模式检索,返回结构化字段列表与结果行ListAssets:查询资产列表,支持按 IP/名称/分组/端口/类型过滤ListVulnerabilities:查询资产漏洞列表,支持按 IP/名称/威胁级别过滤ThreatHuntSearch:威胁狩猎,以 IP/域名/URL/MD5/邮箱为关键词构建威胁关联图(nodes + links)AddFlowWhitelist:将 IP/IOC/威胁名/规则链加入流量传感器白名单GetCompromisedHostStatus:查询主机失陷状态,返回告警数、风险值、IOC 命中数本地验证
验证结果:
真实设备联调验证
本地接口跑通,等真实设备严重
config.json
{
"restBaseUrl": "https://你的天眼地址",
"timeoutMs": 15000,
"tlsInsecureSkipVerify": true
}
secret.json
{
"login_key": "从后台拿到的免密密钥",
"username": "tapadmin"
}
octobus call --service qianxin-tianyan-platform
--config config.json
--secret secret.json
list-alarms
--level 3
--page_size 10
等待真实设备验证,需要的9个接口
┌─────────────────────────────┬──────────────────────────────────┐
│ 命令 │ 说明 │
├─────────────────────────────┼──────────────────────────────────┤
│ list-alarms │ 查告警列表,过滤级别/时间/IP/IOC │
├─────────────────────────────┼──────────────────────────────────┤
│ update-alarm-status │ 更新告警处置状态 │
├─────────────────────────────┼──────────────────────────────────┤
│ search-logs │ 日志关键词搜索 │
├─────────────────────────────┼──────────────────────────────────┤
│ spl-search │ SPL 专家语句查询 │
├─────────────────────────────┼──────────────────────────────────┤
│ list-assets │ 资产查询 │
├─────────────────────────────┼──────────────────────────────────┤
│ list-vulnerabilities │ 漏洞列表 │
├─────────────────────────────┼──────────────────────────────────┤
│ threat-hunt-search │ IOC 威胁溯源图 │
├─────────────────────────────┼──────────────────────────────────┤
│ add-flow-whitelist │ 添加流量白名单 │
├─────────────────────────────┼──────────────────────────────────┤
│ get-compromised-host-status │ 查主机失陷状态 │
└─────────────────────────────┴──────────────────────────────────┘
联调验证截图
安全说明
tlsInsecureSkipVerify默认关闭,README 中已注明仅建议在可信网络环境中使用。已知限制
csrf_token,无会话缓存;高频调用场景建议在调用方做速率控制。SearchLogs/SPLSearch命中结果量大时建议通过limit分批拉取,本包不做自动翻页。AddFlowWhitelist仅支持新增流量传感器白名单;删除/编辑白名单、文件/邮件白名单未纳入本包。ThreatHuntSearch)仅返回第一层关联节点;扩展节点接口未纳入本包。