
JetBrains TeamCity의 CVE-2024-27198 인증 우회를 시뮬레이션하는 SOC 탐지 및 사고 대응 랩입니다. ELK SIEM, Suricata IDS, Sigma 규칙 및 실습형 보안 교육을 위한 전체 사고 대응 플레이북을 포함합니다.
JetBrains TeamCity의 인증 우회 | CVSS 점수: 9.8 (심각)
이 프로젝트는 CVE-2024-27198(경로 혼란 기법을 이용한 JetBrains TeamCity 2023.11.3의 인증 우회 취약점)을 시뮬레이션, 탐지 및 대응하기 위한 완전한 SOC 연구실 환경을 구축합니다.
| 구성 요소 | 기술 | 포트 |
|---|---|---|
| 피해자 서버 | TeamCity 2023.11.3 (Docker) | :8111 |
| 데이터베이스 | PostgreSQL 15 (Docker) | :5432 (내부) |
| SIEM | ELK Stack 8.13 (Docker) | :9200, :5601 |
| IDS | Suricata 7.x | — |
| 공격자 | Kali Linux + Burp Suite | — |
cd 1-lab-setup
docker-compose up -d
[TeamCity 대시보드]
TeamCity 2023.11.3이 피해자 서버로 실행 중 — 취약한 버전 확인됨
[Kibana SOC 대시보드]
공격 활동 타임라인을 보여주는 실시간 로그 모니터링 대시보드 (2026년 6월 19일)
[Kibana 알림 규칙]
CVE-2024-27198 탐지 알림 규칙 — 활성화됨, 매 1분마다 확인
.
├── 1-lab-setup/
│ ├── docker-compose.yml # 전체 스택: TeamCity + PostgreSQL + ELK
│ ├── logstash.conf # 의심 태그 탐지를 위한 로그 파이프라인
│ └── kibana.yml # Kibana 설정
├── 2-detection/
│ ├── sigma/
│ │ └── cve-2024-27198-detect.yml # Sigma 탐지 규칙 (MITRE T1190)
│ └── ids-ips/suricata/
│ └── cve-2024-27198.rules # Suricata IDS 규칙 (3개 규칙)
├── 3-incident-response/
│ ├── playbook/
│ │ └── SOC-Playbook.md # 트라이지 → 차단 → 제거
│ └── containment/
│ └── block-ip.sh # 자동 IP 차단 스크립트
└── 4-evidence/
└── screenshots/ # 공격 증거 (5개 스크린샷)
HTTP 200 응답과 함께 TeamCity REST API 엔드포인트를 대상으로 하는 경로 혼란 패턴(?jsp=, ;.jsp)을 탐지합니다.
| 규칙 ID | 설명 |
|---|---|
| SID 9000001 | ;.jsp 접미사를 사용한 경로 혼란 |
| SID 9000002 | /app/rest/users에 대한 승인되지 않은 접근 |
| SID 9000003 | 승인되지 않은 관리자를 생성하는 POST 요청 |
;, .jsp 또는 jsp=를 포함하는 로그를 자동으로 suspicious로 태그하고 Elasticsearch 인덱스 teamcity-logs-*로 전달합니다.
3-incident-response/playbook/SOC-Playbook.md 참조
| 단계 | 조치 |
|---|---|
| 트라이지 | Kibana / Suricata 로그에서 알림 확인 |
| 차단 | block-ip.sh를 통해 공격자 IP 차단 |
| 제거 | 승인되지 않은 계정 제거, 토큰 취소, TeamCity 패치 |
| 단계 | 전술 | 기법 | 설명 |
|---|
| 1 | 정찰 | — | TeamCity 버전 2023.11.3 식별 |
| 2 | 초기 접근 | T1190 | ?jsp= 경로 혼란을 통한 인증 우회 악용 |
| 3 | 권한 상승 | T1078 | 승인되지 않은 SYSTEM_ADMIN 계정 생성 |
| 4 | 지속성 | T1098 | 장기 액세스 토큰 생성 |