서비스 거부 공격 관련 용어 정리

DoS(Denial of Service; 서비스 거부 공격)

개요

  • 서비스 거부 공격은 공격 대상 시스템(Target)이 정상적인 서비스를 할 수 없도록 만드는 공격을 말한다. 따라서 서비스 거부 공격은 가용성(Availability)을 떨어트리는 것이 공격의 목적이다.
  • 서비스 거부 공격은 두가지로 구분할 수 있다.
    • 서버 시스템 자원 소진 공격 : CPU, 메모리, 디스크 등의 자원에 과도한 부하를 발생 시키는 유형
    • 네트워크 대역폭 소진 공격 : 과도한 트래픽으로 네트워크 대역폴을 소진시키는 유형
  • DoS 공격은 공격자가 단일 컴퓨터를 통해 공격을 하는 경우를 말한다. (DDoS와의 차이점)
  • 용어의 모호성 : 서버는 서비스를 거부하지 않는다. 공격자의 방해로 인해 서비스를 제공할 수 없을 뿐이다. 따라서 서비스 거부 공격이라는 영어 그대로의 직역보다 서비스 방해 공격이 더 나은 표현일 수 있다.

공격의 유형

  • Ping Of Death Attack : 아주 작은 ICMP 패킷으로 다수의 IP 단편화를 발생하게 하여 수신측에서 재조합 하는 과정에서 과부하 발생
  • Land Attack : src ip와 dest ip가 같은 패킷을 만들어 공격
  • Teardrop Attack : IP패킷의 재조합 과정에서 잘못된 fragment offset 정보로 인해 수신측이 문제를 발생하도록 만다는 공격

DDos(Distributed DoS; 분산 서비스 거부 공격)

개요

  • 분산 서비스 거부 공격은 분산된 다수의 좀비 PC에 의해 공격대상 시스템의 서비스를 마비시키는 공격 형태를 의미한다.
  • 공격의 구조를 살펴보면 다음과 같이 크게 4가지 구성요소로 이루어져 있다.
    • 공격자 : C&C 서버에 공격 명령을 전달하는 해커의 컴퓨터라고 한다.
    • 명령제어(C&C, Command & Control) 서버 : 공격자로부터 직접 공격 명령을 전달받는 시스템을 말하며 전달받은 명령은 관리ㅏ는 다수의 좀비 PC에게 전달한다.
    • 공격대상 : 공격의 대상이 되는 피해 시스템

공격의 절차

  • 공격자는 좀비 PC를 관리하고 명령을 내리는 C&C 서버를 구축한다.
  • Sphere Phising이나 악의적인 웹 사이트 등을 통해 불특정 다수의 PC에 악성코드를 배포해 감염을 시도한다.
  • 사용자가 악성 코드를 다운로드해 실행하면 좀비 PC가 된다.
  • 공격자가 C&C 서버에 명령을 내리면 C&C 서버는 좀비 PC에 명령을 전달한다.
  • 좀비 PC는 명령에 따라 다양한 공격을 수행하며 스스로 다른 PC로 악성코드 전파를 시도하기도 한다.

공격의 대표적 유형

  • 대역폭 소진 공격
    • UDP/ICMP Flooding, SYN Flooding 등
  • 시스템 자원 소진 공격
    • HTTP GET Flooding 등
  • 외에 더 많은 공격 유형은 따로 공부할 것!! 

IoT를 이용한 DDoS

  • 작은 단말에도 인터넷이 들어가는 IoT 장비가 많아져서 이를 이용한 공격이 증가하고 있다.
  • 주로 CCTV(카메라+dvr/mvr)나 IP공유기가 해당된다.
  • IoT 단말들은 주로 임베디드 리눅스가 설치되어 있으며, 백신이 없는 리눅스 환경은 악성코드에 취약해서 좀비 단말이 될 확률이 높다.
  • 또한 이러한 단말들은 현재 있는 IP 대역을 스캔한 뒤 악성코드를 배포하여 더 많은 좀비 IoT 단말을 만들 수 있다.

싱크홀(Sink Hole) 서비스

  • 악성 코드에 감염된 좀비 PC가 해커의 명령을 받기 위해 C&C 서버로 연결을 시도할 때 C&C 서버 대신 싱크홀 서버로 우회시켜 더 이상 해커로부터 조종 명령을 받지 않도록 해주는 시스템/서비스를 말한다.
  • KISA에서 국내 주요 ISP업체(KT) 등과 협력을 통해 운영중이다.
  • 싱크홀 동작 과정
    • 사전 단계로 KISA에서 배포한 C&C 목록을 ISP 등 DNS 싱크홀 적용기관의 DNS 서버에 주기적으로 업데이트한다.
    • 좀비 PC가 싱크홀이 적용된 DNS에 C&C 서버에 대한 질의를 보낸다.
    • DNS는 좀비 PC에 싱크홀 서버 IP주소를 반환한다.
    • 이를 통해 악성 봇 PC는 C&C 서버가 아닌 싱크홀 서버로 접속하여 공격자의 명령으로부터의 피해를 방지할 수 있다.

DrDos(Distributed reflection DoS)

개요

  • 공격자는 src IP를 희생자의 IP로 위조(IP spoofing)하여 다수의 반사 서버로 요청정보를 전송하고, 희생자는 반사 서버로 부터 다수의 응답(대량의 트래픽)을 받아 서비스 거부 상태가 되는 공격 유형을 말한다.
  • 크게 반사와 증폭으로 이루어져 있다.

DrDoS 공격의 형태

  • 주로 UDP를 사용한다. 주로 DNS(53), NTP(123), SNMP, CHARGEN 등의 서비스를 이용한다.
  • TCP도 가능하다. 3 way handshake를 이용하여 위조된 ip의 syn 요청을 반사서버로 전달하여 syn+ack 응답이 희생자로 향하도록 한다.
  • 외에도 (Smurf Attack) ICMP 프로토콜의 echo request와 echo response를 이용하여, 위조된 주소의 echo request를 반사서버로 전달하여 echo response가 희생자로 향하도록 하는 공격이 있다.

일반 DoS 공격과의 차이점

  • 공격 근원지를 파악하기 어렵다! src IP를 변조하고 공격 트래픽이 수많은 반사 서버를 경유하므로 공격의 근원지를 파악하는 것이 매우 어렵다.
  • 좀비 PC의 공격 트래픽 효율이 증가한다. DrDoS에 사용되는 반사 서버는 syn+ack 패킷에 대한 응답이 없을 경우 일정 횟수 재전송을 수행하기 때문에 공격자가 전송하는 syn 패킷보다 몇 배 많은 syn+ack 패킷이 공격대상서버에 전송된다. (비용 절감 측면)

대응방법

  • DrDoS 공격은 src IP를 위조하는 공격이므로 IP 주소가 위조된 패킷이 인터넷 망에 유입되지 않도록 ISP 단에서 직접 차단할 수 있다. (Ingress Filtering)
  • 반사 서버에서는 ICMP 등 필요없는 프로토콜을 사전에 차단한다.
  • DNS 서버
    • 내부 사용자 주소만 Recursive query 제한
    • 특정 바이트 이상의 query 차단, 동일 ip에 대해 초당 요청 개수 제한
  • NTP 서버
    • monlist 명령 비활성화 (/etc/ntp.conf -> disable monlist)
    • monlist : 최근에 NTP에 접속한 클라이언트 정보를 전송해주는 명령


+ Recent posts