비스타하면 딱 떠오르는게 보안이죠. 프로세스에도 이런 보안적인 속성이 강화되었습니다. 그 중에 새로 생긴게 보호된 프로세스 입니다. 이 보호된 프로세스의 목적은 캡처를 방지하는 겁니다. 기존에 스트림으로 전송되는 정보들을 중간에 후킹해서 손쉽게 캡쳐하던 것을 막기 위한 것으로 생각하면 됩니다. 위에 보면 audiodg.exe가 보호된 프로세스입니다.
그런데 위 목록에서 보면 다른 프로세스와 별반 다른 점이 없습니다. 그렇다면 어떻게 저놈이 보호된 프로세스인 줄 알 수 있을까요? 속성을 보면 알 수 있습니다. audiodg.exe에서 오른쪽을 클릭해서 속성을 열어보면 여러 가지 정보를 볼 수 있습니다. 아래 화면은 audiodg.exe의 속성 화면을 캡쳐한 것입니다. 빨간색으로 칠해진 부분이 n/a로 되어 있죠. 구할 수 없음을 뜻합니다. 이를 통해서 역으로 보호된 프로세스라고 판단하는 것이죠. 정보가 구해지면 일반 프로세스이고, 아래 정보들이 구해지지 않으면 보호된 프로세스인 겁니다.
비스타에서 OpenProcess로 보호된 프로세스를 열려고 하면 실패합니다. 권한이 없다고 하죠. 최소 권한으로 생각되는 PROCESS_QUERY_INFORMAITON을 집어넣어도 권한이 없다고 중얼거립니다. 당황스럽죠. 보호된 프로세스가 생기면서 프로세스의 권한도 하나가 추가되었습니다. PROCESS_QUERY_LIMITED_INFORMATION (0x1000)이죠. 보호된 프로세스 핸들은 이 권한을 통해서 획득할 수 있습니다. 또한 권한 이름에서도 알 수 있듯이 이 권한으로 구할 수 있는 정보는 제한적입니다.
- 보호된 프로세스와 관련된 짧은 FAQ
Q1. 보호된 프로세스는 어떻게 만들어지나요?
현재까지 알려진 바로는 비스타에 포함된 Protected Media Path에 의해서만 생성된다고 합니다. 이 프로세스에 포함되기 위해서는 특수한 윈도우 인증 과정을 거쳐야 한다고 합니다.
- Q2. 보호된 프로세스를 우회하는 방법은 없나요?
물론 있습니다. 커널 모드 드라이버를 사용하면 가능합니다. Alex Ionescu의 "Why Protected Processes Are A Bad Idea"란 글에 보호된 프로세스를 뚫는 툴에 관한 소개가 있습니다. 재미난 사실은 공식 문서 끝부분에 커널 모드 드라이버를 사용해서 보호된 프로세스를 우회하도록 만들지 말라고 언급하고 있습니다. Alex Ionescu 씨에게는 그 이야기가 커널 모드 드라이버를 사용하면 우회가 가능하다는 이야기로 들렸다고 합니다. 그렇긴 하죠. ㅋ
- Q3. 보호된 프로세스가 좋은 건가요?
미디어 관련 저작권을 보호한다는 좋은 취지하에 개발된 기술이지만 다음과 같은 점들은 약점으로 생각됩니다.
-
미디어에 대한 특혜다. 미디어 관련 소프트웨어 말고도 해킹을 당하는 프로그램은 부지기수죠. 특히나 MMORPG 게임의 경우는 심각합니다. 해킹 결과가 돈으로 이어지기도 하죠.
-
백신과 안티 스파이웨어 제품의 탐지를 어렵게 만든다. 백신과 안티 스파이웨어 제품의 핵심 기술은 다른 프로세스의 메모리 영역을 스캔해서 그것이 기존의 바이러스나 악성 코드와 유사한지를 검사하는 것 입니다. 그런데 보호된 프로세스의 경우 이러한 기술이 원천적으로 차단되죠. 바이러스나 악성 코드가 보호된 프로세스로 둔갑한다면 굉장히 위험해질 수 있습니다.
- Q4. 보호된 프로세스와 관련한 더 많은 자료는 어디에 있나요?
보호된 프로세스와 관련된 공식 문서
http://www.alex-ionescu.com/?p=34
http://channel9.msdn.com/Showpost.aspx?postid=233976
http://blogs.technet.com/steriley/archive/2006/07/21/442870.aspx
Making it Clear Just Why Protected Processes are a Bad Idea