
CY376 블루팀 프로젝트 — pfSense DMZ, Suricata IDS/IPS, 및 CVE-2014-6271에 대한 자동화된 호스트 하드닝
CY376: 네트워크 모니터링, 보안 및 감사 — 학기말 프로젝트 Blue Team | University of Mines and Technology, Tarkwa
저자: Kennedy Kumi Holomah 색인 번호: FCM.41.018.148.23 학생 ID: 9013004623
이 프로젝트는 완전히 격리된 VMware Workstation 실습 환경에서 pfSense 방화벽 뒤에 호스팅된 공개용 Ubuntu/Apache 웹 서버를 호스팅하는 비무장지대(DMZ)를 구축하고, 보호하며, 모니터링합니다. University of Mines and Technology(Tarkwa)의 CY376(네트워크 모니터링, 보안 및 감사)을 위한 Blue Team 실습으로 제작되었으며, 단일 통제 수단이 아닌 전체 방어 수명 주기, 즉 세분화된 네트워크 경계, 해당 경계에서의 인라인 탐지, 명명된 CVE에 대한 실제 공격 시도, 자동화된 복구, 그리고 수정으로 인해 실제로 취약점이 차단되었는지에 대한 재검증을 보여줍니다.
이 프로젝트는 의도적으로 각 방어 계층을 단순한 구성 스크린샷이 아닌 증거와 함께 제시합니다. Suricata의 탐지 기능이 실시간으로 Shellshock 공격 시도를 포착하는 모습, 동일한 페이로드가 강화 적용 후 완전히 실패하는 모습, 그리고 그 과정에서 마주친 명확하지 않은 인프라 문제들(패킷 캡처를 조용히 차단하는 하드웨어 오프로드 설정, 방향성 시그니처를 조용히 깨뜨리는 기본 HOME_NET 범위, 서버를 보호하려던 강화 스크립트의 자체 권한 잠금으로 인해 서버가 손상된 사례)이 편집되지 않고 그 자체로 발견 사항으로 문서화됩니다.
HOME_NET이 DMZ 서브넷으로 올바르게 범위가 지정되어 LAN에서 발생한 공격 트래픽이 외부 트래픽으로 처리됩니다.scripts/dmz_web_hardening.sh)가 Bash를 패치하고, Shellshock이 사용하는 CGI 핸들러를 비활성화하며, SSH를 LAN으로 제한하고, 호스트 방화벽(UFW)과 fail2ban을 활성화하며, 웹 루트 권한을 잠급니다.전체 보고서, 증거 스크린샷 및 분석: docs/CY376_DMZ_Report_Kennedy_Kumi_Holomah.pdf.
모든 세그먼트 간 트래픽은 오직 pfSense를 통해서만 전달되며, 방화벽을 우회하는 경로는 없습니다.
.
├── README.md
├── .gitignore
├── scripts/
│ └── dmz_web_hardening.sh # DMZ 웹 서버용 호스트 강화 스크립트
├── docs/
│ └── CY376_DMZ_Report_Kennedy_Kumi_Holomah.pdf # 전체 프로젝트 보고서
└── evidence/
└── figure01_lab_topology.png ... figure11_wazuh_dashboard.png
# 보고서에 사용된 11개의 캡션 포함 스크린샷으로,
# docs/CY376_DMZ_Report_*.pdf 전체에서 사용된 그림 번호와 일치하도록 번호가 매겨져 있습니다.
scripts/dmz_web_hardening.sh는 DMZ Ubuntu/Apache 호스트를 대상으로 합니다. 다시 실행해도 안전하도록 작성되었습니다. 스크립트가 수정하는 모든 구성 파일은 먼저 백업되며(.bak-YYYYmmdd-HHMMSS 접미사), 모든 작업은 /var/log 아래의 타임스탬프가 있는 파일에 기록됩니다.
# DMZ 웹 서버에서
sudo bash scripts/dmz_web_hardening.sh
실행 전에 스크립트 상단의 CONFIG 섹션(LAN 서브넷, HTTP/HTTPS 포트)을 검토하여 자신의 토폴로지에 맞게 조정하십시오.
수행 작업:
mod_cgi/mod_cgid 비활성화 프롬프트(Shellshock 공격 표면을 완전히 제거), 웹 루트 소유권/권한 잠금.완료 요약이 마지막에 출력되며, 각 단계에 대한 자세한 내용은 보고서에 있습니다.
전체 논의는 보고서의 섹션 6(분석 및 권장 사항)을 참조하십시오.
| 호스트 | 역할 | 인터페이스 / VMnet | IP 주소 |
|---|
| pfSense | 방화벽 / 라우터 | WAN(em0) | 192.168.248.138(DHCP, NAT) |
| pfSense | 방화벽 / 라우터 | LAN(em2) | 192.168.20.1/24 |
| pfSense | 방화벽 / 라우터 | DMZ(em1) | 192.168.10.1/24 |
| Kali Linux | 공격자 호스트 | VMnet4(LAN) | 192.168.20.102 |
| LAN 클라이언트 | 일반 LAN 호스트 | VMnet4(LAN) | 192.168.20.100 |
| DMZ 웹 서버 | 대상 / 보호 자산 | VMnet3(DMZ) | 192.168.10.10 |
| Wazuh 매니저 | SIEM / 로그 플랫폼 | VMnet4(LAN) | 192.168.20.103 |
| 테스트 | 강화 전 | 강화 후 |
|---|
| Shellshock 공격 시도 | 페이로드 수락됨; Suricata 알림 발생(SID 2022028) | HTTP 404 — CGI 핸들러 제거됨 |
| LAN(Kali)에서 SSH | 사용 가능, 제한 없음 | 사용 가능, 192.168.20.0/24로 제한 |
| 웹 루트 접근 | 기본 콘텐츠 제공 | 강화 중 일시적으로 403, 이후 복원됨 |
| 사용자 지정 Suricata 드롭 규칙 | 해당 없음 | 일치 시 활성 차단 확인됨 |