NTP(Network Time Protocol)
- 네트워크를 통해 컴퓨터 시스템 간 시간 동기화를 위해 사용하는 인터넷 프로토콜
- udp 123번 포트를 서비스 포트로 사용
NTP 취약점을 이용한 디도스 공격 원리
- NTP의 monlist 명령을 통해 대규모 증폭, 반사 형태의 디도스 공격 가능
- NTP 데몬에 질의하면 최근 접속한 접속 호스트 리스트 응답(최대 600개까지)
- #ntpd -n -c monlist <점검대상 NTP 서버>
공격절차
- 공격자는 출발지IP주소를 공격대상 서버의 IP로 패킷을 변조한 후, 취약한 다수의 NTP서버를 대상으로 monlist 명령의 다수 쿼리를 전송
- 쿼리를 수신한 NTP 서버는 다수의 접속 호스트 정보를 담은 증폭된 결과를 공격대상 IP로 응답
- 공격대상 서버는 증폭된 다수의 응답 수신으로 네트워크 대역이 소진되어 서비스 거부 상태가 됨
대응방안
- 버전을 확인하여 취약한 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 이상 응답패킷 차단
* 참고 : 알기사 정보보안기사 교재