DSH Security Audit
简体中文 | English
dsh-security-audit 是面向 DeepSeek Harness 的本地优先安全审计 Skill。它能够在不执行被审计代码的前提下,检查 DSH Skills、profile 插件、Bundle/Cordis 配置、MCP 服务、软件包供应链设置以及部分运行时暴露风险。
扫描器提供的是尽力而为的风险检测,而不是安全认证。报告没有发现并不能证明某个扩展绝对安全。
检查范围
- 硬编码 API Key、令牌、私钥、密码和其他密钥形态,并自动脱敏报告证据。
- 敏感环境变量或文件读取与外部网络 sink 同时出现的数据外传组合链。
- 下载后执行、动态求值、子进程、破坏性命令以及不透明二进制载荷。
- macOS LaunchAgents、systemd 用户服务、cron、Shell 启动文件、Git hooks、SSH 持久化、隧道和公开监听。
- 宿主根目录或容器 volume、Docker socket、远程/FUSE 挂载、Kubernetes 凭据以及提权能力。
- npm/pnpm 生命周期脚本、
allowBuilds、浮动版本以及未固定到 commit 的远程依赖。 - DSH
dsh.bundle.patch、Cordis!!js、危险权限组合、遥测导出和 profile 配置。 - MCP stdio 命令、包运行器、敏感环境变量透传以及不安全的远程 HTTP endpoint。
- Prompt injection、隐藏 HTML 指令、零宽/双向 Unicode、Base64/十六进制载荷及解码后的高风险内容。
- 可选 SHA-256 基线、Markdown/JSON/SARIF 输出、CI 严重度阈值和只读运行时姿态检查。
DSH 专用安全假设
DSH 的 workspace-write 模式主要限制文件写入范围,它不会自动隔离文件读取、网络访问或进程可见性。本地凭据文档仍可能被同一 OS 用户身份运行的进程读取。MCP stdio 命令和获准的软件包生命周期脚本会在 agent 文件写入沙箱之外执行。
因此,本 Skill 永远不会导入被审计模块、运行软件包生命周期脚本、启动 MCP server 或执行扫描到的二进制文件。
安装
将仓库克隆到用户级 DSH Skill 根目录:
mkdir -p ~/.dsh/skills
git clone https://github.com/yhny1001/dsh-security-audit.git ~/.dsh/skills/dsh-security-audit
DSH 会将它识别为 dsh-security-audit。正在运行的 Web 进程通常会通过文件系统 watcher 发现新 Skill;如果没有出现,重启 DSH。
在 DSH 中使用
显式调用:
/dsh-security-audit 审计当前 DSH 环境、相关 Skill 和插件,并包含运行时检查。
该 Skill 会指示 agent 运行内置的零依赖 Node.js 扫描器,在不执行可疑样本的情况下确认高风险发现,并生成包含证据的审计报告。
直接使用扫描器
需要 Node.js 22.19 或更高版本,与当前 DSH 的运行时最低版本一致。
node ~/.dsh/skills/dsh-security-audit/scripts/dsh-security-audit.mjs \
--cwd "$PWD" \
--runtime \
--format markdown
在安装前扫描一个扩展目录:
node scripts/dsh-security-audit.mjs \
--cwd "$PWD" \
--target /path/to/untrusted-skill-or-plugin \
--format json
CI/SARIF 示例:
node scripts/dsh-security-audit.mjs \
--cwd "$PWD" \
--format sarif \
--output dsh-security-audit.sarif \
--fail-on high
运行 node scripts/dsh-security-audit.mjs --help 可查看 profile 过滤、深层依赖扫描、报告格式、文件限制和基线选项。
基线
创建基线会写入只包含摘要的 JSON 文档,必须由操作者显式执行。基线文件应放在所有被扫描根目录之外:
node scripts/dsh-security-audit.mjs \
--cwd "$PWD" \
--write-baseline ../dsh-security-baseline.json \
--format json
之后可以只读比较:
node scripts/dsh-security-audit.mjs \
--cwd "$PWD" \
--baseline ../dsh-security-baseline.json \
--format markdown
设计与同类项目
本项目的威胁分类参考了 OWASP Agentic Skills Top 10、OWASP AI Agent Security、Cisco AI Defense Skill Scanner、NVIDIA SkillSpector 和 Snyk Agent Scan。实现代码为独立编写,并额外加入 DSH 专用的 profile、Bundle、Cordis、MCP、权限、遥测和凭据检查。
局限性
- 正则和文件级 source/sink 关联不是完整的跨模块 taint analysis。
- 混淆、原生代码、运行时生成的载荷和新型攻击手法可能绕过静态分析。
- 运行时检查是某个时间点的快照,并受当前 OS 用户可见范围限制。
- 离线模式不会查询实时 CVE、软件包撤销、发布者信誉或恶意样本数据库。
- 高价值环境还应配合人工审查、不可变依赖固定、网络出口控制、隔离、EDR 和审计日志。
许可证
本项目基于 MIT License 开源。
No comments yet
Be the first to share your take.