POSTECH DDoS 공격대응매뉴얼 학술정보처 정보기술팀
2 POSTECH DDoS 대응매뉴얼
POSTECH DDoS 대응매뉴얼 3 제 개정이력 연번일시제 개정비고 1 2015.12 제정
4 POSTECH DDoS 대응매뉴얼
POSTECH DDoS 대응매뉴얼 5 목차 Ⅰ. 개요... 7 1. 목적... 7 2. DDoS 공격정의... 7 Ⅱ. DDoS 공격대응체계... 7 1. 대학 DDoS 공격대응체계... 7 2. DDoS 공격대응절차및목적... 7 Ⅲ. 세부 DDoS 공격대응절차... 8 1. (1 단계 ) 공격의인지 공격여부 Check Point... 8 2. (2 단계 ) DDoS 공격유형파악... 8 3. (3 단계 ) 공경유형에따른차단정책정의및대응... 9 4. (4 단계 ) 공격대응후, 사후조치... 10 [ 별첨 1] DDoS 공격대응시나리오... 11 [ 별첨 2] DDoS 공격유형및대응방안... 15
6 POSTECH DDoS 대응매뉴얼
POSTECH DDoS 대응매뉴얼 7 Ⅰ. 개요 1. 목적 1.25 인터넷대란 (2003), 7.7 DDoS공격 (2009), 3.3 DDoS공격 (2011) 등분산서비스거부공격 ( 이하 DDoS공격 ) 으로국가주요기관전산망이공격을받고일부홈페이지는서비스가중단되는사태가발생하였다. 또한, DDoS공격을통해특정사이트를대상으로금품을요구하는사이버범죄에이용되기도한다. 이에우리대학도 DDoS공격의대상이될수있어공격으로인한혼란을방지하고교육, 연구를원활하게수행할수있도록대학전산망운용환경에적합한 DDoS 공격대응매뉴얼을마련하여 DDoS 공격에따른피해를최소화하고자한다. 2. DDoS 공격정의 DDoS(Distributed Denial of Service, 분산서비스거부공격 ) 공격이란해커가사전에악성코드에감염된대량의좀비PC에공격지령을내려, 일제히특정사이트및시스템을공격하도록하여과부하를유발시킴으로써정상적인서비스를할수없도록만드는것이다. Ⅱ. DDoS 공격대응체계 1. 대학 DDoS 공격대응체계 2. DDoS 공격대응절차및목적 (1 단계 ) 공격인지를위한체크포인트 웹서비스관련이벤트발생시해당원인이 DDoS 공격으로 인한것인지에대한명확한판단이필요
8 POSTECH DDoS 대응매뉴얼 (2 단계 ) DDoS 공격유형파악 DDoS 공격유형을명확히파악하여차단정책설정을위한근거로활용 (3 단계 ) 공격유형에따른차단정책정의및대응 공격의유형과목적을명확히판단하여차단정책을설정함으로써웹서비스의가용성확보 (4 단계 ) 공격대응후, 사후조치 공격트래픽분석을통해공격내용을상세히규명함으로써추가발생할수있는공격대비를위해정책을업데이트하고좀비 PC IP 를확보 Ⅲ. 세부 DDoS 공격대응절차 1. (1단계) 공격의인지 공격여부 Check Point 가. 유입트래픽크기 - 방화벽, IDS 등의네트워크장비를통해웹서비스운영망으로유입되는트래픽의 BPS와 PPS 규모를확인하여평시와비교 - 유입트래픽의크기가비정상적인증감을나타내는경우, 공격발생여부를의심할수있음나. 웹서버접속로그 - 서버의접속로그를확인하여비정상접속증가여부확인다. 동시접속정보 - 웹서버와클라이언트가유지하고있는연결규모를확인하여평시대비증감률비교 2. (2단계) DDoS 공격유형파악 1. Incoming traffic을수집할수있는경우 A. 패킷덤프 (Packet Dump) 를이용한유입트래픽확보 - tcpdump와같은트래픽캡쳐툴을이용하여분석하고자하는기간동안의유입트래픽일부를 PCAP 형태로저장 PCAP: Packet CAPture의약자로네트워크패킷을파일로저장한것을의미 B. 확보된트래픽분석 - DDoS 공격특징을파악하기위해서는프로토콜정보, HTTP 헤더정보, 연결정보를확인해야함 C. 시나리오기반 (Scenario Drawn) 의공격유형파악 - 대역폭소진공격, DB 부하유발공격, 웹서버자원공격등대표적인 DDoS 공격유형을파악 2. Incoming traffic을수집할수없는경우
POSTECH DDoS 대응매뉴얼 9 A. 웹서버접속로그 - 서버접속로그를확인하여접속자의요청페이지에대한통계와특정시간동안발생되는요청횟수에대한통계를확인 3. (3단계) 공경유형에따른차단정책정의및대응가. 대역폭소진공격대응방안 - 공격유형 : UDP Flooding, ICMP Flooding - 대응방안 : 웹서버망을보호하는방화벽이나웹서버망상단에위치한라우터에서해당프로토콜을차단하도록 ACL설정나. 대역폭소진공격대응방안 - 공격유형 : TCP Flooding - 대응방안 : 대용량 TCP Flooding 공격은프로토콜기준으로차단하는데한계가있어소스 IP별로 pps 임계치를설정다. 웹서버자원소모공격대응방안 - 공격유형 : Syn(Ack/Fin) Flooding - 대응방안 : 웹서버 OS의 TCP 스택 (stack) 자원을소모하는특징이있으므로 1소스IP별로 PPS 임계치를설정하거나 2패킷헤더검사를통해정상적인옵션필드값을가지지않는비정상패킷차단라. DB Connection 부하유발공격대응방안 - 공격유형 : Get Flooding, Post Flooding - 대응방안 : 다량의 HTTP 요청으로웹서버와 DB연동에부하를유발시키는것이특징으로 1클라이언트로부터의요청수에대한임계치를설정하여임계치를초과하는소스 IP의접속을차단하거나 2HTTP헤더를확인하여 HTTP표준에맞지않는필드값을차단하는시그니처 (Signature) 로설정마. 웹서버자원소모공격대응방안 - 공격유형 : Slow Header Flooding, Slow Data Flooding - 대응방안 : 완료되지않은연결 (Connection) 상태를지속적으로유지하는공격이므로하나의요청에대한연결타임아웃을설정하여특정타임아웃이지나면연결을종료시켜차단바. 봇 vs 브라우저식별대응방안 - 대응방안 : 일반적인봇은브라우저와달리웹서버의응답코드에반응하여행동하지않으므로웹서버에서 302 moved temporary와같은코드로응답하여봇이발생시키는요청을차단
10 POSTECH DDoS 대응매뉴얼 4. (4단계) 공격대응후, 사후조치가. 공격시점의 BPS, PPS, CPS 변화추이확인 - 공격규모를확인하여웹서버의가용성이침해될수있는지점을확인하여정확한분석정보가반영된차단정책업데이트나. 공격유형확인 - 프로토콜에대한통계, 패킷크기에대한통계, 요청형태에대한통계를상세히확인하여시간에따른공격유형의변경여부또는복합공격여부를확인하여차단정책업데이트다. HTTP 요청패킷형태확인 - 1특정시간대의 HTTP 요청횟수 (Count) 를확인하여비정상적인행위여부를규명하고 2HTTP 헤더의각필드정보를조사하여, HTTP표준을준수하지않는비정상메시지를차단할수있도록차단정책업데이트라. 좀비PC IP 확보 - TCP 기반의웹서버가용성마비공격은 TCP 3중연결 (3-Way HandShaking) 완료와함께시작하므로실제공격 IP를확보하여차단하도록조치 웹서버가용성마비공격에는 GET(POST) Flooding, Slow header(data) Flooding이있음 대역폭소진공격의경우, 공격자는대부분 Source IP를위조하므로 IP 위변조여부를반드시확인해야함
[ 별첨 1] DDoS 공격대응시나리오 1. 공격의인지 공격여부 Check Point 웹서비스관련이벤트발생시해당원인이 DDoS 공격으로인한것인지에대한명확한판단을하기위해유입트래픽크기, 웹서버접속로그, 동시접속정보, 유입트래픽샘플링작업을수행한다. 구분상세내용이행방안 유입트래픽크기확인 - 네트워크장비를통해유입되는트래픽의 BPS와 PPS 규모를확인하여평시와비교 - 유입트래픽의크기가비정상적인증감을나타내는경우, 공격발생여부를의심할수있음 - 확인가능장비. 네트워크 : 라우터, Core스위치. 보안 : IPS, QoS, UTM 유입트래픽크기를아래와같이해당장비에서확인 1. 네트워크 ( 네트워크담당자수행 ) 라우터, Core스위치 CLI상에서 BPS, PPS 확인 2. 보안 ( 보안담당자수행 ) IPS, QoS, UTM 장비의 GUI에서 BPS, PPS 확인 웹서버접속로그확인 동시접속정보확인 - 서버의접속로그를확인하여비정상접속증가여부확인 - 확인가능장비. 웹서버 - 웹서버와클라이언트가유지하고있는연결 (Connection) 규모를확인하여평시대비증감률비교 - 확인가능장비. 보안 : QoS, UTM, POVIS방화벽 웹서버접속로그를아래와같이확인 ( 서버관리자수행 ) 1. Linux 계열 (Apache 기준 ) - 로그파일경로 : /usr/local/apache/conf 또는 /var/log/httpd - 로그파일명 : access_log 2. Windows 계열 (IIS 기준 ) - 로그파일경로 : Windows\System32\LogFiles\inetpub\logs\LogFiles - 로그파일명 : u_ex151001.log 동시접속정보를아래와같이해당장비에서확인 1. 보안장비 ( 보안담당자수행 ) QoS, UTM, POVIS방화벽 GUI에서연결정보확인
12 POSTECH DDoS 대응매뉴얼 2. DDoS 공격유형파악 DDoS 공격여부가확인되면유입트래픽을확보하고분석하여명확한공격유형을파악한후, 차단정책설정을위한근거로활용 구분상세내용이행방안 유입트래픽확보 - 패킷덤프 (Packet Dump) 를이용한유입트래픽확보 - Tcpdump와같은트래픽캡쳐툴을이용하여분석하고자하는기간동안의유입트래픽일부를 PCAP형태로저장 - 확인가능장비. 보안 : IPS, QoS, UTM. 서버 : 해당웹서버 유입트래픽을아래와같이해당장비에서확보 1. 보안 ( 보안담당자수행 ) - IPS, UTM 장비에서 tcpdump명령어를이용해트래픽캡쳐명령어 : tcpdump nni eth0 host 192.0.0.1 and port 80 2. 서버 ( 서버관리자수행 ) - 웹서버에서 tcpdump명령어 (Linux계역) 또는 Wireshark툴 (Windows계열) 을이용해트래픽캡쳐 확보트래픽분석 - DDoS공격특징을파악하기위해서는프로토콜정보, HTTP헤더정보, 연결정보를확인해야함 - 확보된트래픽을아래의분석도구를이용하여정보확인분석도구설명 tcpdstat 프로토콜종류등에관한정보확인 ngrep, httpry http header에과한정보확인 해당분석도구는 Linux계열서버에 libpcap라이브러리와같이설치되어야함 분석도구를이용한트래픽분석은아래와같이진행 ( 보안담당자및서버관리자수행 ) tcpdstat툴명령어 : tcpdstat 캡처파일.pcap 확인사항 : 평균 / 최대트래픽, 사용중인프로토콜, 프로토콜별사용량 ngrep툴명령어 : ngrep 캡처파일.pcap tw byline grep GET sort uniq c sort -rn 확인사항 : Header의내용중특정문자열을검색하여호출횟수가많은 URL에대한분석명령어 : ngrep 캡처파일.pcap grep 141.223.x.x awk {print $2} sort uniq c sort rn 확인사항 : Header의내용중특정문자열을검색하여연결횟수가많은 IP에대한행위분석
POSTECH DDoS 대응매뉴얼 13 공격유형파악 [ 트래픽확보가어려운경우 ] 웹서버접속로그확인 - 트래픽분석을통해 DDoS공격의유형을파악분석도구설명 tcpdstat - 대역폭소진공격유형분석을위해 UDP/ICMP Flooding 여부등프로토콜분포와트래픽규모확인 ngrep, httpry - Get Flooding 등 DB Connection 부하유발공격유형확인 - 접속자의요청페이지 (Request Page) 에대한통계와특정시간동안발생되는요청횟수에대한통계를확인 DDoS공격유형표참조 - 서버의접속로그를확인하여비정상접속증가여부확인 - 확인가능장비. 웹서버 httpry툴명령어 : httpry r 캡처파일.pcap awk {print $4} sort uniq c sort -rn 이행방안은 [ 별첨2. DDoS공격유형및대응방안 ] 참조웹서버접속로그를아래와같이확인 ( 서버관리자수행 ) 1. Linux 계열 (Apache 기준 ) - 로그파일경로 : /usr/local/apache/conf 또는 /var/log/httpd - 로그파일명 : access_log 2. Windows 계열 (IIS 기준 ) - 로그파일경로 : Windows\System32\LogFiles\inetpub\logs\LogFiles - 로그파일명 : u_ex151001.log
14 POSTECH DDoS 대응매뉴얼 3. 공격유형에따른차단정책정의및대응 공격유형에따른대응내용은 [ 별첨2. DDoS 공격유형및대응방안 ] 참조 4. 공격대응후, 사후조치 DDoS 공격대응후대학네트워크상의 BPS, PPS, CPS 변화추이를확인하고추가적인조치를위한정보를확보가. 공격시점의 BPS, PPS, CPS 변화추이확인공격규모를확인하여웹서버의가용성이침해될수있는지점을확인하여정확한분석정보가반영된차단정책업데이트나. 공격유형확인프로토콜에대한통계, 패킷크기에대한통계, 요청형태에대한통계를상세히확인하여시간에따른공격유형의변경여부또는복합공격여부를확인하여차단정책업데이트다. HTTP 요청패킷형태확인 1특정시간대의 HTTP 요청횟수 (Count) 를확인하여비정상적인행위여부를규명하고 2HTTP 헤더의각필드정보를조사하여, HTTP표준을준수하지않는비정상메시지를차단할수있도록차단정책업데이트라. 좀비PC IP 확보 TCP 기반의웹서버가용성마비공격은 TCP 3중연결 (3-Way HandShaking) 완료와함께시작하므로실제공격 IP를확보하여차단하도록조치
POSTECH DDoS 대응매뉴얼 15 [ 별첨 2] DDoS 공격유형및대응방안 구분 UDP/ICMP Traffic Flooding 대역폭공격소진공격 TCP Traffic Flooding 공격 세부공격항목 UDP/ICMP Flooding DNS Query Flooding SYN Flooding 공격방법 공격확인방법 대응방법 방안 1) ISP 업체에요청하여대상 IP 주소에 공격자는다량의 UDP/ICMP 패킷을 1. 장비 대한트래픽임시차단 서버로전송하여서버가보유한 - 네트워크 : 라우터, 방안 2) ACL 설정또는블랙홀라우팅을 네트워크대역폭을가득채워다른 core 스위치에서 UDP/ICMP 트래픽 이용한임시차단 정상적인클라이언트의접속을 변화확인 - 웹서버 or 운영장비 : UDP/ICMP 트래픽 원활하지못하도록유발시키는 - 보안 : IPS, QoS, UTM 장비에서 DROP 설정 공격임 UDP/ICMP 트래픽변화확인 - 라우터 : Null 라우팅을통해공격트래픽을 UDP/ICMP 프로토콜이 2. tcpdstat 툴 가상인터페이스로라우팅 비연결지향이라는특징을이용하여 - 확보된유입트래픽에서 방안 3) Inbound 패킷에대한임계치설정을 소스 IP 를변조함 UDP/ICMP 트래픽확인 이용한차단 - 운영장비 : Inbound 패킷임계치설정 1. 장비 공격자는 UDP 프로토콜기반의 - 네트워크 : 라우터, UDP/ICMP Flooding 공격의대응방법과 서비스를제공하는 DNS 에대해 core 스위치에서 UDP/ICMP 트래픽 같이실시 DNS 쿼리데이터를다량으로 변화확인 방안 1) DNS 서버의다중화를통한 DNS 공격 서버에전송하여 DNS 의정상적인 - 보안 : IPS, QoS, UTM 장비에서 트래픽분산처리 ( 가상화서버활용 ) 서비스를방해하는공격임 UDP/ICMP 트래픽변화확인 방안 2) IPTABLE 을이용한 ACL 기반의차단 UDP/ICMP Flooding 공격형태와 2. tcpdstat 툴 - DNS Query 가 512Byte 이상일경우해당 유사함 - 확보된유입트래픽에서 패킷차단 UDP(DNS) 트래픽확인 공격자는다량의 SYN 패킷을 1. 장비 방안 1) 임계치기반의 SYN Flooding 차단 서버로전달하여서버의 - 보안 : IPS, UTM 장비에서 - 방화벽 : IP 당 SYN 요청에대한 PPS 대기큐 (Backlog Queue) 를가득채워 TCP 세션상태확인 임계치설정 새로운클라이언트의연결요청을 2. 서버 (netstat) 방안 2) First SYN Drop (Spoofed) 설정에의한
16 POSTECH DDoS 대응매뉴얼 무시하도록하여장애를유발시키는 - 웹서버의 CPU 확인, netstat 차단 공격 명령으로 TCP 세션상태확인 - 방화벽 : 첫번째 SYN 을 Drop 하여 TCP 프로토콜이데이터를보내기 평시보다 established 세션이 재요청패킷도달확인 전에연결을먼저맺어야하는 급격하게증가 특징을이용한방법임 1. 장비 TCP 의 Flag 값을임의로조작하면 - 보안 : IPS, UTM 장비에서 TCP Flag Flooding SYN, ACK, FIN, RST 과같이여러형태의패킷을생성할수있으며, 서버는이러한패킷을수신하는경우해당패킷을검증하기때문에 TCP 세션상태확인 2. 서버 (netstat) - 웹서버의 CPU 확인, netstat 명령으로 TCP 세션상태확인 방안 1) 임계치기반의동일 IP 주소에대한동시접속차단 - 방화벽 : IP 당동시접속임계치설정 서버의자원을소진시킴 평시보다 established 세션이 급격하게증가 1. 장비 TCP Session TCP 3-Way Handshake 과정을과도하게유발함으로써서비스의과부하를유발하는공격 - 보안 : IPS, UTM 장비에서 TCP 세션상태확인 2. 서버 (netstat) - 웹서버의 CPU 확인, netstat 명령으로 TCP 세션상태확인 방안 1) L7 스위치의임계치설정기능을이용한차단 (POVIS 대상공격에한함 ) - L7 스위치 : IP 당 Connection Limit 을설정하여차단 서비스마비공격 HTTP Traffic Flooding 공격 Get Flooding 공격자는동일한 URL( 예 :a.com/index.jsp) 을반복요청하여웹서버가 URL 에해당되는데이터를클라이언트에게회신하기위해서버자원을사용하도록하는공격임 웹서버는한정된 HTTP 처리 Connection 용량을가지기때문에 1. 장비 - 보안 : IPS, QoS, UTM 장비에서웹서비스트래픽상태확인 2. ngrep, httpry - 확보된유입트래픽에서 GET 문자열을가진항목확인 - 요청이많은 URL 및 IP 에대하여확인 방안 1) 콘텐츠요청횟수에대한임계치설정에의한차단 - L7 스위치 : 콘텐츠마다요청할수있는횟수에임계치설정방안 2) 방화벽에캐싱공격문자열을포함한 IP 차단 - 방화벽 : 트래픽분석하여캐싱공격에
POSTECH DDoS 대응매뉴얼 17 용량초과시정상적인서비스가 3. 서버 해당하는문자열을포함하는경우, 해당 IP 를 어려워짐 - 웹서버의 CPU 확인, netstat 방화벽에서차단설정 명령으로 TCP 세션상태확인 - 서버로그에서다수의 IP 에서 비정상적인 URL 로접속이다량 존재 1. 장비 GET Flooding with Cache- Control (CC Attack) o 일반적으로웹서버의부하를감소시키기위해캐싱서버를운영하여많이요청받는데이터 ( 예 : 사진파일 ) 는웹서버가아닌캐싱서버를통해응답하도록구축하는경우, o 공격자는 HTTP 메시지의캐시옵션을조작하여캐싱서버가아닌웹서버가직접처리하도록유도하여캐싱서버의기능을무력화하고웹서버의자원을소진시키는공격임 - 보안 : IPS, QoS, UTM 장비에서웹서비스트래픽상태확인 2. ngrep, httpry - 확보된유입트래픽에서 GET 문자열을가진항목확인 - 'Cache-Control:no-cache, nostore' 문자열다수존재 3. 서버 - 웹서버의 CPU 확인, netstat 명령으로 TCP 세션상태확인 - 서버로그에서 'Cache- Control:no-cache, no-store' 문자열 방안 1) 방화벽에캐싱공격문자열을포함한 IP 차단 - 방화벽 : 트래픽분석하여캐싱공격에해당하는문자열을포함하는경우, 해당 IP 를방화벽에서차단설정방안 2) L7 스위치를이용한캐싱공격차단 - L7 스위치 : HTTP Header 의 Cache- Control 에특정문자열을포함하는경우해당 IP 접속차단설정 다수존재 HTTP Header/Opt ion Spoofing Flooding 공격 Slow HTTP POST DoS 공격자는 HTTP POST 지시자를이용하여서버로전달할대량의데이터를장시간에걸쳐분할전송하며, 서버는 POST 데이터가모두수신하지않았다고판단하여연결을장시간유지하므로가용량을 1. 장비 - 보안 : IPS, QoS, UTM 장비에서웹서비스트래픽상태확인 2. ngrep, httpry - 확보된유입트래픽에서 POST 문자열을가진항목확인 3. 서버 방안 1) 접속임계치설정을통한차단 - 서버 : iptables 에서특정 IP 에서연결할수있는동시접속수에임계치설정방안 2) Connection Timeout 과 Keepalivetimeout 설정을통한차단 - 방화벽 / 웹서버 : Connection Timeout 에설정된시간동안 Client 와웹서버사이에
18 POSTECH DDoS 대응매뉴얼 소비하게되어다른클라이언트의 - 웹서버의 CPU 확인, netstat 데이터이동이전혀없을경우 Connection 을 정상적인서비스를방해함 명령으로 TCP 세션상태확인 종료하도록설정 - 서버로그에서다수의 IP 에서 방안 3) RequestReadTimeout 설정을통한 비정상적인 URL 로접속이다량 차단 존재 - 웹서버 : 아파치의 RequestReadTimeout 기능을이용하여차단 방안 1) 접속임계치설정을통한차단 Slow HTTP Header DoS (Slowloris) 공격자는서버로전달할 HTTP 메시지의 Header 정보를비정상적으로조작하여웹서버가헤더정보를완전히수신할때까지연결을유지하도록하여가용량을소비시킴으로다른클라이언트의정상적인서비스를방해함 1. 장비 - 보안 : IPS, QoS, UTM 장비에서웹서비스트래픽상태확인 2. ngrep, httpry - 확보된유입트래픽에서 Header 끝이 /0d0a0d0a/ 끝나지않음 3. 서버 - 웹서버의 CPU 확인, netstat 명령으로 TCP 세션상태확인 - 서버 : iptables 에서특정 IP 에서연결할수있는동시접속수에임계치설정방안 2) Connection Timeout 과 Keepalivetimeout 설정을통한차단 - 방화벽 / 웹서버 : Connection Timeout 에설정된시간동안 Client 와웹서버사이에데이터이동이전혀없을경우 Connection 을종료하도록설정방안 3) RequestReadTimeout 설정을통한차단 - 웹서버 : 아파치의 RequestReadTimeout 기능을이용하여차단