SuperAPI AI 工具集

codeql

测试与质量

查看项目

更新于 10-15 21:37

技能介绍

用途:在 Kibana 项目中配合 CodeQL 进行代码安全分析,覆盖自定义查询的编写、单元测试、本地全量分析与远程结果获取。

主要能力:自定义查询位于 .github/codeql/custom-queries/,按类别(如 dos、xss)组织,每个规则含 .ql、.qhelp、.md、.qls 及单元测试目录;提供 suppression 抑制逻辑;scripts/codeql/quick_check.sh 通过 Docker 构建 CodeQL 数据库并运行查询,输出 SARIF 到 <results_dir>/database/results.sarif;scripts/fetch_sarif.mjs 可按 PR 号或 ref 拉取 GitHub 上的 SARIF 与告警。

使用方式:本地分析执行 bash scripts/codeql/quick_check.sh -s <source_dir> -q .github/codeql/custom-queries,可加 -r 指定结果目录;运行单元测试用 -t 并配合 -q 指向测试目录或 qlpack。首次运行会基于 scripts/codeql/codeql.dockerfile 构建 codeql-env 镜像,Apple Silicon 下以 --platform linux/amd64 模拟运行。获取远程结果需设置 GITHUB_TOKEN(security_events 权限),执行 node .agents/skills/codeql/scripts/fetch_sarif.mjs <PR号或ref>。

编写新查询:使用 @id js/kibana/<id>、@kind problem 或 path-problem,设置 @problem.severity 与 @security-severity,导入 javascript 模块;测试目录中 .qlref 指向查询文件,test.js 用 // $ Alert 标注预期命中行,.expected 为管道分隔格式。内联抑制格式为 // codeql[rule-id] 理由,理由须说明具体安全机制,如白名单校验、DOMPurify 转义等,缺失或笼统理由视为无效。

适用场景:Kibana 仓库的 CodeQL 查询开发、PR 单元测试(codeql-pr.yml 自动运行)、本地真实源码验证与远程扫描结果查看。

限制:依赖 Docker 与 CodeQL CLI 镜像;远程获取需 GITHUB_TOKEN;测试/模拟目录被 codeql-config.yml 的 paths-ignore 排除;jq 未安装时无彩色摘要。其他细节暂未提供。