alon-github-security-audit
对 GitHub 仓库或本地目录进行全栈安全审计,检测恶意代码、后门和供应链攻击,生成报告写入本地审计目录。当用户说"审计下"、"审计一下"、"安全审计"、"检查下这个仓库"、"审计当前目录"、"审计本地项目"、"check repo"、"audit" 时立即触发。支持 GitHub URL 或本地目录。
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/alondai/alon-github-security-audit代码安全审计 Skill
对 GitHub 仓库或本地目录进行全面安全审计。
执行流程
第一步:确定审计目标
判断用户输入:
- 如果用户提供了 GitHub URL → 克隆仓库到临时目录
- 如果用户说 "当前目录"、"本地" 或没有提供 URL → 使用当前工作目录
情况 A:GitHub URL(需要克隆)
cd <skill-root> && \
python3 tools/clone_repo.py "<用户提供的GitHub URL>"
工具会返回克隆后的临时目录路径(格式:/tmp/github_audit_<repo>_<id>)。
注意:只下载最新代码,不安装任何依赖!
情况 B:本地目录(无需克隆)
直接使用当前工作目录(pwd)作为审计目标。
注意:
- 不需要克隆步骤
- 不需要清理步骤(不要删除用户的代码!)
- 报告中的"仓库地址"改为本地路径
第 1.5 步:确定审计模式
默认采用离线静态审计,不联网、不安装依赖、不执行目标仓库代码。
默认分析范围仅限于:
- 目标 GitHub 仓库的克隆副本
- 或用户明确指定的当前工作目录
除非用户明确扩展范围,否则不要主动读取 ~/.ssh、浏览器资料目录或其他无关 home 路径。
默认模式:离线静态审计
- 适用于所有项目
- 只读取源码、配置、脚本、静态资源、依赖定义
- 默认直接执行,无需额外确认
可选模式:联网漏洞情报检查
仅在满足以下条件时,才提示用户是否继续:
- 已完成离线静态审计
- 项目存在明确依赖生态线索,如
package.json、package-lock.json、npm-shrinkwrap.json - 用户需要更完整的依赖漏洞结论,或离线审计中发现依赖风险需进一步确认
推荐交互方式:
先完成离线静态审计,再补一句:
发现该项目包含 Node.js 依赖定义。我可以继续执行联网漏洞情报检查(例如基于 lockfile 的依赖漏洞分析),这会访问外部漏洞数据库。是否继续?
不要在一开始就默认询问,除非用户明确说要做“完整安全审计”或“包含依赖漏洞扫描”。
第 2 步:来源与权限预检(安装/引入场景强烈建议执行)
如果审计对象是 Skill / Agent 工具 / 自动化脚本仓库,在进入深度静态审计前,先做一轮来源与权限预检。这一步是前置分诊,不替代后续深度审计。
2.0 预检目标
- 判断目标是否适合作为“可安装 / 可引入”的候选
- 识别是否存在与声明用途明显不匹配的权限需求
- 为后续深度审计提供优先级和关注面
2.1 来源与可信度检查
优先回答以下问题:
- 来源是什么:GitHub、技能市场、私有分享、聊天内容粘贴、压缩包
- 作者是否可识别,是否能对应到稳定的发布主体
- 最近更新时间、版本信息、仓库活跃度是否异常
- 是否存在第三方评价、历史讨论、已知争议或安全警告
注意:
- 来源可信度只用于辅助排序,不得单独作为“安全”依据
- 高 star、高下载量、知名作者,均不能替代代码审计
2.2 权限面与外联面预检
这一步是在评估审计对象自己请求的权限,不是要求本 skill 默认读取这些位置。优先梳理:
- 审计对象声明或暗示需要读取哪些路径:工作区、家目录、凭据目录、浏览器数据、Agent 记忆文件
- 审计对象声明或暗示需要写入哪些路径:工作区、系统配置、shell 配置、自动启动位置
- 审计对象声明或暗示会执行哪些命令:shell、包管理器、系统服务、定时任务、浏览器自动化
- 审计对象是否需要联网:访问哪些域名、API、Webhook、IP、下载源
- 这些权限是否与其声明用途最小匹配
边界说明:
- 本 skill 默认不会因为做预检就去读取
~/.ssh、浏览器数据或其他敏感位置 - 这里的任务是审查目标仓库是否请求或尝试访问这些位置,以及这种权限是否与用途匹配
如果权限需求明显超出用途,例如“格式化笔记”却要求读取 ~/.ssh、浏览器 Cookie、系统启动项,应在报告中提升风险等级。
2.3 预检输出要求
在正式五步分析前,先形成以下简表:
- 来源与可信度
- 权限面与外联面
- 初步安装建议:
可安装 / 谨慎安装 / 不建议安装
2.4 安装建议映射
若当前审计对象属于 Skill / Agent 安装场景,可在审计结论之外再映射一层安装建议:
| 审计结论 | 安装建议 | 含义 |
|---|---|---|
Safe | 可安装 | 当前静态证据下未发现恶意闭环,权限需求与用途基本匹配 |
Risky | 谨慎安装 | 存在可疑点、信息不足或权限超界,不能直接放行 |
Dangerous | 不建议安装 | 已形成恶意执行、窃密、外传或持久化闭环 |
第 3 步:执行安全审计(核心步骤)
审计标准:严格按照以下五步分析法执行,不依赖额外文档才能完成核心审计。
重要:
- 你是区块链安全专家和恶意软件逆向工程师
- 采用零信任原则 - 假设代码中一定有后门
- 必须覆盖:代码逻辑、配置文件、静态资源、依赖定义、说明文档、Agent / Tool 配置文件
五步分析:
- 网络指纹与硬编码审计
- 敏感数据窃取行为分析
- 代码混淆与隐藏执行
- 供应链与安装脚本
- 最终判决
输出要求:
- 【高危实体清单】
- 【逻辑风险点】
- 【补充安全检查】(如适用)
- 【结论】(明确"安全"或"极度危险")
如遇到争议项(例如存在可疑信号,但上下文不足以直接定性),请做静态二次定性。该步骤仍然是只读分析,不得执行目标代码。优先复核:
- 可达性:危险逻辑是否真的在正常执行路径上,还是仅存在于测试、文档或不可达分支
- 数据流:敏感数据是否真的进入网络请求、上传逻辑、子进程或其他外传链路
- 命令链:用户输入、环境变量、配置值是否最终进入 shell、
exec、spawn、subprocess等执行点 - 文档上下文:危险命令是否只是说明文字,还是会被 Agent、脚本或自动化流程消费
- 网络实体性质:域名、IP、Webhook、下载源是否合理,是否与执行链或外传链形成闭环
- 权限与用途匹配:请求的读取路径、写入路径、联网目标、执行能力是否明显超出声明用途
- 持久化与日志清理:是否存在后台驻留、定时任务、自启动、日志清理或历史清除等迹象
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-alondai-alon-github-security-audit": {
"enabled": true,
"auto_update": true
}
}
}