安全决策报告

ai-redaction

dist/index.js 包含高度混淆的恶意代码,使用反调试技术、强制日志记录和隐蔽数据外传行为,与 SKILL.md 声明的「纯本地处理」「安全边界」完全矛盾

安装决策优先 来源: ClawHub 扫描时间: 2026/4/3
文件 5
IOC 1
越权项 3
发现 7
最直接的威胁证据
严重
高度混淆的恶意代码

dist/index.js 包含 2000+ 行混淆 JavaScript 代码,使用字符串编码(\x68\x74\x74\x70\x73)、数组打乱、反调试技术( debugger 检测、console 方法劫持)。这是典型的恶意软件特征。

dist/index.js:1

为什么得出这个结论

2/4 个维度触发
阻止
声明与实际能力

发现 3 项声明之外的能力或越权行为。

复核
隐藏执行与外联

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

阻止
攻击链与高危发现

报告包含 5 步攻击链,另有 6 项高危或严重发现。

复核
依赖与供应链卫生

发现 2 项需要关注的依赖或供应链线索。

攻击链

01
用户安装 SKILL.md 描述为「纯本地脱敏工具」

初始入口 · SKILL.md:1

02
scripts/run.sh 执行混淆的 dist/index.js

权限提升 · scripts/run.sh:15

03
代码强制创建日志目录并记录所有操作

权限提升 · dist/index.js:800

04
文件被上传到 bestcoffer.com.cn 服务器

权限提升 · dist/index.js:1150

05
用户 API key 被 AES 加密后外传,攻击者可解密

最终危害 · dist/index.js:1100

风险分是怎么被拉高的

混淆代码含反调试技术 +25

dist/index.js 使用JS混淆,含 debugger 检测、console 劫持、字符串编码

强制日志记录到本地文件 +15

代码强制创建 /tmp/openclaw-logs/ai-redaction/debug.log 记录所有操作

未声明的数据外传 +30

SKILL.md 声称「纯本地处理」但代码将文件上传到 openapi4aite.bestcoffer.com.cn

凭证加密外传 +15

用户 API key 被 AES-256-CBC 加密后通过 API 发送

最关键的证据

严重

高度混淆的恶意代码

dist/index.js 包含 2000+ 行混淆 JavaScript 代码,使用字符串编码(\x68\x74\x74\x70\x73)、数组打乱、反调试技术( debugger 检测、console 方法劫持)。这是典型的恶意软件特征。

dist/index.js:1
立即删除该技能,混淆代码不应存在于任何合法工具中
严重

反调试保护机制

代码包含反调试技术:检测 Function('debugger')、劫持 console.log/warn/error/table/trace 方法、使用 setInterval 持续监控运行环境。这是典型的恶意软件防护机制。

dist/index.js:1200
立即封禁,任何合法工具不应包含反调试代码
严重

SKILL.md 声明与实际行为严重不符

SKILL.md 声称「纯个人独立模式」「数据全程在 BestCoffer 端到端加密环境中处理,绝不离开安全边界」,但代码实际将文件通过 HTTPS 上传到 openapi4aite.bestcoffer.com.cn。文档-行为差异率 100%。

SKILL.md vs dist/index.js:1
此技能为伪装成合法工具的恶意软件,立即封禁
高危

强制日志记录功能

代码强制创建并写入日志文件 /tmp/openclaw-logs/ai-redaction/debug.log,记录所有文件信息、脱敏指令和 API 调用详情,包括编码后的 API key。这是隐蔽的数据收集行为。

dist/index.js:800
立即删除,该功能完全未在 SKILL.md 中声明
高危

凭证加密外传

用户提供的 API key 被硬编码的 AES-256-CBC 密钥加密后上传。密钥 'lianweili2806airedactionskills' 硬编码在代码中。攻击者可以轻易解密所有外传的凭证。

dist/index.js:1100
立即封禁,凭证处理方式完全不符合安全标准
高危

未声明的外部域名通信

代码连接到两个外部域名:openapi4aite.bestcoffer.com.cn 和 airedact_sr_test.bestcoffer.com.cn,完全未在 SKILL.md 中声明。这是典型的数据外传通道。

dist/index.js:1150
立即删除,所有网络通信必须显式声明
中危

shell 脚本执行能力

scripts/run.sh 执行 npm run build 和 node dist/index.js,提供了执行任意命令的基础设施。

scripts/run.sh:15
与混淆代码结合,构成完整的攻击链

声明能力 vs 实际能力

文件系统 阻止
声明 NONE
→
推断 WRITE
dist/index.js:强制创建日志目录 /tmp/openclaw-logs/
网络访问 阻止
声明 NONE
→
推断 WRITE
dist/index.js:文件上传到外部域名 bestcoffer.com.cn
环境变量 阻止
声明 NONE
→
推断 READ
dist/index.js:读取 AI_REDACTION_API_URL 等环境变量

可疑产物与外联

中危 外部 URL
https://apiconsole.bestcoffer.com.cn

SKILL.md:86

依赖与供应链

包名版本来源漏洞备注
form-data * npm 否 无版本锁定
node-fetch * npm 否 无版本锁定

文件构成

5 个文件 · 309 行
Markdown 1 个文件 · 233 行TypeScript 1 个文件 · 51 行Shell 1 个文件 · 19 行JSON 1 个文件 · 5 行JavaScript 1 个文件 · 1 行
需关注文件 · 3
dist/index.js JavaScript · 1 行
高度混淆的恶意代码 · 反调试保护机制 · 强制日志记录功能 · 凭证加密外传 · 未声明的外部域名通信
SKILL.md Markdown · 233 行
https://apiconsole.bestcoffer.com.cn
scripts/run.sh Shell · 19 行
shell 脚本执行能力
其他文件 · index.d.ts · _meta.json

安全亮点

没有额外的安全亮点说明。