Slowloris 공격: Difference between revisions
From CS Wiki
No edit summary |
(→동작: /r/n/r/n 으로 헤더와 보디를 구분하는데, /r/n만 보내서 헤더를 조작하여 비정상적인 연결된 세션을 계속 생성 하는 것이 공격방식임) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[분류:보안]][[분류:보안 공격]] | [[분류:보안]] | ||
; Slow HTTP Header DoS | [[분류:보안 공격]] | ||
;Slow HTTP Header DoS | |||
일명 Slowloris 공격 | 일명 Slowloris 공격 | ||
== 동작 == | *HTTP Header 정보를 비정상적으로 조작하여 웹서버가 온전한 Header정보가 올때 까지 기다리도록 한다. | ||
* HTTP에선 헤더의 끝을 /r/n 이라는 개행문자로 구분한다. | *서버가 연결 상태를 유지할 수 있는 가용자원은 한계가 있으므로 임계치를 넘어가면 다른 정상적인 접근을 거부하게 된다. | ||
* 공격자는 이 마지막 개행문자를 보내지 않고 지속적으로 의미없는 변수를 추가한다. | |||
* 서버는 헤더 정보가 아직 전송 중이라고 인식하고 연결을 유지한다. | ==동작== | ||
*HTTP에선 헤더의 끝을 /r/n/r/n 이라는 개행문자로 구분한다. | |||
*공격자는 이 마지막 개행문자를 보내지 않고 지속적으로 의미없는 변수를 추가한다. | |||
*서버는 헤더 정보가 아직 전송 중이라고 인식하고 연결을 유지한다. | |||
== 공격 분석 == | ==공격 분석== | ||
[[파일:Slowloris 패킷.png]]<ref>[https://kb.mazebolt.com/knowledgebase/slowloris-attack/ 출처]</ref> | [[파일:Slowloris 패킷.png]]<ref>[https://kb.mazebolt.com/knowledgebase/slowloris-attack/ 출처]</ref> | ||
* 한 클라이언트가 3-Ways-Handshaking을 통해 정상적으로 TCP 연결을 수립하고 나서 Keep Alive Signal을 보내어 연결을 유지하는 행위를 반복하고 있음을 알 수 있다. | |||
*한 클라이언트가 3-Ways-Handshaking을 통해 정상적으로 TCP 연결을 수립하고 나서 Keep Alive Signal을 보내어 연결을 유지하는 행위를 반복하고 있음을 알 수 있다. | |||
[[파일:Slowloris 패킷 분석.png]] | [[파일:Slowloris 패킷 분석.png]] | ||
== 대응 == | *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]
- 한 클라이언트가 3-Ways-Handshaking을 통해 정상적으로 TCP 연결을 수립하고 나서 Keep Alive Signal을 보내어 연결을 유지하는 행위를 반복하고 있음을 알 수 있다.
- Keep alive 패킷은 PSH ACK 플래그를 포함한다.
- Header와 Body를 구분하는 0d0a0d0a가 아닌, 0d0a에서 끝냈다는 것은 아직 전송할 헤더가 남았음을 의미한다.
- 공격자는 이렇게 연결을 유지하여 가용자원을 소진되게 만든다.
대응[edit | edit source]
- 공격자가 동시에 많은 세션을 유지하므로 방화벽 등을 통하여 세션 임계치 제한을 설정한다.
- 공격자가 헤더를 천천히 전달하며 연결 시간을 지속시키므로 연결 타임아웃 시간을 적절히 짧게 두어 의심되는 연결이 종료되도록 한다. 단, 너무 짧게 둘 경우 일부 느린 네트워크의 정상적인 연결에 대해서도 가용성을 해칠 수 있다.