이 글은 Volatility 메모리 포렌식에 Criminal IP 위협 인텔리전스 데이터를 사용하는 방법을 다룹니다. 위협 인텔리전스 데이터가 연동된 Criminal IP Volatility 플러그인을 설치하고 실행하는 방법을 설명합니다. 

Criminalip-Volatility3 플러그인에 대한 소개는 Criminal IP Volatility 통합 사례와 Criminal IP 공식 깃허브 저장소를 참고할 수 있습니다.

Criminalip-Volatility3 플러그인 설치 방법

1. Criminal IP Volatility 통합 사례 페이지에서 플러그인 다운받기

Criminal IP API 통합 사례 페이지에서 Volatility를 확인할 수 있습니다.

Criminal IP Volatility 플러그인
Criminal IP API 통합 사례 페이지 화면, Volatility와의 연동 사례가 소개되어 있다

Criminal IP API 통합 사례 페이지에서 Volatility 로고를 클릭하면 Volatility와 어떻게 통합이 되었는지와 더불어 플러그인에 대한 간단한 소개 및 사용 방법이 설명되어 있습니다. 

Criminal IP Volatility 플러그인
Criminal IP API와 Volatility의 통합 사례

다음은 Criminalip-Volatility3 플러그인을 다운 받기 위해 깃허브로 이동합니다. API 통합 사례 페이지 우측 상단의 “깃허브 바로가기” 버튼을 클릭하세요.

깃허브에 접속 후, Code 버튼을 클릭하면 ZIP 파일을 다운로드 할 수 있습니다.

Criminal IP Volatility 플러그인
Criminal IP 공식 깃허브에서 Criminalip-Volatility3 플러그인 ZIP 파일을 다운로드

2. 다운로드 받은 플러그인 파일을 Volatiltiy3 폴더에 설치

ZIP 파일을 다운로드 후 압축 파일을 풀어줍니다. 압축을 푼 Criminalip-Volatility3-Plugins-main 파일에 존재하는 Criminlaip 폴더가 Criminalip-Volatility3 플러그인 코드가 포함된 부분입니다.

이 Criminlaip 파일을 복사하여 voltaility3 폴더의 /volatility3/volatility3/plugins에 붙여넣습니다. 

Criminal IP Volatility 플러그인
/volatility3/volatility3/plugins 폴더에 붙여넣은 Criminalip 폴더

3. DB 구성으로 Criminalip-Volatility3 플러그인 설정 완료

플러그인 코드가 존재하는 Criminlaip 파일을 해당 위치에 옮겼다면 이제 DB를 구성합니다. 먼저, alembic을 설치해야 합니다.

pip install alembic
alembic init practice

alembic 설치가 완료되었다면, alembic.ini 파일에서 sqlalchemy.url 를 찾아 아래 이미지와 같이 변경합니다.

  • 변경 전: sqlalchemy.url
  • 변경 후: sqlalchemy.url = sqlite:///db_file.db
Criminal IP Volatility 플러그인
sqlalchemy.url의 내용을 찾아 sqlalchemy.url = sqlite:///db_file.db 로 변경

간혹 모든 환경 설정을 완료한 이후에도 DB에 내용이 존재하지 않는다고 나온다면 alembic.ini 파일 3번재 줄의 이름이 alembic으로 되어 있는지 확인합니다. 만약 이름이 작성되어 있지 않다면 아래 이미지와 같이 alembic을 작성해 주세요.

Criminal IP Volatility 플러그인
환경 설정 이후에도 DB 내용이 존재하지 않을 경우, alembic.ini 파일의 3번 줄에 나타난 이름을 확인

alembic의 설치 및 설정이 완료되었다면, volatility3 위치에 practice 파일과 db_file.db가 존재하는 것을 확인할 수 있습니다. 이제 Criminalip-Volatility3-Plugins-main 파일에 존재하는 practice 파일과 db_file.db을  volatility3로 복사합니다.

복사가 완료되었다면 아래 명령어를 실행합니다. 아래 명령어는 데이터베이스의 현재 스키마 버전을 최신 버전으로 업그레이드하는 명령어로, 변경된 데이터베이스 스키마와 코드베이스 간의 일관성을 유지하기 위해 실행합니다.

alembic upgrade head

Criminal IP-Volatility3 Plugins의 설정이 완료되었습니다. 이제 플러그인을 실제로 활용해 보겠습니다.

Volatility 메모리 덤프 파일 생성

Windows를 기준으로 메모리 덤프 파일을 생성해보도록 하겠습니다. 덤프 파일을 생성하기 위해서 FTK Imager를 사용합니다. FTK Imager를 실행하면 아래와 같은 화면을 확인해 볼 수 있습니다. 이 화면에서 빨간색으로 표시된 부분을 클릭합니다. 

메모리 캡쳐 팝업창이 생성된 것을 확인할 수 있습니다.이 화면에서 덤프 파일로 만들고 싶은 부분의 영역을 Browse를 눌러 선택합니다. 이때, 덤프 파일명은 원하시는 이름으로 변경하셔도 됩니다.  모든 선택이 완료되었다면 Capture Memory 버튼을 클릭합니다.

만약 Capture Memory를 클릭한 후에 아래 이미지와 같은 팝업창이 나온다면 FTK Imager를 관리자 권한으로 실행한 후 메모리 덤프 파일 생성 절차를 다시 따라해 주시면 됩니다.

Capture Memory를 눌렀을 때 정상적으로 아래와 같은 화면이 나온다면 메모리 캡쳐가 정상적으로 이루어지고 있는 것입니다.

Status가 100%가 되면 Status 부분에 Memory capture finished successfully 라는 문구가 나오는 것을 볼 수 있습니다. 해당 문구가 나와 있다면, 팝업창을 닫아주세요. 

이제 덤프 파일이 생성된 C:\<설정된 경로>\에서 파일이 생성되었는지 확인해 보면, 아래 이미지의 빨간색 박스에 표시된 것과 같이 덤프 파일이 생성되어 있는 것을 확인할 수 있습니다.

이제 생성된 덤프 파일로 Criminalip-Volatility3 플러그인을 실행해 보겠습니다. 

Criminalip-Volatility3 플러그인 실행

Criminalip-Volatility3 플러그인은 다음과 같이 두 가지 구성으로 구분됩니다. IP 주소와 관련된 정보를 확인할 수 있는 “criminalipip” 플러그인과 악성 URL을 간단하게 식별할 수 있는 “criminalipdomain” 플러그인입니다.

이 두 플러그인을 통해 악성 정보만을 식별하고 싶다면 “criminalipip” 플러그인에서는 “malIP” 옵션을 사용하고, “criminalipdomain” 플러그인에서는 “malD” 옵션을 활용하여 악성 정보를 검출할 수 있습니다.

1. criminalipip 플러그인을 통해 악성 IP 주소 정보 식별

메모리 덤프 파일 내에서 확인한 외부 IP 주소의 위험도를 Criminal IP에서 진단한 정보를 통해 확인할 수 있습니다.

python vol.py -f "<dumpfile_name.mem>" Criminalip.criminalipip
Criminal IP Volatility 플러그인

–malIP 옵션을 사용하여 위험도가 높은 정보만을 추려내어 표시합니다.

python vol.py -f "<dumpfile_name.mem>" Criminalip.criminalipip --malIP
Criminal IP Volatility 플러그인

2. criminalipdomain 플러그인을 통해 악성 URL 정보 식별

프로세스의 가상 메모리에 존재하는 URL의 위험도를 Criminal IP에서 진단한 피싱 정보를 통해 확인할 수 있습니다. 

Criminal IP Volatility 플러그인

-malD 옵션을 사용하여 위험도가 높은 정보만을 추려내어 표시합니다.

만약, 더 직관적으로 악성 정보를 확인하려면 ‘–Hardware’ 옵션을 추가할 수 있습니다.

Criminal IP Volatility 플러그인

이렇게 Criminal IP API가 연동된 Volatility 플러그인의 설치 및 실행 방법을 살펴보았습니다. Criminalip-Volatility3 플러그인의 설치 방법은 Criminal IP 공식 유튜브 채널의 영상을 통해서도 확인하실 수 있습니다. 

다음 아티클에서는 Criminalip-Volatility3 플러그인을 실제 메모리 분석에 활용한 사례를 소개하도록 하겠습니다.


이 글은 사이버 위협 인텔리전스 검색엔진 Criminal IP의 데이터를 바탕으로 작성되었습니다. Criminal IP Volatility 통합 사례와 Criminal IP 공식 깃허브를 참고하여 메모리 포렌식에 유용한 Criminalip-Volatility3 플러그인을 실행할 수 있습니다.

관련 글: