kuroda
네트워크 보안 실습: HTTP Get Flooding 공격 본문
HTTP Get flooding 공격
HTTP Get flooding 공격이란 서버에 전달되는 HTTP Get 패킷이 너무 많아서 다른 클라이언트 시스템이 해당 서버에 접속할 수 없게 하는 공격이다.
정상적인 과정
사용자가 특정 URL에 접속하려고 하면 해당 URL을 가진 웹 서버에 TCP 연결 후 HTTP Get 패킷을 전송한다.
이를 전달 받은 웹 서버는 해당 URL에 대한 자료(HTML 문서 등)를 패킷에 넣어서 응답한다.
(주의!) 웹 서버는 매 순간 처리 가능한 HTTP 패킷의 양이 정해져 있다. 마치 식당의 주방에서 동시에 처리할 수 있는 주문량이 제한적인 것.
1. 공격자는 이러한 제한적인 처리 용량을 초과하는 대량의 HTTP Get 패킷을 웹 서버에 지속적으로 보낸다.
2. 웹 서버는 각 HTTP Get 요청에 대해 응답하기 위해 시스템 자원(CPU, 메모리, 네트워크 대역폭)을 모두 소진하게 된다.
3. 결과적으로 웹 서버는 정상적인 사용자가 웹 페이지의 정보를 요청하는 HTTP Get 패킷을 제대로 처리하지 못하는 상태가 된다. 파이싸움...(자원 할당 문제)
(1) HTTP Get (공격자 -> 웹 서버): 공격자는 다수의 악성 봇(그림의 '공격자'로 표시된 시스템)을 이용하여 웹 서버를 향해 끊임없이 HTTP Get 요청을 보냅니다. 마치 빨간색 화살표가 쉴 새 없이 웹 서버로 향하는 모습으로 표현되어 있습니다.
(2) HTTP Get (시스템 A -> 웹 서버): 정상적인 사용자 (그림의 '시스템 A')도 웹 서버에 HTTP Get 요청을 보내려고 하지만, 이미 공격자의 많은 요청으로 인해 서버가 과부하 상태다.
(3) HTTP Response (웹 서버 -> 공격자): 웹 서버는 공격자의 각 HTTP Get 요청에 대해 응답하려고 시도하지만, 과부하로 인해 제대로 응답하지 못하거나 매우 느리게 응답하게 된다. (자원 소모 10억배!)
대응방안: 방화벽으로 GET 패킷에 임계값을 넣어 일정량 이상 패킷이 오면 차단하기
'수업 > 네트워크 보안' 카테고리의 다른 글
네트워크 보안 실습: DNS Spoofing (0) | 2025.04.23 |
---|---|
네트워크 보안 실습: Slowloris 공격 및 Snort 방어 (0) | 2025.04.23 |
네트워크 보안 실습: ICMP Flooding (0) | 2025.04.23 |
네트워크 보안 실습: SYN flooding 방어(syncookies) (0) | 2025.04.22 |