Slowloris 공격: Difference between revisions

From CS Wiki
(새 문서: 분류:보안분류:보안 공격 ; Slow HTTP Header DoS 일명 Slowloris 공격 * HTTP Header 정보를 비정상적으로 조작하여 웹서버가 온전한 Header정보가...)
 
(→‎동작: /r/n/r/n 으로 헤더와 보디를 구분하는데, /r/n만 보내서 헤더를 조작하여 비정상적인 연결된 세션을 계속 생성 하는 것이 공격방식임)
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[분류:보안]][[분류:보안 공격]]
[[분류:보안]]
; Slow HTTP Header DoS
[[분류:보안 공격]]
 
;Slow HTTP Header DoS
 
일명 Slowloris 공격
일명 Slowloris 공격
* HTTP Header 정보를 비정상적으로 조작하여 웹서버가 온전한 Header정보가 올때 까지 기다리도록 한다.
* 서버가 연결 상태를 유지할 수 있는 가용자원은 한계가 있으므로 임계치를 넘어가면 다른 정상적인 접근을 거부하게 된다.


== 동작 ==
*HTTP Header 정보를 비정상적으로 조작하여 웹서버가 온전한 Header정보가 올때 까지 기다리도록 한다.
* HTTP에선 헤더의 끝을 /r/n 이라는 개행문자로 구분한다.
*서버가 연결 상태를 유지할 수 있는 가용자원은 한계가 있으므로 임계치를 넘어가면 다른 정상적인 접근을 거부하게 된다.
* 공격자는 이 마지막 개행문자를 보내지 않고 지속적으로 의미없는 변수를 추가한다.
 
* 서버는 헤더 정보가 아직 전송 중이라고 인식하고 연결을 유지한다.
==동작==
 
*HTTP에선 헤더의 끝을 /r/n/r/n 이라는 개행문자로 구분한다.
*공격자는 이 마지막 개행문자를 보내지 않고 지속적으로 의미없는 변수를 추가한다.
*서버는 헤더 정보가 아직 전송 중이라고 인식하고 연결을 유지한다.
 
==공격 분석==
[[파일:Slowloris 패킷.png]]<ref>[https://kb.mazebolt.com/knowledgebase/slowloris-attack/ 출처]</ref>


== 공격 분석 ==
*한 클라이언트가 3-Ways-Handshaking을 통해 정상적으로 TCP 연결을 수립하고 나서 Keep Alive Signal을 보내어 연결을 유지하는 행위를 반복하고 있음을 알 수 있다.
[[파일:Slowloris 패킷.png]]
* 한 클라이언트가 3-Ways-Handshaking을 통해 정상적으로 TCP 연결을 수립하고 나서 Keep Alive Signal을 보내어 연결을 유지하는 행위를 반복하고 있음을 알 수 있다.


[[파일:Slowloris 패킷 분석.png]]
[[파일:Slowloris 패킷 분석.png]]
* Keep alive 패킷은 PSH ACK 플래그를 포함한다.
* Header와 Body를 구분하는 0d0a0d0a가 아닌, 0d0a에서 끝냈다는 것은 아직 전송할 헤더가 남았음을 의미한다.
* 공격자는 이렇게 연결을 유지하여 가용자원을 소진되게 만든다.


== 대응 ==
*Keep alive 패킷은 PSH ACK 플래그를 포함한다.
* 공격자가 동시에 많은 세션을 유지하므로 방화벽 등을 통하여 세션 임계치 제한을 설정한다.
*Header와 Body를 구분하는 0d0a0d0a가 아닌, 0d0a에서 끝냈다는 것은 아직 전송할 헤더가 남았음을 의미한다.
* 공격자가 헤더를 천천히 전달하며 연결 시간을 지속시키므로 연결 타임아웃 시간을 적절히 짧게 두어 의심되는 연결이 종료되도록 한다. 단, 너무 짧게 둘 경우 일부 느린 네트워크의 정상적인 연결에 대해서도 가용성을 해칠 수 있다.
*공격자는 이렇게 연결을 유지하여 가용자원을 소진되게 만든다.
 
==대응==
 
*공격자가 동시에 많은 세션을 유지하므로 방화벽 등을 통하여 세션 임계치 제한을 설정한다.
*공격자가 헤더를 천천히 전달하며 연결 시간을 지속시키므로 연결 타임아웃 시간을 적절히 짧게 두어 의심되는 연결이 종료되도록 한다. 단, 너무 짧게 둘 경우 일부 느린 네트워크의 정상적인 연결에 대해서도 가용성을 해칠 수 있다.
 
==같이 보기==


== 같이 보기 ==
*[[Slow HTTP 공격]]
* [[Slow HTTP 공격]]
*[[DoS]]
* [[DoS]]
<references />

Latest revision as of 18:27, 28 July 2023


Slow HTTP Header DoS

일명 Slowloris 공격

  • HTTP Header 정보를 비정상적으로 조작하여 웹서버가 온전한 Header정보가 올때 까지 기다리도록 한다.
  • 서버가 연결 상태를 유지할 수 있는 가용자원은 한계가 있으므로 임계치를 넘어가면 다른 정상적인 접근을 거부하게 된다.

동작[edit | edit source]

  • HTTP에선 헤더의 끝을 /r/n/r/n 이라는 개행문자로 구분한다.
  • 공격자는 이 마지막 개행문자를 보내지 않고 지속적으로 의미없는 변수를 추가한다.
  • 서버는 헤더 정보가 아직 전송 중이라고 인식하고 연결을 유지한다.

공격 분석[edit | edit source]

Slowloris 패킷.png[1]

  • 한 클라이언트가 3-Ways-Handshaking을 통해 정상적으로 TCP 연결을 수립하고 나서 Keep Alive Signal을 보내어 연결을 유지하는 행위를 반복하고 있음을 알 수 있다.

Slowloris 패킷 분석.png

  • Keep alive 패킷은 PSH ACK 플래그를 포함한다.
  • Header와 Body를 구분하는 0d0a0d0a가 아닌, 0d0a에서 끝냈다는 것은 아직 전송할 헤더가 남았음을 의미한다.
  • 공격자는 이렇게 연결을 유지하여 가용자원을 소진되게 만든다.

대응[edit | edit source]

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

같이 보기[edit | edit source]