Fuika0306/codex-verified-secure-release

GitHub: Fuika0306/codex-verified-secure-release

一款采用失败即阻挡策略的 Codex Skill,在代码公开发布前结合本地敏感信息稽核与 Codex Security AppSec 扫描产物验证,缺乏安全证据即阻止发布。

Stars: 0 | Forks: 0

# Codex 双层安全发布验证工具 [![验证 Skill](https://static.pigsec.cn/wp-content/uploads/repos/cas/72/72554f378ecca4083a236b9c17b63eb197a3703790ccb493f557032c410c5089.svg)](https://github.com/Fuika0306/codex-verified-secure-release/actions/workflows/validate.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) 这是一个采取失败即阻挡策略的 Codex Skill:先在本机稽核密钥、个资与 Git 历史,再验证已完成的 Codex Security AppSec 扫描产物,最后产生一个 保守的发布判定。 这是一个采用失败即阻挡(fail-closed)策略的 Codex Skill,将确定性的公开发布稽核与来自 OpenAI Codex Security 的已验证规范产物相结合。 ## 为什么要结合这两层? 一个代码库可能没有应用层漏洞,但仍然会在可访问的 Git 历史中泄露 token、个人邮箱、公网 IP、带有凭证的远端仓库或已删除的密钥。它也可能通过了泄露扫描,但仍然包含可利用的授权、注入、目录遍历或信任边界缺陷。 这个 Skill 将这些问题分开处理,并产生一个保守的判定: 1. **本机发布稽核** — 确定性、脱敏、只读,且无需网络。 2. **Codex Security 产物把关** — 可选的对已完成的官方 AppSec 扫描的验证。 AppSec 层绝不会由内置脚本启动。安装、身份验证、模型使用和扫描仍然是明确的外部操作。 ## 本机层检查的内容 - 凭证和私钥特征 - 个人邮箱和公网 IPv4 暴露 - 敏感文件名和本地产物 - 包含凭证的 Git 远端 - 暂存区、工作树、已追踪树和可访问历史的内容 - 提交邮箱暴露 - 符号链接和意外的二进制文件 - GitHub Actions 权限和未固定的 Actions 匹配的值、远端 URL 和符号链接目标永远不会被打印。 ## Codex Security 层验证的内容 合并器仅接受标准的 Codex Security `1.0` 文档: - `scan-manifest.json` - `findings.json` - `coverage.json` 它验证文档类型、schema 版本、已完成的扫描状态、匹配的扫描 ID、规范引用、覆盖率一致性、常规文件边界、位于目标代码库外部的产物位置、大小限制以及清单的 SHA-256 哈希。 合并后的报告会省略原始摘要、代码证据、攻击路径、修复文本、PoC、远端 URL 和绝对本机路径。 ## 要求 - Python 3.10 或更高版本 - Git - 可选:访问官方 Codex Security Plugin 或 CLI 以进行 AppSec 阶段 Codex Security CLI/SDK 的可用性和授权与此 Skill 无关。 ## 作为 Codex Skill 安装 PowerShell: ``` $codexHome = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { Join-Path $HOME '.codex' } Copy-Item -Recurse -Force .\skills\verified-secure-release (Join-Path $codexHome 'skills\verified-secure-release') ``` Bash: ``` codex_home="${CODEX_HOME:-$HOME/.codex}" cp -R skills/verified-secure-release "$codex_home/skills/verified-secure-release" ``` 重启 Codex 或打开一个新任务,以便重新加载 Skill 清单。 ## 运行本机预检 在将现有的代码库公开之前,请扫描可访问的历史: ``` python -B -X utf8 skills/verified-secure-release/scripts/verified_secure_release.py . --mode all --profile release-only --format json ``` 除非发布稽核返回 `PASS`,否则请停止。仅针对暂存区的扫描并不能证明可访问的历史是干净的。 ## 合并已完成的 Codex Security 扫描 将官方扫描输出保存在私有且位于代码库之外的位置。从一次完成的扫描中获取三个规范文件后: ``` python -B -X utf8 skills/verified-secure-release/scripts/verified_secure_release.py . --mode all --profile full --codex-security-dir ../private-codex-security-results --format json ``` 在代码库外部写入私有的合并报告: ``` python -B -X utf8 skills/verified-secure-release/scripts/verified_secure_release.py . --mode all --profile full --codex-security-dir ../private-codex-security-results --output ../verified-secure-release.json --format json ``` 输出路径必须不存在。脚本拒绝将合并报告写入目标代码库内部。 ## 判定结果 | 判定 | 含义 | 退出码 | | --- | --- | ---: | | `PASS` | 配置文件选定的每个阶段均已完成,且没有活动发现 | `0` | | `REVIEW` | 不阻塞的本机或 AppSec 发现需要人工审查 | `1` | | `BLOCKED` | 仍存在阻塞性的泄露/隐私/工作流发现,或高危/严重级别的 AppSec 发现 | `1` | | `PARTIAL` | AppSec 阶段未运行,或覆盖率是部分的/未知的 | `2` | | `INCOMPLETE` | 扫描器、schema、路径或产物完整性错误导致无法完成 | `2` | ## 安全边界 - 内置脚本不进行任何网络调用 - 不自动进行 Codex Security 安装、登录或扫描 - 不进行暂存、提交、推送、发布、历史重写、远端更改、hooks 或修补 - 合并报告中不包含原始 AppSec 证据或发布稽核匹配值 - 如果缺少产物、哈希不匹配、不支持的 schema、部分覆盖、扫描器错误或没有未验证的候选者,均不予通过 - 不覆盖已存在的合并报告 ## 代码库布局 ``` skills/verified-secure-release/ SKILL.md agents/openai.yaml references/codex-security-integration.md scripts/audit_release.py scripts/verified_secure_release.py tests/test_audit_release.py tests/test_verified_secure_release.py ``` ## 开发 ``` python -B -X utf8 tests/validate_skill.py python -B -X utf8 -m unittest discover -s skills/verified-secure-release/tests -p "test_*.py" -v ``` 测试使用一次性的本地 Git 代码库和合成的凭证。它们不会调用网络服务或调用 Codex Security。 ## 中文摘要 这个 Skill 先在本机检查 Token、个资、Git 历史与发布外泄;只有本机阶段通过后,才允许整合已完成的官方 Codex Security 扫描结果。合并器不会自行安装、登录、上传代码、执行扫描、修补或发布。 ## 上游与署名 - 确定性扫描器源自 [Fuika0306/codex-public-release-audit](https://github.com/Fuika0306/codex-public-release-audit),基于 MIT License。 - 规范产物契约基于公开的 [`openai/codex-security`](https://github.com/openai/codex-security) schema 版本 `1.0`。此集成未包含任何 OpenAI 源代码。 ## 许可证 [MIT](LICENSE)
标签:DevSecOps, StruQ, 上游代理, 发布控制, 安全合规, 密钥泄露检测, 网络代理, 网络安全研究, 自动化检查, 逆向工具