본문 바로가기
프로그램 리뷰

Process Monitor ( 프로세스 모니터 )-Part 1 : 시스템 부팅 과정 로그 만들고 파악하기

by 글벌레 2011. 9. 7.
반응형
 

프로세스 모니터(Process Monitor)는 Windows Sysinternals↗에서 예전에 배포하던
레지스트리 모니터와 프로세스 모니터를 하나로 합친 프로그램입니다 .

저 같은 경우에는 Sysinternals에 어떠한 툴들이 있나는 오래전부터 파악은 하고 있었지만
주로 사용하는 것은 아래 관련 글에서 소개한 세 개의 프로그램들입니다 .

관련 글 : : 2011/08/24 - [Lecture/Computer] - TCPView , Process Explorer , Autoruns 를 이용한 시스템 분석

위 세 개의 프로그램들만으로도 제 시스템을 관찰하거나
가끔 상태 요상한 시스템을 관찰하는데에 부족함을 느낀 적은 없는 것 같습니다 .

그런데 요사이 다음 지식을 통하여 conhost.exe라는 프로세스가 시스템 CPU를 
75 ~ 100 사이를 점유하면서 오르락내리락하는데 이 프로세스는 죽여도 삭제해도
도로 나타난다는 질문을 접하였습니다 .

물론 제 개인적인 사견으로는 제가 직접 해당 프로세스를 관찰한다면
Autoruns를 통해 시작점을 찾을 수 있지 않을까 싶지만

자주 그 자신이 만든 도구들로 악성코드를 처리하는데 대한 글을 쓰는
Sysinternals의 도구들 제작자 Mark Russinovich의 글에서도
악성코드를 처리하기는 했는데 그 시작점은 Autoruns를 통해 볼 수는 없었기 때문에
어디서 시작되었는지는 의문이더라는 표현을 본 적이 있기에 

제가 위에 소개한 도구들보다는 뭔가 좀 더 알아야 
사용이 가능해 보이는 프로세스 모니터에 대하여 

오늘 이 글을 시작으로 하여서
기회가 닿는 대로 제 글을 읽으시는 분들과 함께 공부를 해보고자 합니다 .

앞서 언급한 것처럼
저 같은 경우에는 TCPView , Process explorer , Autoruns  이 세 개만으로도
부족함을 느끼지 못했었었고 ,

또 프로세스 모니터라는게
솔직히 볼라면 좀 골치가 아펐기 때문에
사실상 거의 사용을 안했었기에 여러분과 공부를 하자고 하는 겁니다 .

프로세스 모니터는 사실은 시스템을 어느 정도는 파악하는 테크니션들이 사용하기에 적당한
프로그램으로 보이는데

저는 그러한 프로그램을 철저히
저 같은 일반 유저가 어떻게 하면 잘 활용할까 하는 방향에서
글을 서술해 갈 것임도 밝혀 둡니다 .  

본문에 앞서 조금만 언급을 하면 ...
 conhost.exe처럼 죽여도 삭제해도 되살아나는 프로세스(파일)의 경우에는
 이 파일을 생성하는 다른 무엇인가가 존재할 것인데요 .

 이럴 때는 conhost.exe를 삭제 전에 프로세스 익스플로러를 켜놓은 상태에서
 conhost.exe를 삭제한다면
 어떤 프로세스가 conhost.exe를 도로 생성해내는지 알 가능성도 있다고 보입니다 .

 단 , conhost.exe를 재생성하는 프로세스가 눈 깜짝할 사이에 나타났다가 사라지는 경우라면①
 관찰에 어려움은 상당히 존재하겠죠 ....

Process Monitor 홈페이지 - http://technet.microsoft.com/ko-kr/sysinternals/bb896645 (Freeware)
                                     - 지원하는 운영체제 - Windows XP SP2 이상 / Windows Server 2003 SP1 이상

프로세스 모니터를 처음 실행하게 되면
[그림1]


위 그림에서 보이는 것처럼 굉장히 많은 이벤트가 뜨기 때문에 이걸 실시간으로 관찰한다는 것은
좀 어렵습니다 .

그래서 저는 조금 다른 방향으로 접근을 하기로 합니다 .

일단 시스템이 수상하다는 느낌이 드는데
프로세스 모니터를 이용해 관찰하고 싶을 때는
시스템이 수상한 동안 프로세스 모니터를 실행합니다 .

실행시키는 방법은 위 홈페이지에서 다운로드 받은 파일을 압축 풀고

위 그림에서 빨간 박스쳐 놓은 Procmon.exe를 실행하면 됩니다 .

시스템이 수상한 동안 프로세스 모니터를 충분히 구동시켰다고 여겨지면
[그림2]


프로세스 모니터 메뉴줄에서

File > Save...를 택하게 되면








위 그림과 같은 저장 창이 뜨는데

여기서 All eventsPML 형식으로 저장을 택하고
①에서 저장 경로와 파일 이름을 지정후에 OK를 누릅니다 .

All events를 저장하는 이유는 저장한 로그를 볼 때도 필터 적용이 가능하기 때문입니다 .

이제 위와 같이 저장한 로그를 열려면
[그림2]에서 Open...을 택하여 뜨는 창에서 저장 경로를 브라우징해서 저장한 파일을 열면 되는데

이때 열어 놓는 파일은 [그림1]과 마찬가지로 복잡해 보일 겁니다 .

바로 이때 적용할 수 있는 것이 필터링인데요 .




프로세스 모니터 메뉴줄에서
옆 그림과 같이 택하여 주게 되면










위 그림과 같은 Process Monitor Filter란 필터링 창이 뜨게 됩니다 .
이 창은 프로세스 모니터 실행시마다 처음에도 뜨는데 그 때는 그냥 OK 눌러서
프로세스 모니터를 실행하시기 바랍니다 .

일단 프로세스 모니터를 실행하게 되면
시스템 관련 마이크로소프트 프로세스들과 백신과 관련된 프로세스들 이벤트가 제일 많이 뜨게 됩니다 .

그래서 저는 위에 그림에서 보이는 많은 필터들 중에
Company를 통한 필터링 예제를 보일 것인데요 .

저는 프로세스 모니터의 창에서 보이는 프로세스들 중에 우선은
마이크로소프트의 프로세스가 확실한 explorer.exe를 더블 클릭 했습니다 .

더블 클릭하게 되면
아래 그림처럼

해당 파일에 대한 등록 정보가 뜨게 되는데

여기서 위 그림과 같이 Microsoft Corporation이라고 보이는 부분을 드래그해서 복사한 이후에

위 그림에서 보이는 거처럼 마이크로소프트의 것은 프로세스 모니터 창에 보이지 않게
설정을 했습니다 . (Microsoft Corporation 복사해 넣고 ExcludeApply)

마찬가지로

AVG의 것들도 제외하라는 필터를 만들었습니다 .

이제 이러한 과정을 거치게 되면

의심스러운 시스템을 관찰한다고 가정을 했을 때에는
확실하게 의심스럽지 않은 프로세스들은 제외가 됨으로써
프로세스 모니터 창은 보다 보기가 수월해질 것인데요 .

필터링에 여러 항목이 존재하므로 프로세스 모니터를 사용하는 습관을 들이다 보면
사용자 각자가 자신에 맞는 필터 적용을 하는 것이 가능하리라 봅니다 .

저장한 로그 보기를 끝내려면
[그림2]에서 Capture Events 앞에 체크를 해주게 되면 
프로세스 모니터는 다시 실시간으로 시스템 이벤트를 기록하게 됩니다 .

제가 위에 언급하기를 프로세스 익스플로러는 
프로세스가 눈 깜짝할 사이에 나타났다가 사라지는 경우라면①
관찰하기가 어려울 것이라고 했는데요 .

만약 프로세스 모니터를 실행해 놓고
죽여도 재생성되는 프로세스를 죽여 보게 되면

꼭 프로세스 모니터 로그를 안 봐도
재생성되는 프로세스를 생성하는 프로세스가 무엇인지 알수 있는 확률도 있는데
그 방법은 아래와 같습니다 .


프로세스 모니터
메뉴줄에서
Tools > Process Tree...
를 택하게 되면


위 그림과 같은 창을 볼 수가 있는데요 .

위 그림에서 분홍색 형광색으로 표시한 것들처럼
프로세스 모니터에서 프로세스 트리 보기는
프로세스 모니터가 실행되는 동안에 관찰한 프로세스들이 존재한 시간을 표시하는데

번 프로세스가 녹색 형광색으로 표시한 번 프로세스들을 생성하고 소멸하였다는 것이 관찰이 됩니다 .
물론 위 그림에서 이 활동을 보인 것은 AVG 백신 프로세스들이었는데요 .

만약 악성코드들 중에도 생성하고 소멸되는 프로세스가 존재한다면
프로세스 모니터의 프로세스 트리 관찰은 프로세스 익스플로러로 관찰하기에는
너무 빨리 나타났다가 사라지는 프로세스도 관찰을 할 수가 있을 겁니다 .

참조 - 내가 만들어 놓은 필터는 프로세스 모니터 재실행시에도 계속 적용이 됩니다 .
          그러므로 내가 만든 필터를 제외하려면
          필터 설정 창에서 아래에 보이는 필터 항목들에서 내가 만든 항목을 찾아
          그 앞의 체크를 해제해야 합니다 .  

 내 컴퓨터는 부팅하면서 어떤 짓거리를 할까 ?

프로세스 모니터에는 또 하나의 멋진 기능이 있는데
그것은 부트 로그를 만드는 것입니다 .

사실 내 컴퓨터 이년이 부팅할 때 무슨 짓거리를 하고 있는지는 매우 궁금한 사항들 중에 하나이지만
그 과정을 직접 들여다 본다는 것이 쉬운 일은 아닌데요 .
(참조 - 저는 제 컴퓨터나 자동차 등을 여자라고 생각하고 있습니다 ^ ^*) 

프로세스 모니터는 그걸 쉬운 일로 만들어 주고 있습니다 .

그 방법은

프로세스 모니터 메뉴줄에서
Options > Enable Boot Logging
앞에

체크를 하는 것입니다 .
체크를 하면
다음번 부팅시
부트 로그를 만든다는 메시지 창이 뜨는데
 
그 창에서는
부트 로그를 만들 때
1초 간격으로 관찰할 것인가
1000분의 1초 간격으로 관찰할 것인가
선택도 가능합니다 .


이제 시스템을 재부팅하게 되면
시스템 재부팅 순간부터 부팅 후에 프로세스 모니터를 다시 실행할 때까지

또는
시스템 재부팅 순간부터 시스템 종료시까지

프로세스 모니터는시스템의 활동을 로그로 만드는데
로그가 만들어 진 후에 프로세스 모니터를 첫 구동할 때


이전의 프로세스 모니터의 활동에서 부트 로그가 만들어졌는데 저장하겠는가란
알림창이 뜹니다 . 

이 창에서 Yes를 누르면 다른 이름으로 저장 창이 뜨는데 여기서 일반적으로 파일 저장하는 거처럼
이름을 정한 후에 앞서 언급한 PML 파일로 저장을 하면 됩니다 .

저장을 한 파일은 프로세스 모니터에서 열어서 보면 되는데
그 방법은 위에서 설명한 방법과 동일합니다 . 

File > Open... 에서 열고
필요하다면 필터를 설정해 가면서 보면 됩니다 .

이러한 부트 로그 생성은 
잘 잡히지 않는 악성코드를 밝혀내는데는 물론이고
시스템의 부팅 환경을 개선하는데에도 도움이 될 것입니다 .

모두에 언급을 한 것처럼 저도 프로세스 모니터 사용은 이제 시작인 셈이라서
기초적인 활용을 설명하였는데요 .

프로그램이란 직접 사용을 해봐야 그 활용법을 알게 됩니다 .

제가 제 블로그에 여러 번 언급을 했었지만
제가 처음 워드를 접했을 때 저는 아무 것도 몰랐고
직접 몸으로 부딪히며 그 사용법을 익혔습니다 .

2000년경에 ZonAlarm 방화벽을 처음 접했을 때도 ,
2004년경인가 TCPView , Process explorer , Autoruns  이 세 개의 도구를
처음 접했을 때도

이것들은 어디다 쓰는 물건인고 하는 수준에서 
그 사용을 시작해서
이제는 아주 능숙하게 해당 도구들을 사용하게 되었습니다 .

지금이야 저처럼 이런 저런 프로그램들을
잘 설명해 놓은 블로그들도 많지만 , 제가 위에 언급한 것들을 처음 사용할 때는
블로그에서 프로그램 사용법을 배운다 ?
이런 것도 거의 가능하지 않던 시절이었죠 .....
 
좋은 프로그램을 잘 사용하는 것이 컴퓨터 운전을 잘 하는 것입니다 .

그리고 프로그램을 능숙하게 사용하는데에도 왕도는 없습니다 .

자꾸만 사용을 해보는 수밖에요 .....

이 글이 저와 여러분에게 도움이 되는 글이기를 바람으로 남기며 ...

이 글이 유익하다는 생각이 드시면 아래 손꾸락 모양의 추천 버튼을 꾹꾹 눌러주시기 바랍니다 .
추천에는 다음 로그인은 필요 없습니다 .
그러나 이왕에 추천해 주실려면 다음에 로그인 후에 추천을 해주시면 더 좋은데요 .....
다음에 로그인 추천은 다음에 로그인 하고 이 글에서 추천을 한다고 되는게 아니고요 .
아래 손꾸락 모양 버튼 오른쪽으로 구독이라고 보이실 터인데 그 구독을 눌러서 다음에 로그인 후에
글벌레를 구독하시면 이 글의 제목이 My View란 탭에서 보일겁니다 .
그 글 제목을 클릭해 뜨는 창에서 추천해 주시기 바랍니다 ^ ^*

추천은 제 글이 유익했었다고 보내 주시는 메시지이고
그런 메시지는 글벌레가 글을 계속 발행할 수 있는 힘의 근원이 되어 줄겁니다 ^ ^*
반응형

댓글