지난 포스팅에서 HTTP Get/POST Flooding에 대해 알아보았습니다
왜 지난 주제를 언급하는가하면
오늘의 학습 주제가 Slow HTTP Get/POST Attack이기 때문입니다
Slow만 앞에 붙어서 뭐 그냥 HTTP Get/POST Attack을 천천히 하는건가? 라는 생각이 드는데요
그럼 방식에 따라서 하나씩 살펴보겠습니다
먼저 Slow HTTP Get방식은
TCP 및 UDP 기반 공격이며 소량의 트래픽과 세션 연결을 통해 공격하고
애플리케이션 서비스의 취약점을 이용한 공격입니다
정상 IP 기반 공격이며 탐지가 어렵다는 특징을 가지고 있습니다
다음은 Slow HTTP Post방식은
HTTP의 Post 데이터가 모두 수신되지 않으면 연결을 장시간 유지한다는 점을 이용한 것인데
Post 지시자를 사용하여 서버에게 전달할 대량의 데이터를 장시간에 걸쳐 분할 전송하는 것입니다
Slow HTTP Get/POST 공격 방법을 잠깐 살펴보면
공격자가 HTTP Post Method를 사용하여
HTTP Header의 Content-Length 필드에 임의의 큰 값을 입력하고
Content를 천천히 1Byte씩 전송하면
웹 서버가 클라이언트에서 해당 크기의 메시지를 전송할 때까지
Connection을 유지하게 되는 것입니다
다음으로 Slow HTTP Read DoS는
공격자가 웹 서버와 TCP 연결 시 TCP 윈도우 크기 및 데이터 처리율을 감소시킨 후
HTTP 데이터를 송신하면 웹 서버는 정상상태로 회복될 때가지 대기상태에 빠지게 되어
정상적으로 응답하지 못하도록 하는 것입니다
이 공격 방법이 TCP 윈도우 크기 및 데이터 처리율을 감소시킨다고 하는 것은
공격자가 자신의 TCP 윈도우 크기를 0Byte로 만들어서 서버로 전달하는 것을 의미합니다
서버는 윈도우 크기가 0Byte라는 것을 확인하고
데이터를 전송하지 않고 대기 상태로 빠지게됩니다
마지막으로 Slow HTTP Header DoS(Slowloris)는
HTTP Header를 비정상적으로 조작해서 웹 서버가 헤더 정보를 구분할 수 없도록 하여
웹 서버가 HTTP Header 정보가 모두 전달되지 않은 것으로 판단하여 연결을 장시간 유지하도록 하는 공격입니다
또한, 이 공격은 웹 서버가 클라이언트로부터 요청이 끝나지 않은 것으로 판단하기 때문에
웹 로그에 기록하지 않는다는 특징이 있습니다
HTTP Header를 비정상적으로 조작한다는 것은
HTTP Header와 Body는 개행문자(\r\n\r\n)로 구분하는데
\r\n만 전송하여 불완전한 Header를 전송하는 것을 의미합니다
아래의 표는 Slow HTTP Get/POST 공격 대응 방법을 정리한 것입니다
대응 방법 | 내용 |
접속 임계치 설정 | 특정 발신지에서 IP로 연결할 수 있는 최댓값 설정 |
iptables로 차단 |
iptables -A INPUT -p tcp -dport 80 -m connlimit-above 20 -j DROP ( 20개 이상의 Concurrent Connection에 대한 차단 ) |
Connection Timeout/Keepalivetime 설정 | Connection Timeout/Keepalivetime을 설정하여 차단 |
RequestReadTimeout 설정 ( Apache 2.2.15버전 이후 ) |
RequestReadTimeout header = 5 body = 8 ( 5초 내에 연결이 안되거나 POST 요청 이후 8초 내에 데이터(body)가 오지 않으면 종료 ) |
POST 메시지의 크기를 제한 |
POST_MAX_SIZE 설정 |
최저 데이터 전송 속도를 제한 |
|
이것으로 오늘의 학습을 마치겠습니다-_-
'Security' 카테고리의 다른 글
[Security] 사용자 인증 방식 및 원리 (0) | 2020.02.23 |
---|---|
[Security] 정보 보호 개요 (0) | 2020.02.23 |
[Security] 서비스 거부 공격(DoS : Denial of Service)_3 (0) | 2020.02.16 |
[Security] 서비스 거부 공격(DoS : Denial of Service)_2 (0) | 2020.02.16 |
[Security] 서비스 거부 공격(DoS : Denial of Service)_1 (0) | 2020.02.12 |