SuperAPI AI 工具集

vulnerability-remediation

安全与审计

查看项目

更新于 10-15 17:33

技能介绍

用途:该技能用于审查 chainloop 项目在 Chainloop 中记录的开放漏洞策略违规,并对受影响的源文件执行修复,常用于被要求修复漏洞或处理失败策略(如 no-vulnerabilities-high)的场景。

主要能力与流程:

  1. 用 list_products_with_versions 找到 Chainloop Community Edition 产品及 chainloop 项目版本,记录 projectVersionId。
  2. 并行调用 get_frameworks_compliance(framework_ids 使用 chainloop-best-practices 的 ID 0ceef195-6900-4166-8407-77eb84954ed3)和 list_pieces_of_evidence(project_name: chainloop,project_version_name 取版本名,latest: true)。建议以 Bash 子代理编程解析较大的合规结果,筛出 name 含 vulnerabilit 且状态非 PASSED/SKIPPED 的策略评估,得到失败的材料名。
  3. 在证据列表中找到与失败材料名匹配且 kind 为 SARIF 的条目,用其 digest 调用 download_evidence_by_digest(download_content: true)。SARIF 的 logicalLocations[].fullyQualifiedName 含完整镜像引用,二进制路径(如 /atlas、/app)指示镜像内哪个二进制存在漏洞。
  4. 定位修复:若镜像为 control-plane-migrations、路径为 /atlas,则改 app/controlplane/Dockerfile.migrations。先看 Dockerfile 顶部注释里的当前 atlas 版本,用 curl 查询 Docker Hub arigaio/atlas 标签找最新稳定版本;用 grype 对当前与候选版本运行 --only-fixed 确认 CVE 从存在到消失。若最新稳定标签仍有 CVE,可检查 latest 标签,若其无 CVE 且版本增幅合理可接受(镜像按 digest 固定)。确认干净版本后拉取并取 digest,更新 FROM 为 arigaio/atlas@sha256:<新 digest>,并同步 common.mk 的 ATLAS_VERSION 与 .github/workflows/test.yml 的 ATLAS_VERSION。若为 Go stdlib 或模块漏洞(路径为 Go 二进制),优先用 upgrading-golang 技能升级 go.mod 与所有 Dockerfile 中的 Go 版本;第三方模块则据 SARIF purls 定位模块并 go get 指定修复版本,再 go mod tidy。
  5. 始终用 grype 在改动前后验证,干净输出只有表头行、无 CVE 数据行。
  6. 用 git branch --show-current 确认分支(已存在分支则不新建),git add 后以 git commit -s 提交并推送,再 gh pr create 创建 PR。最后按指定格式汇总 CVE、严重级别、包、旧版本、修复方式、变更文件与 PR 链接。

限制与注意:镜像须按 SHA256 digest 固定而非仅用标签;Go stdlib CVE 通常升级 atlas 或 golang 构建镜像即可,改 go.mod 前先用 grype 确认;go.mod 任何改动后跑 go mod tidy;合规扫描每日运行,修复合并并构建新镜像后策略状态会自动更新。资料未提供该技能的价格、安装方式或可用平台信息。