DDoS(Distribution Denial of Service)


DDoS(Distribution Denial of Service)

  • 분산 서비스 거부 공격
  • DoS 공격의 발전 형태
  • 공격 시스템을 여러 대로 분산 배치하여 대량의 트래픽으로 공격대상의 서비스를 마비시키는 공격
    • 악성코드 등을 이용하여 Zombie PC를 획득하여 C&C서버를 통해 공격 명령을 내린다.
  • 기본적으로 공격의 형태가(1 -> N)) vs 1
    • (공격자(1) -> 좀비PC(N)) vs 공격대상(1)


공격 방식

  • 물리적인 파괴
  • 시스템 리소스 공격 -> CPU, Memory, Disk, 특정 Application …
  • 네트워크 대역폭 공격 -> 대역폭 고갈


공격 발전 형태

  • 초기
    • 다수의 공격자가 지속적인 재요청을 발생시켜서 일반 사용자의 서비스를 방해 한다.
  • 중기
    • 다수의 공격자가 DoS 공격을 직접 수행하여 대량의 트래픽을 발생시켜 공격한다.
  • 현재
    • Bot에 감염된 Zombie PC로 이뤄진 Botnet을 이용하여 공격 한다.


DDoS - Botnet 형태의 구성요소


Attacker(= Bot Header)

  • DDoS 공격을 수행하는 실제 공격자

Master(= C&C(Command & Control) Server)

  • Bot Header의 명령을 연결된 Agent(Zombie PC)에게 전달하는 시스템 또는 프로그램
  • Handler 프로그램

Agent(=Zombie PC)

  • Bot Header가 유포한 Bot(악성코드)에 감염된 시스템
    • 공격자에게 제어권을 빼앗기게 된다.
  • Master에게 명령을 전달 받거나 Bot Header가 지정한 시점에 직접적인 공격을 수행 한다.
  • Daemon 프로그램

dhcp spoofing1


DDoS - 공격유형


네트워크 대역폭 소모

  • 다수의 Zomie PC를 이용하여 대량의 패킷을 전송하여 네트워크 대역폭의 처리 한계를 초과

시스템 자원 고갈

  • 시스템에서 서비스를 지원하는 리소스를 소모시켜 정상 서비스의 문제를 유발 시킨다.

어플리케이션 취약점 공격

  • 특정 서버 프로그램에서 나타나는 취약점을 이용하여 정상 서비스를 방해 한다.


DDoS - 공격 확산 원인


공격자의 Business Model 변화

  • 금전적 이득을 노린다.
  • 보안이 향상된 시스템을 기술적으로 어렵게 해킹할 필요가 없다.

네트워크 인프라의 발달

  • 최근에 급격한 네트워크 서비스의 발전으로 Gbps/Tbps에 달하는 공격이 가능해진다.
  • Zombie PC를 많이 보유할 수록 강한 공격이 가능해진다.

사용자 부주의한 PC관리

  • 개인 PC의 등장과 비 전문가에 의한 관리
  • 개인 사용자의 부주의한 PC관리로 인해 BoT에 감염된 Zombie PC의 확산이 증가된다.

    DDoS - 공격 대응


    DDoS 공격 대응

  • 충분한 Bandwidth 확보
    • DDoS 공격에 어느 정도 대응할 수 있도록 서비스를 위한 평균적인 트래픽보다 많은 트래픽을 처리할 수 있는 회선을 보유해야 한다.
  • 공격 트래픽 모니터링
    • 실시간 모니터링을 통해 정상적인 트래픽의 양을 측정하여 공격에 의해 발생하는 급격한 트래픽을 감지해야 한다.
  • 공격 대응 전문기관과의 연계
    • 공격을 감지한 경우 전문 대응 기관에 바로 알려 유입 경로를 차단해야 한다.
    • 관리자의 신속한 대응일 필요한 부분
    • ISP,IDC등에 요청하여 공격 트래픽이 유입되는 경로를 차단하여 대응 한다.
      • 유입경로 및 공격 성향을 파악을 위해 공격 발생 시 LOG정보를 수사기관에 제공
  • DDoS 솔루션 장비 도입 고려
    • Anti DDoS, L7 Switch 장비를 배치하여 어느정도의 대비를 한다.
  • 대응 프로세스를 준비
    • 공격을 감지하였을 때 대응 절차를 미리 계획해야 한다.


DDoS - 공격 대응 프로세스

1)공격인지

  • incoming traffic volume
    • 방화벽, IDS등의 네트워크 장비를 통해 웹서비스 운영 망으로 유입되는 트래픽의 bps와 pps 규모를 확인하여 평시와 비교
  • webserver access log
    • 웹서버의 저복 로그를 확인하여 비정상 접속 증가여부 확인
  • concurrent connection
    • 방화벽, IDS등의 네트워크 장비를 통해 웹서버가 연결 유지하고 있는 커넥션 규모를 확인하여 평시와 비교
  • incoming traffic sampling capture
    • 웹서비스 운영 망으로 유입되는 트래픽의 일부를 수집하여 분석


2)공격 유형 파악

  • packet dump
    • tcpdump와 같은 트래픽 캡쳐 툴을 이용하여 incoming traffic 일부를 pcap 형태로 저장
  • analysis
    • tcpdstat : 수집된 트래픽의 프로토콜 종류등에 관한 정보 확인
    • ngrep, httpry : http header에 관한 정보 확인
    • argus : concurrent connection에 관한 정보 확인
  • scenarios drawn
    • tcpdstat, tcpump : 대역폭 소진공격(ex:UDP,ICMP flooding) 여부 판단
    • ngrep, httpry : DB connection 부하유발 공격(ex: GET flooding) 여부 판단
    • argus : 웹서버 자원(TCP Stack) 부하유발 공격(ex:syn flooding) 여부 판단
  • webserver access log
    • 서버 접속로그를 확인하여 접속자의 request page에 대한 통계와 특정 시간동안 발생되는 request 횟수에 대한 통계를 확인

3) 공격 유형에 따른 공격 종류 정의 및 대응

  • 대역폭 소진 공격
    • 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에 대한 임계치 정책을 설정하여 대응하거나 패킷의 헤더를 검사하여 옵션필드가 없는 등의 비정상 패킷을 차단하여 대응
  • DB connection 부하유발 공격
    • Get(Post) Flooding
    • 다수의 HTTP 요청을 유발하여 웹서버와 DB 사이의 연동에 부하를 유발하므로 특정 시간 동안 발생하는 요청 수에 대한 임계치를 설정하여 해당 임계치 이상으로 요청을 발생하는 source ip를 차단
    • HTTP header를 확인하여 HTTP 표준에 맞지 않는 field가 설정되었을 경우 해당 field 값을 signature로 설정하여 차단
  • 웹서버 자원 소모 공격
    • Slow header or Slow data Flooding
    • 요청을 완료하지 않고 해당 connection을 지속적으로 유지하는 공격이므로 하나의 요청에 대한 timeout 값을 설정하여 특정 시간동안 요청이 완료되지 않을 경우 connection을 강제 종료시켜서 차단
  • 봇 VS 브라우저 식별 방안
    • 일반적인 봇은 브라우저와 달리 웹서버의 응답코드에 반응하여 행동하지 않으므로 웹서버에서 302 moved temporary와 같은 코드로 응답하여 봇이 발생시키는 요청을 차단

4)사후 조치

  • 공격 시점의 BPS,PPS,CPS 변화 추이 확인
    • 공격 규모를 확인하여 가용성이 침해될 수 있는 지점을 확인하고 정확한 데이터에 따른 차단 정책 업데이트
  • 공격 유형 확인
    • 프로토콜에 대한 통계, 패킷 크기에 대한 통계, 요청 형태에 대한 통계를 사에히 확인하여 시간에 따른 공격 유형의 변경 여부 또는 복합 공격 여부를 확인하여 차단 정책 업데이트
  • HTTP 요청 패킷 형태 확인
    • 특정 시간에 대한 HTTP 요청 count를 확인하여 비정상적인 행위 여부를 규명하고 HTTP header의 각 field를 조사하여 HTTP 표준 준수 여부를 확인하여 비정상적일 경우 차단 정책 업데이트
  • Zombie PC IP 확보
    • GET(POST) Flooding 공격이나 Slow header(data) Flooding 공격의 경우 TCP 삼중 연결 완료와 함께 수행되므로 실제 공격 IP를 확보할 수 있으며 대역폭 소진 공격의 경우 공격자는 대부분 source ip를 위조하므로 IP 위/변조 여부를 확인하는 절차가 필요