# MS의 테크노트를 인용합니다.

원격 프로시저 호출(RPC)은 Windows 운영 체제에서 사용하는 프로토콜입니다. RPC를 사용하면 특정 컴퓨터에서 실행되는 프로그램에서 원격 시스템의 코드를 완벽하게 실행할 수 있게 해주는 프로세스간 통신(IPC) 메커니즘을 구현할 수 있습니다. 이 프로토콜은 원래 OSF(Open Software Foundation) RPC 프로토콜을 기반으로 합니다. Windows에서 사용하는 RPC 프로토콜은 여기에 몇 가지 기능을 더 추가했습니다.

RPC에서 TCP/IP를 통한 메시지 교환을 처리하는 부분은 보안에 취약합니다. 이 결함은 잘못된 형식의 메시지를 처리하는 방식에 문제가 있기 때문에 발생합니다. 이 취약점은 TCP/IP 135번 포트에서 수신 대기하는 RPC와의 DCOM(Distributed Component Object Model) 인터페이스에 영향을 줍니다. 이 인터페이스는 범용 명명 규칙(UNC) 경로와 같이 클라이언트 컴퓨터에서 서버로 보내는 DCOM 개체 활성화 요청을 처리합니다.

# 덧붙여..

RPC는 원격 프로시저 호출을 위한 서비스이며 이는 포트를 사용합니다. HTTP나 TELNET, FTP처럼 마찬가지로 TCP/IP 프로토콜에 속한 서비스와 비슷한 개념으로 이해하시면 되겠습니다. 혹시 Messanger 서비스를 켜두면 광고 Message가 날아오는 경험을 하셔서 서비스를 끄신 경험이 있으시다면 지금의 사태와 비슷한 경우입니다. 대신 RPC는 요청을 받으면 프로그램적으로 처리를 하게끔 되어있기 때문에 악의적 목적으로 오버런되어 2000에서는 자바스크립 먹통, 시스템 이상, XP에서는 자체 보호를 위해 셧다운이 디폴트로 지정되어져있습니다.

한마디로 원래 보안에 취악한 프로토콜이었고, 해당 서비스를 제공하는 XP와 2000서버는 악의적인 공격에 무방비상태인 것입니다. MS의 발표로 보아 현재의 패치도 임시방편에 불과한 것 같습니다. DCOM을 해제하는 방법 말고 일상적으로 사용하는 기본 포트를 제외하고 다 막거나, 방화벽을 쓰면 재발 위험이 상대적으로 낮아집니다. 호기심이 풀리셨길 바랍니다.

>mblast 웜이랑 관련해서 좀 궁금한 게 생겼어요 ^^;;
>
>여기 분들이라면 아실 거 같아서;
>
>RPC 라는 게 뭐하는건지요;
>
>이게 잘 작동안하면 원도우즈가 종료가 되던데 -_-;;;
>
>어떻게 요런 일이 생겼는지 궁금하답니다; 쩝
>