Information Security

Denial-Of-Service (DoS) Attacks

tavris 2018. 10. 5. 10:46

Denial-Of-Service (DoS) Attacks




Denial-Of-Service (DoS. 이하, DoS) 공격은 아래와 같이 정의할 수 있다.

An action that prevents or impairs the authorized use of networks, systems, or applications by exhausting resources such as central processing units (CPU), memory, bandwidth, and disk space.

중앙 처리 장치 (CPU), 메모리, 대역폭 및 디스크 공간과 같은 자원을 소모하여 네트워크, 시스템 또는 응용 프로그램의 허가 된 사용을 방해하거나 해치는 작업.

DoS 공격은 어떤 서비스의 가용성에 대한 공격의 한 형태이다. 

DoS 공격으로 공격 대상이 될 수 있는 자원(Resource)은 "Network Bandwidth", "System Resources", "Application Resources" 이다.


  • Network Bandwidth

    - 서버를 인터넷에 연결하는 네트워크 링크의 용량과 관련이 있음.

    - 대부분의 조직에서 ISP와의 연결.

  • System Resources

    - 네트워크 처리 소프트웨어의 과부하 또는 충돌을 목표로 함.

  • Application Resources

    일반적으로 많은 수의 유효한 요청을 포함하며, 각 요청은 상당한 자원을 소비하므로 서버가 다른 요청에 응답하는 것이 제한됨.




Denial-Of-Service Attacks

A. Classic Denial-Of-Service (DoS) Attacks

1. Flooding Ping Command

    - 공격의 목표는 대상 네트워크의 연결 용량을 압도하는 것이다.

    - 트래픽은 경로에서 더 높은 용량의 링크로 처리 할 수 있지만 용량이 줄어들면 패킷은 폐기된다.

    - 스푸핑 된 주소를 사용하지 않는 한 공격의 Source(출발지)를 명확하게 식별 할 수 있다.

    - 네트워크 성능에 현저하게 영향을 받는다.

 2. Source Address Spoofing

    - 원본 주소를 위조하여 사용한다.

       * 일반적으로 운영 체제의 원시 소켓 인터페이스(Row Socket Interface)를 통해 공격 시스템을 식별하기 어렵게 만든다.

    - 공격자는 대상 시스템을 주소로 갖는 많은 양의 패킷을 생성한다.

    - 네트워크 정체로 인하여 라우터가 가장 용량이 낮은 링크에 연결한다.

    - 네트워크 엔지니어가 라우터의 플로우 정보를 구체적으로 질의하는 것이 필요하다.

    - 트래픽 산란

       * 공격 트래픽을 모니터링하기 위해 사용되지 않는 IP 주소에 대한 경로를 통지한다.

3. SYN Spoofing

    - 일반적인 Denial-Of-Service (DoS) 공격이다,

    - 서버를 관리하는데 사용된 테이블에 대해 오버 플로우가 발생하도록 하여, 이후에 요청되는 연결에 대해 서버가 응답하지 않도록 하는 공격이다.

    - 서버가 응답하지 않기 때문에 정상적인 사용자가 서버에 접근하는 것이 거부된다.

    - 따라서 시스템 자원에 대한 공격, 특히 운영 체제의 네트워크 처리 코드.


TCP 3-Handshake

일반적인 TCP 3-Handshake


TCP SYN Spoofing Attack


TCP SYN Spoofing Attack


4. Flooding Attacks

    - 사용되는 네트워크 프로토콜에 따라 분류된다.

    - 공격 목표는 서버에 대한 일부 링크의 네트워크 용량을 오버로드하는 것이다.

    - 사실상 모든 유형의 네트워크 패킷을 사용할 수 있다.

        • ICMP Flood

            → Ping Flood는 ICMP Echo Request 패킷을 사용한다.

            → Ping은 네트워크 진단을 위해 유용하기 때문에 전통적으로 네트워크 관리자는 이런 패킷을 네트워크에서 허용한다. (최근에는 나가는 Ping만 허용하는 경우가 많다.)

        • UDP Flood

            → 대상 시스템의 포트 번호로 지정된 UDP 패킷을 사용한다.

        • TCP SYN Flood

            → 대상 시스템에 TCP 패킷을 보낸다.

            → 총 패킷 양은 시스템 코드가 아닌 공격의 목표이다.


B. Distributed Denial-Of-Service (DDoS) Attacks

    - 공격을 수행하기 위해 여러 시스템을 사용한다,

    - 공격자는 'Zombi'를 만들기 위해 운영 체제 또는 어플리케이션의 취약점을 악용하여 프로그램을 설치한다.

    - 공격자가 대규모 시스템 그룹을 만들어 제어하는 Botnet을 만들 수 있다.


Distributed Denial-Of-Service (DDoS) Attacks

Distributed Denial-Of-Service (DDoS) Attacks


C. Application based Bandwidth Attacks

1. Session Initiation Protocol (SIP) Flood

    - VoIP 전화를 위한 표준 프로토콜

    - HTTP와 비슷한 문법의 텍스트 기반 프로토콜

    - SIP 메시지의 두가지 유형 : 요청, 응답

    - 공격 방법

        • Spoofing 된 IP 주소를 사용하여 대량의 INVITE 요청으로 SIP 프록시를 플러딩 할 수 있다.

2. Hypertext Transfer Protocol (HTTP) Based Attacks

    - HTTP Flood

        • HTTP 요청으로 웹 서버를 공격하는 방법의 공격

        • 많은 자원을 소비한다.

        • 스파이더 링 : 주어진 HTTP 링크에서 시작하여 제공된 웹 사이트의 모든 링크를 재귀적으로 따라다니는 봇.

    - Slowloris

        • 절대 완료되지 않는 HTTP 요청을 보내 독점을 시도한다.

        • 웹 서버의 연결 용량을 소모한다.

        • 합법적인 HTTP 트래픽을 사용한다.

        • 일반적으로 공격을 탐지하기 위해 서명에 의존하는 기존 침입 탐지 및 예방 솔루션은 탐지할 수 없다.


D. Reflector and Amplifier Attacks

1. Reflection Attacks

    - 공격자는 실제 대상 시스템의 Spoofing 된 출발지 주소를 조작하여 중개자에게 알려진 서비스로 패킷을 전송한다.

    - 중개자가 공격자가 전송한 패킷에 응답하면 응답이 대상에게 전송된다.

    - 목표는 중개자에게 경고하지 않고 대상 시스템에 대한 링크를 넘치게하기 위해 충분한 양의 패킷을 생성하도록 한다.

    - 대처 방법은 Spoofing 된 출발지 주소의 패킷을 차단한다.

2. DNS Reflection Attacks

Reflector and Amplifier Attacks


3. Amplification Attacks

    - 공격자가 Reflector에 패킷을 전송하면 Reflector에서 증폭되어 대상에게 전송되는 방법을 사용한 공격 방식이다.

4. DNS Amplification Attacks

    - 공개된 DNS 서버를 이용한 DoS 공격 방법이다.

    - 다수의 DNS 서버들을 이용한 공격 방법은 DNS Amplification DDoS Attack 이라고 한다.

    - 출발지 주소를 조작하여 DNS에 질의하면 조작된 주소로 응답이 전송되도록 하는 공격이다. (DNS 패킷에는 인증 과정이 없기 때문)

    - 공격자는 증폭을 위해 Open DNS Reslover 서버를 사용한다. 이때, DNS Query의 Type을 "any"로 설정한다.

    - 대처 방법은 DNS 서버의 설정을 재귀적인 Query를 사용하지 않도록하고, 내부에서 요청한 주소에만 응답하도록 한다.




  • Denial-Of-Service (DoS) Attack Defenses

    - DoS 방식의 공격은 완벽하게 방어 할 수 없다.

    - 합법적인 사유로 인하여 높은 트래픽이 발생할 수 있다. (ex. 특정 사이트에 대한 홍보, 매우 인기있는 사이트, 이벤트를 Flash를 사용하여 설명할 때 등.)

    - DDoS 공격에 대한 방어 4가지

        - 공격하기 전  : 공격 예방 및 선매

            • 목표 대상 시스템이 정상적인 클라이언트에 대한 서비스에 영향을 받지 않도록 공격을 버티는 전략.

            • 자원의 소비 제어 또는 필요하면 추가적인 자원을 지원하는 등의 정책을 사용.

       - 공격 중 : 공격 탐지 및 필터링(선별)

            • 공격이 시작되면 감지하여 신속한 대응을 함으로써 시스템에 대한 영향을 최소화.

            • 감지는 시스템의 의심가는 패턴을 찾아내고, 대응으로는 공격과 관련있는 패킷을 선별해 내는 방법을 주로 사용.

       - 공격 중 & 공격 후 : 공격 출발지 추적 및 식별

            • 공격의 가능성을 차단하기 위해 공격의 출발지를 역추적.

       - 공격 후 : 공격의 대응

            • 공격의 효과를 최소화하려는 노력.

    - DoS 공격의 핵심요소는 조작된 출발지 주소를 사용하는 것으로 조작된 출발지 주소를 사용하는 패킷을 필터링 한다.







위 포스팅은 연구 목적으로만 사용되었으며, 악용을 위해 사용되었을 경우 법적 제재가 있을 수 있습니다.

또한, 위 포스팅을 악용하였을 경우 모든 책임은 본인에게 있음을 유의하시기 바랍니다.