발표 PPT

팀장(PM)으로 2025년 8월 ~ 2026년 1월까지 진행.
개요
리눅스 서버
- Wazuh Manager - Rocky9
- Victim(Wazuh agent + DVWA) - Rocky9
- Attacker - Kali
탐지
- ModSecurity2(OWASP CRS based): Injection-based Attack
- Suricata: Brute Force Attack
- Wazuh: Sever / Agent
차단
목표
Victim 서버의 DVWA 사이트를 대상으로 발생하는 전통적인 웹 대상 공격을 실시간으로 감지하고, 초기에 자동으로 공격자의 IP를 차단하는 방어 체계 구축.
자동 대응 구조
1. Injection-based Attack 발생
- Kali에서 Victim 측으로 Injection attack 수행
- 입력된 내용을 바탕으로 ModSecurity에서 OWASP CRS와 매칭하여 alert log 기록
- Wazuh Manager로 log 전송
- Manager 측에서 log 내용 중 차단 대상 Rule ID 매칭하여 active-response로 Victim(agent)에게 wazuh-nft-block.sh파일 실행 명령 전달.
- Victim에서 srcip를 nftables의 drop 목록에 등록
2. Brute Force Attack 발생
- Kali에서 Victim 측으로 Hydra를 사용한 Brute Force Attack 수행
- 정해진 빈도 이상으로 빈번한 입력이 이뤄질 시 Suricata에서 악성 사용자로 판단하여 alert log 기록
- Wazuh Manager로 log 전송
- Manager 측에서 log 내용 중 Suricata가 포함된 부분에서 Decoder를 통해 src_ip 필드를 srcip로 매칭
- Manager 측에서 active-response로 Victim(agent)에게 firewall-drop 명령 전달.
- Victim에서 srcip를 nftables의 drop 목록에 등록
프로젝트 임의 설정 사항
- Brute Force 감지 척도는 임의로 60초 내에 10회 이상 발생하는 것으로 설정
- 반복하여 시도해야 하는 프로젝트 환경 상, 공격자 IP 차단 시간은 600초로 설정
의의
- 웹 사이트 대상으로 발생할 수 있는 공격들을 초기에 감지하여 공격자를 차단함으로써 이후에 일어날 수 있는 더 심각한 피해를 예방
- 중앙 컨트롤 타워(Wazuh Manager)를 둠으로써, 하나의 Agent를 대상으로 발생한 공격을 바탕으로 악성 IP를 미리 Black List에 올려 차후에 발생할 수 있는 피해를 예방
개선점 / 발전 방향
- DVWA, ModSecurity, OWASP CRS 모두 out-dated + 현업에서는 Linux에서 서버를 구동하지 않고 모두 클라우드에서 돌림
-> Kotlin으로 제작한 웹사이트를 AWS에 올려서 해당 사이트를 상대로 공격 수행 및 탐지
- Brute Force는 너무 narrow한 공격 기법
-> 실제로 기업 대상으로 발생하는 DDos 공격 수행 및 해당 공격 탐지 후 방어
- SQLi, XSS 등은 최근에는 프레임워크를 도입하는 것마으로도 이미 방어되는 공격 기법
-> 최신 취약점인 SSTI(Server-Side Template Injection) 등을 감지할 수 있는 모델로 수정
- 실제로 빈번하게 발생되는 abusing 등에 대한 탐지 모델 부재
-> 매크로 등의 abusing에 대한 탐지 모델은 Brute Force 대응 모델을 조금만 변경하면 적용할 수 있을 것