DDoS

justugi·2025년 6월 5일

네트워크 보안

목록 보기
9/13

DDoS

  • Distribution Denial of Service. 분산 서비스 거부 공격
    • DoS 공격의 발전 형태
    • 공격 시스템을 여러 대로 분산 배치하여 대량의 트래픽으로 공격대상의 서비스를 마비시키는 공격
      • 악성코드 등을 이용하여 Zombie PC 를 획득하여 C&C server 를 통해 공격 명령을 내림
        • C&C server : Command & Control server (명령 및 제어 서버). 해커가 C&C server 에게 명령을 내려서 Zombie PC 들을 관리 & 명령
  • 공격 발전 형태
    • 초기 : 다수의 공격자가 지속적인 재요청 발생
      • -> 통신 장비의 성능 발전으로 공격 효과 X
    • 중기 : 다수의 공격자가 DoS 공격을 직접 수행
    • 현재 : Bot 에 감염된 Zombie PC 로 이루어진 Botnet 을 이용하여 공격
      • Bot : 좀비 PC 를 포함한 해커가 공격에 이용 가능한 네트워크 장비들
      • Botnet : Bot 으로 이루어진 집합체
  • Botnet 의 구성요소
    • Attacker (= Bot Header)
      • DDoS 공격을 수행하는 실제 공격자
    • Master (= C&C server)
      • Bot header 의 명령을 연결된 Agent (Zombie PC) 에게 전달하는 시스템 혹은 프로그램
      • Handler 프로그램
    • Agent (= Zombie PC)
      • Bot Header 가 유포한 Bot (악성코드) 에 감염된 시스템
        • 공격자에게 제어권을 빼앗김
      • Master 에게 명령을 전달받거나 Bot Header 가 지정한 시점에 직접적인 공격 수행
      • Daemon 프로그램 (사용자 몰래 구동하기위해)
  • 공격 유형
    • 네트워크 대역폭 소모
      • 대량의 패킷을 전송하여 네트워크 대역폭의 처리 한계 초과
      • UDP Flooding, ICMP Flooding 등
    • 시스템 자원 고갈
      • 시스템에서 서비스를 지원하는 리소스 (CPU, memory, backlog 등) 를 소모시킴
      • SYN Flooding, TCP Connection Flooding 등
    • 어플리케이션 취약점 공격
      • 특정 서버 프로그램 (7 계층) 에서 나타나는 취약점을 이용하여 정상 서비스 방해
      • HTTP GET Flooding, HTTP CC (Cache Control) Attack, Slowloris (HTTP GET based) Attack, RUDY (HTTP POST based) Attack, Hulk Dos Attack 등
  • 공격 확산 원인
    • 공격자의 Business Model 변화
      • 금전적 이득이 목적
    • 낮은 난이도
      • 보안이 향상된 시스템을 기술적으로 어렵게 해킹할 필요 없이 많은 데이터를 보내기만 하면 됨
    • 네트워크 인프라 발달
      • 최근에 급격한 네트워크 서비스의 발전으로 방대한 규모의 공격 가능
      • Zombie PC 를 많이 보유할수록 강한 공격 가능
    • 사용자의 부주의한 PC 관리
      • 개인 PC 의 등장과 비전문가에 의한 관리
        • Zombie PC 의 확산

DDoS - 어플리케이션 취약점 공격

GET Flooding

  • 공격자가 동일한 URL 을 반복 요청 (GET) 하여 웹서버의 부하를 유발하는 공격

CC Attack (= GET Flooding with Cache-Control Attack)

  • HTTP Request 의 Cache-Control 메세지 헤더를 조작하여 Cache 서버가 응답 가능한 자원도 원본 웹 서버가 직접 처리하도록 유도
    • Cache 서버 : 원본 서버와 클라이언트 사이에 위치하여 실제 원본 서버의 데이터 중 클라이언트가 요청한 데이터를 캐시 데이터로 저장하는 서버로, 클라이언트와 직접 통신하는 서버
  • GET Flooding 과 다르게, 존재하지 않는 페이지를 계속 요청하여 정상적인 Cache 서버의 응답을 유발하는 것이 아니라 Cache 서버를 통해 웹 서버에 부하를 주는 공격

Slow HTTP POST DoS (= RUDY. RU-Dead-Yet?)

  • POST 요청으로 전달하는 많은 양의 데이터를 장시간에 걸쳐 분할 전송
    • 서버가 POST 요청을 모두 전달 받을 때까지 연결을 유지하면서 자원을 소모
    • 동시 접속자 수를 증가시켜서 자원을 계속 점유
  • POST HTTP 요청 패킷의 헤더에 length 에 바디의 크기를 byte 단위로 적어두는데 해당 length 값을 크게 잡아두고, 바디에 데이터를 나누어서 조금씩 천천히 전송

Slow HTTP Header DoS (= Slowloris)

  • HTTP 요청의 헤더의 마지막 (blank) 을 설정하지 않은 조작된 요청을 전달
  • 서버는 클라이언트의 요청이 모두 수신되지 않았다고 판단하고 나머지 요청 데이터가 모두 수신될 때까지 대기하여 자원을 소모함
    • 헤더의 크기는 무제한이라 헤더의 사이즈가 커서 두 번에 나누어서 보내야 할 때, 첫 번째 요청의 헤더는 blank 를 사용하지 않고 두 번째 요청에서 헤더가 끝나면 blank 를 사용하여 하나의 헤더임을 표하는데 고의로 blank 를 사용하지 않아서 아직 헤더가 남았음을 표하는 공격
    • 실습
      [공격자]
      cd slowloris.pl-master
      perl slowloris.pl -dns 도메인주소혹은IP주소 -port 80 -timeout 연결(공격)유지시간 -num 연결유지대수 -cache

[타겟]
netstat -antup 으로 공격 확인 가능

Slow HTTP Read DoS

  • TCP 의 전송 가능한 (본인이 처리 가능한) 퍼버 사이즈 (window size) 를 조작하여 데이터 처리율을 감소시킨 후 HTTP 메시지를 전송하여 정상 응답을 하지 못하도록 유도하는 공격
    • 공격자가 window=0 또는 1 로 전송 -> 서버는 일정시간 대기 -> 서버가 probe 전송 (window 사이즈 변했는지 확인용 패킷) -> 공격자가 window=0 으로 전송 ...

Hulk (Http Unbrearable Load King) DoS Attack

  • GET Flooding 과 비슷한 유형의 공격
  • 동일 URL 의 반복적인 요청 차단을 우회하기 위해 URL 의 parameter 를 변경하여 반복적으로 요청 전송

DRDoS

  • Distribution Reflective Denial of Service. 분산 반사 서비스 거부 공격
    • DoS 의 Smurf 공격이 DDoS 방식으로 발전한 형태의 공격
  • 특징
    • 반사체 (취약한 정상 server list) 를 사용하므로 Zombie PC 를 보유할 필요가 없음
    • 공격자 은닉 강화
      • 공격의 근원지 파악이 어려움 (추적 난해)
      • IP Spoofing (공격 데이터의 출발지를 공격 대상으로 변조)
  • 공격 원리
    • 공격자가 반사체에 등록된 시스템에 출발지 IP 를 공격대상의 IP 로 Spoofing 한 요청을 전송
    • 반사체 시스템은 받은 요청을 정상 요청으로 인식하고 응답을 공격대상으로 전달
    • 다량의 응답을 받은 공격 대상은 응답을 처리하기 위한 리소스를 소비하여 정상 서비스에 부하를 줌
  • 보안 대책
    • Ingress Filtering - ISP 에서 출발지 주소가 변조된 데이터 유입 차단
    • ICMP 패킷에 의한 DRDoS 를 막기 위해 ICMP 패킷 필터링

DDoS 공격 대응

  • 충분한 Bandwidth 확보
    • 보다 많은 트래픽을 처리할 수 있는 회선 보유
  • 공격 트래픽 모니터링
  • 공격 대응 전문기관 연계
    • ISP, IDC 등에게 요청하여 공격 트래픽이 유입되는 경로를 차단하여 대응
    • 관제 센터나 KISA 를 통해 대응
  • DDoS 솔루션 장비 도입
    • Anti DDoS, L7 Switch 장비 도입
  • 대응 프로세스 준비

공격 대응 프로세스

    1. 공격 인지
    • incoming traffic volume
      • 방화벽, IDS 등의 네트워크 장비를 통해 웹서비스 운영망으로 유입되는 트래픽의 bps 와 pps 규모를 평시와 비교
        • bps : bit per sec, pps : packet per sec, cps : character (문자) per sec
    • webserver access log
      • 웹서버의 접속 로그를 확인하여 비정상 접속 증가 여부 확인
    • concurrent connection
      • 방화벽, IDS 등의
    • incoming traffic sampling capture
      • 웹서비스 운영망으로 유입되는 트래픽의 일부를 수집하여 분석
    1. 공격 유형 파악
    • packet dump
      • tcpdump 와 같은 트래픽 캡쳐 툴을 이용하여 incoming traffic 일부를 pcap 형태로 저장
        • pcap : packet capture 파일
    • analysis
      • tcpdstat : 수집된 트래픽의 프로토콜 종류 등 정보 확인
      • ngrep, httpry : http header 정보 확인
      • argus : concurrent connection 정보 확인
    • scenarios drawn
      • tcpdstat, tcpdump : 대역폭 소진 공격 (UDP, ICMP Flooding 등) 여부 판단
      • ngrep, httpry : DB donnection 부하 유발 공격 (Get Flooding 등) 여부 판단
      • argus : 웹서버 자원 (TCP Stack) 부하 유발 공격 (SYN Flooding 등) 여부 판단
    • webserver access log
      • 서버 접속로그를 확인하여 접속자의 request page 통계, 특정 시간동한 발생한 request 통계 확인
    1. 공격 유형에 따른 공격 종류 정의 및 대응
    • 대역폭 소진 공격
      • UDP, ICMP Flooding
        • 웹서버 앞단에 위치한 방화벽이나 상단 라우터 (ISP 협력 필요) 에서 해당 프로토콜 차단 (ACL 등)
      • TCP Flooding
        • size 가 큰 TCP Flooding 공격은 프로토콜 기준으로 차단할 수 없으므로 source ip 별 pps 에 대한 임계치 정책을 설정
    • 웹서버 자원 소모 공격
      • SYN (ACK/FIN) Flooding
        • SYN Flooding 공격은 웹서버 OS 의 TCP stack 자원을 소모하는 공격으로 source ip 별 pps 에 대한 임계치 정책을 설정하거나, 패킷의 헤더를 검사하여 옵션필드가 없는 등 비정상 패킷 차단
      • Slow header or Slow data Flooding
        • 하나의 요청에 대한 timeout 값을 설정하여 특정 시간동안 요청이 완료되지 않을 경우 connection 을 강제 종료
    • DB connection 부하유발 공격
      • GET (Post) Flooding
        • 다수의 HTTP 요청을 유발하여 웹서버와 DB 사이의 연동에 부하를 유발하므로 특정 시간동안 발생하는 요청 수에 대한 임계치를 설정하여 해당 임계치 이상의 요청을 발생시키는 source ip 차단
        • HTTP header 를 확인하여 HTTP 표준에 맞지않는 field 가 설정되어있는 경우 field 값을 signature 로 설정하고 차단
    • 봇 vs 브라우져 식별 방안
      • 일반적인 봇은 브라우져와 달리 웹서버의 응답코드에 반응하여 행동하지 않으므로 웹서버에서 302 moved temporary 와 같은 코드로 응답하여 봇이 발생시키는 요청 차단
        • 300 : 리다이렉션 코드
        • 일반적인 웹 브라우져는 자동으로 리다이렉션 하지만, 봇은 자동으로 리다이렉션 하지않음
    1. 사후 조치
    • 공격 시점의 bps, pps, cps 변화 추이 확인
      • 공격 규모를 확인하여 가용성이 침해될 수 있는 지점을 확인 후 정확한 데이터에 따른 차단 정책 업데이트
    • 공격 유형 확인
      • 프로토콜에 대한 통계, 패킷 크기에 대한 통계, 요청 형태에 대한 통계를 상세히 확인하여 시간에 따른 공격 유형의 변경 여부 또는 복합공격 여부를 확인하여 차단 정책 업데이트
    • HTTP 요청 패킷 형태 확인
      • 특정 시간에 대한 HTTP 요청 count 를 확인하여 비정상적인 행위 여부를 규명하고 HTTP header 의 각 field 를 조사하여 HTTP 표준 준수 여부를 확인하여 비정상적일 경우 차단 정책 업데이트
    • Zombie PC IP 확보
      • GET(POST) Flooding 공격이나 Slow header (data) Flooding 공격의 경우 TCP 3 way handshake 와 함께 수행되므로 실제 공격 IP 확보 가능
      • 대역폭 소진 공격의 경우 공격자는 대부분 source IP 를 변조하므로 IP 변조여부를 확인하는 절차 필요
profile
IT 보안, 관심 있는 것을 공부합니다.

0개의 댓글