최초 작성일 : 2006/08/09
마지막 개정 : 2006/08/10 13:00:00
위험 수준 : 매우 위험
◈ 제목
마이크로소프트 서버 서비스의 취약점으로 인한 원격 코드 실행 문제점
◈ 개요
Microsoft 서버 서비스 에는 특정 RPC Call 요청시 해당 서비스에서 버퍼를 올바르게 체크하지 않아 버퍼 오버플러우(Buffer Overflow) 취약점이 존재한다.
서버 서비스(srvsvc.dll)은 윈도우 시스템의 기본 서비스로 외부의 위협에 노출될 가능성이 매우 높다. 이 취약점을 악용한 공격자는 프로그램의 설치, 보기, 변경, 데이터 삭제등과 같은 권한을 얻게 되어 시스템을 완전히 제어할 수 있게 된다.
◈ 공격유형
버퍼 오버플러우(Buffer Overflow) 공격을 이용한 서비스 거부 또는 원격 코드 실행
◈ 해당시스템
Microsoft Windows 2000 서비스 팩 4
Microsoft Windows XP 서비스 팩 1 및 Microsoft Windows XP 서비스 팩 2
Microsoft Windows XP Professional x64 Edition
Microsoft Windows Server 2003 및 Microsoft Windows Server 2003 서비스 팩 1
Microsoft Windows Server 2003(Itanium 기반 시스템용) 및 Microsoft Windows Server 2003 SP1(Itanium 기반 시스템용)
Microsoft Windows Server 2003 x64 Edition
◈ 영향
공격자는 취약점을 이용하여 시스템의 관리자 권한을 획득할 수 있다. 관리자 권한을 획득한 공격자는 시스템을 완전히 제어할 수 있게 되어 시스템이 위험에 노출되게 된다.
◈ 설명
서버 서비스(srvsvc.dll)의 검사되지 않은 버퍼로 인하여 취약점이 존재한다. 서버 서비스는 RPC 지원과, 네트워크를 통한 파일 인쇄 및 명명된 파이프 공유를 제공하는 서비스로, services.exe 에서 관리를 하며, 윈도우 시스템에서 기본 서비스로 동작을 한다.
원격에서 코드를 실행할 수 있는 취약점이 존재하는 것으로 공격자는 시스템을 제어할 수 있는 모든 권한을 얻을 수 있게 된다.
이 취약점을 통해 Windows 2000 서비스팩 4 시스템과 Windows XP, Windows XP 서비스팩 1 시스템이 공격받을 가능성이 가장 높으며 Windows XP 서비스팩 2 와 Windows 2003 서비스팩 1에서는 서비스 거부가 발생을 한다.
현재 이 권고문을 작성하는 시점까지 이를 이용하는 악성코드나 웜등이 보고되지 않았지만, 조만간 발생할 것으로 예상된다
이 취약점은 서버 서비스(srvsvc.dll) 에서 Imports 하는 netapi32.dll 의 NetpwPathCanonicalize 함수등의 내부의 검사되지 않은 버퍼로 인하여 버퍼 오버플러우가 발생하게 된다.
srvsvc.dll 에서 netapi32.dll 의 imports 하는 함수들은 아래와 같다.
750F28B1 5D NetApiBufferAllocate
생략
750F4EE9 12E NetpwPathCanonicalize
생략
750F8732 12B NetpwNameCanonicalize
실제적으로 버퍼오버플러우가 발생하는 부분은 netapi32.dll 에 존재하는 특정 함수 및 NetpIsRemote, CanonicalizePathName 등에서 버퍼오버플러우가 존재한다
int __stdcall NetpIsRemote(LPVOID Buffer,int,wchar_t *,char)
생략
int __fastcall CanonicalizePathName(int,int,wchar_t *,wchar_t *,wchar_t *,int,int)
생략
취약점을 가지고 있는 RPC 콜은 서버 서비스(srvsvc.dll)에서 제공하는 NetprPathCanonicalize 콜등이다. NetprPathCanonicalize 콜은 OPCode 가 0x1f(31) 이며 IDL(Interface Description Language) 은 아래와 같다.
[
uuid(4b324fc8-1670-01d3-1278-5a47bf6ee188),
version(3.0)
]
interface I_interface
{
/* opcode: 0x1F */
long sub_ (
[in][unique][string] wchar_t * arg_1,
[in][string] wchar_t * arg_2,
[out][size_is(arg_4)] char * arg_3,
[in][range(0,64000)] long arg_4,
[in][string] wchar_t * arg_5,
[in, out] long * arg_6,
[in] long arg_7
);
}
이 취약점과 관련하여 보고된 것은 다음과 같다.
MS Server Service Buffer overflow Vulnerability (CVE-2006-3439)
◈ 차단정보
트러스가드(TrusGuard)는 해당 취약점의 알려진 공격에 대응하고 있다.
◈ 해결책
마이크로소프트사에서 제공하는 패치를 적용함으로써 해당 취약점을 제거할 수 있으며, 운영체제별로 해당하는 패치를 다운받아 설치하면 된다
한글 업데이트 정보
MS06-040
영문 업데이트 정보
MS06-040
또한 임시방법으로는 TCP Port 139 , TCP Port 445 를 방화벽에서 차단할 수도 있다.
-------------------------------------------------------------------
NO WARRANTY
이 권고문은 ㈜안철수연구소의 ASEC에서 국내 인터넷 보안의 발전을 위하
여 발표하는 보안 권고문이다. ㈜안철수연구소는 이 권고문에 포함되어 있
는 내용 및 기타 어떠한 결과에 대해서도 보장을 하지 못하며, 책임을 지지 않는다.
ASEC Contact Information
Email: asec@ahnlab.com
Copyright 2002-2006 ASEC(Ahnlab Security E-response Center).
All Rights Reserved.
-출처- 안철수 연구소
http://info.ahnlab.com/securityinfo/info_view.jsp?seq=8367&category=10