
CICD-Goat-Vapt-Writeup — Updated!
OWASP CICD-Goat 전체 VAPT 분석 보고서 — 9개의 CTFd 플래그 캡처, OWASP Top 10 CI/CD 보안 위험에 매핑된 치명적(critical) 4건 및 높음(high) 5건의 발견 사항(CVE-2024-23897 포함), PoC, 수정 방안 및 면접 대비 요약 포함.
CICD-Goat VAPT 분석 보고서
의도적으로 취약하게 설계된 CI/CD 환경(Jenkins, Gitea, GitLab, CTFd)인 OWASP CICD-Goat에 대한 전체 취약점 평가 및 침투 테스트 — OWASP Top 10 CI/CD 보안 위험에 종단 간 매핑.
🧭 다른 저장소와의 관계
| 저장소 | 내용 |
|---|---|
| CICD-Goat-Vapt-Writeup (이 저장소) | OWASP CICD-Goat에 대한 전체 VAPT 분석 — CVE-2024-23897을 포함한 16개 발견 사항, OWASP Top 10 CI/CD 보안 위험에 매핑, PoC 및 면접 대비 요약 포함 |
| From-Dev-To-Attacker | 나의 대표 필드 저널 — 개발자의 시각에서 작성한 67개의 독창적인 취약점 패턴 분석, 소득세, 은행, 소매, 전자상거래, 화물 물류, 교육 분야의 엔터프라이즈 도메인 영향 프레임워크 포함 |
| From-Pentester-To-Red-Teamer | 웹/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 | 웹/API/네트워크 계층 분석 및 학습을 위해 프로토콜별로 정리된 패킷 캡처 |
이 저장소가 존재하는 이유
대부분의 CI/CD 보안 분석은 순수하게 이론에 머물거나("파이프라인 중독 실행"을 설명하는 슬라이드), 순수하게 CTF 플래그만 쫓는("여기 플래그, 다음") 방식입니다. 이 저장소는 둘 다 아닙니다. 아래의 모든 발견 사항은 완전히 검증된 PoC 기반 취약점이며, 특정 OWASP CI/CD-SEC 위험 카테고리에 매핑되어 있고, 면접이나 실제 고객 보고서에서 설명하고 싶은 방식으로 작성되었습니다 — 막다른 길, 잘못된 가정, 그리고 그것들이 어떻게 수정되었는지까지 포함합니다.
AppSec/DevSecOps/CI-CD 보안 면접을 준비 중이거나, CI/CD 툴체인이 포함된 침투 테스트를 준비 중이거나, "파이프라인 중독 실행" 또는 "불충분한 자격 증명 위생"이 실제로 어떻게 보이는지 구체적으로 알고 싶다면 — 이 글이 당신을 위한 것입니다.
대상 환경
| 항목 | 값 |
|---|---|
| 대상 | 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) |
| 방법론 | Phase 0–3 (범위 → 핑거프린팅 → 취약점 식별 → 익스플로잇) |
전체 교전 규칙: docs/00-engagement-overview.md.
⚠️ 이 저장소의 모든 테스트는 테스터 본인의 로컬, 일회용, 의도적으로 취약한 Docker Compose 랩에서 수행되었습니다. 프로덕션 시스템, 공유 인프라, 제3자 데이터는 관련되지 않았습니다. 직접 시도하기 전에 공식 저장소에서 CICD-Goat의 사본을 직접 실행하세요.
결과 요약
| 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 경유) |
추가로 6개의 정보성 / 보조 발견 사항 (긍정적 통제, RBAC 경계 확인, 경미한 정보 노출)이 findings/informational/에 있습니다.
발견 사항들이 어떻게 연결되는가
여러 발견 사항은 독립적이지 않습니다 — 하나가 다른 하나를 직접 가능하게 하거나 완성합니다. 이것이 단일 발견 사항보다 면접에서 더 인상적인 부분입니다:
11개 CTFd 챌린지 중 9개 해결 및 플래그 검증 완료 — 전체 챌린지 교차 참조를 참조하세요. 지속적인 공격에도 접근 제어 경계가 유지된 사례(Dormouse/flag9)도 솔직하게 문서화되어 있습니다.
전체 목차
아래의 모든 파일은 직접 링크되어 있습니다 — 폴더 트리는 단지 구성 방식을 보여줍니다.
📋 계약 문서
| 파일 | 내용 |
|---|---|
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 | 회고 — 효과가 있었던 것, 없었던 것, 다음에 다르게 할 것 |
🔍 정찰
| 파일 | 내용 |
|---|---|
recon/01-fingerprinting.md | Phase 1 — 범위 내 모든 서비스의 비인증 핑거프린팅 |
recon/02-authenticated-enumeration.md | Phase 2 — 초기 접근 획득 후 인증된 열거 |
🚨 심각 및 높음 발견 사항
ℹ️ 정보성 / 보조 발견 사항
| 파일 |
|---|
| F-006 — 비공개 저장소 열거 격차 |
| F-007 — 추가 Jenkins 사용자 |
| F-009 — Job Read vs ExtendedRead |
| F-011 — 올바른 withCredentials 사용 (긍정적 통제) |
| F-012 — 자격 증명 API 연결 끊김 |
| F-015 — 익명 레지스트리 열거 |
🎯 CTFd
| 파일 | 내용 |
|---|---|
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/ # Phase 1 & 2 — 핑거프린팅 및 인증된 열거
│ ├── 01-fingerprinting.md
│ └── 02-authenticated-enumeration.md
├── findings/ # 확인된 발견 사항당 하나의 파일, 전체 PoC + 완화
│ ├── F-010-...md ... F-021-...md
│ └── informational/ # INFO/LOW 심각도 보조 관찰
├── ctfd/
│ └── challenge-cross-reference.md
└── LICENSE.md
읽기 경로
- 하이라이트만 원하시나요? 위의 결과 표부터 시작한 다음, F-010, F-013, F-016, F-017을 읽으세요 — 가장 완전한 종단 간 킬 체인 4개입니다.
- 면접을 준비 중이신가요? 바로
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 보안 위험 소개
이곳의 모든 발견 사항은 OWASP Top 10 CI/CD 보안 위험 (2023)에 매핑되어 있습니다 — 전체 참조 표(CICD-SEC-1부터 CICD-SEC-10까지)는 개별 발견 사항 전체에서 지속적으로 참조되므로 docs/02-owasp-top10-cicd-mapping.md에 있습니다.
면책 조항
이 저장소는 교육 및 포트폴리오 목적으로 로컬, 자체 호스팅, 의도적으로 취약한 훈련 랩(OWASP CICD-Goat)에서만 수행된 테스트를 문서화합니다. 이곳의 어떤 내용도 프로덕션 시스템, 제3자 서비스, 실제 자격 증명을 대상으로 하거나 참조하거나 테스트하지 않았습니다. 소유하지 않았거나 명시적인 서면 승인을 받지 않은 시스템에 이 저장소의 어떤 기법도 사용하지 마세요.
🧠 테스트 철학
"최고의 침투 테스터는 개발자처럼 먼저 생각하고 공격자처럼 두 번째로 생각합니다. 코드가 왜 그렇게 작성되었는지 이해한다면, 스캐너가 찾을 수 있는 것보다 항상 더 많이 찾을 수 있습니다."
나는 모든 계약을 세 단계로 접근합니다:
1. 공격하기 전에 이해하라 — 애플리케이션을 읽으세요. 실제 사용자처럼 사용하세요. 도구를 만지기 전에 비즈니스 로직을 이해하세요.
2. 수동 먼저, 도구는 그 다음 — 자동화된 스캐너는 구성된 것만 찾습니다. 흥미로운 버그는 항상 스캔이 아닌 사고에서 발견됩니다.
3. 개발자처럼 보고하라 — 개발자가 이해하거나 재현할 수 없는 발견 사항은 수정되지 않는 발견 사항입니다.
👤 소개
- 이름 — Dheeraj Kumar Jayaswal
- 직책 — Technology Lead – Offensive Security, Infosys Limited
- 전문 분야 — 웹 애플리케이션 및 API 침투 테스트
- 경력 — IT 15년 이상 · 공격 보안 6년 이상
- 강점 — 전직 풀스택 개발자 (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 트랙) | OffSec | 🔄 진행 중 |
향후 방향 — 레드 팀: 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를 참조하세요.