Skill: 43622283/li-codeql-llm (version 1.0.0)

--- name: Li_codeql_LLM description: "CodeQL 安全扫描与 LLM 智能分析融合工具。自动检测 CodeQL 安装、扫描指定目录、生成漏洞报告、LLM 分析、Jenkins 集成、输出验证 Checklist。" metadata: { "openclaw": { "requires": { "bins": ["codeql"] }, "install": [ { "id": "codeql", "kind": "manual", "label": "安装 CodeQL CLI", "instructions": "从 https://github.com/github/codeql-cli-binaries 下载或使用系统包管理器安装" } ], } } --- # CodeQL + LLM 融合安全扫描 Skill ## 🎯 核心功能 本 Skill 实现 CodeQL 扫描与 LLM 智能分析的完整自动化流程： 1. **自动检测** - 检查 CodeQL 是否安装及版本 2. **安全扫描** - 扫描指定目录或靶机项目 3. **报告生成** - 生成 SARIF 格式和 Markdown 格式报告 4. **LLM 分析** - 智能分析扫描结果，识别误报，给出优先级 5. **验证清单** - 生成可执行的漏洞验证 Checklist --- ## 📦 前置要求 ### 必需 - **CodeQL CLI** (v2.10.0+) - **Python 3.11+** (用于创建数据库) - **uv** 或 **pip** (Python 包管理) ### 可选 - **Node.js** (用于某些语言的分析) - **Java JDK** (用于 Java 项目分析) --- ## 🚀 快速开始 ### 1. 检查环境 ```bash # 检查 CodeQL 是否安装 codeql --version # 如果未安装，下载并解压 wget https://github.com/github/codeql-cli-binaries/releases/latest/download/codeql-linux64.zip unzip codeql-linux64.zip -d /opt/codeql ln -s /opt/codeql/codeql/codeql /usr/local/bin/codeql ``` ### 2. 使用 Skill 在对话中直接请求： ``` 扫描 /path/to/project 的安全漏洞 ``` 或指定靶机目录： ``` 扫描 /root/devsecops-python-web 靶机，生成验证清单 ``` --- ## 📋 命令参考 ### 基础扫描 ```bash # 扫描当前目录 codeql database create codeql-db --language=python --source-root=. codeql database analyze codeql-db python-security-extended.qls \ --format=sarif-latest --output=results.sarif ``` ### 通过 Skill 调用 在 OpenClaw 会话中： ``` /codeql_scan /path/to/project ``` 或直接描述需求： ``` 帮我扫描这个项目，用 CodeQL 分析安全问题，然后生成报告 ``` --- ## 📊 工作流程 ### Step 1: 环境检测 ```bash # 检查 CodeQL which codeql && codeql --version # 检查支持的語言 codeql resolve languages ``` ### Step 2: 创建数据库 ```bash # Python 项目 codeql database create codeql-db \ --language=python \ --source-root=/path/to/project \ --overwrite ``` ### Step 3: 运行分析 ```bash # 下载查询包 codeql pack download codeql/python-queries # 运行分析 codeql database analyze codeql-db \ /root/.codeql/packages/codeql/python-queries/*/codeql-suites/python-security-extended.qls \ --format=sarif-latest \ --output=codeql-results.sarif ``` ### Step 4: LLM 分析 将 SARIF 结果发送给 LLM： ```python import json with open('codeql-results.sarif') as f: data = json.load(f) # 提取关键信息 results = data['runs'][0]['results'] for r in results: print(f"规则：{r['ruleId']}") print(f"描述：{r['message']['text']}") print(f"位置：{r['locations'][0]['physicalLocation']['artifactLocation']['path']}") ``` LLM 分析内容： - 漏洞严重程度排序 - 误报识别 - 修复建议 - 利用难度评估 ### Step 5: 生成报告 生成以下文件： 1. **CODEQL_SECURITY_REPORT.md** - 完整扫描报告 2. **漏洞验证_Checklist.md** - 可执行的验证清单 3. **codeql-results.sarif** - 原始结果（可上传 GitHub Security） --- ## 🎯 使用场景 ### 场景 1: 靶机漏洞分析 ``` 扫描 /root/devsecops-python-web 靶机 - 识别所有安全漏洞 - 按 OWASP Top 10 分类 - 生成利用 payload - 输出验证 Checklist ``` ### 场景 2: 项目安全审计 ``` 扫描 /path/to/my-project - 检测严重和高危漏洞 - 给出修复优先级 - 生成审计报告 ``` ### 场景 3: CI/CD 集成 ```yaml # .github/workflows/security.yml - name: CodeQL Scan run: | codeql database create db --language=python codeql database analyze db python-security-extended.qls \ --format=sarif-latest --output=results.sarif - name: LLM Analysis run: | # 调用 LLM 分析 results.sarif # 生成修复建议 ``` --- ## 📁 输出文件说明 ### 1. CODEQL_SECURITY_REPORT.md 包含： - 执行摘要（漏洞总数、分布） - 按严重程度分类的详细信息 - 每个漏洞的代码位置、描述、修复建议 - 统计图表 ### 2. 漏洞验证_Checklist.md 包含： - 可打印的检查清单 - 每个漏洞的验证步骤 - 测试 payload 和命令 - 预期结果 - 截图/日志记录项 ### 3. codeql-results.sarif - 标准 SARIF 格式 - 可上传到 GitHub Security - 可用 VS Code SARIF Viewer 查看 --- ## 🔧 配置选项 ### 扫描语言 ```bash # Python --language=python # JavaScript --language=javascript # Java --language=java # Go --language=go # 多语言 --language=python,javascript ``` ### 查询套件 ```bash # 安全扩展（推荐） python-security-extended.qls # 代码质量 python-code-quality.qls # 安全与质量 python-security-and-quality.qls # 代码扫描（默认） python-code-scanning.qls ``` ### 输出格式 ```bash # SARIF（推荐） --format=sarif-latest # CSV --format=csv # JSON --format=json ``` --- ## 🐛 常见问题 ### Q: CodeQL 数据库创建失败？ **A**: 确保项目可以正常构建： ```bash # Python 项目 python -m pip install -r requirements.txt # 然后创建数据库 codeql database create db --language=python ``` ### Q: 扫描结果太多？ **A**: 使用过滤： ```bash # 只看严重和高危 codeql database analyze db python-security-extended.qls \ --rerun --checkout=latest \ --sarif-category=severity \ --output=results.sarif ``` ### Q: 如何减少误报？ **A**: 1. 使用 `python-security-extended.qls` 而非 `python-code-scanning.qls` 2. 让 LLM 分析识别误报 3. 手动验证关键漏洞 --- ## 📚 相关资源 - [CodeQL 官方文档](https://codeql.github.com/docs/) - [CodeQL 查询套件](https://github.com/github/codeql) - [SARIF 格式规范](https://sarifweb.azurewebsites.net/) - [OWASP Top 10](https://owasp.org/www-project-top-ten/) --- ## 🎓 示例会话 ### 完整流程示例 **用户**: 扫描 /root/devsecops-python-web 靶机 **助手**: 1. ✅ 检测 CodeQL 已安装 (v2.22.1) 2. ✅ 创建数据库 (13 个 Python 文件) 3. ✅ 运行 52 条安全查询 4. ✅ 发现 30 个漏洞 5. ✅ 生成报告： - CODEQL_SECURITY_REPORT.md - 漏洞验证_Checklist.md - codeql-results.sarif **用户**: 分析最严重的 3 个漏洞 **助手**: 1. SQL 注入 - 行 44 - 利用：`' OR '1'='1` 2. 代码注入 - 行 138 - 利用：`__import__('os').system('id')` 3. 命令注入 - 行 88 - 利用：`; cat /etc/passwd` 详细利用方法见报告... --- **版本**: 1.0.0 **作者**: OpenClaw Community **许可**: MIT

path: test-output/漏洞验证_Checklist.md
content: # 🔍 漏洞验证 Checklist

**生成时间**: 2026-03-19 07:03:41
**总漏洞数**: 38

## 使用说明

- [ ] 未验证
- [✅] 已验证存在
- [❌] 误报/已修复
- [⚠️] 部分存在



Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)