
OWASP CICD-Goatの完全なVAPTレポート — 9個のCTFdフラグを獲得、4件の重大(Critical)+5件の高(High)レベルの発見事項(CVE-2024-23897を含む)をOWASP Top 10 CI/CDセキュリティリスクにマッピングし、PoC、是正措置、面接対策用の要約を収録。
OWASP CICD-Goat — 意図的に脆弱性を持たせた CI/CD 環境(Jenkins、Gitea、GitLab、CTFd)— に対する完全な脆弱性評価およびペネトレーションテスト。OWASP Top 10 CI/CD Security Risks にエンドツーエンドでマッピング。
ほとんどの CI/CD セキュリティライトアップは、純粋に理論的なもの(「汚染されたパイプライン実行」を説明するスライド)か、純粋に CTF フラグを追うもの(「これがフラグ、次へ」という一行)のどちらかに留まっています。このリポジトリはどちらでもありません。以下のすべての所見は、完全に検証され、PoC に裏付けられた脆弱性であり、特定の OWASP CI/CD-SEC リスクカテゴリにマッピングされ、面接や実際のクライアントレポートで説明したいと思う方法で書かれています — 行き止まり、誤った仮定、そしてそれらがどのように修正されたかも含めて。
AppSec/DevSecOps/CI-CD セキュリティの面接に向けて勉強している方、CI/CD ツールチェーンを含むペネトレーションテストエンゲージメントの準備をしている方、あるいは「汚染されたパイプライン実行」や「不十分な認証情報の衛生管理」が実際にワイヤー上でどのように見えるかを具体的にハンズオンで知りたい方 — これはあなたのために書かれています。
完全なエンゲージメント規則:docs/00-engagement-overview.md。
⚠️ このリポジトリのすべてのテストは、テスター自身のローカルで使い捨ての、意図的に脆弱性を持たせた Docker Compose ラボに対して実行されました。 本番システム、共有インフラストラクチャ、第三者のデータは一切関与していません。これを自分で試す前に、公式リポジトリから CICD-Goat のコピーを立ち上げてください。
さらに 6 件の情報提供/補足的な所見(ポジティブコントロール、RBAC 境界の確認、軽微な情報漏洩)が findings/informational/ にあります。
いくつかの所見は独立していません — 一方が他方を直接可能にしたり完成させたりします。これは、単一の所見よりも面接で印象を与える傾向がある部分です:
11 件の CTFd チャレンジのうち 9 件を解決し、フラグを検証済み — 完全なチャレンジクロスリファレンスを参照してください。持続的な攻撃に対してアクセス制御境界が維持されたケース(Dormouse/flag9)も正直に記録されています。
以下のすべてのファイルは直接リンクされています — フォルダツリーはそれらがどのように整理されているかを示すだけです。
| ファイル | 内容 |
|---|---|
recon/01-fingerprinting.md | フェーズ 1 — スコープ内のすべてのサービスに対する未認証フィンガープリンティング |
recon/02-authenticated-enumeration.md | フェーズ 2 — 初期アクセス獲得後の認証済み列挙 |
| ファイル | 内容 |
|---|---|
ctfd/challenge-cross-reference.md | フラグごとの完全なクロスリファレンス。ブロックされた Dormouse/flag9 の調査と Duchess/flag4 の修正を含む |
.
├── docs/ # エンゲージメントのコンテキスト、方法論、マッピング、修復、面接対策
│ ├── 00-engagement-overview.md
│ ├── 01-methodology.md
│ ├── 02-owasp-top10-cicd-mapping.md
│ ├── 03-remediation-roadmap.md
│ ├── 04-interview-prep.md
│ └── 05-lessons-learned.md
├── recon/ # フェーズ 1 & 2 — フィンガープリンティングと認証済み列挙
│ ├── 01-fingerprinting.md
│ └── 02-authenticated-enumeration.md
├── findings/ # 確認された所見ごとに 1 ファイル、完全な PoC + 修復
│ ├── F-010-...md ... F-021-...md
│ └── informational/ # INFO/LOW 深刻度の補足的な観察
├── ctfd/
│ └── challenge-cross-reference.md
└── LICENSE.md
docs/04-interview-prep.md へ — すべての主要な所見の一段落の口語スタイルの要約と、よくあるフォローアップ質問。docs/03-remediation-roadmap.md へ — 優先順位付けされた実行可能なチェックリスト。docs/02-owasp-top10-cicd-mapping.md から始めてください。ここでのすべての所見は、OWASP Top 10 CI/CD Security Risks (2023) にマッピングされています — 完全なリファレンス表(CICD-SEC-1 から CICD-SEC-10)は docs/02-owasp-top10-cicd-mapping.md にあります。個々の所見全体で常に参照されているためです。
このリポジトリは、教育およびポートフォリオの目的で、ローカルで自己ホスト型の、意図的に脆弱性を持たせたトレーニングラボ(OWASP CICD-Goat)に対してのみ実行されたテストを文書化しています。ここにあるものは、本番システム、第三者サービス、実際の認証情報を対象にしたり、参照したり、テストしたりしたものではありません。このリポジトリのいかなる技術も、所有していない、または明示的な書面による許可を得ていないシステムに対して使用しないでください。
「最高のペネトレーションテスターは、まず開発者として考え、次に攻撃者として考える。コードがなぜそのように書かれたかを理解すれば、スキャナーがこれまでに見つけるよりも常により多くを見つけるだろう。」
私はすべてのエンゲージメントに 3 つのフェーズで取り組みます:
1. 攻撃する前に理解する — アプリケーションを読む。実際のユーザーとして使用する。単一のツールに触れる前にビジネスロジックを理解する。
2. 手動が先、ツールは後 — 自動スキャナーは設定されたものを見つける。興味深いバグは常に、スキャンではなく思考によって見つかる。
3. 開発者のようにレポートする — 開発者が理解または再現できない所見は、修正されない所見である。
今後の方向性 — レッドチーミング: OSCP → CRTO → OSEP、CRTP、CRTL、CRTE
このコンテンツは CC BY 4.0 の下でライセンスされています。このライトアップのいずれかを再利用または改変することは歓迎します — ただし、Dheeraj Kumar Jayaswal への明確な帰属表示と、このリポジトリへのリンクを含めてください。CICD-Goat 自体は Cider Security による別のプロジェクトです — オリジナルにスターを付けてください。
LinkedIn — コンサルティング、コラボレーション、セキュリティに関する議論を歓迎します。
フィードバック、修正、PR(例:flag9/Dormouse、または CTFd クロスリファレンス の Duchess/flag4 のフォローアップ)を歓迎します — CONTRIBUTING.md を参照してください。
| リポジトリ | 内容 |
|---|
| CICD-Goat-Vapt-Writeup (このリポジトリ) | OWASP CICD-Goat に対する完全な VAPT ライトアップ — CVE-2024-23897 を含む 16 件の所見を OWASP Top 10 CI/CD Security Risks にマッピングし、PoC と面接対策用の要約を掲載 |
| From-Dev-To-Attacker | 私の主力フィールドジャーナル — 開発者の視点から書かれた脆弱性パターンに関する 67 件のオリジナルライトアップ。所得税、銀行、小売、Eコマース、貨物物流、教育といったエンタープライズ領域への影響をフレーミング |
| From-Pentester-To-Red-Teamer | Web/API ペネトレーションテストからレッドチーミングへの移行に向けた、私の構造化された 24 か月ロードマップ — フェーズ、ラボ、認定資格、進捗を公開で追跡 |
| AppSec-From-The-Trenches | ペネトレーションテストツールと方法論のリファレンス — Burp Suite、Nmap、Metasploit、Hydra、Hashcat などの実際の使用方法、および私の WAPT 方法論 |
| API-From-The-Trenches | API セキュリティの深掘りシリーズ — OWASP API Top 10 のカバレッジ、BOLA、JWT 攻撃、GraphQL テスト、完全な方法論 |
| Bug-Bounty-Hunting-Companion | 公開開示された実際のバグバウンティレポートを、再現可能なチェックリストに分解 |
| DarkWeb-From-The-Trenches | 脅威インテリジェンスとダークウェブ OSINT の方法論 — 認証情報漏洩の監視、ランサムウェアの追跡、事前エンゲージメント TI |
| .pcap-Arsenal | Web/API/ネットワーク層の分析と学習のために、プロトコル別に整理されたパケットキャプチャ |
| 項目 | 値 |
|---|
| ターゲット | OWASP CICD-Goat — ローカル Docker Compose デプロイメント |
| エンゲージメント種別 | 許可された自主学習ラボ(グレーボックス) |
| 技術スタック | Jenkins 2.332.1、Gitea 1.16.5、GitLab 15.11.13-ee、CTFd、Docker Compose |
| スコープ | localhost:3000 (Gitea)、:8080/:50000 (Jenkins)、:4000 (GitLab)、:8000 (CTFd)、:8008 (prod-sim) |
| 方法論 | フェーズ 0~3(スコープ → フィンガープリンティング → 脆弱性の特定 → 悪用) |
| ID | タイトル | 深刻度 | OWASP CI/CD マッピング | CTFd フラグ |
|---|
| F-010 | Jenkins ビルドコンソールログにおけるシークレットの露出 → 認証情報の窃取 → 不正なリポジトリ書き込み | CRITICAL | CICD-SEC-6, -4, -2 | flag1, flag2 |
| F-013 | 安全でない自動マージロジックがコードレビューをバイパス(PR 全体の単語差分ヒューリスティック) | CRITICAL | CICD-SEC-1, -5 | flag10 |
| F-016 | CVE-2024-23897 — コントローラー上の Jenkins CLI 任意ファイル読み取り | CRITICAL | CICD-SEC-7 | flag8 |
| F-017 | GitLab 共有ランナー登録トークン → インスタンス全体の CI/CD シークレット窃取 | CRITICAL | CICD-SEC-2, -6 | flag11 |
| F-019 | エージェントラベルオーバーライドによる Jenkins コントローラーノードのコード実行 | CRITICAL | CICD-SEC-5, -4 | flag5 |
| F-018 | 分離されたパイプラインリポジトリ + ブランチ除外フィルターのバイパス | HIGH | CICD-SEC-4, -6 | flag3 |
| F-020 | 共有エージェントファイルシステムが FreeStyle ジョブの認証情報を露出 | HIGH | CICD-SEC-6, -5 | flag6 |
| F-021 | Checkov SAST 設定オーバーライドにより検出されない IaC 設定ミスが可能に | HIGH | CICD-SEC-1, -8 | flag7 |
| F-014 | CI/CD パイプライン変数から派生した Flask セッション秘密鍵 | HIGH | CICD-SEC-6 | flag11 (F-017 経由) |
| ファイル | 内容 |
|---|
docs/00-engagement-overview.md | エンゲージメント規則、スコープ、技術スタック |
docs/01-methodology.md | 全体を通して使用されたフェーズごとのテスト方法論 |
docs/02-owasp-top10-cicd-mapping.md | CICD-SEC-1 から -10 までの完全なリファレンス分類 |
docs/03-remediation-roadmap.md | 優先順位付けされた実行可能な修復チェックリスト |
docs/04-interview-prep.md | すべての所見の口語スタイルの要約 + 想定されるフォローアップ質問 |
docs/05-lessons-learned.md | 振り返り — うまくいったこと、いかなかったこと、次回はどうすべきか |
| ファイル |
|---|
| ファイル |
|---|
| F-006 — プライベートリポジトリ列挙のギャップ |
| F-007 — 追加の Jenkins ユーザー |
| F-009 — Job Read 対 ExtendedRead |
| F-011 — 正しい withCredentials の使用(ポジティブコントロール) |
| F-012 — Credentials API 接続切断 |
| F-015 — 匿名レジストリ列挙 |
| 認定資格 | 発行機関 | ステータス |
|---|
| Certified Ethical Hacker (CEH) | EC-Council | ✅ 2021 |
| AWS Certified Solutions Architect – Associate | Amazon Web Services | ✅ 2022 |
| AWS Certified Cloud Practitioner | Amazon Web Services | ✅ 2022 |
| Executive Certificate in Cyber Security | IIT Kanpur | ✅ 2026 |
| OSWE — OffSec Web Expert (OSCE3 track) | OffSec | 🔄 進行中 |