2008년 07월 23일
리눅스 메모리 포렌식 방법들...
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)








☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
기존의 툴들을 계속 발전시켜나가면서 cowork 한다는게 참 멋있네요.
라우팅캐시 테이블도 그렇고 결정적 증거를 쉽게 찾을 수 있네요.
말레이시아로 자료를 유출했군요.
전 패킷만 좀 분석하고 다른건 못했습니다.
전에 말씀드렸을때 문제 함 풀어본다고 하시지 않았어요? ㅋ
여튼 disk carving 에서 패킷분석, windows memory, linux memory.
앞으로는 내부임직원들 기밀자료유출시도하기가 더 힘들어질것 같습니다.
메모리분석된 자료가 실시간으로 중앙에서 모니터링될테니까요.
재밌어질거 같습니다.
그나저나 시간되시면 8월에 함 컨퍼런스 다녀오세요.
이번만큼 포렌식 선수들 다 모인 적이 없습니다.
전 영어가 짧아서 t.t 그냥 발표자료보는걸로 일단 족하고 다음에 ㅋ
저녁에 재밌는 게임도 있고 접..
그건그렇고, 위 연구자료는 모두다 제 강의자료가 되겠습니다. ㅋㅋㅋㅋㅋ
강의자료가 별거 있나요 원서나 해외자료 좀 정리해서 소화하고 대충 제 경험 섞어서 정리하고 실습 포함하고
마지막에 그동안 배운 기법들 다 풀어볼 수 있도록 프로젝트 이미지 던져주고 보고서 발표로 마무리지으면
아직 좀 부족하지만 게속 개선해가고 있습니다.(ㅋ 광고 --; 아직 좀 부족허죠^^)
그나마 제가 다양한 해킹시도를 할 수 있어서 직접 해킹당한 이미지를 만들어서 분석자료로 계속 활용해나가려고 합니다.
나중에 한 10회쯤 되면 매년 가지 않을까요? 휴가삼아...
하시는 강의 한번 꼭 수강하고 싶네요..
아 제 강의는 아직 개발중이고 현 수준은 선수들이 듣기엔 너무 쉬워서 안됩니다. t.t
허니넷구축이나 방법론적인 측면, 법, 체계 이런게 많이 빠져있어서요. 여튼..
~외로워하지 마시구요. 계속 놀러올게요~
매번 들려주셔서 감사합니다.__)