
CICD-Goat-Vapt-Writeup — Updated!
Полный VAPT-разбор OWASP CICD-Goat — захвачено 9 флагов CTFd, 4 критических и 5 находок высокого уровня серьёзности (включая CVE-2024-23897), соотнесённых с OWASP Top 10 CI/CD Security Risks, с PoC-эксплойтами, рекомендациями по устранению и готовыми к собеседованию сводками.
CICD-Goat VAPT Writeup
Полная оценка уязвимостей и тестирование на проникновение против OWASP CICD-Goat — намеренно уязвимой среды CI/CD (Jenkins, Gitea, GitLab, CTFd) — с сквозным сопоставлением с OWASP Top 10 CI/CD Security Risks.
🧭 Как это соотносится с моими другими репозиториями
| Репозиторий | Что в нём |
|---|---|
| CICD-Goat-Vapt-Writeup (этот репозиторий) | Полный VAPT-отчёт по OWASP CICD-Goat — 16 находок, включая CVE-2024-23897, сопоставленных с OWASP Top 10 CI/CD Security Risks, с PoC и резюме, готовыми для собеседования |
| From-Dev-To-Attacker | Мой флагманский полевой журнал — 67 оригинальных разборов паттернов уязвимостей, написанных с точки зрения разработчика, с оценкой влияния на корпоративные домены: налогообложение, банкинг, ритейл, электронная коммерция, грузовая логистика и образование |
| From-Pentester-To-Red-Teamer | Мой структурированный 24-месячный план перехода от тестирования веб/API на проникновение к Red Teaming — этапы, лаборатории, сертификации и открыто отслеживаемый прогресс |
| 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 | Реальные публично раскрытые отчёты bug bounty, разобранные на воспроизводимые чек-листы |
| DarkWeb-From-The-Trenches | Методология threat intelligence и OSINT в даркнете — мониторинг утечек учётных данных, отслеживание программ-вымогателей, TI перед engagement |
| .pcap-Arsenal | Захваты пакетов, организованные по протоколам, для анализа и изучения веб/API/сетевого уровня |
Зачем это нужно
Большинство отчётов по безопасности CI/CD либо остаются чисто теоретическими (слайд с объяснением «poisoned pipeline execution»), либо чисто гоняются за CTF-флагами (одна строка «вот флаг, дальше»). Этот репозиторий пытается не делать ни того, ни другого: каждая находка ниже — это полностью подтверждённая уязвимость с PoC, сопоставленная с конкретной категорией риска OWASP CI/CD-SEC, написанная так, как вы на самом деле хотели бы объяснить её на собеседовании или в реальном отчёте клиенту — включая тупики, ошибочные предположения и то, как они были исправлены.
Если вы готовитесь к собеседованию по AppSec/DevSecOps/CI-CD-безопасности, готовитесь к пентест-engagement с участием цепочки инструментов CI/CD или просто хотите конкретное практическое знакомство с тем, как «Poisoned Pipeline Execution» или «Insufficient Credential Hygiene» выглядят на практике — это написано для вас.
Целевая среда
| Поле | Значение |
|---|---|
| Цель | OWASP CICD-Goat — локальное развёртывание Docker Compose |
| Тип engagement | Авторизованная лаборатория для самостоятельного обучения (grey-box) |
| Технологический стек | 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 (Scope → Fingerprinting → Vulnerability ID → Exploitation) |
Полные правила engagement: docs/00-engagement-overview.md.
⚠️ Все тесты в этом репозитории проводились против собственной локальной, одноразовой, намеренно уязвимой лаборатории Docker Compose тестировщика. Никакие production-системы, общая инфраструктура или данные третьих лиц не затрагивались. Разверните собственную копию CICD-Goat из официального репозитория, прежде чем пробовать что-либо из этого самостоятельно.
Результаты кратко
| ID | Название | Критичность | Сопоставление с OWASP CI/CD | CTFd-флаг |
|---|---|---|---|---|
| F-010 | Раскрытие секретов в логах консоли сборки Jenkins → кража учётных данных → несанкционированная запись в репозиторий | CRITICAL | CICD-SEC-6, -4, -2 | flag1, flag2 |
| F-013 | Небезопасная логика автослияния обходит проверку кода (эвристика пословного diff по всему PR) | CRITICAL | CICD-SEC-1, -5 | flag10 |
| F-016 | CVE-2024-23897 — произвольное чтение файлов через Jenkins CLI на контроллере | CRITICAL | CICD-SEC-7 | flag8 |
| F-017 | Токен регистрации общего GitLab runner → кража секретов 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 | Секретный ключ сессии Flask, производный от переменной пайплайна CI/CD | HIGH | CICD-SEC-6 | flag11 (через F-017) |
Плюс 6 информационных / вспомогательных находок (положительные контроли, подтверждения границ RBAC, незначительное раскрытие информации) в findings/informational/.
Как находки связываются в цепочку
Несколько находок не являются независимыми — одна напрямую обеспечивает или завершает другую. Именно эта часть обычно впечатляет на собеседовании больше, чем любая отдельная находка сама по себе:
9 из 11 задач CTFd решены и флаги подтверждены — см. полный перекрёстный справочник задач, включая честно задокументированный случай (Dormouse/flag9), где граница контроля доступа выдержала продолжительную атаку.
Полное оглавление
Каждый файл ниже имеет прямую ссылку — дерево папок лишь показывает, как они организованы.
📋 Документы engagement
| Файл | Что в нём |
|---|---|
docs/00-engagement-overview.md | Правила engagement, область, технологический стек |
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 | Ретроспектива — что сработало, что нет, что делать иначе в следующий раз |
🔍 Разведка
| Файл | Что в нём |
|---|---|
recon/01-fingerprinting.md | Фаза 1 — неаутентифицированное фингерпринтирование каждой службы в области |
recon/02-authenticated-enumeration.md | Фаза 2 — аутентифицированное перечисление после получения первоначального доступа |
🚨 Критические и высокие находки
ℹ️ Информационные / вспомогательные находки
🎯 CTFd
| Файл | Что в нём |
|---|---|
ctfd/challenge-cross-reference.md | Полный перекрёстный справочник по флагам, включая заблокированное расследование Dormouse/flag9 и исправление Duchess/flag4 |
Структура репозитория
.
├── docs/ # Engagement context, methodology, mappings, remediation, interview prep
│ ├── 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/ # Phase 1 & 2 — fingerprinting and authenticated enumeration
│ ├── 01-fingerprinting.md
│ └── 02-authenticated-enumeration.md
├── findings/ # One file per confirmed finding, full PoC + remediation
│ ├── F-010-...md ... F-021-...md
│ └── informational/ # INFO/LOW severity supporting observations
├── ctfd/
│ └── challenge-cross-reference.md
└── LICENSE.md
Пути чтения
- Хотите только главное? Начните с таблицы результатов выше, затем прочитайте F-010, F-013, F-016 и F-017 — четыре наиболее полные сквозные kill chain.
- Готовитесь к собеседованию? Переходите сразу к
docs/04-interview-prep.md— резюме каждой крупной находки в устном стиле на один абзац, плюс типичные дополнительные вопросы. - Строите/укрепляете пайплайн CI/CD? Переходите сразу к
docs/03-remediation-roadmap.md— приоритизированный, практический чек-лист. - Новичок в концепциях безопасности CI/CD? Начните с
docs/02-owasp-top10-cicd-mapping.md— справочной таксономии, вокруг которой организован весь этот репозиторий.
Об OWASP Top 10 CI/CD Security Risks
Каждая находка здесь сопоставлена с OWASP Top 10 CI/CD Security Risks (2023) — полная справочная таблица (CICD-SEC-1 — CICD-SEC-10) находится в docs/02-owasp-top10-cicd-mapping.md, поскольку на неё постоянно ссылаются в отдельных находках.
Отказ от ответственности
Этот репозиторий документирует тестирование, проведённое исключительно против локальной, самостоятельно размещённой, намеренно уязвимой обучающей лаборатории (OWASP CICD-Goat), в образовательных целях и для портфолио. Ничто здесь не нацелено на, не ссылается на и не тестировалось против какой-либо production-системы, стороннего сервиса или реальных учётных данных. Не используйте ни одну из техник из этого репозитория против систем, которыми вы не владеете или на тестирование которых у вас нет явного письменного разрешения.
🧠 Философия тестирования
«Лучшие пентестеры думают как разработчики в первую очередь и как атакующие во вторую. Если вы понимаете, почему код был написан определённым образом, вы всегда найдёте больше, чем любой сканер.»
Я подхожу к каждому engagement в три этапа:
1. Пойми, прежде чем атаковать — Читай приложение. Используй его как реальный пользователь. Пойми бизнес-логику, прежде чем трогать хоть один инструмент.
2. Сначала вручную, инструменты потом — Автоматические сканеры находят то, на что они настроены. Интересные баги всегда находятся размышлением, а не сканированием.
3. Отчитывайся как разработчик — Находка, которую разработчики не могут понять или воспроизвести, — это находка, которую не исправят.
👤 Обо мне
- Имя — Dheeraj Kumar Jayaswal
- Роль — Technology Lead – Offensive Security, Infosys Limited
- Фокус — Тестирование веб-приложений и API на проникновение
- Опыт — 15+ лет в IT · 6+ лет в Offensive Security
- Преимущество — Бывший full-stack разработчик (ASP.NET / SQL Server) — думаю как разработчик, атакую как хакер
- Домены — Налогообложение · Банкинг · Ритейл · Электронная коммерция · Грузовая логистика · Образование
🏅 Сертификации
| Сертификация | Выдающий орган | Статус |
|---|---|---|
| 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 | 🔄 В процессе |
Будущее направление — Red Teaming: OSCP → CRTO → OSEP, CRTP, CRTL, CRTE
📄 Лицензия
Этот контент лицензирован под CC BY 4.0. Вы можете свободно повторно использовать или адаптировать любой из этих материалов — просто дайте чёткую атрибуцию Dheeraj Kumar Jayaswal со ссылкой обратно на этот репозиторий. Сам CICD-Goat — отдельный проект от Cider Security — поставьте звезду оригиналу.
🤝 Связаться
LinkedIn — открыт для консалтинга, сотрудничества и обсуждений по безопасности.
Отзывы, исправления и PR (например, для flag9/Dormouse или продолжения Duchess/flag4 в перекрёстном справочнике CTFd) приветствуются — см. CONTRIBUTING.md.