article thumbnail image
Published 2023. 12. 31. 15:00

SRUM이란 무엇인가?

System Resource Utilization Manager의 약자로, Microsoft Windows 8 운영체제부터 존재하며 시스템 리소스 사용과 관련된 활동을 기록하기 위해 만들어졌다. 프로그램의 CPU 사용량, 네트워크 사용량 등을 확인할 수 있다. 이를 이용해 침해사고 조사 등에서 사용하는데 도움이 된다.

 

작업관리자를 통해 간단하게 보는 SRUM 을 이용한 출력 데이터

 

SRUM 위치

레지스트리 파일은 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SRUM\Extensions\

에 위치하고 있으며, 해당 dll과 레지스트리에 따른 설명 값을 볼 수 있다.

 

Databases Table Name Description
{5C8CF1C7-7257-4F13-B223-970EF5939312} App Timeline Provider
{7ACBBAA3-D029-4BE4-9A7A-0885927F1D8F} vfuprov
{973F5D5C-1D90-4944-BE8E-24B94231A174} Windows Network Data Usage Monitor
{B6D82AF1-F780-4E17-8077-6CB9AD8A6FC4} Tagged Energy Provider
{d10ca2fe-6fcf-4f6d-848e-b2e99266fa86} WPN SRUM Provider
{d10ca2fe-6fcf-4f6d-848e-b2e99266fa89} Application Resource Usage Provider
{DA73FB89-2BEA-4DDC-86B8-6E048C6DA477} Energy Estimation Provider
{DD6636C4-8929-4683-974E-22C046A43763} Windows Network Connectivity Usage Monitor
{fee4e14f-02a9-4550-b5ce-5fa2da202e37} Energy Usage Provider

 

관련 파일은 C:\Windows\System32\sru 에 log 파일로 기록되어 SRUDB.dat 파일에 저장이 된다. 즉 어느 정도 데이터가 쌓여야 SRUDB.dat으로 저장이 된다.

sru 디렉토리

SRUDB.dat 파일의 dat 형식은 ESE(Extensible Storage Engine) 즉, SQLite와 비슷하지만 Microsoft의 형식임. 그래서 아래 관련 도구들을 통해 내용을 확인 할 수 있다.

 

분석하기

SRUM을 이용하여 ruDB체크포인트, 앱 타임라인 제공자, vfuprov, 애플리케이션 리소스 사용량, 네트워크 데이터 사용량, 에너지 사용량, 에너지 사용량 LT, 윈도우 푸시 알림 을 알 수 있다.

 

여기서 Network Data Usage 와 Application Resource Usage 를 통해 어떤 User SID를 가진 사용자가 몇시에 해당 프로그램을 사용했으며, 몇 시간(분) 동안 통신을 통해 어느정도의 데이터를 유출 했는지 등의 데이터를 확인 할 수 있다. 

 

 

 

관련 도구

SRUM-DUMP

 

SRUM_DUMP 화면, Browse를 통해 DAT 파일을 넣을 수 있다.

SRUDB.DAT을 추출해 해당 SRUM_DUMP에 넣고 OK를 누르면 분석이 시작된다. 이후 SRUM_DUMP_OPUTPUT.xlsx에 분석된 데이터가 저장된다.

진행 과정은 cmd를 통해 볼 수 있다.
OUTPUT에 존재하는 탭

위와같이 총 9개의 탭이 존재하며, 이곳에서 출력된 데이터들을 통해 분석이 가능하다.

 

그 외 도구..

srumECmd

 

SRUM의 단점

네트워크 사용량

SRUDB.dat을 아예 로우하게 볼 경우 Windows 64-Bit Time Stamp 즉 윈도우 시간이 0x00112233 0x00000000 처럼 분단위까지 정확하게 기록하지 않음. 그래서 srum-dump, srumECmd 등 도구에서 출력할 때 HH:MM:SS 로 초단위까지 출력하지만 분단위까지만 기록 되어있어 초단위가 출력되지 않는다.

SRUM에 등록되어있는 시간 데이터

하지만 이 시간에 실행 했다 정도는 알 수 있어 해당 파일이 변조되지 않는 이상 시스템 분석 등에서 사용하는데 문제없다.

 

*Windwos 64-Bit Time Stamp의 경우 1601-01-01 00:00:00(UTC)를 기준으로 몇 100ns 만큼 떨어져 있는가를 8바이트로 나타내어 기준 시각에서 100ns가 지날 때 마다 1씩 증가한다.

 

복사했습니다!