hping3 활용: 방화벽 룰 검증 및 DoS/DDoS 부하 테스트
보안 장비가 악의적인 공격을 완벽히 차단하고 있는지 어떻게 확신할 수 있을까? hping3의 고급 패킷 제어 옵션을 사용하여 방화벽 정책의 한계를 검증하고 부하 테스트를 수행해보자.
이 글은 2026년 7월 기준으로 작성됐다. 기업의 인프라 보안 담당자나 시스템 엔지니어가 모의 훈련을 진행할 때 필수적으로 알아야 할 기법을 다룬다.
본 포스트는 hping3 네트워크 보안 가이드 시리즈의 2편이다.
이전 단계의 기본 설치법과 포트 스캔 사용법이 궁금하다면 hping3 기본 개념과 포트 스캔을 다룬 1편 가이드를 먼저 읽고 오는 것을 권장한다.
패킷 단편화로 방화벽 룰을 어떻게 검증할까?
방화벽이 조각난 패킷을 어떻게 처리하는지 검증하기 위해 hping3의 단편화(Fragmentation) 옵션을 사용한다.
침입 차단 시스템(IPS)이나 방화벽은 들어오는 패킷의 헤더 정보를 검사하여 허용 여부를 결정한다. 이때 공격자는 방화벽 검사를 우회하기 위해 하나의 패킷을 여러 개로 조각내어 전송하는 기법을 사용하곤 한다. hping3를 사용하면 이러한 조각 패킷을 직접 만들어 전송함으로써 사내 보안 장비의 패킷 재조합 및 탐지 성능을 객관적으로 평가할 수 있다.
대표적인 단편화 및 플래그 검증 명령어는 다음과 같다.
sudo hping3 -S 192.168.1.100 -p 80 -f -d 100
-f: 전송할 패킷을 더 작은 조각(Fragment)으로 단편화하여 전송하도록 지시한다.-d 100: 패킷에 100바이트 크기의 의미 없는 임의 데이터를 담아 강제로 패킷 크기를 키운다.
실제로 로컬 방화벽 설정인 리눅스 Netfilter/iptables 공식 웹사이트 도구로 모의 방화벽 규칙을 적용한 시스템에 테스트해 본 결과, 패킷 조각화 처리가 활성화된 트래픽을 보안 장비가 적절하게 감지하고 드랍(Drop)하는지 유무를 추적하여 취약한 방화벽 설정을 바로잡을 수 있었다.
hping3를 이용한 DoS/DDoS 모의 부하 테스트
서버가 과부하 환경에서 정상적으로 서비스를 유지할 수 있는지 시스템 가용성 한계를 진단하기 위해 DoS 테스트를 실시한다.
가장 흔하게 쓰이는 기법은 TCP의 3-Way Handshake 취약점을 노리는 SYN Flooding이다. 대량의 연결 요청만 보내고 상대방의 응답에 대한 최종 확인(ACK)을 하지 않아 서버의 연결 테이블(Backlog Queue)을 가득 채우는 원리다. SYN Flooding에 대한 세부적인 이론과 대응 매커니즘은 Cloudflare의 SYN Flood 공격 개념 가이드 문서에 상세히 설명되어 있다.
hping3로 수행할 수 있는 주요 모의 테스트 기법을 정리했다.
1. SYN Flooding (최대 속도 부하 전송)
출발지 IP 주소를 무작위로 변경하며 대상 시스템에 막대한 양의 동시 접속 요청을 쏟아붓는 방식이다.
sudo hping3 192.168.1.100 -p 80 -S --flood --rand-source
--flood: 패킷 송신 대기 시간 없이 대역폭이 허용하는 최대 속도로 패킷을 밀어 넣는다.--rand-source: 출발지 IP 주소를 매 패킷마다 무작위로 위조(Spoofing)하여 방화벽의 IP 기반 차단 룰을 무력화한다.
2. Ping of Death (대용량 ICMP 버스트)
비정상적으로 크기가 큰 ICMP 패킷을 단편화하여 전송해 수신 측의 버퍼 오버플로우나 리소스 고갈을 유도하는 기법이다. 서비스 거부 공격의 대표적인 유형이며, OWASP DoS 공격 취약점 가이드라인에서도 중요하게 다루어진다.
sudo hping3 -1 192.168.1.100 -d 65000 --flood
-1: ICMP 모드를 지정한다.-d 65000: 패킷 페이로드의 크기를 65,000바이트로 과도하게 늘려 단편화를 강제 유도한다.
DoS 및 DDoS 모의 테스트 시 주요 주의 사항
DDoS 및 DoS 테스트 명령어는 허가받지 않은 네트워크 영역에 실행할 경우 심각한 법적 책임을 져야 한다.
안전한 모의 훈련을 진행하기 위해 담당자는 아래 3가지 수칙을 엄격하게 지켜야 한다.
| 수칙 | 세부 행동 지침 |
|---|---|
| 1. 사전 동의 및 계획서 승인 | 테스트를 진행할 대상 서버 소유자의 서면 동의 및 구체적인 모의 훈련 계획에 대한 결재가 선행되어야 한다. |
| 2. 격리된 샌드박스 환경 구축 | 실제 상용 서비스 중인 네트워크 경로에 영향을 주지 않도록 격리된 가상망(Host-Only Network VM)을 구축하고 진행한다. |
| 3. 모니터링 체계 가동 | --flood 명령어 실행 시 타겟 서버의 CPU, RAM, 네트워크 인프라 스위치의 장비 임계치를 모니터링하여 인프라 다운을 방지한다. |
자주 묻는 질문 (FAQ)
Q. --rand-source 옵션으로 위조된 패킷을 보냈는데 수신 측에서 응답이 전혀 돌아오지 않습니다. A. IP 스푸핑은 출발지 주소를 가짜로 속이는 기법이다. 따라서 대상 서버가 응답 패킷(SYN-ACK 등)을 보낼 때 조작된 가짜 IP 주소로 보내게 되므로, 명령어를 실행한 송신 측 컴퓨터로는 당연히 어떤 응답도 돌아오지 않는다. 연결 성립 상태보다는 오직 송신 트래픽 부하의 강도를 늘리는 목적으로 사용된다.
Q. 방화벽 장비에서 SYN Flooding 공격을 방어하기 위한 대표적인 대책은 무엇인가요?
A. 방화벽이나 리눅스 운영체제 커널 레벨에서 SYN Cookies 설정을 활성화하는 것이 가장 확실한 대응법이다. 또한 IPS 장비에서 동일 IP의 임계 시간 내 SYN 요청 횟수를 제한하는 Rate Limiting 규칙을 설정하여 차단 대책을 구축할 수 있다.
Q. hping3로 대규모 분산 공격(DDoS) 형태의 볼륨 트래픽 모의 훈련도 가능한가요? A. 단일 hping3 프로세스는 단일 장비의 대역폭 한계 내에서만 트래픽을 생성한다. 따라서 대규모 DDoS 훈련을 위해서는 여러 대의 테스트 에이전트 장비를 중앙 제어 하에 동시 구동하는 별도의 트래픽 생성 솔루션이나 부하 분산 스크립트 처리가 병행되어야 한다.
📝 정리
이번 글에서 다룬 핵심 내용:
- [x] 패킷 단편화(
-f) 옵션을 활용한 침입 차단 시스템(IDS) 및 방화벽 패킷 재조합 한계 검증. - [x]
--flood및--rand-source옵션을 사용한 SYN Flooding 부하 생성 실습. - [x] 안전한 보안 모의 테스트 진행을 위한 사전 승인 및 망 격리 필수 수칙 점검.
hping3 네트워크 보안 가이드 시리즈는 여기까지다. 개념부터 실전까지, 이제 직접 써먹을 일만 남았다. 훈련받은 지식을 바탕으로 더욱 견고하고 안전한 네트워크 인프라 환경을 완성하길 바란다.