회원가입

로그인

아이디
비밀번호
ID/PW 찾기
아직 회원이 아니신가요? 회원가입 하기

RPC 인터페이스의 버퍼 오버런으로 인한 코드 실행 문제

Profile
:맥노턴
http://www.microsoft.com/korea/technet/security/bulletin/MS03-026.asp이 취약점을 악용하여 어느 작업까지 가능합니까?

이것은 버퍼 오버런 취약점입니다. 이 취약점을 악용한 침입자는 원격 컴퓨터를 통해 완벽한 제어 권한을 확보할 수 있습니다. 제어 권한을 확보한 침입자는 서버에서 원하는 작업을 수행할 수 있게 됩니다. 예를 들어, 침입자는 웹 페이지를 변경하거나 하드 디스크를 다시 포맷하거나 로컬 관리자 그룹에 새 사용자를 추가할 수 있습니다.

이러한 공격을 수행하려면 침입자는 잘못된 메시지를 RPC 서비스에 보낼 수 있어야 하며 이로 인해 임의의 코드를 실행하는 방법으로 대상 시스템에 장애를 일으킬 수 있습니다.

취약점의 원인은?

취약점은 Windows RPC 서비스가 특정 환경에서 메시지 입력을 올바르게 검사하지 않기 때문에 발생합니다. 이 결함은 RPC로 사용하도록 지정된 포트에서 수신 대기하는 기본 DCOM(Distributed Component Object Model)  인터페이스에 영향을 줍니다. 잘못된 RPC 메시지를 보냄으로써 침입자는 임의의 코드를 실행하는 방법으로 시스템의 RPC 서비스에 장애를 일으킬 수 있으며 이 방법을 사용하여 원격 시스템에 있는 RPC와의 인터페이스에 장애를 일으킬 수도 있습니다.

DCOM이란?

DCOM(Distributed Component Object Model)은 소프트웨어 구성 요소가 네트워크를 통해 직접 통신하게 해주는 프로토콜입니다. 이전에는 "네트워크 OLE"라고 했던 DCOM은 HTTP와 같은 인터넷 프로토콜을 포함하여 여러 네트워크 전송에 사용하도록 설계되었습니다. DCOM에 대한 자세한 내용은 다음 웹 사이트에서 볼 수 있습니다.
http://www.microsoft.com/com/tech/dcom.asp  

RPC(원격 프로시저 호출)란 무엇입니까?

원격 프로시저 호출(RPC)은 한 프로그램에서 네트워크의 다른 컴퓨터에 있는 프로그램의 서비스를 요청하는 데 사용할 수 있는 프로토콜입니다. RPC를 사용하는 프로그램은 통신을 지원하는 네트워크 프로토콜을 파악할 필요가 없기 때문에 더욱 효과적으로 상호 운용할 수 있습니다. RPC에서 요청을 보내는 프로그램은 클라이언트가 되며 서비스를 제공하는 프로그램은 서버가 됩니다.

Microsoft에서 구현한 RPC(원격 프로시저 호출)의 문제점은 무엇입니까?

RPC에는 TCP/IP를 통한 메시지 교환을 처리하는 부분에 결함이 있습니다. 이 결함은 잘못된 형식의 메시지를 처리하는 방식에 문제가 있기 때문에 발생합니다. 이 결함은 TCP/IP의 135번 포트에서 수신 대기하며 139와 445 포트를 통해서도 전달될 수 있는 기본 DCOM 인터페이스에 영향을 줍니다. 잘못된 RPC 메시지를 보냄으로써 침입자는 임의의 코드를 실행하는 방법으로 시스템의 RPC 서비스에 장애를 일으킬 수 있습니다.

이 결함이 RPC 종점 매퍼의 문제입니까?

아닙니다. RPC 종점 매퍼가 TCP 135번 포트에서 수신 대기하지만 실제 결함은 RPC 프로세스 내의 하위 수준 DCOM 인터페이스에서 발생합니다. RPC 클라이언트에서는 RPC 종점 매퍼를 사용하여 현재 특정 RPC 서비스에 할당된 포트 번호를 파악할 수 있습니다. 종점은 서버 응용 프로그램에서 클라이언트 RPC를 위해 수신 대기하는 프로토콜 포트 또는 명명된 파이프입니다. 따라서 클라이언트/서버 응용 프로그램에서는 잘 알려져 있거나 동적인 포트를 사용할 수 있습니다.

보안 게시판 MS03-010도 RPC와 관련이 있지만 여기에서는 Windows NT 4.0에 대한 취약점을 해결할 수 없었습니다. Windows NT 4.0에서는 이 취약점을 어떻게 해결할 수 있었습니까?

이 경우 결함은 RPC에 대한 기본 DCOM 인터페이스에 있으며 전체 RPC 구현이나 RPC 종점 매퍼 자체에 있는 것이 아닙니다. 따라서 보안 게시판 MS03-010의 Windows NT 4.0 패치에서 필요로 했던 Windows NT 4.0 운영 체제의 중요한 부분을 다시 구성하지 않고도 Windows NT 4.0에서 이 취약점을 해결할 수 있게 되었습니다.

침입자는 이러한 취약점을 악용하여 어떤 작업을 할 수 있습니까?

이 취약점을 악용한 침입자는 영향을 받는 시스템에서 로컬 시스템 권한을 사용하여 코드를 실행할 수 있습니다. 침입자는 프로그램 설치, 변경 사항 보기나 데이터 삭제 또는 모든 권한을 가진 새 계정 만들기 등의 원하는 작업을 해당 시스템에서 수행할 수 있습니다.

침입자는 이러한 취약점을 어떻게 악용합니까?

침입자는 공격에 취약한 서버와 통신할 수 있는 시스템을 특정 종류의 잘못된 RPC 메시지를 보내도록 프로그래밍하여 이 취약점을 악용할 수 있습니다. 이러한 메시지를 받으면 임의의 코드를 실행하는 방법으로 공격에 취약한 시스템의 RPC 서비스에 장애를 일으킬 수 있습니다.

누가 취약점을 악용할 수 있습니까?

TCP 요청을 영향 받는 컴퓨터에 전달할 수 있는 사용자는 이 취약점을 악용할 수 있습니다. RPC 요청은 기본적으로 모든 Windows 버전에서 사용되기 때문에 사실상 영향 받는 컴퓨터에 연결할 수 있는 모든 사용자는 취약점을 악용할 수 있다고 볼 수 있습니다.

또한 시스템에 대화형으로 로그온하는 다른 방법을 사용하거나 로컬 또는 원격으로 공격에 취약한 구성 요소에 매개 변수를 전달하는 유사한 다른 응용 프로그램을 사용하여 영향을 받는 구성 요소에 액세스할 수도 있습니다.

패치는 어떤 기능을 합니까?

패치는 DCOM 인터페이스에 전달되는 정보를 적절히 검사하도록 DCOM 인터페이스를 변경하여 취약점을 해결합니다.

해결 방법

패치를 테스트하고 평가하는 동안 취약점이 악용되는 것을 방지할 수 있는 방법이 있습니까?

예. 모든 고객이 가능한 한 빠른 시일 내에 패치를 적용하는 것이 가장 좋지만 그 사이에 취약점이 악용될 수 있으므로 이를 방지하기 위해 적용할 수 있는 몇 가지 해결 방안이 있습니다.

반드시 명심해야 할 것은 이러한 해결 방안은 임시적 방편일 뿐이며 취약점 자체를 수정하지 않고 단지 공격 경로를 차단하기만 합니다.

다음 절에서는 공격으로부터 사용자 시스템을 보호하는 방법을 설명합니다. 각 절에 제시된 해결 방안은 사용자 시스템 구성에 따라 다르게 사용할 수 있습니다.

각 절에서는 필요한 기능 수준에 따라 사용할 수 있는 해결 방법에 대해 설명합니다.

방화벽에서 RPC 인터페이스 포트를 차단합니다.
135번 포트는 원격 컴퓨터에 RPC를 연결하는 데 사용됩니다. 그리고 이 취약점을 원격으로 공격하기 위해 공격자가 사용할 수 있는 추가적인 RPC 인터페이스 포트들이 있습니다. 방화벽에서 다음 포트를 차단하면 이 취약점을 악용하여 방화벽 뒤의 시스템이 공격 받는 것을 예방할 수 있습니다.
TCP/UDP 포트 135
TCP/UDP 포트 139
TCP/UDP 포트 445

추가로, RPC를 사용하는 서비스나 프로토콜이 인터넷에서 액세스될 수 있도록 사용자가 설정했을 수도 있습니다. 시스템 관리자는 반드시 인터넷에 노출된 RPC 포트가 있는지 점검하여 방화벽에서 이 포트들을 차단하든지 즉시 패치를 설치하든지 해야합니다.
인터넷 연결 방화벽
인터넷 연결을 보호하기 위해 Windows XP 또는 Windows Server 2003에서 인터넷 연결 방화벽을 사용하는 경우 인터넷의 인바운드 RPC 트래픽이 기본적으로 차단됩니다.
영향 받는 모든 시스템에서 DCOM 기능 해제
컴퓨터가 네트워크의 일부일 경우 해당 컴퓨터의 COM 개체가 DCOM Wire Protocol을 사용하여 다른 컴퓨터의 COM 개체와 통신할 수 있습니다. 이 취약점으로부터 보호하기 위해 특정 컴퓨터의 DCOM 기능을 해제할 수 있지만 이렇게 하면 해당 컴퓨터의 개체와 다른 컴퓨터의 개체 간의 모든 통신이 해제됩니다.

원격 컴퓨터에서 DCOM 기능을 해제하면 DCOM을 다시 설정한 후에 해당 컴퓨터에 원격으로 액세스하지 못할 수 있습니다. DCOM을 다시 설정하려면 해당 컴퓨터에 실제로 액세스해야 합니다.

컴퓨터에서 DCOM을 수동으로 설정하거나 해제하려면
1. Dcomcnfg.exe를 실행합니다.

Windows XP 또는 Windows Server 2003을 실행하는 경우 다음과 같은 추가 단계를 수행합니다.
콘솔 루트에서 구성 요소 서비스 노드를 클릭합니다.
컴퓨터 하위 폴더를 엽니다.
로컬 컴퓨터인 경우 내 컴퓨터를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
원격 컴퓨터인 경우 컴퓨터 폴더를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 클릭한 다음 컴퓨터를 클릭합니다. 컴퓨터 이름을 입력합니다. 해당 컴퓨터 이름을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
2. 기본 속성 탭을 선택합니다.
3. 이 컴퓨터에서 DCOM 사용 확인란을 선택하거나 선택을 취소합니다.
4. 시스템에 대한 속성을 추가로 설정하려면 적용 단추를 클릭하여 DCOM을 설정하거나 해제합니다. 그렇지 않으면 확인을 클릭하여 변경 사항을 적용하고 Dcomcnfg.exe를 끝냅니다.

Profile
:맥노턴
레벨 30
569410/686490
81%
McNorton & Education Lab.
Director
댓글
0
댓글 쓰기
권한이 없습니다.

로그인

아이디
비밀번호
ID/PW 찾기
아직 회원이 아니신가요? 회원가입 하기