전공영역 공부 기록

[악성코드 분석 입문] 예제6,7 - 파일삭제 이벤트 분석

악분 2020. 7. 8. 01:54
반응형

안녕하세요. 이번시간에는 악성코드가 파일을 삭제할 때 발생하는 이벤트를 분석합니다.

파일삭제 행위는 크게 3가지 이유가 있습니다.

1) 악성코드를 발견하지 못하도록 악성코드 삭제

2) 악성행위 중에 임시로 생성한 파일 삭제

3) 어플리케이션 또는 시스템에 영향을 주기 위해 중요한 파일 삭제

안타깝게도 쉬운예제를 찾으려고 했으나 2번과 3번은 찾지 못했습니다. 아쉬운대로 1번 상황에 맞는 예제를 살펴보도록 하겠습니다.

 

Notion에서 작성한 글이 더 보기 편합니다.
Notion 링크: https://www.notion.so/6057fce82e984d098b5d7dc77060e3c0

 

1. anyrun 샌드박스에서 파일삭제 분석

악성코드는 한 번 실행되면 흔적을 지우려고 합니다. 대표적인 예가 악성코드를 실행했던 파일을 삭제하는 것입니다. 그렇다면 anyrun 샌드박스에서는 파일 삭제를 어떻게 탐지할까요?

1.1 자동분석

anyrun샌드박스는 행위를 자동으로 분석하고 파일삭제 이벤트를 발견하면 메세지를 남깁니다. 자동분석은 anyrun 샌드박스가 남긴 로그를 분석해서 파일 삭제 이벤트를 찾습니다. 발견한 이벤트를 사용자가 볼 수 있게 메세지를 "2곳"에 남깁니다.

  1) Text report → Behavior activites

  2) ATT&CK Matrix → Evasion technique → File deletion

 

1.1.1 Text report의 파일삭제 메세지

 

예제: https://app.any.run/tasks/f1b4d2c4-06ba-4f3b-ba4b-8b24513e4055/

 

 

메인 페이지 오른쪽 위에 있는 Text report를 클릭합니다.

그림1 Text report페이지 이동

 

스크롤을 내려 Behavior activities영역으로 이동합니다. [그림 2]에서 보이듯이 파일삭제 이벤트는 "SUSPICIOUS→Start CMD.EXE for self-deleting"메세지에 해당합니다. cmd.exe프로세스가 chrome.exe파일을 삭제한다는 의미입니다.

그림2 파일삭제 메세지

 

1.1.2 ATT&CK Matrix의 파일삭제 메세지

ATT&CK Matrix는 어떤 명령어로 파일을 삭제했는지 보여줍니다.

메인 페이지 오른쪽 위에 있는 ATT&CK Matrix버튼을 클릭합니다.

그림3 ATT&CK 페이지 이동

Defense Evasion의 File Deletion을 클릭하면 새로운 창이 나옵니다. Starts CMD.exe for self-deleting가 파일삭제 이벤트입니다. Text report[그림 2]와 다른 점은 어떻게 삭제했는지 상세정보가 나옵니다. 이 예제에서는 커맨드 프롬프트 del 명령어로 Temp\Chrome.exe파일을 삭제했습니다.

그림4 ATT&CK 파일삭제 메세지

 

 

1.2 수동분석

수동분석은 자동분석에서 발견하지 못한 삭제 이벤트를 분석합니다. 자동분석은 중요한 파일에 대한 메세지만 남기므로 이외에 파일은 분석가가 직접 삭제한 파일을 찾아야 합니다.

 

예제: https://app.any.run/tasks/34daab77-110e-49ae-b348-b1ab3d8404ae/

 

메인 페이지 왼쪽 아래에 있는 FIELS탭을 클릭합니다. not available메세지가 있는 2번째 행이 삭제된 파일입니다. 해당 행을 클릭해도 삭제된 파일이어서 상세정보가 안나옵니다. 해당 파일은 더 이상 샌드박스에서 분석하지 못하므로 분석가가 직접 행위, 동적분석을 해야 합니다.

그림5 삭제한 파일 확인

 

삭제된 파일에 대한 다른 이벤트를 분석해보기 위해 메인 페이지 오른쪽 위에 있는 processes graph메뉴를 클릭합니다.

그림6 프로세스 그래프 창 열기

제된 파일 nsd708.tmp 왼쪽에 drop and start메세지가 있습니다. drop은 파일을 생성했다는 의미이고 start는 생성한 파일을 실행했다는 의미입니다. 즉, starplayer_agent.exe프로세스는 파일을 생성하고 곧바로 해당 파일을 실행했습니다. 하지만 [그림5]에서 보이듯이 파일을 실행 후 곧바로 파일을 삭제된 것으로 보입니다.

그림7 프로세스 그래프 분석

 


2. 행위분석

행위분석은 샌드박스에서 분석했던 예제를 직접 실행하여 파일삭제 이벤트를 찾습니다. 사용할 도구는 프로세스 모니터입니다.

[그림 8]에서 보이듯이 프로세스 모니터는 총 2가지 방법으로 파일삭제 행위를 찾을 수 있습니다.

그림8 프로세스모니터의 파일 삭제 이벤트 종류

 

2.1 직접 삭제

직접 삭제는 악성코드가 직접 파일을 삭제하는 것을 의미합니다. 프로그래밍 언어에서 제공하는 함수를 사용합니다. 프로세스 모니터에서는 Operation 필드에서 직접 삭제한 파일을 기록합니다. 예제를 살펴봅시다.

 

악성코드 링크: https://app.any.run/tasks/34daab77-110e-49ae-b348-b1ab3d8404ae/

 

 

프로세스 모니터 로그 링크: https://drive.google.com/file/d/1wp6Gst_mIfa-uCZy-ifbrAgjtFrvwBe2/view?usp=sharing

 

 

필터를 설정하기 위해 Filter → Filter를 클릭합니다.

그림9 필터링 창 열기 ​

 

Operation is SetDispositionInformationFile 입력 후 Add버튼 클릭하여 필터 규칙을 추가합니다.

그림10 필터 규칙 추가

 

필터링이 성공적으로 끝나면 [그림 11]처럼 필터링 결과가 적용됩니다. Process Name필드 파일을 삭제한 프로세스 이름입니다. Path필드는 각 프로세스가 삭제한 파일 경로입니다. 마지막으로 Result필드는 파일 삭제가 성공했는지 실패했는지 결과를 보여줍니다. 파일 삭제를 성공하면 Result필드 값은 SUCCESS입니다.

그림11 필터링 결과

 

[그림 5]의 anyrun샌드박스에서 찾은 삭제한 파일 목록과 거의 비슷합니다. anyrun샌드박스처럼 tmp파일 삭제는 찾았고 nsExec.dll파일 삭제도 찾았습니다.

그림12 삭제한 파일 확인

 

2.2 윈도우명령어(cmd.exe, powershell 등)로 삭제한 파일 분석

프로그램은 컴퓨터 언어에서 제공하는 함수를 사용해서 삭제했습니다. 비슷하게 윈도우 명령어를 이용해서 파일을 삭제할 수도 있습니다. 대표적으로 cmd.exe, powershell.exe 명령어가 있습니다.

윈도우 명령어를 사용해서 파일을 삭제하면 단순하게 필터링으로만 파일삭제 이벤트를 찾기 어렵습니다. 필터링 결과가 단순하기 때문입이다. 직접 살펴보도록 하죠!

 

악성코드 링크: https://app.any.run/tasks/34daab77-110e-49ae-b348-b1ab3d8404ae/

프로세스 모니터 로그 링크: https://drive.google.com/file/d/1wp6Gst_mIfa-uCZy-ifbrAgjtFrvwBe2/view?usp=sharing

 

Filter → Filter 메뉴를 클릭하여 필터창을 엽니다.

그림13 필터창 열기

Detail contains Desired Access: Delete 로 필터링을 설정합니다. 대소문자와 띄어쓰기를 주의하세요.

그림14 필터 설정

 

필터링이 성공적으로 적용되면 4개의 결과가 나옵니다.

그림15 필터 결과

 

3번째 행에 해당하는 CreateFile이 바로 파일삭제입니다. cmd.exe(pid:7976)프로세스가 chrome.exe파일 삭제를 시도했습니다. Result가 SUCCESS이므로 성공적으로 파일을 삭제했습니다.

그림16 삭제한 파일

 

삭제한 명령어를 확인하기 위해서 Tools → Process Tree를 클릭합니다.

그림17 프로세스 트리 창 열기

스크롤을 제일 아래로 내려 cmd.exe(pid:7976)를 클릭하고 Command를 확인합니다. DEL이라는 명령어가 보이시죠? 파일을 삭제 하는 윈도우 명령어입니다. 삭제하는 대상은 [그림 17]에서 확인한 chrome.exe입니다.

그림18 파일삭제 명령어 확인

 

반응형