2009.02.03 19:38

DDoS에 대응하는 원론적인 방법

이 문서는 SANS ISC의 How to handle DDoS Incidents?를 번역한 글입니다.

아래 파일로 첨부된 요점 정리 문서는 대다수의 침해 사고에 적용할 수 있습니다. 그러나 몇가지 침해 사고, 특히 DDoS 같은 종류는 별도의 대처 방안이 필요합니다.

원본은 zeltser.com 의 Security Incident Survey Cheat Sheet for Server Administrators 입니다.

원본은 zeltser.com 의 Initial Security Incident Questionnaire for Responders 입니다.


준비

실제 공격을 당하기 이전에 이 단계의 일을 미리 준비해놔야 합니다. 이 단계를 미리 끝내지 않는다면, 공격이 발생했을 때 초기에 대응하지 못 하고 몇 시간을 허비하게 됩니다.

  • ISP에 연락해서 DDoS 공격을 막는 ISP의 지원 서비스가 무료인지, 아니면 돈을 내야 하는지 확인하세요.
  • 서버 접근 권한을 가진 IP의 화이트 리스트를 작성하세요. 공격으로 인해 네트워크 접속을 제한해야 할 때 이 목록을 사용합니다. (고객, 파트너 회사등)
  • 공격당할 가능성이 있는 시스템에 관련된 DNS의 TTL 설정을 확인하세요. TTL을 낮춰 놓으면 시스템이 공격 당할 때 손쉽게 DNS 설정을 바꿀 수 있습니다.
  • ISP, IDS, 방화벽, DNS, 서드파티 보안팀 등 관련된 담당자들의 연락처를 확보하세요. 네트워크 설정(IP 주소, circuit ID등), 장비 목록, 네트워크 구성도를 정리하세요.
  • 회사의 위기 관리팀에 연락해서 DDoS 사고가 미치는 영향에 대해 어떻게 생각하고 있는지 알아두세요.

분석

공격을 탐지하고 사고의 범위를 파악하세요. 어떤 인프라가 영향을 받는지, 공격의 흐름은 어떻게 되는지 확인하세요. 이를 통해 공격을 전반적으로 이해할 수 있습니다.

  • 서버, 라우터, 방화벽 등 영향을 받은 장비들의 부하 상태를 살펴보세요.
  • 가능하다면 tcpdump, ntop과 같은 네트워크 스니퍼를 이용해 영향을 받은 장비들의 트래픽 흐름을 살펴보세요.
  • ISP와 사내의 팀들에게 연락해서 공격자의 출현을 알리고 도움을 요청하세요.
  • 공격 이전에 DDoS 공격자에게 금품 요구를 받은 적이 있는지 확인하세요.
  • NIDS 탐지 패턴을 만들어 정상적인 트래픽과 공격 트래픽을 구분하세요.
  • 회사의 이사와 법률팀을 참여시키고, 법적 대응을 검토하세요.
  • 정상 트래픽과 공격 트래픽의 차이점을 식별하세요. (출발지 IP, 목적지 포트, URI, TCP 플래그 등)

대응

DDoS 공격은 많은 양의 비정상적인 트래픽을 서버로 보내는 것입니다. 아래 항목들은 DDoS 공격의 영향을 줄일 수 있는 방법입니다. 그러나 몇몇 경우에는 ISP의 도움 혹은 특별한 장비의 도움 없이 공격을 막기 어려울 것입니다.

  • 라우터, 방화벽, 로드밸런서, 웹서버 등의 설정을 이용해 공격 트래픽을 차단하세요.
  • 가능하다면 DNS나 다른 방법을 이용해 네트워크, 컴퓨터 자원이 여유가 있는 곳으로 트래픽을 옮기세요. 그리고 원래 IP는 널 라우팅 처리해서 트래픽을 제거하세요.
  • 서버가 병목 지점이면 시스템의 TCP/IP 설정을 바꿔서 더 효율적으로 동작하도록 하세요.
  • 응용 프로그램의 특정 기능이 병목이라면 그 기능을 임시로 막으세요. 가능하다면, 서버와 네트워크 대역폭을 추가하세요. (물론 이건 끝없는 무장 경쟁일 뿐이죠.)
  • DNS와 라우팅 테이블을 이용해서 트래픽을 트래픽 검사 장비로 보내세요.

기타

  • 사고가 발생하면 너무 많은 사람들이 달려드는 경향이 있습니다. 사람이 많아지면 데이터 수집만 더 힘들게 될 뿐입니다.
  • 작업은 한번에 하나씩 진행해야 합니다. 두가지를 동시에 변경하면 어떻게 문제를 해결했는지 알기 힘듭니다.
  • 공격이 오랫동안 진행되는 경우에는 다음날 어떻게 대응을 이어갈지 고민해보세요.
  • 자료는 그리 많이 필요하지 않습니다. 사고 분석에는 로그가 최고입니다.

Trackback 0 Comment 0