	세계 최고의 인터넷 전문기관, 정보보호 전문기관이 되겠습니다.

보도자료	2014년 4월 9일(수) 배포시점부터 보도해 주시기 바랍니다.
	문의: 취약점분석팀 박진완 팀장(☎ 405-5315, jwpark@kisa.or.kr) 민재원 주임연구원(☎ 405-5489, jwmin@kisa.or.kr)

KISA, 디도스 공격 대비 NTP 서버 보안 강화 당부

한국인터넷진흥원(KISA)은 최근 네트워크 타임 프로토콜(NTP) 취약점을 악용한 분산 서비스 거부 공격(DDoS)이 발견됨에 따라, NTP 서버를 운영 중인 기업이나 기관에 취약점 점검과 보안 강화를 당부했다.

※ NTP(Network Time Protocol) : 클라이언트와 서버 사이의 시간 동기화를 위해 사용되는 프로토콜

지난 2월 미국의 보안업체 클라우드플레어의 고객사를 대상으로 NTP 취약점을 이용한 역대 최대 규모인 400Gbps의 DDoS 공격이 발생한 바 있으며, 국내에서도 최근 동일한 기법의 DDoS 공격이 발견되는 등 전 세계적으로 대규모 DDoS 공격을 위한 새로운 위협으로 부상되고 있다.

기존의 DDoS 공격 기법이 악성코드에 감염된 수많은 좀비PC를 동원하는데 반해, 이번에 발견된 취약점(CVE-2013-5211)은 NTP 서버에 최근 접속한 시스템 목록을 전송하는 정상적인 ‘monlist’ 명령어를 악용한 것으로, 대규모 공격을 쉽게 할 수 있어 위험성이 대단히 높다.

※ monlist : NTP 서버에 최근 접속한 600개의 IP 정보를 전송하는 명령어

이를 해결하기 위해서는 NTP 서버의 서비스(nptd) 버전을 4.2.7로 업데이트하거나, 업데이트가 어려운 경우 NTP 서버의 설정을 변경하여 ‘monlist’ 기능을 사용하지 않도록 비활성화하여야 한다.

박진완 KISA 취약점분석팀장은 “한국인터넷진흥원은 NTP 취약점을 악용한 DDoS 공격에 대비해 모니터링을 강화하고 있다. NTP 서버를 운영하는 기업이나 기관은 DDoS 공격의 가해자가 되지 않도록 즉시 취약점에 대한 보안 조치를 해야 한다”고 당부했다.

만약, NTP 취약점을 악용한 DDoS 공격을 받고 있을 경우에는 한국인터넷진흥원의 DDoS 사이버대피소를 통해 공격을 방어할 수 있다. 사이버대피소의 이용 방법 등 자세한 내용은 홈페이지(http://www.krcert.or.kr)에서 확인할 수 있다.

<붙임> NTP 취약점 및 조치 방안

NTP 취약점 및 조치 방안

□ 개요

o 클라이언트와 서버 사이의 시간 동기화를 위해 사용되는 NTP(Network Time Protocol)에서 분산 서비스 거부 취약점이 존재

□ 공격 원리

o NTP서버 명령어(monlist) 취약점을 이용하여 디도스 공격수행

※ monlist : NTP 서버에 최근 접속한 600개의 IP 정보를 전송하는 명령어

	공격 방법
① (변조) 공격자는 좀비PC의 소스IP 주소를 공격대상IP로 패킷을 변조하고, ② (전송) 불특정 NTP서버를 대상으로 다수의 쿼리(‘monlist’ 명령어) 전송 ③ (증폭) NTP 서버는 증폭된 패킷을 변조된 IP(공격 대상)로 응답 ④ (장애) 공격대상 서버는 증폭된 다수의 쿼리 수신으로 네트워크 대역폭 고갈

o monlist 요청자에 대한 검증을 수행하지 않아 소스 IP 주소를 공격 대상의 IP로 변조할 경우, 수많은 monlist 응답 패킷이 공격 대상에게 전송됨

※ 요청패킷의 크기: 234 byte, 응답패킷의 크기: 최대 48k 이상

o 여러 차례 NTP 서버에 변조된 monlist 요청을 보낼 경우 네트워크 트래픽이 증폭되어 공격대상에 분산 서비스 거부 공격을 수행할 수 있음

□ 해결 및 확인 방법

<서버 보안조치>

o ntpd 서버 업그레이드 : 4.2.7 이후 버전으로 업그레이드

※ 4.2.7 버전은 monlist 기능이 해제됨

※ 버전확인 명령어 : ntpd –version

※ 신규 버전 다운로드 주소 : http://www.ntp.org/downloads.html

o 서비스 운영상 4.2.7 버전으로 업데이트가 어려운 경우 설정 변경을 통하여 monlist 기능 해제 가능

- monlist 비활성화 : /etc/ntp.conf 파일에 ‘disable monitor’ 추가 후 ntp 재시작

o 해당 취약점에 영향을 받는 서버인지 또는 조치가 적절하게 되었는지 확인은 아래의 명령어를 통해 원격으로 monlist 지원여부 확인

- 확인 방법 : ntpdc –c monlist <점검 대상 ntp 서버 아이피>

명령어 실행후 아래와 같이 리스트가 나오면 조치가 필요한 상황

<네트워크 및 보안 장비 보안조치>

o 방화벽에서 인증되지 않은 외부 트래픽으로부터 NTP 서버 트래픽 유입제한

※ iptables 명령어를 이용한 인가된 IP에 대해서만 UDP 123 포트 접근 허용

o (위기상황 발생시) 상위ISP에서 피해자로 유입되는 트래픽 제한

① source UDP 123 포트 필터링

② 패킷 사이즈 필터링 (482bytes)

o IDS 및 IPS에서 시그니처 기반(MON_GETLIST-|00 03 2a|) 필터링 적용

o 디도스 대응 장비 활용 방어정책 설정 권고

- (Anti-DDoS 장비) 소스 IP기반 Flooding 방어 설정 등

① 비정상 UDP 패킷 차단

- 비정상적인 UDP Header 패킷 거부

② LAND2 공격 UDP 패킷 차단

- 출발지와 목적지 포트가 동일(UDP)

- NTP 서버를 운영하지 않는 기관에서 적용 가능

③ 소스 IP 기반의 Flooding 방어설정

- UDP PPS 임계치를 넘은 Source IP를 Black list에 등록(설정 값 : 10 PPS)

④ NTP 시그니처 방어 설정

- UDP 프로토콜의 목적지 포트 기준 any 에 대해서 NTP Monlist 요청 패킷의 (032a00060048) 헥사값을 시그니처로 등록

- (유닉스/리눅스 계열 서버) 100 byte 이상 NTP 패킷에 대한 차단

※ 통상적으로 정상적인 ntp 패킷은 100 byte 이하(48byte)이며 공격 패킷은 400 byte내외 (주로 monlist) 이므로 패킷 크기로 제한

iptables -A OUTPUT -p udp --sport 123 -m length --length 100: -j DROP

- (유닉스/리눅스 계열 서버) ntpquery 에 대한 rate-limit 설정

※ 동일 IP에서 1분 이내 3번 이상의 query 발생 시, 차단

iptables -A INPUT -p udp --dport 123 -m recent --set --name ntpquery

iptables -A INPUT -p udp --dport 123 -m recent --name ntpquery --rcheck --seconds 60 --hitcount 3 -j DROP