[Information Security] Chapter 7 Denial-of-Service Attacks

이은지·2024년 8월 23일
0

Information Security

목록 보기
8/11

Denial of Service (Dos) Attack

  • A form of attack on the availability of some service
    • 가용성은 시스템, 데이터가 필요할 때 사용자가 접근 가능해야한다는 원칙임. Dos 공격은 시스템, 네트워크, 웹서비스에 과도한 요청이나 트래픽을 일으켜 authorized user가 필요한 서비스에 접근할 수 없게함
  • An action that prevents or impairs the authorized use of networks, systems, or applications by exhausting resources such as CPU, memory, bandwidth, and disk space
  • Categories of resources that could be attacked
    • Network bandwith
      • Relates to the capacity of the network links connecting a server to the Internet
        • 서버를 인터넷에 연결하는 네트워크 링크의 용량과 관련 있음
      • For most organizations this is their connection to Internet Service Provider(ISP)
        • 대부분 조직에게 이것은 인터넷 서비스 제공업체(ISP)에 대한 연결을 의미

💡 조직의 네트워크 대역폭은 일반적으로 ISP 라우터 내부 및 라우터간 링크보다 낮은 용량을 가짐. 이는 ISP의 라우터로 들어오는 고용량 링크를 통해 도착하는 트래픽>조직으로 연결된 링크를 통해 처리될 수 있는 것 의미. 이런 상황에서 라우터는 링크가 처리할 수 있는 만큼만 패킷을 전달하고, 나머지는 버려야하는데, 고부하가 발생한 상황에서는 사용자들 중 일부가 서비스가 저하되거나 이용할 수 없을 것임. DoS 공격에서는, 대상 서버로 향하는 트래픽의 대부분이 공격자에 의해 생성된 악의적인 트래픽으로 이 트래픽은 정상 트래픽을 압도하여, authorized user들이 서버에 접근하는 것을 불가능하게 함

  • System resources
    - Aims to overload or crash the network handling software
    - 대량 트래픽으로 대역폭을 소모하는 대신, 시스템에 제한된 자원을 소비하는 특정 유형의 패킷을 전송
    - System resource 예시: buffers used to hold arriving packets, tables of open connections, and similar memory data structures
    - 예: SYN 스푸핑, ping of death, teardrop attacks, 등
    • Application resources
      • Typically involves a number of valid requests, each of which consumes significant resources, thus limiting the ability of the server to respond to requests from other users
      • 공격 예시: cyberslam
        • 웹 서버에게 large, costly query를 요청하는 것 → this limits server’s ability to respond to valid requests from other users

Classic DoS Attacks

Flooding attack

공격자는 큰 회사의 웹서버를 이용하여 낮은 용량의 네트워크 연결을 가진 중소기업을 타겟으로 하여 공격할 수 있음. 공격은 대상 회사의 웹서버를 향해 Ping 명령어를 사용하는 것처럼 단순할 수 있음. 이 트래픽은 그들 사이의 경로 상에서 더 높은 용량의 링크로 처리될 수 있지만, 인터넷 클라우드의 마지막 라우터에 도달하면 일부 패킷이 버려져야함.

  • 목적

    • aim of this attack is to overwhelm the capacity of the network connection to the target organization
    • Intent is to overload the network capacity on some link to a server
  • 특징

    • Flooding packets to the target server and the routers on the path to the target server
    • Traffic can be handled by higher capacity links on the path, but packets are discarded as capacity decreases
    • Network performance is noticeably affected
    • Source of the attack is clearly identified unless a spoofed address(위조된 주소) is used
    • Virtually any type of network packet can be used
  • Flooding Ping command

    • 일반적인 ping 명령어 → 네트워크 상의 두 지점 사이의 연결 상태를 확인하기 위해 작은 데이터 패킷을 목표 호스트로 보내고 그 호스트로부터 응답을 받아 시간을 측정
    • flooding ping
      • 명령어 실행시 -f 옵션을 사용하여 매우 높은 속도로 연속적으로 데이터 패킷을 보냄
      • flooding ping 사용 시 대상 네트워크 또는 호스트가 많은 수의 요청을 받아 처리하게 되어, 정상적인 트래픽이 처리되지 못하고 네트워크 성능이 저하될 수 있음
  • Classified based on network protocol used

    네트워크 계층과 전송 계층에서 사용되는 프로토콜을 기준으로 분류된 공격 유형

    • ICMP flood
      • Ping flood using ICMP echo request packets
        • 대량의 ICMP echo request(핑 요청)을 목표 시스템에 보내어 시스템이 모든 요청에 대해 응답을 생성하도록 만들어 자원을 고갈시키는 공격
      • Traditionally network administrators allow such packets into their networks because ping is a useful network diagnostic tool
        • 핑은 네트워크 진단 도구로 유용하기 때문에, 전통적으로 네트워크 관리자들은 이러한 패킷을 네트워크에 허용하는 경향이 있음
    • UDP flood
      • Uses UDP packets directed to some port number on the target system
        • 대량의 UDP 패킷을 랜덤하거나 특정 포트에 보내어 대상 시스템이나 서버의 네트워크 리소스를 소진시키는 공격
    • TCP SYN flood
      • Sends TCP packets to the target system
        • TCP연결 과정인 3-way handshake 첫 단계에서 SYN패킷을 대량으로 보내어 서버가 가짜 연결 요청을 처리하느라 정상적인 연결 요청을 처리하지 못하게 만드는 공격
      • Total volume of packets is the aim of the attack rather than the system code
        • 공격자가 서버 또는 대상 시스템의 처리 능력을 초과하도록 대량의 SYN 패킷을 보내는 것을 목표로 함

Source Address Spoofing in DoS

  • DoS 공격에서 패킷의 특성 → forged source address
    • 생성 방법: Usually via the raw socket interface on operating systems
      • Raw 소켓 인터페이스는 네트워크 프로토콜의 헤더를 직접 조작할 수 있게 해주어, 맞춤형 패킷을 생성할 수 있음
    • Makes attacking systems hard to identify
  • Attacker generates large volumes of packets that have the target system as the destination address
  • May affect other honest hosts’ routers
  • To indentify source, the flow of packets through the routers should be identified rather than inspecting just packets
    • Router’s filtering is better approach

💡 라우터 필터링이 더 나은 접근?
- 패킷의 소스 주소가 위조될 수 있기 때문에 단순히 패킷의 속성을 검사하는 것으로는 출처를 정확히 알아내기 어려움. 반면에, 라우터를 통과하는 패킷의 흐름을 분석하면, 패킷이 어디서 왔는지, 어떤 경로를 통해 네트워크를 통과했는지 정보를 통해 출처를 더 정확히 추적할 수 있음
- 따라서 라우터에서 적용되는 필터링 규칙을 통해 의심스러운 패킷 흐름을 차단하거나 모니터링하는 것이 보안상 유리함

  • 방어 방법: Backscatter traffic 사용하지 않는 IP 주소로 광고한 다음, 해커가 패킷을 보내도록 하여, 공격적인 패킷을 모니터링
    • The traffic to the hosts with unused IP addresses
    • All backscatter traffic is suspicious as normal users do not access the hosts of unused IP address
    • Can be used to identify attack packets

SYN Spoofing

  • Attacks the ability of a server to respond to future connection requests by overflowing the tables used to manage them

    네트워크 서버가 TCP연결 요청에 응답하는 능력을 공격하여, 해당 연결을 관리하는 테이블을 오버플로우시킴.

    • Legitimate users are denied access to the server
      • 합법적인 사용자의 미래 연결 요청이 실패하게 만들어 서버에 대한 접근을 거부
    • An attack on system resources, specifically the network handling code in the operating system
      • 운영체제의 네트워크 처리 코드에 대한 시스템 자원 공격
  • TCP 3-way connection handshake

    • 클라이언트→ 서버에게 SYN패킷을 보내며 TCP 연결 요청 시작
      • 클라이언트의 주소와 포트번호를 식별하고, 초기 순차 번호를 제공
    • 서버는 이 요청에 대한 모든 세부 정보를 알려진 TCP 연결의 테이블에 기록 후 클라이언트에게 SYN-ACK 패킷으로 응답
      • seq = y : 서버의 순차번호
      • ack = x + 1 : SYN패킷의 수신을 확인하기 위해 클라이언트의 순차 번호 증가
    • 클라이언트가 이를 수신하면, 서버 순차 번호를 증가시킨(y+1) ACK 패킷을 서버에 보내고 연결이 설정되었다고 표시
    • 서버가 이를 수신하면, 연결이 설정되었다고 표시

  • TCP SYN Spoofing Attack
    • SYN스푸핑 공격은 대상 서버 시스템의 TCP 3-way connection handshake에서의 행동을 악용함
    • 공격자는 위조된 소스 주소를 가진 여러 개의 SYN 연결 요청 패킷을 생성
    • 각각에 대해, 서버는 TCP 연결 요청의 세부 사항을 기록하고 주장된 소스 주소로 SYN-ACK 패킷을 보냄
      • 이 주소에 대해 유효한 시스템이 있다면, 알려지지 않은 연결 요청을 취소하기 위해 RST(리셋) 패킷으로 응답할 것
      • 그러나, 소스 시스템이 존재하지 않을 경우, 응답이 오지 않음. 이 경우, 서버는 연결 요청이 실패했다고 가정하기 전까지 여러 번 SYN-ACK 패킷을 재전송할 것
    • 위조된 연결 요청들은 서버의 TCP 연결 테이블을 빠르게 채울 것이고, 이 테이블이 가득 차면, 다른 사용자의 합법적인 요청을 포함한 미래 요청이 거부되면서 피해가 발생

Distributed Denial of Service Attacks

  • Use of multiple systems to generate attacks
  • Attacker uses a flaw in operating system or in a common application to gain access and installs their program on it (zombie)
    • 악성 소프트웨어를 사용하여 시스템을 장악하고 공격 에이전트를 설치하여 제어할 수 있도록 한 시스템
  • Large collections of such systems under one attacker’s control can be created, forming a botnet
    • 한 공격자의 제어하에 있는 이러한 시스템들의 대규모 집합체는 봇넷을 형성
  • 제어 계층 구조
    • 소수의 시스템이 핸들러 역할을 하여 에이전트 시스템을 제어
    • 공격자 → 한번의 명령을 핸들러에게 보냄 → 핸들러가 자동으로 그 명령을 자신의 제어하에 있는 모든 에이전트에 전달

Application-Based Bandwidth Attacks

애플리케이션 기반 대역폭 공격 → 서버에서 비례적으로 큰 자원 소비를 하려고 시도. 해당 공격에 사용할 수 있는 두가지 프로토콜이 있음

  • Attempt to take advantage of disproportionally large resource consumption

SIP(Session Initiation Protocol) Flood

  • SIP 특징

    • VoIP(전화)에서 통화 설정을 위해 사용되는 표준 프로토콜은 세션 시작 프로토콜(SIP).
    • SIP→HTTP와 유사한 구문을 가진 텍스트 기반 프로토콜. 요청, 응답 두 가지 유형이 있음
  • SIP Invite Scenario

    • 앨리스의 사용자 에이전트는 컴퓨터에서 실행, 밥의 사용자 에이전트는 휴대폰에서 실행
    • 앨리스의 사용자 에이전트는 자신의 도메인 내에서 프록시 서버와 통신하도록 구성되어 있으며, 밥의 사용자 에이전트를 세션에 초대하고자 하는 의사를 나타내며, 프록시 서버에 INVITE SIP 요청을 전송하여 시작
    • 프록시 서버는 DNS 서버를 사용하여 밥의 프록시 서버 주소를 얻은 다음 그 서버에 INVITE 요청을 전달
    • 그런 다음 서버는 요청을 밥의 사용자 에이전트에 전달하여 밥의 전화가 울리게 함

  • SIP 플러드 공격
    • Flooding SIP INVITE messages
    • Making servers overwhelmed in processing messages

HTTP를 이용한 Dos공격 2가지 접근 방식

1. HTTP Flood

  • Attack that bombards(폭격을 가하다) Web servers with HTTP requests
  • Consumes considerable(상당한) resources to send big files
  • Spidering
    • Bots starting from a given HTTP link and following all links on the provided Web site in a recursive way
      • 봇들은 주어진 HTTP 링크에서 시작하여 제공된 웹사이트의 모든 링크를 재귀적으로 따라감

2. Slowloris

  • Attempts to monopolize all handling threads by sending HTTP requests that never complete
    • Do not send terminating new line sequence 종결 뉴라인 시퀀스를 포함하지 않는 불완전한 요청을 보냄
      • HTTP 구조 → 요청 헤더의 끝과 페이로드의 시작을 나타내기 위해 공백 라인 사용, 전체 요청이 수신되면, 웹 서버는 응답 가능
      • 공격자는 연결을 유지하기 위해 주기적으로 추가 헤더라인을 보내지만 종결 뉴라인 시퀀스는 결코 보내지 않음

  • Eventually consumes Web server’s connection capacity
    • 결국 웹 서버의 연결 용량을 모두 소비하여 정상적인 사용자의 접근을 실질적으로 거부하게 함
  • Utilizes legitimate HTTP traffic
    • 정상적인 HTTP 트래픽을 활용한다는 점에서 일반적인 DoS 공격과는 다름
  • Most of existing signature-based Intrusion Detection and Prevention cannot recognize Slowloris
    • 따라서 공격을 탐지하고 방지하기 위해 서명을 기반으로 하는 기존의 침입 탐지 및 예방 솔루션들은 일반적으로 Slowloris를 인식하지 못함

Reflector and Amplifier Attacks

반사 및 증폭 공격에서는 Zombie 컴퓨터나 해킹된 시스템이 중간자로 사용되지 X

대신 이러한 공격은 정상적으로 작동하는 네트워크 서버를 이용하여 대량의 트래픽을 생성. 따라서 해당 공격은 발견하기 어렵고, 추적하기도 어려움

Reflection Attacks

  • 목적
    • To generate enough volumes of packets to flood the link to the target system without alerting intermediary
      • 타겟 시스템에 충분히 많은 패킷을 생성해 그 시스템의 네트워크 링크를 과부하시키는 것 (타겟 시스템은 자신이 보낸 요청이 아니므로, 모든 패킷에 대해 RST 패킷을 응답할 것)
      • SYN 스푸핑 공격과 다른점: 타겟의 네트워크 처리 자원을 고갈시키는 것이 아니라, 타겟의 네트워크 링크를 넘치게 만드는 것
  • 방법
    • Send packets to a known service on the intermediary(중간자) with a spoofed source address of the actual target system
      • 공격자는 실제 대상 시스템의 위조된 출처 주소를 가진 패킷을 중간자에게 알려진 서비스로 보냄
    • When intermediary responds, the response is sent to the target
      • 중간자가 응답하면, 그 응답은 타겟에게 전송됨
  • 방어
    • Blocking spoofed-source packets
      • 소스 주소 위조를 방지할 수 있도록 해야함
  • DNS Reflection Attack 예시
    • 정상 작동

      • DNS 클라이언트가 UDP 포트 1792에서 서버의 DNS 포트 53으로 쿼리를 보내 도메인 이름의 IP 주소를 얻음.
      • 그러면 DNS 서버는 IP 주소를 포함하는 UDP 응답 패킷을 보냄
    • 반사공격 시나리오
      - 공격자가 스푸핑된 IP 소스 주소로 DNS 서버에 쿼리를 보냄. 이 주소는 공격 대상의 IP 주소임
      - 포트번호는 에코 서비스(데이터를 다시 돌려보내는)와 관련된 7번 사용
      - DNS 서버는 공격의 피해자인 j.k.l.m 주소의 포트 7로 응답을 보냄
      - victim이 에코 서비스를 제공할 경우, DNS 서버에 받은 데이터를 다시 에코하는 패킷을 생성하여 보냄
      - victim이 보낸 패킷에 DNS가 응답할 경우 둘 사이에 루프가 발생

      Untitled

Amplification Attacks

  • Similar to reflecting but generates multiple response packets per each original packet sent
    • reflecting 공격과 비슷하지만, 원본 패킷에 대해 여러 개의 응답 패킷을 생성하는 점에서 차이가 있음
  • Can be achieved by directing the original request to the broadcast address
    • 원본 요청을 어떤 네트워크의 broadcast 주소로 지시함으로써 달성될 수 잇음. 결과적으로 해당 네트워크의 모든 호스트가 요청에 응답할 가능성이 있어, 요청에 대한 응답의 홍수를 생성할 수 있음
  • Example
    • Ping flooding using ICMP each request to broadcast address
      • TCP/IP 구현의 기본 구성 요소이며 종종 네트워크로 허용되었던 ICMP 에코 요청 패킷을 사용하는 핑 플러드가 일반적인 선택
  • 방어 방법
    • 외부에서 네트워크로 유도된 브로드캐스트를 라우팅하지 않는 것
    • 에코와 핑같은 네트워크 서비스가 조직 외부에서 접근되는 것을 제한하는 것

Defenses Against Denial-of-Service Attacks

  • DoS attacks cannot be prevented entirely
  • High traffic volumes may be legitimate
    • High publicity about a specific site
    • Activity on a very popular site → described as slashdotted, flash crowd, or flash event

Four lines of defense against DDoS attacks

  • Attack prevention and preemption (공격 예방 및 선제 대응)
    • Before attack
    • 정당한 클라이언트에게 서비스를 거부하지 않으면서 공격 시도를 견딜 수 있게 해줌
  • Attack detection and filtering
    • During the attack
    • 공격이 시작됨과 동시에 즉시 대응하여 공격의 영향을 최소화 하려고 시도
  • Attack source traceback and identification
    • During and after the attack
    • 미래의 공격을 방지하기 위해 공격의 소스를 식별하려는 시도
  • Attack reaction
    • After the attack
    • 공격의 효과를 제거하거나 줄이려는 시도

DoS Attack Prevention

  • 플러딩 방어 → Block spoofed source addresses
    • DoS 공격의 중요한 구성요소 중 하나는 위조된 소스 주소의 사용 → 이를 제어하는 것이 중요
    • On routers as close to source as possible
      • 이러한 필터링은 패킷의 유효한 주소 범위를 알고 있는 라우터나 게이트웨이에 의해 가능한 소스에 가깝게 수행되어야 함
      • 이는 일반적으로 ISP → ISP는 모든 고객에게 할당된 주소를 알고 있으므로, 모든 고객 패킷에서 유효한 소스 주소가 사용되도록 할 수 있음
      • 라우터에서 명시적인 접근 제어 규칙을 사용하여 ISP에 할당된 주소 중 하나가 고객 패킷의 소스 주소인지를 보장하여 구현할 수 있음
    • Filters may be used to ensure path back to the claimed source address is the one being used by the current packet
      • 현재 패킷이 사용하는 경로가 주장된 소스 주소로 돌아가는 경로인지를 보장하기 위해 필터를 사용할 수 있음
    • Filters must be applied to traffic before it leaves the ISP’s network or at the point of entry to their network
      • 필터는 ISP의 네트워크를 떠나기 전, 또는 네트워크를 들어오는 시점에 적용되어야 함.
      • 일반적으로 위조된 소스 주소를 가진 패킷을 식별하는 것은 불가능하지만, 리버스 패스 필터의 사용은 ISP로부터 위조된 주소까지의 경로가 패킷이 ISP에 도달하기 위해 사용한 경로와 다른 일부 패킷을 식별하는데 도움을 줄 수 있음
  • SYN 스푸핑 공격 방어 → Use modified TCP connection handling code
    • Cryptographically encode critical information in a cookie that is sent as the server’s initial sequence number at SYN-ACK packet 서버에 연결 세부 정보를 저장하는 대신, 요청된 연결에 대한 중요 정보를 암호화된 쿠키에 인코딩하여 이를 서버의 초기 시퀀스 번호로 보냄. 이 쿠키는 서버로부터 클라이언트에게 SYN-ACK 패킷으로 보내짐
      • Legitimate client responds with an ACK packet containing the incremented sequence number cookie

        합법적인 클라이언트가 증가된 시퀀스 번호 쿠키를 포함한 ACK패킷으로 응답하면, 서버는 일반적으로 알려진 TCP 연결 테이블에 저장했을 정보를 재구성할 수 있음

      • 장점: 서버 측에서 세 개의 TCP 연결 핸드셰이크가 완료될 때까지 어떠한 메모리 자원도 소비하지 않음

      • 단점: 쿠키를 계산하기 위해 서버의 계산 리소스가 필요

    • 대안: Drop an entry for an incomplete connection from the TCP connections table when it overflows → TCP 연결 테이블이 오버플로될 때 미완성 연결의 항목을 선택적으로 삭제함으로써 새로운 연결 시도가 진행될 수 있도록 할 수 있음
  • 브로드캐스트 증폭 공격 방어 → Block IP directed broadcasts
  • 응용프로그램 자원 공격 방어 → Manage application sttacks with a form of graphical puzzle to distinguish legitimate human requests
  • 좋은 시스템 보안 관행 → Use mirrored and replicated servers when high-performance and reliability is required

Responding to DoS Attacks

Good Incident Response Plan

  • Details of how to contact technical personal for ISP

  • Need to impose traffic filtering upstream

    • DoS 공격은 네트워크 연결의 상류에서만 필터링될 수 있음
  • Details of how to respond to the attack

  • Anti-spoofing, blocking directed broadcast, and rate limiting filters should have been implemented

  • Ideally have network monitors and IDS to detect and notify abnormal traffic patterns

Conventional process of response

  1. Indetify type of attack
  • capture and analyze packets
  • Design filters to block attack traffic upstream
  • Or identify and correct system/application bug
  1. Have ISP trace packet flow back to source
  • May be difficult and time consuming
  • Necessary if planning legal action
  1. Implement contingency plan
  • Switch to alternate backup servers
  • Commission new servers at a new site with new addresses
  1. Update incident response plan
profile
소통하는 개발자가 꿈입니다!

0개의 댓글