동적분석2

김윤성·2026년 4월 21일

악성코드 분석

목록 보기
6/10
post-thumbnail

앞 편에서 프로세스 활동과 자동 실행 등록 여부를 확인했다면, 이제 시스템 전체의 변화를 들여다볼 차례다.
이번 편에서는 동적 분석 단계에서 사용하는 System Explorer와 Process Monitor를 정리했다.


동적 분석의 앞 편들에서는 프로세스 활동과 시스템 변화를 확인했다. 어떤 프로세스가 생기는지, 자동 실행에 등록되는지, 파일·레지스트리에 어떤 변화가 생기고 누가 그 변화를 만들었는지까지 추적했다.

하지만 아직 확인하지 못한 게 하나 남아 있다. 악성코드가 외부 서버와 통신을 하는지다. 악성코드는 대부분 혼자 동작하지 않는다. 공격자의 서버에서 명령을 받아오거나, 감염된 PC의 정보를 외부로 보내거나, 추가 악성 파일을 다운로드하기 위해 외부 서버와 통신하는 경우가 많다. 이번 편에서 그 마지막 조각을 확인한다.

이번 편에서 다룰 도구는 CPort, SmartSniff, Wireshark 세 가지다. CPort로 연결 상태를 확인하고, SmartSniff로 통신 내용을 훑어보고, Wireshark로 패킷을 상세하게 분석하는 흐름이다.


🛠 System Explorer — 스냅샷으로 전후 비교

이게 뭔가?

실행 전과 후의 시스템 상태를 각각 스냅샷으로 찍어서, 둘을 비교해주는 도구다. 파일이 새로 생겼는지, 레지스트리가 수정됐는지, 뭔가 삭제됐는지 같은 변화를 한눈에 보여준다.

어떻게 쓰나?

순서는 이렇다.

  1. 악성코드를 실행하기 전에 스냅샷을 찍는다
  2. 악성코드를 실행한다
  3. 충분히 시간을 두고 실행 후 스냅샷을 한 번 더 찍는다
  4. 두 스냅샷을 비교(Compare)한다

비교 결과는 추가된 항목, 삭제된 항목, 수정된 항목으로 구분되어 표시된다.

⚠️ 스냅샷 사이에 시간이 너무 짧으면 악성코드가 아직 동작을 마치지 않아 변화가 다 잡히지 않을 수 있다. 실행 후 1~2분 정도 여유를 두고 두 번째 스냅샷을 찍는 게 좋다.

뭘 봐야 하나?

비교 결과를 열어보면 변화가 수십~수백 개씩 나올 수 있다. 이 중 상당수는 악성코드와 무관한 시스템 자체의 변화다. 윈도우는 백그라운드에서도 로그 파일을 쓰고, 임시 파일을 만들고, 레지스트리를 수시로 업데이트하기 때문이다.

그래서 이 도구의 핵심은 노이즈를 걸러내면서, 의미 있는 변화를 골라내는 것이다. 전부 다 보려고 하면 끝이 없다. 아래 기준으로 비교 결과를 걸러보면 방향이 잡힌다.

① 새로 생성된 파일

C:\Windows\Temp, AppData, 사용자 폴더 같은 경로에 새 파일이 생겼는지 먼저 확인한다. 악성코드가 파일을 만들 때 자주 사용하는 경로다. 정적 분석(BinText)에서 발견했던 경로나 파일명이 비교 결과에도 있다면 크로스체크가 되는 셈이다. 경로와 파일명은 IOC 후보로 메모해둔다.

② 삭제된 파일

악성코드가 실행 후 자기 자신을 삭제하는 경우가 있다. 5편에서 봤던 것처럼 원래 프로세스는 종료되고 다른 프로세스를 통해 악성 동작을 이어가는 패턴이다. 원본 파일이 사라졌다면 이런 방식을 의심해볼 수 있다.

③ 레지스트리 변경

새로 추가되거나 수정된 레지스트리 키를 확인한다. 특히 5편 Autoruns에서 확인했던 자동 실행 경로(\CurrentVersion\Run)에 변화가 있는지 크로스체크할 수 있다.

④ 넘어가도 되는 항목

윈도우 업데이트 로그, 시스템 이벤트 로그 경로의 변화는 대부분 악성코드와 무관하다. 이런 항목은 넘어가도 된다.

⚠️ 변화가 있다고 해서 전부 악성인 건 아니다. 정상 프로그램도 파일을 만들고 레지스트리를 수정한다. 정적 분석에서 찾은 힌트, Autoruns 결과 같은 다른 분석 결과와 대조해서 판단하는 게 중요하다.

이 도구의 한계

System Explorer는 뭐가 바뀌었는지는 알려주지만, 어떤 프로세스가 그걸 바꿨는지는 알려주지 않는다. 파일이 새로 생긴 건 보이는데, 그걸 누가 만들었는지는 모른다는 뜻이다. 이 부분은 Process Monitor에서 추적해볼 수 있을 것 같다.

⚠️ 주의사항

유사한 이름의 프로그램이 많다. 반드시 공식 배포처에서 다운로드해야 한다.


🛠 Process Monitor — 실시간 로그로 추적

이게 뭔가?

파일, 레지스트리, 프로세스, 네트워크 이벤트를 실시간으로 전부 기록하는 도구다. System Explorer가 "뭐가 달라졌는지"를 보여줬다면, Process Monitor는 "그 변화가 어떻게 일어났는지"를 보여준다.

System Explorer와의 가장 큰 차이는 주체가 보인다는 점이다. 모든 이벤트마다 어떤 프로세스가 그 동작을 했는지가 기록된다. 파일이 새로 생긴 걸 발견했는데 누가 만들었는지 몰랐다면, Process Monitor 로그에서 어떤 프로세스가 그 파일을 만들었는지 확인할 수 있다.

어떻게 쓰나?

실행하면 화면에 로그가 쏟아진다. 초당 수천 건씩 쌓이기 때문에, 필터 없이는 사실상 쓸 수 없다.

필터 설정

메뉴에서 Filter → Filter를 열면 조건을 설정할 수 있다. 가장 기본적인 필터는 Process Name으로 거르는 것이다. 악성코드의 프로세스 이름을 지정하면 해당 프로세스가 일으킨 이벤트만 볼 수 있다.

예를 들어 악성코드 파일명이 malware.exe라면, Process Name is malware.exe로 필터를 걸면 된다. 5편 Process Explorer에서 확인한 프로세스 이름을 여기서 활용할 수 있다.

💡 악성코드가 cmd.exerundll32.exe 같은 자식 프로세스를 만들어서 동작하는 경우가 있다. 이때 악성코드 프로세스 이름만 필터에 걸면 자식 프로세스의 이벤트는 보이지 않는다. 5편에서 확인한 프로세스 트리를 참고해서, 자식 프로세스도 필터에 추가하는 게 좋다.

주요 컬럼

필터를 걸고 나면 로그가 한 줄씩 나열되는데, 기본적으로 아래 컬럼을 본다.

컬럼설명
Time이벤트가 발생한 시간
Process Name어떤 프로세스가 이벤트를 일으켰는지
Operation어떤 동작인지 (파일 생성, 레지스트리 수정 등)
Path대상 경로 (파일 경로 또는 레지스트리 키 경로)
Result성공/실패 여부

캡처 시작과 중지는 도구 모음의 캡처 버튼(돋보기 아이콘)으로 조작한다. 악성코드를 실행하기 직전에 캡처를 시작하고, 충분한 시간이 지난 뒤 중지하면 된다.

💡 필터를 더 세밀하게 거는 방법이나 로그를 상세하게 읽는 방법은 별도 글에서 정리할 예정이다.

뭘 봐야 하나?

로그 전체를 처음부터 끝까지 읽기보다는, System Explorer에서 발견한 변화를 기준으로 찾아보는 게 효율적이다. System Explorer에서 특정 경로에 파일이 새로 생긴 걸 확인했다면, Process Monitor에서 그 경로를 검색해서 어떤 프로세스가 관여했는지 찾아보는 식이다.

파일 생성이든 레지스트리 수정이든, System Explorer에서는 "변화가 있었다"까지만 보였다면, Process Monitor에서는 "어떤 프로세스가 그 변화를 만들었는지"까지 확인할 수 있다. 여기서 확인한 프로세스 정보는 5편 Process Explorer에서 봤던 프로세스 트리와 대조해보면 흐름이 연결된다.

여기에 더해 Process Monitor만의 강점은 시간순 흐름이다. 로그가 시간순으로 기록되기 때문에, 악성코드가 실행 후 어떤 순서로 동작하는지 파악해볼 수 있다. 예를 들어 "먼저 파일을 복사하고 → 레지스트리에 자동 실행을 등록하고 → 원본 파일을 삭제한다" 같은 동작 순서가 로그에 남을 수 있다. 이 순서를 파악하면 악성코드의 전체 동작 흐름을 이해하는 데 도움이 된다.

⚠️ Process Monitor는 실행 중인 동안의 이벤트만 기록한다. 캡처를 시작하기 전에 일어난 일은 잡히지 않기 때문에, 악성코드를 실행하기 전에 반드시 캡처를 먼저 시작해야 한다.


📝 마무리

System Explorer는 전후 비교로 전체 그림을 잡는 도구이고, Process Monitor는 그 변화의 주체와 순서를 추적하는 도구다. 둘 다 핵심은 "악성코드가 시스템에 어떤 흔적을 남겼는지"를 찾는 것이다.

이 단계에서 확인한 파일 경로, 레지스트리 키 같은 정보는 IOC로 정리해둘 수 있다. 정적 분석에서 찾은 힌트가 실제로 맞는지 확인하는 단계이기도 하고, 이후 Snort 룰을 작성할 때 활용할 수 있는 구체적인 단서가 나오는 단계이기도 하다.

다음 편에서는 동적 분석의 마지막 영역인 네트워크 활동을 확인하는 도구들을 다룬다.

profile
꾸준한 IT 공부

0개의 댓글