Slow HTTP 공격: Difference between revisions

From CS Wiki
No edit summary
No edit summary
Line 11: Line 11:
; Slowloris 공격이라고도 부른다.
; Slowloris 공격이라고도 부른다.
* HTTP Header 정보를 비정상적으로 조작하여 웹서버가 온전한 Header정보가 올때 까지 기다리도록 한다.
* HTTP Header 정보를 비정상적으로 조작하여 웹서버가 온전한 Header정보가 올때 까지 기다리도록 한다.
* 예를 들어 HTTP에서 헤더와 바디의 구분을 /r/n 이라는 개행문자로 구분하는데 이 개행문자 없이 보낼 경우 헤더가 덜 왔다고 판단하고 연결을 유지한다.
* 서버가 연결 상태를 유지할 수 있는 가용자원은 한계가 있으므로 임계치를 넘어가면 다른 정상적인 접근을 거부하게 된다.
* 이러한 연결을 다량 만들어 각각의 연결이 장시간 유지되도록 하여 가용성을 해친다.
 
=== 동작 ===
* HTTP에서 헤더의 끝을 /r/n 이라는 개행문자로 구분한다.
* 공격자는 마지막 개행문자를 보내지 않고 지속적으로 의미없는 변수를 추가한다.
* 서버는 헤더 정보가 아직 전송 중이라고 인식하고 연결을 유지한다.
 
=== 대응 ===
* 공격자가 동시에 많은 세션을 유지하므로 방화벽 등을 통하여 세션 임계치 제한을 설정한다.
* 공격자가 헤더를 천천히 전달하며 연결 시간을 지속시키므로 연결 타임아웃 시간을 적절히 짧게 두어 의심되는 연결이 종료되도록 한다. 단, 너무 짧게 둘 경우 일부 느린 네트워크의 정상적인 연결에 대해서도 가용성을 해칠 수 있다.

Revision as of 12:32, 19 May 2018

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 이라는 개행문자로 구분한다.
  • 공격자는 마지막 개행문자를 보내지 않고 지속적으로 의미없는 변수를 추가한다.
  • 서버는 헤더 정보가 아직 전송 중이라고 인식하고 연결을 유지한다.

대응

  • 공격자가 동시에 많은 세션을 유지하므로 방화벽 등을 통하여 세션 임계치 제한을 설정한다.
  • 공격자가 헤더를 천천히 전달하며 연결 시간을 지속시키므로 연결 타임아웃 시간을 적절히 짧게 두어 의심되는 연결이 종료되도록 한다. 단, 너무 짧게 둘 경우 일부 느린 네트워크의 정상적인 연결에 대해서도 가용성을 해칠 수 있다.