리눅스 메모리 포렌식 방법들...

Volatile Systems Blog : Linux Memory Forensics

포스트를 보면 꽤 다양한 방법이 나오는데, 각각 상황에 맞게 가장 최적화 된 방벙을
쓰면 좋을 것 같다. DFRWS 2008 Challenge를 가지고 다양한 접근 방법에 대하여
쭉 이야기 한것 같은데, 영양가 있는 내용이 많다.(난 문제도 아직 못읽었는데- _-
스포일러 당한건가;;)

내용이 너무 길기 때문에, 대충 생략하고 최근 들어 관심 갖은 Volatility 부분만 본다면,
이것은 파이썬으로 작성된 휘발성 정보를 추출하는 오픈 소스 모듈화 프레임 웍이다.
이 아키텍쳐는 크게 Address Spaces, Objects and Profiles, Data View 모듈의 3가지
부분으로 나뉜다.

Address Spaces는 다양한 파일 포맷과 프로세스 아키텍쳐를 지원하게 해준다.
Objects는 Address Spaces의 어떠한 데이터를 말하며 Profile을 통하여 다양한
시스템 커널에서 정의되는 Objects 형태로 정의하여 사용한다.
Data View Modules는 데이터가 위치한 곳을 찾을 수 있는 알고리즘을 제공한다.
몇가지 명령어가 가능한데 살펴보면 (원문링크에 가면 자기가 실행한 결과를 다 올려놨다 :)
나는 대표적으로 ps만 캡쳐를 떠서 링크해보면 다음과 같다.
Strings: 익히 알고 있듯 'printable character'를 찍어준다.
linident/lindatetime: 메모리 안에 있는 가치 있는 정보를
          제공한다.GMTDATE에 대응하여 보여주기도 한다.
linps: 시스템에서 동작중인 프로세스를 뽑아낸다.
linpsscan: linps와 비슷하지만, 물리 주소 공간까지 뒤져서
           더 자세히 뽑아낸다.
linmemdmp: 특정프로세스를 위해 자동으로 주소 공간을
           재구성하고 전체 접근 가능한 메모리를 덤프한다.
linpktscan: 메모리에 존재하는 네트워크 패킷을 보여준다.
linvm: 각 프로세스와 virtual memory를 매핑하여 보여준다.
           보통 /proc 안에서 발견할 수 있는 정보이다.
linsockets: 각 작업들이 열고 있는 소켓의 정보를 보여준다.
linfiles: 각 작업의 상황과 관련되어 열려있는 파일 추출한다.
linmodules: 현재 로딩된 커널 모듈의 기본 정보를 보여준다.

뭐 이런 명령어야 help하면 다 나올테고...그냥 이런 기능을 제공한다는 것만 알면...
PyFlag에서도 지원을 해주니 어찌 눈물을 안날수가 있으리오...

다만 이런 프로젝트에 한국인들도 좀 적극적으로(국가적 지원을 통해?) 참여한다면
국내 환경도 지원을 충분히 할수 있을텐대 그렇게 쉽게 하는 방법보다 꼭 완전 새로 첨부터
만들려는 시도를 하는 방식을 택하는 것 같던대...난 그거 반댈세....' -'

저런 프로젝트에서 중요부분을 담당해서 열심히 하면 국내 환경에서도 연동이 잘되는
좋은 범 세계적인 툴을 가질수가 있는데 어찌 어렵게 돌아가려는 걸까@_@
아무튼 이 방법 외에도 원문에 다양한 방법이 올라와 있으니 한번씩들 보시면 도움이 되실듯

ps:redhat crash 툴은 redhat 계열에서만 돌아가려나?-_- 요샌 데비안 계열도 엄청 많아지던대
아무튼 crash는 첨보던 툴인데 꽤 인상적이였다.

by 용기백배 | 2008/07/23 19:14 | 트랙백 | 덧글(4)

트랙백 주소 : http://ykei.egloos.com/tb/4504448
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by ww0jeff at 2008/07/24 09:11
아침에 주욱 봤는데요. 역시 대단한 연구!
기존의 툴들을 계속 발전시켜나가면서 cowork 한다는게 참 멋있네요.

라우팅캐시 테이블도 그렇고 결정적 증거를 쉽게 찾을 수 있네요.
말레이시아로 자료를 유출했군요.
전 패킷만 좀 분석하고 다른건 못했습니다.
전에 말씀드렸을때 문제 함 풀어본다고 하시지 않았어요? ㅋ

여튼 disk carving 에서 패킷분석, windows memory, linux memory.
앞으로는 내부임직원들 기밀자료유출시도하기가 더 힘들어질것 같습니다.
메모리분석된 자료가 실시간으로 중앙에서 모니터링될테니까요.
재밌어질거 같습니다.

그나저나 시간되시면 8월에 함 컨퍼런스 다녀오세요.
이번만큼 포렌식 선수들 다 모인 적이 없습니다.
전 영어가 짧아서 t.t 그냥 발표자료보는걸로 일단 족하고 다음에 ㅋ
저녁에 재밌는 게임도 있고 접..


그건그렇고, 위 연구자료는 모두다 제 강의자료가 되겠습니다. ㅋㅋㅋㅋㅋ
강의자료가 별거 있나요 원서나 해외자료 좀 정리해서 소화하고 대충 제 경험 섞어서 정리하고 실습 포함하고
마지막에 그동안 배운 기법들 다 풀어볼 수 있도록 프로젝트 이미지 던져주고 보고서 발표로 마무리지으면
아직 좀 부족하지만 게속 개선해가고 있습니다.(ㅋ 광고 --; 아직 좀 부족허죠^^)
그나마 제가 다양한 해킹시도를 할 수 있어서 직접 해킹당한 이미지를 만들어서 분석자료로 계속 활용해나가려고 합니다.
Commented by 용기백배 at 2008/07/28 20:04
발티모어요? -_ㅜ 가려면 돈과 시간과 영어 능력이 되어야 하는데 저는 3개다 부족하다죠 ㅋ
나중에 한 10회쯤 되면 매년 가지 않을까요? 휴가삼아...

하시는 강의 한번 꼭 수강하고 싶네요..
Commented by ww0jeff at 2008/07/29 10:09
그때부터 저랑 같이 가시면 되겠네요 ㅋㅋ

아 제 강의는 아직 개발중이고 현 수준은 선수들이 듣기엔 너무 쉬워서 안됩니다. t.t
허니넷구축이나 방법론적인 측면, 법, 체계 이런게 많이 빠져있어서요. 여튼..

~외로워하지 마시구요. 계속 놀러올게요~
Commented by 용기백배 at 2008/07/29 14:58
그때쯤 되면 간간히 좀 아시아권에서 열려야 싸게 다녀올수 있을텐대요...ㅋ
매번 들려주셔서 감사합니다.__)

:         :

:

비공개 덧글

◀ 이전 페이지다음 페이지 ▶