cridex라는 악성코드를 메모리 포렌식을 통해서 분석하는 과정이다.
메모리 분석시 사용한 도구는 volatility 이다
기본적인 명령 구조는 vol~ -f 파일명 명령이다.
pslist : 프로세스 리스트를 시간 순서대로 보여줌
psscan : 프로세스 구조체 스캔 후 출력, 숨겨진 프로세스 출력 가능
pstree : pid, ppid 기준으로 구조화하여 보여줌,
최초로 생성되는 프로세스를 제외하고, 모든 프로세스는 부모 프로세스를 복제해 생성되고 계 층관계 트리가 생긴다. 각각의 프로세스는 자식 프로세스와 부모 프로세스에 대한 정보를 가진다. PID(Process ID)는 운영체제에서 프로세스를 구분하기 위해 부여한 번호이다. PPID(Parent Process ID)는 해당 프로세스를 만든 부모 프로세스의 PID를 의미한다.
pslist는 true인데 psscan 은 false인 경우 숨겨진 프로세스라고 의심 가능하다.
Volatility -f <이미지파일> --profile
=Suggested Profile pslist / psscan / pstree / psxview > pslist / psscan / pstree / psxview.log
connections : 현재 연결된 tcp 통신에 대한 정보
connscan : 풀 태그 스캐닝 방식을 사용해 연결을 파악하고 종료된 연결까지 파악 가능
netscan : 메모리의 네트워크 정보, 프로세스 정보 출력
sockets : tcp, udp를 포함한 모든 프로토콜 출력, 현재 listening 상태에 있는 소켓 출력
volatility -f <이미지 파일> --profile=<프로파일 명> connections > connections.log
volatility -f <이미지 파일> --profile=<프로파일 명> connscan
cmdscan, consoles : 콘솔에 입력한 값들을 볼 수 있음. cmdscan은 cmd.exe가 실행한 명령을 나열하고 consoles는 명령이 성공했는지 안 했는지 알 수 있음
cmdline : 프로세스가 실행될 때의 인자 값을 확인할 수 있음
volatility -f <이미지 파일> --profile=<프로파일 명> cmdscan > cmdscan.log
volatility -f <이미지 파일> --profile=<프로파일 명> consoles > consoles.log
volatility -f <이미지 파일> --profile=<프로파일 명> cmdline > cmdlines.log
filescan : 메모리 내에 존재하는 모든 파일들의 리스트 출력
dumpfiles : 파일을 덤프, 옵션으로 메모리 주소, 프로세스 줄 수 있음
virtustotal 사이트는 바이러스 검사를 할 수 있는 사이트이다.
volatility -f <이미지 파일> --profile=<프로파일 명> filescan > filescan.log
volatility -f <이미지 파일> --profile=<프로파일 명> dumpfiles -Q <메모리주소> -D <저장 할 디렉토리>
volatility -f <이미지 파일> --profile=<프로파일 명> memdump -p pid -D <저장할 디렉토리>
volatility -f <이미지 파일> --profile=<프로파일 명> procdump -p pid -D <저장할 디렉토리>
explorer.exe가 바이러스입니까? 전혀 그렇지 않다. 진정한 explorer.exe 파일은 "Windows 탐색기"라고하는 안전한 Microsoft Windows 시스템 프로세스입니다. 그러나 바이러스, 웜 및 트로이 목마와 같은 맬웨어 프로그램 작성자는 프로세스에서 탐지를 피하기 위해 동일한 파일 이름을 사용합니다
Reader_sl.exe는 PDF로 작성, 보기, 수정 및 인쇄하기 위해 Adobe에서 만든 소프트웨어 및 웹 서비스 인 Adobe Acrobat에 속한 실행 파일입니다.
위 사진을 보면 알 수 있다 싶이 숨겨진 파일은 없다
cmdline을 살펴보면 경로도 살펴보았다. 두 파일 모두 원래 있어야 하는 경로에 있다. 무슨뜻이냐면, explorer.exe는
이는 windows 경로 밑에 있어야 한다.
하지만 위 두파일이 가장 의심되는 파일이기 때문에 procdump 및 dumpfile을 통해서 파일을 추출하고 바이러스토탈에 돌려보았다. 결과는 아래와 같다.
악성코드로 의심할 수 있는 수준이다.
connections의 결과이다. pid 1484 즉 explorer.exe는 41.168.5.140을 통해서 통신을 하고 있다. 더 세부적인 분석을 하기 위해서 memdump을 통해서 string 분석을 할 것이다.
위와 같은 41.168.5.140:8080/zb/v_01_a/in/ 과 같은 웹사이트 주소를 발견했다. 아마도 웹 사이트를 통해서 explorer.exe는 통신하는 것이 아닐까 싶다.
이후 다양한 은행 관련 주소를 찾았다. 아마도 은행 관련 피싱 악성코드로 의심된다.
어도비 관련된 api을 찾았다. 이는 브라우저에 추가 기능 해주는 것이다.
메일 관련된 다양한 함수를 찾았다. 아마도 감염된 컴퓨터를 통해서 추가적인 악성코드를 퍼트릴려고 하는 것 갔다.
41.168.5.140과 통신하는지 확인하고 연결되어 있다면 프로그램이 작동하는 것 갔다.
메일을 보내는 함수를 찾은 것 갔다.
악성코드가 어떤것인지 의심되는 부분을 추출을 성공했지만, 구체적으로 어떤방식으로 악성코드가 작동되는지 파악하는 것에는 한계점이 있다. 그렇기에 악성코드를 추출하고 정적 동적 분석을 실해야한다.
추가적으로 악성코드가 이메일을 통해서 침투되었다고 의심은 할 수 있지만 실질적으로 어떻게 침투되었는지는 메모리 포렌식만을 통해서 알아내기는 힘들 것 같다.
이러한 침해사고대응을 잘 대응하기 위해서는 포렌식 기술 뿐만아니라 다양한 정보보안 지식이 있어야 할 것 같다.
유익한 글이었습니다.