mcpField
S
source-code-scanning

source-code-scanning

github.com/transilienceai安全598204 次安装13 周前更新
代码仓库

关于 source-code-scanning

面向开发者和安全审查人员的源代码安全审查技能。它结合适配技术栈的 SAST、依赖项与密钥扫描,以及高风险代码、恶意内容和移动应用二进制文件的人工检查,并按证据和修复建议整理发现。

主要功能

  1. 01识别语言与框架
  2. 02运行适配技术栈的 SAST
  3. 03扫描依赖项 CVE
  4. 04检测嵌入的密钥
  5. 05审查高风险代码路径
  6. 06分析移动应用二进制文件

适用场景

  1. 01发布前审查代码仓库
  2. 02检查依赖项中的已知 CVE
  3. 03调查可疑代码或后门
  4. 04检查 APK 或 IPA 中的嵌入密钥

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/transilienceai/communitytools --skill source-code-scanning

安装后在 Claude Code 中输入/source-code-scanning确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

reference/
dependency-cve-scanning.md
language-patterns.md
malicious-code.md
manual-review.md
sast-tools.md
secrets-detection.md

详细介绍

源代码安全审查

快速入门

  1. 识别 — 确认项目使用的语言、框架和包管理器
  2. 自动化 SAST — 运行适用于该技术栈的工具
  3. 依赖项 CVE — 扫描锁定文件和清单,检查已知 CVE
  4. 密钥扫描 — 检测硬编码的凭据和令牌
  5. 手动审查 — 跟踪高风险接收点(exec、eval、query、deserialize)
  6. 恶意代码 — 检查后门、混淆代码和可疑网络调用
  7. 报告 — 提供包含 CWE/CVE 参考、严重程度、PoC 和修复建议的发现

工作流

阶段 1:枚举
- Languages: ls **/*.{py,js,ts,java,go,rb,php,cs,rs}
- Packages: find package.json, requirements.txt, go.mod, pom.xml, Gemfile, composer.json, Cargo.toml
- Entry points: main(), index.*, app.*, server.*
- Config files: .env*, config.*, settings.*, *.yaml, *.toml
阶段 2:自动化 SAST

各语言对应的命令请参见 sast-tools.md。

主要工具:

  • 多语言:Semgrep(semgrep --config=auto .)
  • Python:Bandit(bandit -r . -f json)
  • JavaScript/TS:ESLint 安全插件、njsscan
  • Java:SpotBugs + FindSecBugs
  • Go:gosec(gosec ./...)
  • PHP:PHPCS Security Audit
  • Ruby:Brakeman(brakeman -o report.json)
  • 全部:CodeQL(通过 gh codeql)
阶段 3:依赖项 CVE 扫描

相关命令请参见 dependency-cve-scanning.md。

生态系统命令
npm/yarnnpm audit --json / yarn audit
Pythonpip-audit -r requirements.txt
Javadependency-check --scan .
Gogovulncheck ./...
Rubybundle audit
通用trivy fs . / grype dir:.
阶段 4:密钥检测

请参见 secrets-detection.md。

trufflehog filesystem . --json
gitleaks detect --source . -v
阶段 5:手动审查

重点检查高风险接收点 — 请参见 manual-review.md:

  • 注入接收点:exec、eval、query、system、popen
  • 反序列化:pickle.loads、ObjectInputStream、unserialize
  • 加密:硬编码密钥、弱算法(MD5、SHA1、DES、ECB)
  • 身份验证:JWT 验证、会话管理、RBAC 执行
  • 文件操作:使用用户输入构造路径
阶段 6:恶意代码

请参见 malicious-code.md:

  • 混淆字符串(base64、hex、charCode)
  • 库代码中的意外网络调用
  • 仿冒包名迹象
  • 滥用 postinstall/生命周期脚本
  • 依赖项中的隐藏后门

特定语言模式

Python、JS、Java、Go、PHP 和 Ruby 的相关内容请参见 language-patterns.md。

严重程度映射

严重程度CVSS示例
严重9.0+RCE、伴随数据外泄的 SQLi、绕过身份验证
高7.0-8.9存储型 XSS、SSRF、不安全的反序列化
中4.0-6.9反射型 XSS、信息泄露、IDOR
低0.1-3.9缺少安全标头、错误信息过于详细

输出格式

findings/
  <severity>-<vuln-type>-<location>.md   # One file per finding
evidence/
  <tool>-output.json                      # Raw tool output
summary-report.md                         # Executive summary

每项发现:CWE/CVE ID | 文件:行号 | 严重程度 | PoC | 修复建议

移动应用分析(APK/IPA)

收到移动应用二进制文件时:

  1. 提取:unzip app.apk -d extracted/(APK 是 ZIP 归档文件)
  2. 识别框架:React Native(assets/index.android.bundle)、Flutter(libflutter.so)、Xamarin 或原生应用
  3. React Native:JS 包是纯文本 — 搜索密钥、API 密钥、配置对象和硬编码令牌
  4. 编码后的密钥:搜索已知标志/密钥格式的 base64 前缀(例如,RkxBR 是 FLAG 的 base64 编码)。配置对象通常会在 debug、secret、apiKey 字段中以 base64 格式存储密钥
  5. 原生应用:使用 jadx 反编译 Java/Kotlin,检查 AndroidManifest.xml、strings.xml、BuildConfig
  6. 共享库:使用 strings 检查 .so 文件中的硬编码凭据

关键规则

  • 审查期间切勿执行不可信代码
  • 在验证之前,将所有发现视为潜在问题
  • 始终根据实际使用的版本交叉核对 CVE
  • 单独报告供应链问题(这些问题会影响所有用户)

评论

支持 Markdown