A Practical guide for Sysmon : Use ArchiveDirectory

1. 개요

오늘날 공격자가 시스템에 침투한 뒤 활용한 공격 도구를 삭제하는 행위는 당연시되고 있다. 따라서, 공격자가 시스템에서 파일을 삭제하는 시점을 기록하고 삭제한 파일을 확보할 수 있으면 공격자의 행위를 이해하는 데 더욱 도움이 된다.

Sysmon의 파일 삭제 관련 이벤트에서는 삭제된 파일의 Hash 값을 기록하기 때문에 OSINT Tool로 분석해 알려진 공격 도구의 행위를 식별할 수 있다. 하지만, OSINT Tool에 존재하지 않는 신규 악성파일의 행위를 파악하기 위해서는 파일을 확보하는 것이 중요하다.

Sysmon에는 ‘ID 23. FileDelete, File Delete archived’, ‘ID 24. Clipboard changed’ 이벤트로 삭제된 파일과 클립보드 내용을 저장하는 ArchiveDirectory(기본값: C:\Sysmon)가 존재한다.

‘ID 23. FileDelete, File Delete archived’ 이벤트는 삭제된 파일을 ArchiveDirectory에 저장해 공격자가 활용한 공격 도구를 확보할 수 있다. 또한, 공격자가 시스템에서 복사한 텍스트를 ‘ID 24. Clipboard changed’ 이벤트로 알 수 있어 추가적인 공격자의 행위를 식별하는 데 도움이 된다.

본 글에서는 ArchiveDirectory 관련 이벤트와 ArchiveDirectory에 Data가 어떻게 저장되고 활용할 수 있는지 알아본다.


2. ArchiveDirectory 관련 이벤트

2.1. ID 23: FileDelete, File Delete archived

‘ID 23. FileDelete, File Delete archived’는 시스템에서 파일이 영구삭제(Shift+Delete) 됐을 때 기록된다. 또 다른 파일 삭제 이벤트인 'ID 26. File Delete logged'와 달리 삭제된 파일을 ArchiveDirectory에 저장한다.

[그림 1] ID 23. FileDelete, File Delete archived 이벤트 예시

이벤트에 기록되는 필드의 상세 설명은 아래 글을 참고 바란다.

Sysmon 활용 가이드: 이벤트 구성 항목
1. 개요 이전 ‘Sysmon 활용 가이드: 개념 및 설치 방법’에서 Sysmon이 무엇이며 어떻게 설치할 수 있는지 알아봤다. 본 글에서는 Sysmon이 기록하는 이벤트의 구성 항목을 살펴본다. Sysmon은 프로세스 생성을 포함해 총 29개의 이벤트로 구성되어 있으며, 목적에 맞게 이벤트를 활용하면 엔드포인트 보안을 보다 효과적으로 강화할 수 있다. Windows Vista 이상에서는 이벤트가 Microsoft-Windows-Sysmon%

2.2. ID 24: Clipboard changed

시스템의 클립보드가 텍스트 형태의 내용으로 변경될 때 ‘ID 24. Clipboard changed’ 이벤트가 기록된다. 이때, 변경된 클립보드 내용을 ArchiveDirectory에 저장한다. 클립보드 내용 변경에 대한 이벤트이기 때문에 기존의 클립보드 내용과 동일한 내용으로 변경되면 이벤트가 발생하지 않는다.

[그림 2] ID 24. Clipboard changed 이벤트 예시

이벤트에 기록되는 필드의 상세 설명은 아래 글을 참고 바란다.

Sysmon 활용 가이드: 이벤트 구성 항목
1. 개요 이전 ‘Sysmon 활용 가이드: 개념 및 설치 방법’에서 Sysmon이 무엇이며 어떻게 설치할 수 있는지 알아봤다. 본 글에서는 Sysmon이 기록하는 이벤트의 구성 항목을 살펴본다. Sysmon은 프로세스 생성을 포함해 총 29개의 이벤트로 구성되어 있으며, 목적에 맞게 이벤트를 활용하면 엔드포인트 보안을 보다 효과적으로 강화할 수 있다. Windows Vista 이상에서는 이벤트가 Microsoft-Windows-Sysmon%

3. ArchiveDirectory Data

ArchiveDirectory는 시스템 ACL로 보호되어 있어 내용을 확인하기 위해서는 PsExec와 같은 도구로 시스템 권한을 획득하거나, 파일시스템 분석 도구로 접근해야 한다.

3.1. Deleted Data

삭제된 파일은 사용자가 지정한 ArchiveDirectory에 "[설정된 Hashes].[확장자]” 형식으로 저장된다. 만약, 삭제된 파일이 0x00 바이트만 포함되어 있다면, ArchiveDirectory에 보관되지 않는다.

[그림 3] ArchiveDirectory 내 저장된 삭제된 파일
[그림 4] 0x00 바이트로 이뤄진 파일 삭제

3.2. Clipboard Data

클립보드 내용은 사용자가 지정한 ArchiveDirectory에 "CLIP-[클립보드에 대한 Hashes]" 형식으로 저장된다.

[그림 5] ArchiveDirectory 내 저장된 클립보드 파일
[그림 6] ArchiveDirectory에 저장된 클립보드 파일 내용

3.3. 파일 완전 삭제

완전 삭제 도구인 SDelete와 Eraser를 사용해 파일이 삭제됐을 때, 이벤트와 ArchiveDirectory 저장 여부를 확인해 본다.

SDelete는 명령줄 기반 도구이기 때문에 ‘ID 1. Process Create’ 이벤트로 실행 당시 명령줄을 확인할 수 있다. 그러나, 완전 삭제를 위해 데이터를 0x00으로 덮어져 ArchiveDirectory에 원본 파일이 저장되지 않았다.

[그림 7] 발생한 ID 1. Process Create 이벤트
[그림 8] 발생한 ID 23. FileDelete, File Delete archived 이벤트

Eraser는 파일 완전 삭제 시 ‘ID 23. FileDelete, File Delete archived’ 이벤트가 다수 발생하며, 파일이 ArchiveDirectory에 저장됐다고 이벤트에 표시되지만, 저장된 파일을 확인해 보면 이미 0x00으로 데이터가 덮어졌다.

[그림 9] 발생한 ID 23. FileDelete, File Delete archived 이벤트
[그림 10] Eraser로 완전 삭제된 파일 데이터

파일 완전 삭제 도구(SDelete, Eraser)로 파일 삭제 시 ArchiveDirectory에 저장되지 않았다. 그러나, Sysmon에는 ‘ID 28. File Block Shredding’ 이벤트로 파일 완전 삭제 도구의 실행을 탐지하고 차단할 수 있다. 시스템에서 파일 완전 삭제 도구를 사용하지 않는다면 해당 이벤트를 활성화해 완전 삭제를 차단하는 것을 권장한다.


4. 결론

파일 삭제에 대해 ‘ID 23. FileDelete, File Delete archived’ 이벤트만 존재했을 때, 삭제된 모든 파일이 ArchiveDirectory에 저장되다 보니 원치 않는 데이터로 디스크 공간을 너무 많이 차지해 시스템 성능에 영향을 끼칠 수 있다는 우려가 컸다. Sysmon 13 버전에서 ‘ID 26. File Delete logged’ 이벤트가 생기게 되면서 사용자가 ArchiveDirectory에 삭제된 파일을 저장되지 않게 선택할 수 있게 됐다.

그러나, 공격자가 삭제한 파일을 확보하는 것은 분석에 많은 도움이 되기 때문에 ‘ID 23. FileDelete, File Delete archived’ 이벤트에 적절한 파일 확장자, 파일의 경로를 지정해 파일 삭제 시 ArchiveDirectory에 저장되도록 Configure File을 구성하고 지정한 ArchiveDirectory를 지속적으로 모니터링해 시스템마다 적정 수준의 용량을 유지해 적극적으로 활용했으면 한다.

만약, 침해사고 조사 대상 시스템에 Sysmon이 동작했다면, ArchiveDirectory에 저장된 데이터를 확인해 공격자의 행위를 식별하는 데 활용해 보면 많은 도움이 될 것이다.

You've successfully subscribed to PLAINBIT
Great! Next, complete checkout to get full access to all premium content.
Error! Could not sign up. invalid link.
Welcome back! You've successfully signed in.
Error! Could not sign in. Please try again.
Success! Your account is fully activated, you now have access to all content.
Error! Stripe checkout failed.
Success! Your billing info is updated.
Error! Billing info update failed.