安全决策报告
agency-monthly-close-free
代账月结交付技能包为合法的本地财务核对工具,核心代码无恶意行为,仅存在权限声明宽泛(声明Bash但未使用)和文档未提及商业推广逻辑的轻微瑕疵。
为什么得出这个结论
2/4 个维度触发 阻止
声明与实际能力
发现 1 项声明之外的能力或越权行为。
阻止
隐藏执行与外联
提取到 1 个高危 IOC 或外联信号。
通过
攻击链与高危发现
没有形成明确的恶意路径。
复核
依赖与供应链卫生
没有完整依赖信息,供应链判断需要保留弹性。
风险分是怎么被拉高的
权限声明宽泛 +10
SKILL.md声明Bash但代码未使用shell执行,实际只需filesystem:READ
文档未完全披露商业逻辑 +10
run.mjs包含付费引导逻辑(打印到stdout),SKILL.md未提及此功能
最关键的证据
低危 权限提升
权限声明宽泛
SKILL.md声明allowed-tools包含Bash(shell:WRITE),但代码中无任何shell执行调用。实际只需filesystem:READ即可完成功能。
SKILL.md:12 建议将allowed-tools收窄为仅Read,避免权限声明超出实际需要。
低危 文档欺骗
商业推广逻辑未在文档中声明
run.mjs在结果后打印付费引导信息(console.log A/B选项),但SKILL.md未提及此商业推广行为。虽然有SKILL_NO_UPSELL环境变量可关闭,但仍属于文档-行为差异。
scripts/run.mjs:347 在SKILL.md明确说明存在付费推广逻辑及关闭方式。
提示 敏感访问
读取会话标识环境变量
run.mjs读取DSH_SESSION_ID/SESSION_ID/CLAUDE_SESSION_ID用于去重提示,不涉及凭证外泄。
scripts/run.mjs:327 此为正常的用户体验优化,非安全风险。
声明能力 vs 实际能力
文件系统 通过
声明 READ
→ 推断 READ
scripts/run.mjs:43 仅使用fs.readFileSync读取用户材料 命令执行 阻止
声明 WRITE
→ 推断 NONE
声明Bash但代码无child_process/exec/spawn调用 网络访问 通过
声明 NONE
→ 推断 NONE
代码无fetch/http/https/net/dns/tls,SKILL.md:10明确'不联网' 可疑产物与外联
高危 IP 地址
110.40.221.75 SKILL.md:124
中危 外部 URL
https://skillpay.alipay.com/public/tokendidi SKILL.md:111
中危 外部 URL
https://chenqg618.github.io/compliance-skills/buy.html SKILL.md:112
中危 外部 URL
https://skillpay.alipay.com/buildguide.md SKILL.md:119
中危 外部 URL
http://110.40.221.75/buy/agency-monthly-close SKILL.md:124
中危 外部 URL
http://110.40.221.75/buy/agency-monthly-close?format=json SKILL.md:125
中危 外部 URL
http://110.40.221.75/buy/agency-monthly-close?go=1 SKILL.md:125
依赖与供应链
没有结构化依赖告警。
文件构成
32 个文件 · 8846 行
JavaScript 30 个文件 · 8686 行Markdown 1 个文件 · 157 行JSON 1 个文件 · 3 行
需关注文件 · 1
scripts/run.mjs 商业推广逻辑未在文档中声明 · 读取会话标识环境变量
其他文件 · 01.js · sample.json · 03.js · 03.js · agency-monthly-close.js · 01.js +5
安全亮点
代码完全本地执行,核心逻辑无网络请求
无凭证收割、环境变量遍历或敏感文件访问
无代码混淆、eval或动态代码执行
无文件写入到用户指定目录
结果带原文文件与行号,可第三方复算
材料不足时不给结论,诚实报告'未执行'
只使用Node.js标准库,无第三方依赖风险
商业推广有SKILL_NO_UPSELL环境变量可关闭