이 포스팅은 KISA 아카데미(실전형 사이버훈련장) 에서 진행되는
[중급]멜웨어 식별 훈련 교육 과정을 수료한 후 공부한 내용을 정리한 글입니다.
프로세스의 이상징후 분석을 위한 정보추출 과정
- 메모리의 덤프 파일의 프로필 정보 확인
- 프로세스 목록 추출
- 프로세스 트리 정보 추출
- 로드된 DLL 목록 및 경로 정보 추출
- 프로세스 이미지 덤프 및 버전 정보 추출
위와 같은 과정을 거쳐서 침해사고 발생한 기기에서 아티팩트를 추출하고
→ csv, txt처럼 알아볼 수 있는 형태로 만들어야 함
→위의 과정들은 자동화되어 있기 때문에 트리 정보 추출 이후가 더 중요
실습도구: Volatility 메모리 포렌식 툴
환경: 피해가 발생한 라이브시스템, 자동화로 아티팩트는 이미 수집 완료
1. 메모리 덤프 파일 프로필 정보 확인
이미 자동화로 생성된 메모리 덤프 raw 파일이 있음
해당 디렉토리에서 cmd를 입력하면 현재 경로에서 실행할 수 있다
메모리가 추출된 버전에 따라 자료구조, 오프셋 등 구조가 다르기 때문에
프로필, 버전을 확인할 필요가 있다
→ imageinfo : 이미지 파일 프로필 정보 확인
filepath..\..\Memory> volatility25 -f memory.raw imageinfo
suggested profile을 보면 어떤 버전인지 알 수 있고
이걸 volatiliy25 명령어에 추가하면 된다
volatility25 -f memory.raw --profile=Win7SP1 x86 + option
++
유저 영역과 커널 영역으로 나뉘는데, 이 중 커널 영역에 있는
_EPROCESS 영역에는 volatility가 필요로 하는 PID, PPID 등 중요한 정보가 많음.
2. 프로세스 목록 추출하기(feat. pslist 명령어)
volatility25 -f memory.raw --profile=Win7SP1 x86 pslist> pslist.txt
이렇게 실행하고 나면 pslist.txt가 생성되어 있을 것이다.
같은 디렉토리 내에 정말 pslist.txt가 있다
이제 파일 내용을 살펴보자
오프셋, 프로세스 이름, PID, PPID, 생성시간 등
분석에 필요한 정보들이 추출된 것이 확인된다
3. 프로세스 트리 목록 추출하기(feat. pstree 명령어)
pstree 명령어를 사용하면 프로세스의 부모자식 관계를 파악할 수 있다
volatiliy25 -f memory.raw —profile=Win7SP1x86 pstree> pstree.txt
명령어를 실행하고 나면
마찬가지로 pstree.txt 파일 역시 성공적으로 만들어졌다!
파일의 내용 분석과 악성코드 판별은 다음 실습에서
4. 로드된 dll 목록 및 경로 정보 추출하기(feat. dlllist 명령어)
volatiliy25 -f memory.raw —profile=Win7SP1x86 dlllist> dlllist.txt
명령어> 파일명 이런 형식으로 위의 형식으로 실행하면
로드된 dll의 경로 정보뿐만 아니라 실행 파일 자체의 경로정보도 확인가능
5-1. 프로세스 이미지 덤프 및 버전정보 추출(feat. prodump 명령어)
실행파일이 시작되면 메모리에 로드되고, 이 상태의 프로세스를 덤프하는 것이므로
가장 중요하다고 할 수 있음 → 버전정보, 자료구조 등의 정보가 있다
\Memory> mkdir dumpdir
\Memory> volatility2.5 -f memory.raw --profile=Win7SP1x86 procdump -D dumpdir
\Memory> sigcheck64 -a -c .\dumpdir > sigcheck.csv
dumpdir라는 디렉토리를 먼저 만들고
> prodump라는 Volatility 플러그인으로 프로세스 이미지를 추출함
> -D dumpdir는 해당 디렉토리에 프로세스의 이미지를 저장한다는 것
> Sysinternals의 도구에 해당하는 sigcheck는 dumpdir 내 파일의
디지털 서명/버전 정보를 확인해 sigcheck.csv 에 저장함
5-2. sigcheck에 대해 더 알아보자
sigcheck
: signcheck의 약어, Microsoft window의 PE 파일은 프로그램의 신뢰성 증명을 위한 서명정보가 있는데
sigcheck 명령어를 사용하면 서명 정보를 확인할 수 있다
sigcheck64 -a -c .\dumpdir
-a: 모든 세부 정보 표시(파일 버전, 서명, 제품 이름 등)
-c: csv 형식으로 출력하라는 것
→ dumpdir 디렉토리 내에 있는 모든 파일의 모든 세부 정보 표시를 csv 형식으로 출력하는 명령어
cmd 창에서 표기되어서 가독성이 좋지 않다
이전처럼 csv 파일로 변환해 보자
sigcheck64 -a -c .\dumpdir > sigcheck.csv
실행하기
sigcheck.csv라는 파일이 성공적으로 생성되었고
형식 역시 가독성이 더 좋아졌다
내용 분석은 다음 실습에서!
'악성코드 분석' 카테고리의 다른 글
맬웨어 식별 훈련 :: 오피스 문서의 포맷 이론 (0) | 2025.02.15 |
---|---|
맬웨어 식별 훈련 :: 악성파일의 구성요소 (0) | 2025.02.14 |
맬웨어 식별 훈련 :: 프로세스 이상징후 분석 실습 (0) | 2025.02.13 |
맬웨어 식별 훈련 :: 정보추출 이후 프로세스 이상징후 분석 실습 (0) | 2025.02.12 |
맬웨어 식별 훈련 :: 윈도우 단말의 악성코드 유입 경로와 이상징후 식별/분석 방법 (0) | 2025.02.11 |