Network

HTTP Traffic Flooding 공격(GET Flooding)

goldory 2020. 2. 24. 13:55
728x90
반응형

: TCP 세션 연결 이후 발생하는 일반적인 공격 형태

: 공격자는 동일한 URL을 반복 요청하여 웹서버가 URL에 해당되는 데이터를 클라이언트에게 회신하기 위해 서버 자원을 사용하도록 하는 공격

 

 공격자(클라이언트) ---- 동일한 URL에 대한 요청*10000 ---> 피해자(웹서버)

 공격자(클라이언트) <--- 요청한 URL에 대한 응답 ----  피해자(웹서버)

 공격자(클라이언트) <--- 요청한 URL에 대한 응답 ----  피해자(웹서버)

 공격자(클라이언트) <--- 요청한 URL에 대한 응답 ----  피해자(웹서버)

 공격자(클라이언트) <--- 요청한 URL에 대한 응답 ----  피해자(웹서버)

                                             .

                                             .

                                             .

                                         과부화

 

=> DoS 상태에 빠짐 (웹서버는 한정된 HTTP 처리 Connection 용량을 갖고있기 때문)

 

with Cache-Control (CC Attack)

웹서버의 부하를 감소시키기 위해 캐싱 서버를 운영

-> 동일한 URL에 대한 요청이 많을 때 캐싱 서버를 통해 응답

 

-> 이때 공격자는 HTTP 캐시 옵션(Cache-Control)을 조작하여 캐싱서버가 아닌 웹서버가 직접 처리하도록 유도

=> 웹서버 자원 소진 (DoS공격)

 

HOW??

[캐싱서버가 아닌 웹서버가 직접 처리]

- no-store(캐시저장금지) : 클라이언트로부터 요청받은 데이터를 캐싱서버에 저장하는 것을 방지

- must-revalidate(캐시검증) : 웹서버와 별도로 캐싱 서버를 운영 -> 검증요구

 

[캐싱 서버 운영 모델]

- Fowarding(포워딩)

  PC - 캐싱 서버 - 웹서버 - DB

  캐싱서버가 요청정보를 먼저 처리하는 경우

  <공격>

  PC와 캐싱서버간 패킷에서 Cache-Control 값이 no-store로 설정

  캐싱 서버와 웹서버가 별도로 운영되는 경우, 값을 must-revalidate 로 설정

 

- Hosting(호스팅)

   PC - (웹서버 <-> 캐싱서버) - DB

   웹서버가 요청정보를 분석한 후 캐싱서버를 이용하는 경우

   <공격>

   PC와 웹서버간 패킷에서 Cache-Control 값이 no-store로 설정 

   웹서버와 캐싱서버가 별도로 운영되는 경우, 값을 must-revalidate 로 설정

728x90
반응형