名称: 静态分析 描述: “用于安全漏洞检测的静态分析工具包,包含CodeQL、Semgrep和SARIF解析。适用于运行静态分析扫描、编写自定义检测规则或处理分析结果时。” 允许工具:
- Bash
- Read
- Write
- Glob
- Grep
静态分析
全面的静态分析工具包,用于安全漏洞检测,基于Trail of Bits应用安全测试手册。
使用场景
- 在代码库(任何语言)上运行安全扫描
- 编写自定义CodeQL查询或Semgrep规则
- 处理和分析来自分析工具的SARIF输出文件
- 在CI/CD管道中设置静态分析
- 比较和聚合多个工具的结果
不适用场景
- 从零开始编写Semgrep规则(使用semgrep-rule-creator技能代替)
- 动态分析或模糊测试(使用testing-handbook-skills)
- 智能合约审计(使用security-building-secure-contracts)
子技能
| 工具 | 目的 | 最佳应用 | 技能路径 |
|---|---|---|---|
| CodeQL | 语义代码分析与数据库查询 | 深度数据流跟踪、污点分析、跨函数分析 | skills/codeql/SKILL.md |
| Semgrep | 快速模式匹配静态分析 | 快速扫描、自定义规则、CI集成、轻量级检查 | skills/semgrep/SKILL.md |
| SARIF解析 | 解析和处理SARIF结果文件 | 聚合结果、CI/CD集成、多工具分类 | skills/sarif-parsing/SKILL.md |
工具选择指南
| 场景 | 推荐工具 |
|---|---|
| 快速安全扫描 | Semgrep |
| 深度漏洞分析 | CodeQL |
| 数据流/污点跟踪 | CodeQL(最佳)或Semgrep污点模式 |
| 自定义模式检测 | Semgrep(更简单)或CodeQL(更强大) |
| CI/CD集成 | Semgrep(最快)+ CodeQL(彻底) |
| 处理扫描结果 | SARIF解析 |
| 非构建代码库 | Semgrep(适用于不完整代码) |
快速入门
Semgrep(快速扫描)
# Install
pip install semgrep
# Run with recommended rulesets
semgrep --config=auto .
# Run specific ruleset
semgrep --config=p/security-audit .
CodeQL(深度分析)
# Create database
codeql database create mydb --language=python --source-root=.
# Run security queries
codeql database analyze mydb codeql/python-queries:codeql-suites/python-security-extended.qls --format=sarif-latest --output=results.sarif
SARIF处理
# Parse results with jq
jq '.runs[].results[] | {ruleId, message: .message.text, location: .locations[0].physicalLocation.artifactLocation.uri}' results.sarif
工作流程
- 快速扫描 使用Semgrep获取快速结果
- 深度分析 使用CodeQL进行彻底覆盖
- 聚合结果 使用SARIF解析
- 分类发现 按严重性和可利用性
- 自定义规则 用于项目特定模式
相关技能
- semgrep-rule-creator - 用于编写生产质量Semgrep规则的专用技能
- variant-analysis - 使用CodeQL/Semgrep模式查找类似漏洞
- security-differential-review - 使用静态分析发现进行安全重点代码审查