LiME

Digital Forensic Wikipedia
DFRC (토론 | 기여)님의 2015년 1월 25일 (일) 17:17 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 가기 검색하러 가기

소개[편집]

LiME은 Joe Sylve가 만든 툴이며 리눅스뿐만 아니라 안드로이드와 같은 리눅스 기반 디바이스의 메모리를 덤프 할 수 있다. 안드로이드의 메모리를 처음으로 Full Dump를 한 도구이며 TCP를 통해서도 메모리를 덤프할 수 있다. 메모리를 획득하는 과정에서 Kernel과 User간의 상호작용을 최소화하여 획득 도구에 의한 메모리의 훼손을 최소화 시켰다. LiME은 다음의 웹페이지(https://code.google.com/p/lime-forensics/downloads/list) 에서 다운로드 할 수 있다.

사용법[편집]

LiME을 다운받은 후 압축을 푼 디렉터리의 아래의 src폴더에서 make를 하여 커널 모듈을 만든다. [그림 1]은 make를 한 결과화면이다.



[그림 1] LiME make 결과화면



make 결과 lime-2.6.32-38-generic.ko라는 파일명의 커널 모듈이 생성된 것을 확인할 수 있다. 이 커널 모듈을 이용하여 메모리 이미지를 획득할 수 있다. root 권한이 필요하므로 “sudo insmod lime-2.6.32-38-generic.ko path=/tmp/memory.lime format=lime” 명령어를 입력하여 /tmp 위치에 이미징을 할 수 있다. "File exists"에러가 발생하면 “rmmod lime”을 입력하여 모듈을 언로드 후 다시 실행하면 동작한다. [표 1]은 LiME의 이미징 명령어 형식이다.



[표 1] LiME 이미징 명령어 형식
명령어 비고
insmod [모듈이름] path=[파일명] format=lime root 권한으로 실행



파일명 부분에 파일명이 아닌 "tcp:7777"을 입력하여 7777번 포트로 이미지를 원격지로 인터넷을 통해 전송할 수 있다. 원격지에서는 “nc localhost 7777 > ram.lime”으로 이미지를 전송을 대기 한다. 그 후 메모리 이미징을 하는 컴퓨터에서 "insmod lime-2.6.32-38-generic.ko path=tcp:8891 format=lime"을 입력하여 8891번 포트를 이용하여 이미지를 보내도록 한다. 그 후 “nc localhost 8891 | nc [원격지 ip 혹은 도메인] 7777”을 입력하여 원격지 서버의 7777번 포트로 이미지를 전송한다. [그림 2]는 LiME의 파일로 이미징을 한 결과이다.



[그림 1] LiME 이미징 결과화면



물리 메모리의 이미징 후 “rmmod lime”을 입력하여 LiME 모듈을 언로드하면 메모리 획득 과정이 종료된다. [표 2]는 LiME의 옵션에 관한 표이다.



[표 2] LiME의 포맷 옵션
옵션 설명 비고
path 파일경로와 파일이름 혹은 tcp:<port> 필수 옵션
format raw RAW 포맷 이미지 필수 옵션
padded 예약영역을 ‘0’으로 패딩
lime LiME 포맷 이미지
dio 1 다이렉트 I/O를 통하여 이미징 Default 값
0 다이렉트 I/O 비활성



path와 format은 필수 옵션이다. path를 이용하여 물리 메모리 이미지를 파일로 저장할 수 있으며 또한 인터넷을 통하여 원격지 서버로 전송할 수 있다. format은 메모리 이미지의 포맷을 결정하는 옵션이다. dio는 물리 메모리에 바로 접근하여 이미징하는 것이 디폴트 값으로 설정되어 있으며 1은 활성, 0은 비활성이다.

도구기능[편집]

LiME은 별도로 파일을 크기를 확인하지 않고 바로 메모리 이미징을 할 수 있고 Fmem과 달리 옵션이 존재한다. 이미징을 진행할 때 최소한의 메모리를 사용하는 것이 LiME의 장점이다. 모든 옵션이 정상 작동한다.

제한사항[편집]

커널 모듈명과 명령어가 길다는 단점 외에는 별다른 제한사항이 존재하지 않는다. 2013년 3월 이후 업데이트가 존재하지 않기 때문에 최신 커널에서 사용할 경우 주의가 필요하다.

수사 활용 방안[편집]

현장에서 메모리 이미지를 획득할 때 LiME은 최소한의 메모리를 사용하도록 설계하여 메모리 이미지를 타 제품에 비해 적게 훼손한다는 점을 활용하여 이미징을 할 수 있다. 또한 dd를 이용한 메모리 덤프가 아니기 때문에 2.6 버전 이상의 리눅스 커널에서 작동이 가능하다.