PHP Code Audit Skill の解説

Security

概要

PHP Code Audit Skill は、PHP Web アプリケーションを対象とした白箱コード監査のために設計された Skill(監査タスク)群です。リポジトリは「ルート/パラメータ抽出 → 鑑権モデル化 → データフロー追跡 → 脆弱性ごとの精査 → 証拠整合性検証 → レポート生成」という監査ワークフローを前提に、Agent ベースで順次実行することを想定しています。実行可能な単体スクリプト群を含むのではなく、証拠フォーマット(EVID_*)を契約として厳格に扱う点と、結果の結論強度(確認済み/未確定など)に厳格なルールを設けている点が特徴です。

GitHub

リポジトリの統計情報

  • スター数: 27
  • フォーク数: 0
  • ウォッチャー数: 27
  • コミット数: 4
  • ファイル数: 37
  • メインの言語: 未指定

主な特徴

  • 証拠契約駆動(EVID_*)で複数スキル間の出力/入力を統一し信頼性を担保。
  • 全ルートとパラメータの完全出力を前提とするルートマッピング必須ポリシー。
  • パラメータ制御性マトリクス、分岐実行の証拠、sink(危険箇所)定位といった詳細トレーシングを実装。
  • 高危険度の結論は証拠連鎖の閉鎖を条件とするなど、誤検知を抑える強度制約を採用。

技術的なポイント

このリポジトリは「Skill」の集合として監査フローをモジュール化している点が技術的に大きな特徴です。各 Skill は単独でスキャンやトレースを行うというより、php-route-tracer や php-route-mapper が生成する標準化された証拠(EVID_*)を受け取って次段階の処理に進みます。これにより、ルーティング情報とパラメータ構造が欠けた状態での誤った結論を防ぎ、データフロー解析(ソース→サニタイズ→シンク)において必要な前提が担保されます。

また、パラメータの「可制御性(controllability)」をマトリクス形式で表現し、外部入力が実行時にどの程度影響を与えるかを定量的に扱えるようにしている点も注目に値します。分岐実行の証跡を収集して条件付きでのみ到達する sink を区別することで、誤検出を減らし、実用的な優先度付けを可能にします。さらに「結論強度(confidence)」に関するポリシーを導入しており、例えば RCE や SQLi といった高リスクの判定は単一のキーワードやパターンだけに依存せず、複数の証拠(実行可能な入力パス、未無効化のサンク、実行環境での再現可能性等)が揃って初めて『確認済み』とタグ付けされます。

実行面では、このセットは Cursor 等の Agent 実行環境での利用を想定しており、リポジトリ自体に完成したランナーが含まれているわけではない点に注意が必要です。代わりに php-audit-pipeline に実行手順や Skill の連携方法が定義されており、既存の自動化環境に組み込むことで、コードベースに対する再現性の高い白箱監査を実現します。総じて、人手によるコードレビューと自動トレースを組み合わせ、誤検知を抑えながら再現可能な報告を生成することを目標とした設計です。(約700字相当)

プロジェクトの構成

主要なファイルとディレクトリ:

  • README.md: file
  • php-archive-extract-audit: dir
  • php-audit-pipeline: dir
  • php-auth-audit: dir
  • php-cmd-audit: dir

…他 32 ファイル

まとめ

証拠駆動と結論強度の概念を導入した、実務向けの PHP 白箱監査スキル集。

リポジトリ情報:

READMEの抜粋:

✨ PHP Code Audit Skill

本仓库是一套面向 PHP Web 的白盒代码安全审计 Skill 集合,覆盖「路由枚举 → 鉴权建模 → 数据流追踪 → 分类漏洞审计 → 证据一致性校验 → 报告汇总」全流程;在 Cursor 等环境中以 Agent 按 SKILL 文档执行 的方式落地(非随仓库附带的可执行脚本,详见 php-audit-pipeline 说明)。

项目特点

  • 证据契约驱动:以 php-route-tracer 输出的证据点(EVID_*)作为多数子审计 skill 的硬门槛。
  • 全量路由与参数php-route-mapper 须输出完整路由与参数结构(禁止省略)。
  • 可控性与分支证明:trace 含参数可控性矩阵、分支执行证据与 sink 定位汇总。
  • 结论强度约束:高危结论依赖证据链闭合,避免仅凭关键字猜测即标「已确认」。

适用场景:在合法授权前提下,用于 PHP 项目的白盒安全评估、上线前审计、修复验证与回归辅助。