공격자가 다녀가면 당신은 그 후에 남은 공격 찌꺼기를 정리정돈 하기 마련이다. 당신이 현장에 도착하면 공격자가 어떤 방식으로 들어왔는지, 무엇을 가져갔는지 그리고 고객에게 어떤 악영향을 끼치게 되었는지 알아내야 한다. 하지만 고객은 방화벽의 syslog도 가지고 있지 않다. 때문에 당신은 방화벽 메모리에 저장 되어있는 3일간의 한정된 로그만 확인할 수 있다. 윈도우 이벤트 로그는 대부분의 시스템에 매 오분 단위로 롤오버되고 장기적으로 컴퓨터에 로깅되어있는 것은 아무것도 없다. IDS도 없고 풀 패킷 캡쳐도 없다. 공격자들은 malware도 제거했고 공격자 계정도 삭제했으며 감염된 소프트웨어와 재설치된 최신 소프트웨어도 삭제했다. 덤으로 그들은 고객이 빠뜨린 일년치의 OS와 소프트웨어 패치를 설치해 주었다. 당신은 어려운일을 마다하지 않는 사람이기 때문에, 본인이 공격받은 서버를 맡아서 현장에서 직접 포렌식 이미지를 뜨려 할 것이나 당신은 당신의 상사에게 말하기를 서버를 슬적 건드려나 보겠다고 말한다. 아이러니하다는 생각이 들지만 당신은 계속 중얼고린다. 로그가 없군.. 포렌식 아티팩트도 없네.. 서버 관리자가 즈려밟지 않고 유일하게 남겨진 단서는 과도하게 숙련된 공격자의 서버 공격흔적 정리기술이다.
비록 고객이 공격자의 마지막 남겨진 잔여 흔적을 파괴한것이 의도한 것은 아니겠지만, 몇 분내에 당신은 공격자가 무엇을 했는지 꽤 좋은 아이디어를 알아낼 방법이 있다. 공격자가 시스템에 새로운 계정을 생성하고난 후 그들은 RDP를 이용하여 로그인 했다. 그들은 추가적인 malware를 피해자의 시스템에 다운로드하고 실행했고 이웃 시스템에 공격을 감행했다. 공격자가 전리품을 수집한 후 그들은 출구 모니터링을 피하고 훔친 데이터베이스를 전송하기 위해 근방의 open Wi-Fi 로 접근한다. 모든 이러한 공격행위는 전체 포렌식 타임라인분석 없이도 시스템 내에서 잘 알려지지 않은 SRUM 이라 불리는 이 로그의 분석과 일련의 유저 행동을 들여다 봄으로써 발견이 가능하다.
AKA, SRUM이라 알려진 Windows System Resource Usage Monitor 는 당신의 머신에서 행해지는 행동에 대하여 아주 풍부한 정보를 가지고 있다. 작업관리자 위에 APP HISTORY 탭에 서 보이는 이 정보들 중 몇몇은 방대한 양의 세부 데이터를 수집하며 GUI를 통해서는 보이지 않는다. 이 데이터는 당신의 시스템에서 실행되는 모든 어플리케이션, 심지어 공격자가 삭제한 어플리케이션의 이름과 경로를 포함하고 있다. 또한 어플리케이션의 배터리 사용, 백그라운드/ 포어그라운드로 자세하게 나누어진 CPU시간, 하드디스크에서 얼마나 많은 바이트가 어플리케이션에 의해서 쓰고 읽혔는지 외에도 더 많은 정보들이 들어 있다. 이 아티팩트의 경로는 다음과 같다. SRUDB.DAT -> \Windows\System32\sru\. 윈도우즈 ESE (Extensible Storage Engine) 내에 위치한 이 파일은 데이터베이스 포멧형식으로 읽어 볼 수 있다.
언젠가 한번은 이 아티팩트 안에 얼마나 귀중한 데이터가 그의 케이스에 있었는지 Ovie Carrol이 나에게 말 한적이 있다. excellent paper on the internals of the database by Yogesh Khatri 라는 문서는 SANS reading room에서 찾아 볼 수 있는데 EnCase가 없는한 당신의 그의 스크립트를 사용해서 데이터에 접근할 수 없다. 내(저자)가 srum-dump.exe 이라는 작은 프로그램을 만들었는데 이 프로그램으로 데이터 추출이 가능하고 엑셀이나 XLSX 호환 뷰어로 열람이 가능하다.
SRUM-DUMP는 몇개의 입력이 필요하다. 하나는 당신이 분석을 원하는 시스템에서 가져온 SRUDB.DAT 파일이다. 다른 하나의 입력은 엑셀 파일내에 어떤 필드에 어떤 형식으로 표현 할지 정해주는 것이다. Gitbub에 가면 내가 만들어 놓은 srum-dump.xlsx 샘플 템플릿을 볼 수 있을 것이다. 만약 당신이 무선 네트워크에 SSID이름을 알고 싶다면 옵션으로SOFTWARE 레지스트리 하이브 (\Windows\System32\config\)를 입력할 수 있다. SRUM-DUMP 는 SRUDB.DAT 파일을 읽어오고 SRUM-TEMPLATE.XLSX 에 정의 된대로 추출하며 새로운 XLSX파일을 결과파일로 생성한다.
예를들면 다음에 오는 내용은 입력 (-i) SRUDB.DAT, 레지스트리 (-r) SOFTWARE 를 분석해서 example_output.xlsx 라는 결과파일 (-o) 를 출력할 것이다. 만약에 템플릿이 특정되지 않으면 srum-dump.exe가 위치한 디렉토리에 SRUM-TEMPLATE.XLSX 파일로 자동생성된다.
C:\srum-dump>srum_dump.exe -i ..\SRUDB.dat -r ..\SOFTWARE -o ..\example_output.xlsx
XLSX파일의 결과는 아래에 보이는 여러개의 탭으로 구성되게 된다. 각각의 탭은 유용한 정보들로 채워진다. 아래 스크린샛에서, Network Usage 탭을 보면 NC.EXE가 많은 양의 데이터를 OPENWIFI라는 이름의 무선 네트워크를 통해 옮긴 것을 볼 수 있다. 또한 누가 netcat의 사용자인지 SID정보도 나와있다. (스크린샷 원본참조)
그리고 이것은 단지 하나의 탭에 불과하다. 스프레드 시트에서 당신은 정말 많은 정보를 볼 수가 있다. 당신은 SRUM_TEMPLATE.XLSX파일을 수정함으로써 데이터베이스에서 가져오는 데이터를 당신의 구미에 맞게 커스터마이징 할 수 있다. SRUM 데이터베이스에서 복구할 수 있는 아티팩트는 당신이 수행하는 사고조사(IR)의 과정에 맞게 바꿀 수 있다. 프로그램을 다운로드해서 실행해 보기를 바란다. Github에 README 파일에서 더 많은 정보를 찾아 볼 수 있을것이다.
srum-dump.exe download
https://github.com/MarkBaggett/srum-dump
More info for SRUM
SANS FOR408 Windows Forensics Analysis.
Add new features to SRUM-DUMP or develop similar program.
SANS SEC573 Automating Information Security with Python
Automating Information Security with Python | SANS SEC573
A basic understanding of any programming or scripting language is highly recommended but not required for this course. SEC573 starts with the most basic fundamentals of Python programming. There is no aspect of programming or Python that must be understood
www.sans.org
Follow me on twitter @MarkBaggett
It is translated in Korean from the article link below. Please kindly let me know if you have any concerns about this article.
isc.sans.edu/forums/diary/System+Resource+Utilization+Monitor/21927/
WRITTEN BY