3학년/인터넷 보안(웹 해킹)

웹 보안_Chapter06 - 02 XSS공격(D-DoS)

김야키 2018. 12. 27. 18:44

Chapter06 - 02 XSS공격(D-DoS)

 

1.     DDoS 공격의 분류

l  Distributed Denial of Service


l  웹 상에서의 DDoS공격은 해당 웹 페이지가 서비스를 할 수 없도록 만드는 것


l  보통 공격은 HTTP(TCP)를 이용해서 이루어 진다.


l  정상적인 세션을 맺지 않은 경우의 DDoS (Network 공격)

ü  TCP SYN Flooding Attack: 연결을 하기 위해 SYN 패킷 만을 계속 보내는 것 (세션을 맺지 않음)


l  정상적인 세션을 맺은 경우의 DDoS (Web 공격)

ü  정상적인 세션을 맺기 때문에 보안 제품의 기능 및 정상 세션 검증 절차를 쉽게 회피할 수 있음

ü  TCP Connection Flooding

ü  HTTP Get Flooding

ü  HTTP CC Attack

ü  Dynamic HTTP Request Flooding

ü  HTTP 취약점 기반 DDoS Attack

 

2.     DoS 공격 (Web 공격)

l  7계층 DoS 공격

ü  최근의 DoS 공격은 웹 어플리케이션 등을 대상으로 공격 방향을 전환

ü  3, 4계층 DoS공격 : TCP, UDP, ICMP등의 3, 4계층 프로토콜 사용

ü  7계층 DoS 공격 : HTTP, SMTP, FTP, VoIP등의 7계층 프로토콜 사용

 

l  7계층 공격의 특징

ü  정상적인 TCP/UDP 연결을 맺은 뒤의 공격

ü  정상적인 IP로 연결 된 상태이기 때문에 정상 사용자와 공격자의 구분이 어려움

ü  소량의 트래픽을 가지고 천천히 공격하기 때문에 정상적인 행동을 하는 것처럼 보여서 공격의 구분이 어려움

ü  특정 서비스의 취약점을 이용하여 공격하기 때문에 웹 서비스를 이용한 공격이 주를 이루고 있음

 

l  HTTP GET Flooding 공격 (HTTP GET 요청을 다량으로 발생시키는 공격

ü  공격 대상 시스템에 TCP three way hand shaking 과정을 통해 정상적으로 접속을 한다.

ü  HTTPGET Method를 통해 특정 페이지를 무한대로 실행하는 방식

ü  때문에 서버 입장에서는 계속해서 해당 페이지를 보내줘야 하기 때문에 다른 서비스를 할 수 없음

 

l  HTTP CC 공격

ü  HTTP GET Flooding with Cache Control Attack (CC Attack)

ü  DoS 공격 기법에 Cache를 저장하지 않게 만드는 것

ü  본인이 인증을 하고 들어갔다 한들 흔적(Cache)이 남지 않는다.

ü  Cache를 사용하지 않고 응답을 하기 때문에 웹 서비스의 부하가 증가됨

 

l  Slow HTTP Header DoS (Slowloris) 공격

ü  HTTP해더를 이용하여 공격을 하는데 아주 천천히 공격을 한다.

ü  HTTP헤더를 비 정상적으로 조작하여 웹 서버가 헤더 정보를 완전히 수신 할 때까지 연결을 유지하도록 하여 시스템 자원을 소비시켜 다른 클라이언트의 정상적인 서비스를 방해하는 공격

ü  HTTP헤더를 비 정상적인 헤더를 전송하여 서버가 헤더를 기다리도록 하는 공격

ü  위의 과정을 천천히 반복하면 다른 클라이언트가 접근 했을 때 서비스를 하지 못 한다.

ü  불완전한 메시지를 수신한 웹 서버는 클라이언트의 요청이 끝나지 않은 것으로 인식하여 웹 로그를 기록하지 않음

ü  취약성에 대한 대안이 없음

 

l  Slow HTTP POST Attack (RUDY)

ü  SlowlorisRUDY의 차이점

1.     GET / POST 메소드의 차이점

2.     POSTDB에 접근하여 수정 및 추가 하는 접근을 하기 때문에 본인의 패킷 량을 서버에 알려서 해당 패킷 량만큼의 서버 메모리를 사용하겠다는 것을 알린다.

ü  웹 서버와 Connection을 최대한 장시간 동안 유지하여 웹 서버가 정상적인 이용자의 접속을 받아들일 수 없게 하는 방식

ü  HTTP의 특성 중 하나인 상태정보를 유지하지 않는 것을 이용

ü  content-length값을 이용하여 데이터 공간을 확보 후 HTTP Request를 하는 것

ü  이때 수신을 할 때 수용하는 데이터를 1byte단위로 처리하도록 함

ü  그렇게 되면 서버는 해당 Request를 계속 처리해서 결국 다른 클라이언트의 요청을 수행할 수 없음

ü  WAF에서의 대응 방법

1.     Session timeout값을 이용하여 세션 종료

2.     Max Content Length 값을 제한