Slow HTTP 공격 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
6번째 줄: 6번째 줄:
* 서버가 POST 데이터를 모두 수신하지 않았다고 판단하면 전송이 다 이루어질때 까지 연결을 유지하는 성격을 이용한다.
* 서버가 POST 데이터를 모두 수신하지 않았다고 판단하면 전송이 다 이루어질때 까지 연결을 유지하는 성격을 이용한다.
* 예를 들어 Content-Length를 100000byte로 하고 데이터는 일정한 간격으로 1byte씩 전송한다.
* 예를 들어 Content-Length를 100000byte로 하고 데이터는 일정한 간격으로 1byte씩 전송한다.
* 이러한 연결을 다량 만들어 각각의 연결이 장시간 유지되도록 하여 가용성을 해친다
* 이러한 연결을 다량 만들어 각각의 연결이 장시간 유지되도록 하여 가용성을 해친다.


== [[Slowloris 공격|Slow HTTP Header DoS]] ==
== Slow HTTP Header DoS ==
; Slowloris 공격이라고도 부른다.
; Slowloris 공격이라고도 부른다.
* HTTP Header 정보를 비정상적으로 조작하여 웹서버가 온전한 Header정보가 올때 까지 기다리도록 한다.
* HTTP Header 정보를 비정상적으로 조작하여 웹서버가 온전한 Header정보가 올때 까지 기다리도록 한다.
* 서버가 연결 상태를 유지할 수 있는 가용자원은 한계가 있으므로 임계치를 넘어가면 다른 정상적인 접근을 거부하게 된다.
* 예를 들어 HTTP에서 헤더와 바디의 구분을 /r/n 이라는 개행문자로 구분하는데 개행문자 없이 보낼 경우 헤더가 덜 왔다고 판단하고 연결을 유지한다.
 
* 이러한 연결을 다량 만들어 각각의 연결이 장시간 유지되도록 하여 가용성을 해친다.
=== 동작 ===
* HTTP에선 헤더의 끝을 /r/n 이라는 개행문자로 구분한다.
* 공격자는 마지막 개행문자를 보내지 않고 지속적으로 의미없는 변수를 추가한다.
* 서버는 헤더 정보가 아직 전송 중이라고 인식하고 연결을 유지한다.
 
=== 대응 ===
* 공격자가 동시에 많은 세션을 유지하므로 방화벽 등을 통하여 세션 임계치 제한을 설정한다.
* 공격자가 헤더를 천천히 전달하며 연결 시간을 지속시키므로 연결 타임아웃 시간을 적절히 짧게 두어 의심되는 연결이 종료되도록 한다. 단, 너무 짧게 둘 경우 일부 느린 네트워크의 정상적인 연결에 대해서도 가용성을 해칠 수 있다.
 
== Slow HTTP Read DoS ==
* 정상트래픽 이라면 Window Size가 가변적이지만 공격 트래픽은 '''Window Size가 "0"으로 고정'''
* 매우 작은 윈도우크기로 서버에 응답을 보내면 서버는 더 이상 데이터를 전송하지 못하고 '''연결만 유지한 상태로 대기'''
 
[[분류:보안 공격]]
[[분류:정보보안기사]]
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)