웹사이트 검색

휘발성 메모리 포렌식 도구 설치 및 사용 방법


이 페이지에서

  1. 메모리 형식 지원\n
  2. 무결성 검증
    1. MalwareBytes

    맬웨어 분석의 중요한 부분 중 하나는 RAM(Random Access Memory) 분석입니다. 손상된 시스템에서 실행 중인 악성 프로세스, 네트워크 활동, 열린 연결 등을 식별하는 데 도움이 됩니다. 이 문서는 휘발성 메모리 분석을 위한 오픈 소스 보안 도구 "Volatility"에 관한 것입니다. 32/64비트 시스템 RAM 분석에 모두 사용할 수 있으며 Windows, Linux, Mac 및 Android 시스템 분석을 지원합니다. Volatility Framework는 Python 스크립팅 언어로 구현되며 Linux 및 Windows 운영 체제에서 쉽게 사용할 수 있습니다. 크래시 덤프, 원시 덤프, VMware 및 VirtualBox 덤프를 분석하는 데 사용됩니다. 추출 기술은 조사 중인 시스템과 완전히 독립적으로 수행되며 시스템의 런타임 상태에 대한 완전한 가시성을 제공합니다. 따라서 이 기사는 변동성 도구를 사용한 RAM 메모리 덤프의 포렌식 분석에 관한 것입니다. 휘발성의 "malfind\ 플러그인은 악성 프로세스를 덤프하고 분석하는 데 도움이 됩니다. 또 다른 휘발성 플러그인인 "cmdscan\은 손상된 시스템의 마지막 명령을 나열하는 데 사용됩니다. 이번 포렌식 조사에서는 "virustotal\ 및 "payload security\ 웹사이트와 같은 온라인 리소스를 사용하여 결과를 검증합니다. 결국 Windows Defender 및 Malware Bytes는 악성 프로그램을 검사하는 데 사용됩니다.

    메모리 형식 지원

      \n
    • 원시/패딩된 물리적 메모리
    • 파이어와이어(IEEE 1394)
    • 전문가 증인(EWF)
    • 32비트 및 64비트 Windows 크래시 덤프\n
    • 32비트 및 64비트 Windows 최대 절전 모드
    • 32비트 및 64비트 MachO 파일
    • Virtualbox 코어 덤프\n
    • VMware 저장 상태(.vmss) 및 스냅샷(.vmsn)
    • HPAK 형식(FastDump)\n
    • QEMU 메모리 덤프\n

    설치

    Volatility 도구는 Windows, Linux 및 Mac 운영 체제에서 사용할 수 있습니다. Windows 및 Mac OS의 경우 독립형 실행 파일을 사용할 수 있으며 다음 명령을 사용하여 Ubuntu 16.04 LTS에 설치할 수 있습니다.

    apt-get install volatility

    메모리 분석

    이 튜토리얼에서는 Volatility 도구의 독립 실행형 실행 파일을 사용하여 Windows 플랫폼에서 원시 메모리 덤프의 포렌식 분석을 수행합니다. 조사 과정에서 포렌식 조사관이 손상된 하드 디스크에서 여러 악성 프로그램을 발견하는 것이 일반적입니다. 따라서 손상된 시스템에서 악성 프로그램이나 맬웨어가 실행될 수 있으므로 이러한 이벤트에서 메모리 분석이 매우 중요해집니다.

    무결성 검증

    악성 시스템 메모리 덤프의 MD5 해시는 다음과 같습니다. 포렌식 분석을 시작하기 전에 획득한 이미지를 검증하기 위해 계산됩니다.

    MD5:               ee043142485a83f4d49a3a7899408500             

    변동성 분석

    Volatility 도구는 PC가 감염되었는지 여부를 확인하는 데 사용됩니다. 알려진 바와 같이 악성 프로그램은 메모리 덤프에서 실행 중인 프로세스에서 추출될 수 있습니다. 따라서 먼저 덤프된 메모리 이미지에 대해 지원되는 "프로필\을 식별해야 합니다. 아래와 같이 이미지에 대한 "프로필\을 식별하는 데 다음 명령이 사용됩니다.

    "E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" imageinfo -f memdump3.raw

    따라서 "imageinfo\ 명령에 의해 다음 두 프로파일이 제안됩니다.

    Win7SP0x86 , Win7SP1x86

    이제 아래 언급된 명령은 메모리 덤프에서 실행 중인 프로세스 목록을 가져오는 데 사용됩니다.

    "E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 pslist -f memdump3.raw

    1 부

    2 부

    Volatility 도구의 "pslist\ 플러그인은 메모리 덤프의 프로세스를 보여줍니다. 위의 출력에서 볼 수 있듯이 "0KqEC12.exe\ 및 "rdpclip.exe\와 같은 프로그램은 Windows OS의 새로운 프로그램입니다. Windows OS용 악성 또는 새 응용 프로그램일 수 있습니다. 마찬가지로 여러 "iexplore.exe\ 프로그램도 의심스러워 보입니다.

    따라서 다음 명령의 목적은 프로세스를 트리(부모/자식) 형식으로 표시하는 것입니다. 그러면 상위 프로세스와 프로세스의 연결이 표시됩니다. 악성 프로그램의 상위 프로세스를 식별하는 데 도움이 됩니다.

     "E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 pstree -f memdump3.raw

    1 부

    2 부

    Volatility 도구의 "pstree\ 플러그인의 위 출력에서 볼 수 있듯이 프로세스는 PID 및 PPID와 함께 표시됩니다. 피해 시스템에 대한 추가 조사를 위해 악성 프로그램을 강조 표시했습니다. 이제 "malfind\ 플러그인(이는 프로세스에서 악성 DLL을 탐지하는 데 사용됨) Volatility는 강조 표시된 프로세스에 대해 사용됩니다.

    프로세스 ID: 1120(svchost.exe)

    Malfind 스위치가 포함된 다음 명령은 "output\ 디렉터리에 악성 DLL을 덤프하는 데 사용됩니다.

     E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-1120 -p 1120 -f memdump3.raw

    아래와 같이 malfind 플러그인에서 dll을 찾을 수 없습니다.

    프로세스 ID : 1788(rdpclip.exe)

    PID 1788로 동일한 명령을 다시 실행하여 프로세스의 DLL을 추출합니다. 그러나 플러그인에서 DLL을 찾을 수 없습니다.

    E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-1788 -p 1788 -f memdump3.raw

    프로세스 ID : 2104(explorer.exe)

    아래와 같이 PID "2104\로 다음 명령을 실행하고 malfind는 프로세스에서 DLL을 추출합니다.

     E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2104 -p 2104 -f memdump3.raw

    malfind 플러그인의 출력은 악성 프로세스의 추출된 DLL 덤프를 보여줍니다.

    프로세스 ID : 2240(0kqEC12.exe)

    malfind 플러그인은 PID "2240\에서 실행되고 있으며 Windows OS에서 의심스러운 것으로 보입니다.

    E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2240 -p 2240 -f memdump3.raw

    PID "2240\에 대한 malfind 플러그인의 출력은 아래와 같습니다.

    프로세스 ID: 2840(ieexplore.exe)

    PID "2840\에 대한 Volatility 도구의 출력은 아래와 같습니다.

     E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2840 -p 2840 -f memdump3.raw

    이 프로세스도 Windows 프로세스 "ieexplorer\와 같은 이름을 사용하기 때문에 악의적인 것으로 보입니다.

    프로세스 ID : 2364(ieexplore.exe)

    마찬가지로, malfind는 PID가 "2364\인 악성 프로그램 "iexplore\에 대해 실행됩니다.

     E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2364 -p 2364 -f memdump3.raw

    PID "2364\에 대한 malfind 덤프는 아래와 같습니다.

    프로세스 ID: 3728(ieexplore.exe)

    아래와 같이 악성 프로그램 덤프를 위한 휘발성 플러그인이 PID "3728\에 대해 실행됩니다.

     E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-3728 -p 3728 -f memdump3.raw

    다음 스냅샷은 PID "3728\에 대한 malfind 플러그인 덤프를 보여줍니다.

    스캔 결과

    악성 프로그램 덤프는 Windows Defender 및 Malware 바이트를 사용하여 스캔합니다.

    윈도우 디펜더

    Windows Defender의 검사 결과는 아래와 같으며 \Trojan:Win32/EyeStye.N” & \Trojan: Win32/EyeStye.plugin”으로 식별됩니다.

    트로이 목마의 세부 정보는 다음과 같습니다.

    이 트로이 목마는 키 입력을 기록하고 인터넷 활동을 모니터링하며 특정 로그인 자격 증명을 도용한 다음 금전적 이익을 위해 캡처한 데이터를 원격 공격자에게 보냅니다. 추가 맬웨어를 다운로드하고 웹 브라우저 보안을 낮추며 루트킷을 사용하여 악성 활동을 숨길 수 있습니다[2]. 악성 코드는 탐지 및 제거를 방해하기 위해 코드 삽입을 사용합니다. "EyeStye.N\이 실행되면 cmd.exe 및 explorer.exe와 같은 실행 중인 프로세스에 코드를 삽입할 수 있습니다.

    우리의 분석은 악성 프로그램 "iexplore.exe\의 부모인 "explorer.exe\ 프로그램에 악성 프로그램이 주입되었음을 보여줍니다.

    MalwareBytes

    다음 스냅샷은 MalwareBytes도 추출된 DLL을 악성으로 감지하고 이름을 "Trojan.Grabber\로 지정했음을 보여줍니다.

    명령 기록(CMD 기록)

    Volatility 도구의 또 다른 플러그인은 시스템에서 실행되는 명령 기록을 스캔하는 "cmdscan\입니다. 다음 명령의 결과는 손상된 PC에서 실행되는 명령 기록을 보여줍니다.

     E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 cmdscan -f memdump3.raw

    "cmdscan\의 출력은 공격자가 명령 프롬프트에서 여러 명령을 실행하고 악성 프로그램 "ieexplorer.exe\ 및 "ieplore.exe\를 실행했음을 보여줍니다. 위 출력에 표시된 또 다른 의심스러운 항목은 "_lt112.spn입니다. . 온라인 리소스에서 검색한 결과 악성 프로그램과 연결되어 있음을 보여줍니다.

    _lt112.spn 파일

    분석가는 인터넷에서 "_lt112.spn” 문자열을 검색하여 다음 사이트에서 찾았습니다.

    네트워크 연결

    메모리 분석에서 네트워크 연결을 찾을 수 있으므로 "netscan\ 플러그인이 메모리 이미지에 대해 실행되고 그 결과 악성 프로그램 "iexplore\가 피해자 시스템에서 여러 연결을 열었음을 보여줍니다.

     E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 netscan -f memdump3.raw

    1 부

    2 부

    3부

    따라서 자세한 메모리 분석 결과 피해자 시스템에서 "explorer.exe\ 및 "iexplore.exe\로 실행되는 맬웨어로 PC가 손상되었음을 알 수 있습니다. 또한 악성 프로그램 "iexplore.exe\가 피해자 시스템의 포트 80에서 연결되고 있음을 보여줍니다.

    참조

    1. http://www.volatilityfoundation.org/24
    2. https://www.microsoft.com/security/portal/threat/encyclopedia/entry.aspx?Name=Trojan:Win32/EyeStye.N