본문 바로가기
카테고리 없음

[Day 173] NTP 취약점을 이용한 디도스 공격 원리

by minimalist_2022 2021. 1. 30.

NTP(Network Time Protocol)

  • 네트워크를 통해 컴퓨터 시스템 간 시간 동기화를 위해 사용하는 인터넷 프로토콜
  • udp 123번 포트를 서비스 포트로 사용

 

NTP 취약점을 이용한 디도스 공격 원리

  • NTP의 monlist 명령을 통해 대규모 증폭, 반사 형태의 디도스 공격 가능
  • NTP 데몬에 질의하면 최근 접속한 접속 호스트 리스트 응답(최대 600개까지)
    • #ntpd -n -c monlist <점검대상 NTP 서버>  

 

공격절차

  1. 공격자는 출발지IP주소를 공격대상 서버의 IP로 패킷을 변조한 후, 취약한 다수의 NTP서버를 대상으로 monlist 명령의 다수 쿼리를 전송
  2. 쿼리를 수신한 NTP 서버는 다수의 접속 호스트 정보를 담은 증폭된 결과를 공격대상 IP로 응답
  3.  공격대상 서버는 증폭된 다수의 응답 수신으로 네트워크 대역이 소진되어 서비스 거부 상태가 됨

출처 : NTP Amplification DDoS Attack Cloudflare

대응방안

  • 버전을 확인하여 취약한 NTP daemon Server 버전을 업그레이드
    • # ntpd --version
  • 서비스 운영상 4.2.7 이상 버전으로 업그레이드가 어려운 경우 설정 변경을 통하여 monlist 기능을 해제
    • ntp.conf에 "disable monitor" 추가하여 monlist 기능 해제하고 ntpd 데몬 재시작  
  • 보안장비(방화벽 등)를 통해 차단
    • NTP 응답패킷은 보통 100byte이하이므로 패킷 크기를 이용해 접근 차단
    • iptables -A OUTPUT -p udp --sport 123 -m length --length 100: -j DROP
      --> 응답패킷이니까 OUTPUT체인 설정
      --> NTP 서버 응답이니까 sport는 123
      --> 100byte 이상 응답패킷 차단

 

* 참고 : 알기사 정보보안기사 교재