安全决策报告

ct-registry

合法的临床试验注册检索工具,无恶意行为。代码行为与文档完全一致,XOR+base64 混淆的 Bearer token 已在 SKILL.md 中充分披露为公共共享凭据(ct-base §5),非隐藏凭证。唯一瑕疵为依赖无版本锁定,以及 config.json 预置了 auto_approve_endpoints。

安装决策优先 来源: ClawHub 扫描时间: 2026/8/23
文件 52
IOC 31
越权项 0
发现 4

为什么得出这个结论

0/4 个维度触发
通过
声明与实际能力

声明资源与推断能力基本一致。

复核
隐藏执行与外联

提取到 31 个一般风险产物,需要结合上下文判断。

通过
攻击链与高危发现

没有形成明确的恶意路径。

通过
依赖与供应链卫生

依赖结构存在,但暂未看到明显高危告警。

风险分是怎么被拉高的

内嵌混淆 Bearer token +10

config/keys.py 内嵌 XOR+base64 混淆的统一端点 token,SKILL.md §5 与 Coze key 节已充分披露为「公开共享凭据」并说明为公共工作负载身份(非个人密钥),ct-base §5 允许随包发布,意图合法

依赖无版本锁定 +10

requirements.txt 中 requests>=2.28、xlsxwriter>=3.0 无上限版本锁定,存在依赖供应链风险(ct-base supply_chain 指标)

最关键的证据

低危 供应链

依赖包无版本上限锁定

requirements.txt 中 requests、xlsxwriter、matplotlib 仅声明最低版本,无上限锁定,理论上可接收有 Breaking Change 的次版本更新

requirements.txt:1
固定为 requests>=2.28,<3.0 等格式;或使用 pip-compile 生成 pip-tools 锁文件
提示 文档欺骗

config.json 预置 auto_approve_endpoints

config/config.json 预置了两个第三方端点(ct-search.coze.site/run 和 ct-bugreport.coze.site/run)到 auto_approve_endpoints,规避了出站授权确认门。这两个端点在 SKILL.md §5 和 bug_report.py 中已充分披露用途,意图为避免每次调用重复弹确认框。

config/config.json:1
确认此预置行为符合组织安全策略;在高安全隔离环境中可清空该数组,由用户按需逐个确认
提示 代码混淆

内嵌混淆 token(已披露)

config/keys.py 使用 XOR+base64 混淆 Bearer token 并内嵌于 .py 文件,SKILL.md 明确说明此为公开共享凭据(ct-base §5 允许),混淆仅为防目录扫描/grep 命中明文,非安全加密。bug_report.py 同样内嵌了 bug-report 端点的混淆 token。

config/keys.py:26
确认 token 为公共凭据而非个人密钥;如需更高安全级别,通过 env CT_REGISTRY_COZE_TOKEN 覆盖内嵌值
提示 敏感访问

usage.json 和 usage.json.lock 写入用户目录

usage_guard.py 将配额计数器写入 ~/.workbuddy/skills/ct-registry/config/usage.json(含 demand_id 列表),为技能自身配额管理,非凭证泄露

scripts/usage_guard.py:26
无需处理,为正常配额跟踪文件

声明能力 vs 实际能力

网络访问 通过
声明 READ
→
推断 READ
SKILL.md permissions.network: optional; only public query terms egress
文件系统 通过
声明 WRITE
→
推断 WRITE
SKILL.md filesystem: writes report/Excel files to current working directory
命令执行 通过
声明 NONE
→
推断 READ
scripts/ct_registry.py: subprocess.run() 用于执行 normalize.py/export_xlsx.py 等本地脚本,行为合理但超出 filesystem-only 声明

可疑产物与外联

中危 外部 URL
https://ct-bugreport.coze.site/run

CHANGELOG.md:7

中危 外部 URL
https://clinicaltrials.gov/api/oas/v2

CTGOV_V2_PARAM_AUDIT.md:202

中危 外部 URL
https://clinicaltrials.gov/data-api/about-api/search-areas

CTGOV_V2_PARAM_AUDIT.md:203

中危 外部 URL
https://clinicaltrials.gov/find-studies/constructing-complex-search-queries

CTGOV_V2_PARAM_AUDIT.md:204

中危 外部 URL
https://ct-search.coze.site/run

README.md:57

中危 外部 URL
https://trialsearch.who.int/

adapters/download_docs.py:86

中危 外部 URL
https://www.chinadrugtrials.org.cn/

adapters/download_docs.py:87

中危 外部 URL
https://clinicaltrials.gov/

adapters/download_docs.py:88

中危 外部 URL
https://pubchem.ncbi.nlm.nih.gov/rest/pug

adapters/enrich_pubchem.py:11

中危 外部 URL
https://euclinicaltrials.eu/ctis-public-api/retrieve/

adapters/fetch_eu_ctr_docs.py:34

中危 外部 URL
https://api.dxy.cn/open/medical/cde.clinical.trials.basic.info

adapters/search_cde.py:14

中危 外部 URL
https://www.chinadrugtrials.org.cn/clinicaltrials.prosearch.dhtml

adapters/search_cde.py:89

依赖与供应链

包名版本来源漏洞备注
requests >=2.28 pip 否 无版本上限锁定
xlsxwriter >=3.0 pip 否 无版本上限锁定
matplotlib >=3.6 pip 否 可选,仅用于 PNG 图表;无版本上限锁定

文件构成

52 个文件 · 15702 行
Python 29 个文件 · 9475 行JSON 7 个文件 · 3309 行Markdown 14 个文件 · 2906 行Text 1 个文件 · 12 行
需关注文件 · 4
config/config.json JSON · 6 行
config.json 预置 auto_approve_endpoints
scripts/normalize.py Python · 674 行
https://clinicaltrials.gov/study/ · https://www.chictr.org.cn/showProj.html?proj= · https://drks.de/drks_web/navigate.php?navigation_id=trials&trial_id= · https://www.clinicaltrialsregister.eu/ctr-search/trial/ · https://jrct.niph.go.jp/latest-detail/ · https://www.anzctr.org.au/ · https://cris.nih.go.kr/cris/search/detail.do?seq= · https://www.isrctn.com/ · https://trialsearch.who.int/Trial2.aspx?TrialID= · https://www.drks.de/drks_web/navigate.do?navigationId=detail&
CHANGELOG.md Markdown · 143 行
https://ct-bugreport.coze.site/run
README_zh-CN.md Markdown · 321 行
其他文件 · ct_registry.py · search_ictrp.py · export_xlsx.py · i18n_messages.json · kw_localize.py · kw_lexicon.json +2

安全亮点

safe preview 默认为 preview-only,--run 才执行网络请求
所有第三方端点(ct-search.coze.site, ct-bugreport.coze.site)在 SKILL.md 中完整披露,无阴影网络行为
出站 payload 脱敏(PII 剥离)内置于 extsvc_client.py §5.50,身份证/手机/邮箱均被替换
AUTH-BLOCK 机制确保首次出站前用户确认(config.json 已预置已知安全端点)
usage_guard 每日 100 次配额限制防滥用,且 demand_id 去重避免重复计数
keyword breadth guard 防止宽泛关键词导致端点资源耗尽
无 eval/exec/动态代码执行,无 Base64 管道执行,无 curl/wget 远程脚本下载
代码行为与文档完全一致,无阴影功能(shadow behavior)
仅使用 requests 标准 HTTP 库,无 Playwright/浏览器自动化(符合 owner rule)
bug_report.py 硬白名单信封确保敏感数据不外传