보호된 프로세스(Protected Process) :: 2007/07/09 09:39



사용자 삽입 이미지

비스타하면 딱 떠오르는게 보안이죠. 프로세스에도 이런 보안적인 속성이 강화되었습니다. 그 중에 새로 생긴게 보호된 프로세스 입니다. 이 보호된 프로세스의 목적은 캡처를 방지하는 겁니다. 기존에 스트림으로 전송되는 정보들을 중간에 후킹해서 손쉽게 캡쳐하던 것을 막기 위한 것으로 생각하면 됩니다. 위에 보면 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. 보호된 프로세스가 좋은 건가요?
미디어 관련 저작권을 보호한다는 좋은 취지하에 개발된 기술이지만 다음과 같은 점들은 약점으로 생각됩니다.
  1. 미디어에 대한 특혜다. 미디어 관련 소프트웨어 말고도 해킹을 당하는 프로그램은 부지기수죠. 특히나 MMORPG 게임의 경우는 심각합니다. 해킹 결과가 돈으로 이어지기도 하죠. 
  2. 백신과 안티 스파이웨어 제품의 탐지를 어렵게 만든다. 백신과 안티 스파이웨어 제품의 핵심 기술은 다른 프로세스의 메모리 영역을 스캔해서 그것이 기존의 바이러스나 악성 코드와 유사한지를 검사하는 것 입니다. 그런데 보호된 프로세스의 경우 이러한 기술이 원천적으로 차단되죠. 바이러스나 악성 코드가 보호된 프로세스로 둔갑한다면 굉장히 위험해질 수 있습니다.

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

스폰서
글타래

  • 2주간 인기 글
  • 2주간 인기글이 없습니다.
Trackback Address :: http://jiniya.net/tt/trackback/537
  • Gravatar Image.
    나니 | 2007/07/09 10:03 | PERMALINK | EDIT/DEL | REPLY

    그럼 그걸 역으로 풀 수 있는 방법은 아직 없는건가요?
    저걸 악용하는 프로그램도 분명 생겨날거라고 보여지는데...

    • Gravatar Image.
      codewiz | 2007/07/09 11:40 | PERMALINK | EDIT/DEL

      네 있습니다. 그리고 악용하는 것들에 대한 우려의 목소리도 나오고 있습니다. 관련 자료들을 FAQ 형태로 글에 추가했습니다.

  • Gravatar Image.
    웃음군 | 2008/01/08 20:27 | PERMALINK | EDIT/DEL | REPLY

    프로세스를 보호해주는 소프트웨어가 존재한가요?

    지금 있다면 좀 가르쳐주실수 있으세요?

  • Gravatar Image.
    Hz | 2009/01/02 07:44 | PERMALINK | EDIT/DEL | REPLY

    글 잘 보고 갑니다.

    글을 좀 인용할께요 ^^ 문제되면 말씀해주시면 삭제하겠습니다.

    물론 출처는 처음에 딱 박아놓구요 ^^

  • Gravatar Image.
    ~~ | 2009/01/13 15:26 | PERMALINK | EDIT/DEL | REPLY

    저가 컴퓨터를 (워크,영화등)을하다보면

    저 audiodg.exe프로그램이 cpu를 95%잡아먹어요.,

    옛날엔 않그랫는데 원인이뭘까요,,

    대답부탁좀요;;

    성능은 램1022mb에
    프로세서는 AMD sempron(tm) processor 3500+
    2.00GHz인데요;;

    • Gravatar Image.
      codewiz | 2009/01/13 18:01 | PERMALINK | EDIT/DEL

      흠...
      저도 원인을 잘 모르겠네요. 사실은 요즘은 제 컴퓨터에서 일어나는 일도 잘 모르겠다는 느낌이 많이 들더군요. 정말 너무 복잡해져 버렸죠....
      ㅠㅜ~~

  • Gravatar Image.
    특쩐! | 2009/10/22 21:13 | PERMALINK | EDIT/DEL | REPLY

    비스타에서는 프로세스 실행 순서도 무슨 매커니즘이 있나여??

    제가 1번프로세스와 2번 프로세스가 있는데 2번을 먼저 실행 시켜서 1번 프로세스의 정보를 가지고 옵니다

    예를들어서 1번 프로세스의 메모리 속성등을 가져올려고 1번 프로세스를 오픈합니다 이때 프로세스

    익스플로러로 2번 프로세스를 보면 해당 가져온 1번 프로세스pid는 보이는데 이름이 안보이더라고여

    그래서 1번 프로세스를 먼저 실행하고 2번 프로세스를 오픈하면 pid와 이름이 보입니다

    첫번째 방법으로 하면 해당 프로세스의 메모리 속성도 안보입니다. 검색을 할 수 없으니..

    이것도 무슨 연관이 있는거 같은데 잘 몰르겠네여..혹시 관련이 있나여?? -.-a

Name
Password
Homepage
Secret