English
◀◁ 뒤로
취약점ID 23019
위험도 40
포트 1900
프로토콜 UDP
분류 UPNP
상세설명 해당 시스템에는 많은 취약점을 가진 UPnP 서비스가 가동 중이다.
UPnP(Universal Plug and Play)는 지능적인 기기들(appliance), 무선 장비 및 모든 다양한 형태의 PC 들에 대한 단대단(Peer-to-Peer) 네트워크 연결을 지원하는 구조(architecture)이다. UPnP는 쉽게 PC에 주변기기를 추가하고 설정하기 위해 사용되는 "Plug and Play peripheral model"의 단순한 확장 이상의 기능을 제공한다. UPnP 를 사용해서, 장비는 동적으로 네트워크 상에 추가되고 IP를 할당받으며 그에 대한 기능 및 용량(capability)도 확인할 수 있다. 또한, 다른 장비의 기능 및 용량(capability)이나
네트워크 상의 존재여부도 확인할 수 있다. 이 모든 동작은 별도의 조작없이 자동적으로 이루어진다. 이 UPnP 서비스는 Windows XP의 모든 버전에서 디폴로 설치되어 동작하며 Windows 98, 98SE, ME 상에서는 Internet Connection Sharing 클라이언트를 통해서 설치될 수 있다. Windows XP 상에서 UPnP 서비스는 두 가지 서비스 프로세스인 "SSDPDS(SSDP Discovery Service)" 와 "UPNPDH(Universal Plug and Play Device Host) 를 지원한다. SSDPS 서비스는 네트워크 상에서 존재하는 디바이스를 검색하기 위해서, UPNPD는 디바이스를 네트워크 상에 위치시키기 위해서 사용된다. 두 서비스는 명령을 통해서 실행되나 SSDP 서비스는 Windows XP 시스템이 부팅될 때 디폴트로 실행되고, UPNPDH 서비스는 SSDPDS 에 의존하여 필요에 의해서만 실행된다. 서비스가 동작하게 되면 시스템은 UDP 데이터그램 패킷을 위한 UDP 포트 1900번과 TCP 포트 5000번상에서 접속대기(Listen)한다. 이로 인하여, 원격지 공격자나 또는 확산 속도가 빠른 인터넷 웜은 이러한 포트를 스캐닝하여 UPnP 서비스가 가동 중인 시스템의 위치를 파악할 수 있게 된다. 현재, 원격지 공격자들 또는 인터넷 웜에 의해서 도용될 수 있는 다수의 취약점들이 보고되어 있다. 첫번째 취약점인 버퍼 오퍼플로우(Buffer Overflow) 취약점은 네트워크 상의 UPnP 서비스가 가동 중인 장비를 찾기 위해 사용되는 NOTIFY 디렉티브(directive) 를 처리하는 컴포너트 상에 경계 체크를 하지 않는 버퍼가 존재함으로 인하여 발생하다. 두번째 취약점은 제 3의 서버(희생 서버) 에 대한 서비스 거부 공격에 관한 취약점이다. 이는 UPnP 서비스가 새롭게 발견된 장비를 사용해서 정보를 획득하는 단계에서 충분한 제한(limitation)이 구현되어 있지 않기 때문에 발생하게 된다. 이로 인하여, 희생 서버가 무한 루프를 돌도록 유도하여 CPU 100% 사용에 이르게 함으로써 정상적인 동작이 불가능하도록 한다.

* 알림 : 시큐아이스캔은 UPnP 서비스의 가동 여부를 확인하기 위해서, 대상 시스템에 UPnP 서비스가 가동 중이라면 강제로 시큐아이스캔이 설치된 시스템의 80번 포트로 HTTP 요청을 시도하도록 유도한다. 시큐아이스캔이 설치된 시스템에 80번 포트가 열려 있을 때, 이 HTTP 요청은 실제로 성공하게 된다. 또한, 로컬 시스템에서 UPnP 서비스의 가동여부를 확인하는 방법은 별도의 유틸리티 프로그램인 (UnPlug n' Pray) 를 이용할 수 있다. http://grc.com/UnPnP/UnPnP.htm

* 참고 사이트:
http://technet.microsoft.com/en-us/security/bulletin/ms01-059
http://cert-nl.surfnet.nl/s/2001/S-01-119.htm

* 영향을 받는 플랫폼:
Windows XP
Windows 98, 98SE
Windows ME
해결책 다음 Microsoft 웹 사이트로부터 Windows XP 최신 서비스 팩을 다운받아 설치해야 한다.
http://www.microsoft.com/Downloads/details.aspx?displaylang=ko&FamilyID=D17CBEB5-7478-4147-B4BA-E6CF686A352B

-- 또는 --

서비스가 불필요한 경우, 서비스를 완벽하게 중시시켜야 한다. 단, 실제로 SSDP Discovery Service 를 종료해야만, TCP 5000과 UDP 1900 포트가 닫히게 된다. 그러므로, UPnP 서비스를 완벽하게 중지하기 위해서는 두 서비스 "SSDP Discovery Service" 와 "UPNP Device Host" 모두를 중지해야 한다.

1. [시작] 메뉴의 [실행]을 통해 "services.msc(서비스 관리 콘솔)" 을 연다.
2. 서비스 목록에서 "SSDP Discovery Service" 를 선택한 후 등록정보를 연다.
3. "중지" 버튼을 클릭하고 "시작 유형" 필드를 "사용안함" 으로 변경한다.
4. 서비스 목록에서 "Universal Plug and Play Device Host" 를 선택한 후 등록정보를 연다.
5. "중지" 버튼을 클릭하고 "시작 유형" 필드를 "사용안함" 으로 변경한다.
관련 URL CVE-2001-0721,CVE-2001-0877 (CVE)
관련 URL 1548 (SecurityFocus)
관련 URL 7318,7428,7721,7722 (ISS)