본문 바로가기

미분류

DDoS 공격 대응


 본 내용은 한국 인터넷 진흥원의 자료를 인용 하여 정리 한 것 

[자료 : 한국인터넷진흥원(KISA)]


DDoS 공격 대응 개요 

1. DDoS 공격 대응은 공격자와 방어자간의 가용성 확보 싸움임.

2. 방어자는 자신이 관리하고 있는 웹 서버 및 방어 시스템 자원의 한계점을 명확히 알고 잇어야 함. 

   ( 네트워크 대역폭, 웹 서버의 성능 등의 물리적인 요소와 웹 서버와 DB의 연동관계의 효율성 등의 논리적인 부분까지 포함)

3. 자원을 항시 모니터링 하고 발생하는 DDoS 공격 유형에 따른 차단 정책을 찾고 적용하는 것이 무엇보다 중요함


DDoS 공격 대응 가이드 

1. 공격의 인지 - 공격 여부 Check Point

 1) 유입 트래픽 용량

  - 방화벽, IDS 등의 네트워크 장비를 통해 웹서비스 운영 망으로 유입되는 트래픽의 bps와 pps 규모를 확인하여 평시와 비교. 
    공격시의 트래픽 상태는 평시와는 확연히 다른 양이 유입된다. 

 2) 웹 서버 접속 로그

  - 웹 서버의 접속 로그를 확인하여 비정상 접속 증가여부 확인 

 3) 연결 상태 확인 (동시 연결 양?)

  - 방화벽, IDS등의 네트워크 장비를 통해 웹서버가 연결 유지하고 있는 커넥션 규모를 확인하여 평시와 비교

 4) 유입 트래픽 수집


  - 웹 서비스 운영 망으로 유입되는 트래픽의 일부를 수집하여 분석 


2. DDoS공격 유형 파악

 [유입 트래픽을 수집할 수 있는 경우]

 1) 패킷 덤프

  - tcpdump 와 같은 트래픽 캡쳐 툴을 이용하여 유입 트래픽일부를 pcap 형태로 저장
   ex )tcpdump -nni host 1.1.1.1 -w test.pcap
      (tcpdump pcap 파일 생성에 사용 되는  옵션 : -w )

  

 

사용법)

tcpdump [옵션] [Expression]

 

[옵션]

-i device : 어느 인터페이스를 경유하는 패킷들을 잡을지 지정한다. 

-e : 출력되는 각각의 행에 대해서 link-level 헤더를 출력한다.

-c Number : 제시된 수의 패킷을 받은 후 종료한다.

-v : 좀 더 많은 정보들을 출력한다.

-vv : '-v'보다 좀 더 많은 정보들을 출력한다.

-w : 캡춰한 패킷들을 분석해서 출력하는 대신에 그대로 파일에 저장한다.

-x : 각각의 패킷을 헥사 코드로 출력한다. 

-r : 저장 한 파일을 tcpdump로 열어보기 위한 명령어 

 ex ) #파일생성 :  tcpdump -nni eth0 host 1.1.1.1 -w test.pcap

      #파일읽기 :  tcpdump -r test.pcap



 2) 분석(Analysis)

  - tcpdstat : 수집된 트래픽의 프로토콜 종류등에 관한 정보 확인 
  - ngrep, httpy : http header 에 관한 정보 확인
  - argus : concurrent connection 에 관한 정보 확인 

 3) 판단 

  - tcpdstat, tcpdump : 대역폭 공격 판단 가능 (예 UDP, ICMP flooding 공격)
  - ngrep, httpy : DB connection 부하 유발 공격 (예 Get flooding  공격)
  - argus : 웹 서버 자원(TCP stack) 부하 유발 공격 판단 (예 syn flooding 공격)
  
 [유입 트래픽을 수집할 수 없는 경우]

 1) 웹서버 접속 로그


  - 서버 접속로그를 확인하여 접속자의 request page에 대한 통계와 특정 시간동안 발생되는 request횟수의 관계성을 가지고 판단 가능


3. 공격유형에 따른 공격방안 정의 및 대응


공격유형 

예시 

공격방안 및 대응 

 대역폭 소진 공격

 ex. UDP, ICMP Flooding

  웹서버 앞단에 위치한 방화벽이나 상단 라우터(ISP의 협력 필요) 에서 해당 프로토콜을 모두 차단하도록 ACL 설정 하여 대응 

 ex. TCP Flooding 

 size가 큰 TCP Flooding 공격은 프로토콜 기준으로 차단 할 수 없으므로  source ip 별 pps 에 대한 임계치 정책을 설정하여 대응

 웹서버 자원 소모 공격

 ex. Syn(Ack/Fin) Flooding 

 syn flooding 공격은 웹서버 OS의 TCP stack 자원을 소모하는 공격으로서 source ip 별 pps 에 대한 임계치 정책을 설정하여 대응하거나 패킷의 헤더를 검사하여 옵션필드가 없는 등의 비정상 패킷을 차단하여 대응

 ex. Slow header or Slow data Flooding

  이 공격은 요청을 완료하지 않고 해당 connection 을 지속적으로 유지하는 공격이므로 하나의 요청에 대한 timeout 값을 설정하여 특정 시간동안 요청이 완료되지 않을 경우 connection 을 강제 종료시켜서 차단.

 DB connection 부하 유발 공격

 ex. GET(POST) Flooding

 다수의 Http 요청을 유발하여 웹서버와 DB 사이의 연동에 부하를 유발하므로 특정 시간 동안 발새하는 요청 수에 대한 임계치를 설정하여 해당 임계치 이상으로 요청을 발생하는 source ip를 차단

 또한, HTTP header 를 확인하여 HTTP 표준에 맞지 않는 field 가 설정 되었을 경우 해당 field 값을 signature로 설정하여 차단

 봇 vs 브라우져 식별 방안 

 

 일반적인 봇은 브라우져와 달리 웹서버의 응답코드에 반응하여 행동하지 않으므로 웹서버에서 302 moved temporary와 같은 코드로 응답하여 봇이 발생시키는 요청을 차단. 



4. 공격 대응 후, 사후 조치

 1) 공격시점의 BPS, PPS, CPS 변화 추이 확인
   
   공격규모를 확인하여 가용성이 침해 될 수 있는 지점을 확인하고 정확한 데이터에 따른 차단 정책 업데이트 

 2) 공격 유형 확인
  
   프로토콜에 대한 통계, 패킷 크기에 대한 통계, 요청 형태에 대한 통계를 상세히 확인하여 시간에 따른 공겨 유형의 변경 여부 또는 복합 공격 여부를 확인하여 차단정책 업데이트 

 3) HTTP 요청 패킷 형태 확인 

   특정 시간에 대한 HTTP 요청 count를 확인하여 비정상적인 행위 여부를 규명하고 HTTP header의 각 field를 조사하여 HTTP 표준 준수 여부를 확인하여 비정상적일 경우 차단 정책 업데이트 

 4) 좀비 PC IP확보 
   GET(POST) Flooding 공격이나 slow header(data) Flooding 공격의 경우 TCP 3way handshake와 함꼐 수행되므로 실제 공격 IP를 확보 할 수 있으며 대역폭 소진 공격의 경우 공격자는 대부분 source ip를 위조하므로 IP 위변조 여부를 확인하는 절차가 필요함.


'미분류' 카테고리의 다른 글

DDoS 공격유형 정리#2  (3) 2018.06.18
DDoS 공격 유형 정리#1  (0) 2018.06.15
170317 동적할당 과 malloc함수  (0) 2017.03.19
170316 어셈블리 언어  (0) 2017.03.16
170316 Caller & Callee , 함수 호출 규약  (0) 2017.03.16