アップデート一覧に戻る
UpdatedSep 2, 2026

CICD-Goat-Vapt-Writeup — Updated!

OWASP CICD-Goatの完全なVAPTレポート — 9個のCTFdフラグを獲得、4件の重大(Critical)+5件の高(High)レベルの発見事項(CVE-2024-23897を含む)をOWASP Top 10 CI/CDセキュリティリスクにマッピングし、PoC、是正措置、面接対策用の要約を収録。

共有

CICD-Goat VAPT ライトアップ

OWASP CICD-Goat に対する完全な脆弱性評価およびペネトレーションテスト — 意図的に脆弱性を持たせた CI/CD 環境(Jenkins、Gitea、GitLab、CTFd)— OWASP Top 10 CI/CD セキュリティリスクに対してエンドツーエンドでマッピング。

Made for OWASP CICD-Goat Findings Flags Captured License

LinkedIn Location


🧭 他のリポジトリとの関係

リポジトリ内容
CICD-Goat-Vapt-Writeup (このリポジトリ)OWASP CICD-Goat に対する完全な VAPT ライトアップ — CVE-2024-23897 を含む 16 件の検出事項を OWASP Top 10 CI/CD セキュリティリスクにマッピングし、PoC と面接で使える要約を掲載
From-Dev-To-Attacker私のフラッグシップとなるフィールドジャーナル — 開発者の視点から書いた脆弱性パターンに関する 67 件のオリジナルライトアップ。所得税、銀行、小売、Eコマース、貨物物流、教育といったエンタープライズ領域への影響を枠組みとして提示
From-Pentester-To-Red-TeamerWeb/API ペネトレーションテストからレッドチーミングへ移行するための、24 か月にわたる構造化ロードマップ — フェーズ、ラボ、資格、そして取り組みながら公開で追跡する進捗
AppSec-From-The-Trenchesペネトレーションテストツールと手法のリファレンス — Burp Suite、Nmap、Metasploit、Hydra、Hashcat などを実際にどう使うか、さらに私の WAPT 手法
API-From-The-TrenchesAPI セキュリティの深掘りシリーズ — OWASP API Top 10 のカバレッジ、BOLA、JWT 攻撃、GraphQL テスト、完全な手法
Bug-Bounty-Hunting-Companion公開開示された実際のバグバウンティレポートを、再現可能なチェックリストに分解
DarkWeb-From-The-Trenches脅威インテリジェンスとダークウェブ OSINT の手法 — 認証情報漏洩の監視、ランサムウェアの追跡、エンゲージメント前の TI
.pcap-Arsenalプロトコル別に整理されたパケットキャプチャ。Web/API/ネットワーク層の分析と学習用
Pentest-Engagement-Playbookコンサルタント品質のスコーピング、ROE、深刻度の根拠、エグゼクティブレポートのテンプレート — エンゲージメントを支えるクライアント向けの運用プレイブック

このリポジトリの存在意義

ほとんどの CI/CD セキュリティライトアップは、純粋に理論的なもの(「汚染されたパイプライン実行」を説明するスライド)か、純粋に CTF のフラグを追うもの(「フラグはこれ、次へ」の一行)のどちらかに留まっています。このリポジトリはどちらでもないことを目指しています。以下の各検出事項は、完全に検証され PoC に裏付けられた脆弱性であり、特定の OWASP CI/CD-SEC リスクカテゴリにマッピングされ、面接や実際のクライアントレポートで説明したいと実際に思う形で書かれています — 行き止まりや誤った仮定、そしてそれらがどう修正されたかも含めて。

AppSec/DevSecOps/CI-CDセキュリティの面接対策をしている方、CI/CDツールチェーンが関わるペネトレーションテストの準備をしている方、あるいは「Poisoned Pipeline Execution」や「Insufficient Credential Hygiene」が実際に通信上でどのように見えるのか、具体的で実践的なツアーを求めている方——これはあなたのために書かれています。

対象環境

項目値
対象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(スコープ → フィンガープリンティング → 脆弱性特定 → エクスプロイト)

エンゲージメントの完全なルール:docs/00-engagement-overview.md。

⚠️ このリポジトリ内のすべてのテストは、テスター自身のローカルで使い捨ての、意図的に脆弱な Docker Compose ラボに対して実施されました。 本番システム、共有インフラ、第三者データは一切関与していません。ご自身で試す前に、公式リポジトリから CICD-Goat のコピーを立ち上げてください。

結果の概要

IDタイトル深刻度OWASP CI/CD マッピングCTFd フラグ
F-010Jenkins ビルドコンソールログにおけるシークレット露出 → 認証情報窃取 → 不正なリポジトリ書き込みCRITICALCICD-SEC-6, -4, -2flag1, flag2
F-013安全でない自動マージロジックがコードレビューをバイパス(PR全体の単語差分ヒューリスティック)CRITICALCICD-SEC-1, -5flag10
F-016CVE-2024-23897 — コントローラ上の Jenkins CLI 任意ファイル読み取りCRITICALCICD-SEC-7flag8
F-017GitLab 共有ランナー登録トークン → インスタンス全体の CI/CD シークレット窃取CRITICALCICD-SEC-2, -6flag11
F-019エージェントラベル上書きによる Jenkins コントローラノードのコード実行CRITICALCICD-SEC-5, -4flag5
F-018分離されたパイプラインリポジトリ + ブランチ除外フィルタのバイパスHIGHCICD-SEC-4, -6flag3
F-020共有エージェントのファイルシステムが FreeStyle ジョブの認証情報を露出HIGHCICD-SEC-6, -5flag6
F-021Checkov SAST 設定の上書きにより検出されない IaC 設定ミスを可能にHIGHCICD-SEC-1, -8flag7
F-014CI/CD パイプライン変数から導出された Flask セッション秘密鍵HIGHCICD-SEC-6flag11(F-017経由)

さらに、findings/informational/に6件の情報提供/補足的な所見(ポジティブコントロール、RBAC境界の確認、軽微な情報開示)があります。

所見の連鎖

いくつかの所見は独立していません——一方が他方を直接可能にしたり、完成させたりします。これは、単一の所見よりも面接で印象に残りやすい部分です:

CICD-Goat の所見間キルチェーン図。F-010が不正プッシュにつながり、F-013の自動マージバイパス、F-016のCVE-2024-23897任意ファイル読み取りがフラグ取得とF-018に供給され、F-017の不正GitLabランナーがF-014を完成させる様子を示す

11件のCTFdチャレンジのうち9件を解決し、フラグを検証済み — 完全なチャレンジ相互参照を参照してください。これには、継続的な攻撃に対してアクセス制御境界が維持されたことを正直に記録したケース(Dormouse/flag9)も含まれます。

目次

以下のファイルはすべて直接リンクされています — フォルダツリーは整理方法を示しているだけです。

📋 エンゲージメントドキュメント

カテゴリ