Slow HTTP 공격
IT 위키
(RUDY 공격에서 넘어옴)
- HTTP의 취약점을 이용한 서비스 거부 공격들을 말한다.
Slow HTTP POST DoS[편집 | 원본 편집]
- RUDY(RU-Dead-Yet?) 공격이라고도 부른다.
- POST 메소드로 대량의 데이터를 장시간에 걸쳐 분할 전송하여 연결을 장시간 유지시킨다.
- 서버가 POST 데이터를 모두 수신하지 않았다고 판단하면 전송이 다 이루어질때 까지 연결을 유지하는 성격을 이용한다.
- 예를 들어 Content-Length를 100000byte로 하고 데이터는 일정한 간격으로 1byte씩 전송한다.
- 이러한 연결을 다량 만들어 각각의 연결이 장시간 유지되도록 하여 가용성을 해친다
Slow HTTP Header DoS[편집 | 원본 편집]
- Slowloris 공격이라고도 부른다.
- HTTP Header 정보를 비정상적으로 조작하여 웹서버가 온전한 Header정보가 올때 까지 기다리도록 한다.
- 서버가 연결 상태를 유지할 수 있는 가용자원은 한계가 있으므로 임계치를 넘어가면 다른 정상적인 접근을 거부하게 된다.
동작[편집 | 원본 편집]
- HTTP에선 헤더의 끝을 /r/n 이라는 개행문자로 구분한다.
- 공격자는 이 마지막 개행문자를 보내지 않고 지속적으로 의미없는 변수를 추가한다.
- 서버는 헤더 정보가 아직 전송 중이라고 인식하고 연결을 유지한다.
대응[편집 | 원본 편집]
- 공격자가 동시에 많은 세션을 유지하므로 방화벽 등을 통하여 세션 임계치 제한을 설정한다.
- 공격자가 헤더를 천천히 전달하며 연결 시간을 지속시키므로 연결 타임아웃 시간을 적절히 짧게 두어 의심되는 연결이 종료되도록 한다. 단, 너무 짧게 둘 경우 일부 느린 네트워크의 정상적인 연결에 대해서도 가용성을 해칠 수 있다.
Slow HTTP Read DoS[편집 | 원본 편집]
- 정상트래픽 이라면 Window Size가 가변적이지만 공격 트래픽은 Window Size가 "0"으로 고정
- 매우 작은 윈도우크기로 서버에 응답을 보내면 서버는 더 이상 데이터를 전송하지 못하고 연결만 유지한 상태로 대기