'IT_Common'에 해당되는 글 66

  1. 2012.12.05 Process Monitor (FileMon) 사용 방법
IT_Common/Tip-Tech | Posted by 낫기법필 2012. 12. 5. 01:58

Process Monitor (FileMon) 사용 방법

[쥔장]===================================

알아두면 좋다.

잘 정리해둔 블로그에서 스크랩하였음.

=========================================

스크랩 : http://blogs.technet.com/b/sankim/archive/2007/06/14/process-monitor-for-filemon.aspx

 

 

그 첫번째로 File에서 어떤 일들이 일어나는지를 모니터 하여 Troubleshooting에 이용할 수 있는 방법을 말씀드리겠습니다.

엔지니어 분들이 실제 필드에서 파일을 모니터링 해야 할 경우은 언제 일까요? 아래와 같은 시나리오들이 되지 않을까요?.

[시나리오]

1. 저장해 둔 testfile.txt 파일이 몇 차례나 반복적으로 삭제되는 현상이 발생했다, 어떤 프로세스가 삭제 했는지 알고 싶다.

2. 특정 명령을 실행하면 몇 개의 파일이 생성되는데 어떤 파일들이 어디에 생성되는지 확인 하고 싶다.

3. 특정 폴더에 계속해서 이상한(?) 파일들이 생성된다, 어떤 프로세스가 생성하는지 확인 하고 싶다.

시나리오 1의 경우 특정 백신 프로그램이 txt를 malware로 인식하고 삭제한 경우입니다. 누구도 백신이 멀쩡한 txt를 삭제할거라고 생각하지 못하겠지요. (실제로 txt는 아니고 어떤 백신프로그램이 PPT 파일을 몽땅 삭제해버린 문제가 있었습니다), 어떤 프로세스가 txt를 삭제하는지 모니터링이 필요할 것 입니다.

시나리오 2의 경우 명령을 실행하면서 나도 모르는 파일이 생성된다면 ‘혹시 나 몰래 엉뚱한 파일이?’ 하는 의심이 들 수 있지요. 어디에 어떤 파일이 생성되는지 확인 해 봐야 할 것입니다.

시나리오 3의 경우 3’rd party 응용프로그램이 잘못된 로그를 무한대로 생성하면서 발생한 문제입니다. 이런 경우 동물적 감각(?)을 이용하지 않으면 웬만해서는 찾기 어렵습니다. 이때는 폴더에 대한 모니터링이 필요할 것 입니다.

위 시나리오들은 실제 제가 진행했던 Case를 기반으로 나열한 것인데 그 이외에도 Troubleshooting이나 특정한 목적을 위해 파일을 모니터링 해야 하는 시나리오가 많이 있을 것입니다. 이런 경우 감사 정책을 설정할 수 있으나 무겁기도 하고 그리 효율적이지 못합니다. 이럴 때는 좋은 방법이 무엇이 있을까요?


정답은 Process Monitor for filemon을 이용하는 것입니다.

Process Monitor v1.12 (클릭하시면  process monitor을 다운받을 수 있는 페이지로 이동합니다 )

이전에는 Filemon이라는 도구로 파일을 모니터 했습니다만 이 기능을 Process monitor에 추가함으로써 Process Monitor 안에서 파일 모니터링이 가능합니다, 또한 각 tool이 가진 기능을 합쳐져서 더욱 강력한 모니터링 기능을 제공합니다.

원래 두 도구 모두 Mark Russinovich의 Sysinternals에서 무료로 다운로드 받아 사용할 수 있도록 만든 도구였는데 Mark가 작년 가을에 MS로 입사하면서 MS 사이트에서 다운로드 받을 수 있게 되었습니다, 물론 지금도 무료로 사용할 수 있습니다 :) .

그럼 ‘시나리오1’을 예로 한번 어떤 프로세스가 특정 파일을 삭제하는지 직접 보여드리겠습니다.

1. 먼저 Process monitor을 다운로드 받아 실행합니다, 실행하면 그림과 같은 콘솔이 나타납니다. 기본적으로 File 모니터 기능뿐만 아니라 Process, registry 모니터링 기능까지 모두 활성화 되어있기 때문에 여러 정보들이 정신 없이 스크롤 되는 것을 보실 수 있을 것입니다.

00

2. 필요한 정보만을 확인 하기 위해서 먼저 그림에서와 같이 가운데 Filemon(왼쪽부터 regmon, filemon, processmon)기능을 제외하고 모두 비활성화로 설정합니다.

01

3. Filemon만 활성화 해도 파일시스템에서는 우리가 모르는 엄청난 많은 일들이 발생하기 때문에 계속해서 작업내용이 스크롤 되는 것을 볼 수가 있습니다. 이때 Filter를 설정해서 좀더 쉽게 볼 수 있는 방법이 있습니다. 모니터링 하기 위한 파일이 C:\TEMP\testfile.txt라면 상단에 Filter > Filter를 클릭하고 그림에서와 같이 path를 선택한 뒤에 해당 파일 경로를 선택하고 add를 누른 뒤 적용할 수 있습니다, 그러면 testfile.txt에서만 일어나는 일들을 보실 수 있습니다. 필터 방법은 상황에 따라 여러 가지로 적용할 수 있으니 응용해 보시기 바랍니다.

02 

4. 아래 그림을 보니 파일이 삭제되자 파일에 액세스한 프로세스 그리고 시간 등이 나타나는 것을 볼 수가 있습니다. 삭제한 프로세스가 Explorer.exe이 군요, 이것은 제가 테스트를 위해 탐색기(Explorer.exe)로 삭제했기 때문입니다 만약 다른 프로세스가 삭제 했다면 어떤 프로세스가 삭제 했는지 알 수 있었을 것입니다.

05

5. 기본으로 나타나는 컬럼 이외에 다른 여러 가지 컬럼을 선택하여 다양한 정보를 확인 할 수 있습니다.

04

지금까지 설명 드린 내용으로 Filemon 사용방법이나 필요한 시나리오를 이해하셨을테니 나머지 시나리오에 대한 해결방법은 제가 설명 드리지 않아도 잘 응용(?)해서 답을 얻으실거라 믿습니다.

개인적으로 어떤 상황에 어떤 Tool을 효과적으로 사용해야 하는지를 아는 것이 중요하다고 생각합니다. 맨손으로 못을 박는것보다는 망치가 있으면 좋듯이..

다음 Troubleshooting에서는 레지스트리 모니터링에 대한 방법을 설명 드리겠습니다.