
CVE-2023-4863(libwebp 힙 버퍼 오버플로)에 대한 교육적 분석, 블루 팀 탐지 도구, 정적 WebP 스캐너, 방어적 Java 검증기, Valgrind 메모리 분석이 포함된 격리된 Docker 랩.
| 이름 | GitHub | 이메일 | 웹사이트 | |
|---|---|---|---|---|
| Keyvan Arasteh | @keyvanarasteh | [email protected] | keyvanarasteh | qline.tech |
| 이름 | 학번 |
|---|---|
| Batuhan Seydi Çelik | 2520****1006 |
| 과목명 | 과목 코드 | 학점 | 선수 과목 | 학기 |
|---|---|---|---|---|
| 침투 테스트 및 취약점 분석 | BGT006 | 3 ECTS | 네트워크 기초, Linux CLI | 2025-2026 봄 학기 |
본 프로젝트는 CVE-2023-4863 (libwebp Heap Buffer Overflow) 취약점을 교육 목적으로 분석하고, 방어(Blue Team) 측면에서 이러한 이상 징후를 시스템 내에서 어떻게 탐지할 수 있는지 실습을 통해 보여주기 위해 준비되었습니다.
이 취약점은 웹 세계의 많은 생태계에 직접적인 영향을 미쳤습니다:
ReadHuffmanCodes 함수는 메모리에 테이블에 필요한 공간보다 적게 할당합니다.BuildHuffmanTable)에서 할당된 메모리 영역을 초과하여 쓰기(Out-Of-Bounds Write)가 발생합니다.보안 원칙에 따라 시스템에는 실제 무장된 Red Team 코드(익스플로잇)가 포함되지 않습니다. 취약점은 구조적(structural)으로 테스트됩니다.
src/blue_team/webp_scanner.py: WebP 청크 구조를 정적으로 검사하여 비정상적인 크기를 탐지합니다.src/blue_team/WebpValidator.java: 파일 업로드 시나리오를 모방하여 크기 위조를 fail-fast 방식으로 차단하고, 손상된 파일에서도 충돌 없이 작동하는 Java 방어적 코드 예제입니다.src/red_team/poc.py: 실제 페이로드를 포함하지 않지만, Blue Team 분석 도구가 활성화되는지 테스트하기 위해 의도적으로 60MB의 가짜 청크 크기를 보고하는 교육용 테스트 생성기입니다.libwebp-1.3.1로 구성된 완전히 격리된 실험실입니다. 메모리 오류(Invalid Write) 분석을 위해 analyze_memory.sh 스크립트를 통한 Valgrind 동적 분석을 제공합니다.보안 발견 사항은 생성된 JSON 로거 인프라를 통해 기록되며, src/public 디렉토리 아래에 위치한 Blue Team Dashboard (HTML/JS/CSS)를 통해 비동기식으로 실시간 시각화됩니다.
