Registry Forensic, Tool 소개 게시魄杯

Registry...

포렌식 전문가가 아니더라도 이미 많이 익숙한 내용이라 생각한다.
시스템 최적화를 위하여, 혹은 보안 문제로 인해서 접해 봤을텐대...
레지스트리에는 정말 잡다한 정보가 많이 저장되고 있다. 마치 하나의 새로운 File
system처럼 내부적으로 규칙을 가지고 있는대, 심지어 삭제된 키값의 대한 정보도
여전히 포함되어 있다. 마치 삭제 파일의 내용이 디스크에 남아 있는 것처럼..

아무튼 레지스트리란 조사자 입장에서 고마운 존재다. 메모리 포렌식의 시대라 흥분하며
말했었지만, 그와 또 다른 시야를 확보 할 수 있도록 하여 준다.뭐 워낙 좋은 정보 창고란
부분에 대해 별다른 이견이 없으리라 생각한다.

이 소중한 Registry 포렌식에 대해 깊이 공부 하고자 한다면, 그쪽의 대가 Carvey의 도움
을 받는게 좋다. Windows Forensic Analysis가 좋은 시점이 될것이고(기왕이면 엊그제
발매된 WFA 2E를 보는게 좋겠다. 이거 선물로 주고 싶은 사람은 주저 없이 댓글 좀..-_-;;)
또한 그가 IBM에 쓴 "The Secrets Of Registry Analysis Revealed" 이란 글은 필독을
권장한다. 이정도만 알아도 충분할듯...

Carvey의 글에 따르면 레지스트리에서 기본적으로 발견할것으로 기대 되는 정보는
아래와 같다. 시스템 관련 설정과 유저 활동 관련 사항이다.
– Application settings
   • Download directories (P2P applications)
   • Recently accessed files (images, movies, etc.)
– AutoStart locations
   • Applications that start w/ little or NO user interaction
– Attached USB devices (thumb drives, ext HDD, digital cameras, etc.)
– User activity
   • MRUs
   • Viewed documents or images
   • Applications installed or launched (UserAssist keys)

Registry는 일반 File System과 흡사하게 timestamp가 찍히게 되어 있다.
물론 대부분 lastwritten 값만 적히고 그도 안적히는 것도 있긴하지만, 시간정보가 남는
데이터는 log로 쓸수 있다는 사실도 흥미롭다. 아래는 일부 registry 파일의 파싱 결과이다.
UserAssist (Active Desktop)
Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\
{75048700-EF1F-11D0-9888-006097DEACF9}\Count
LastWrite Time Fri Aug 27 15:46:13 2004 (UTC)
Fri Aug 27 15:46:00 2004 (UTC)
    UEME_UISCUT (42)
Fri Aug 27 15:42:40 2004 (UTC)
    UEME_RUNPATH (76)
    UEME_RUNPATH:::{871C5380-42A0-1069-A2EA-08002B30309D} (14)
    UEME_RUNPATH:C:\Program Files\Internet Explorer\iexplore.exe (14)
Fri Aug 27 15:34:54 2004 (UTC)
    UEME_RUNPATH:C:\Program Files\Ethereal\ethereal.exe (1)
Fri Aug 27 15:33:02 2004 (UTC)
    UEME_RUNPATH:C:\Program Files\Cain\Cain.exe (2)
이를 예를 들어 보면 Cain의 최종 실행 시간은 2004.8.27 15:33임을 알 수 있다.
그리고 이러한 프로그램들중 가장 마지막 실행 활동에 대한 시간은 같은 날 15:46임을
알수있는 것이다. 이 내용을 처음 보시는 분들은 이쯤에서 눈물 흘리시는 분들...
계실지도 모르겠다-_-;; registry는 그것이 가지고 있는 정보 자체 뿐 아니라 그안에 같이
박혀있는 timestamp를 이용하여 일종의 log 파일로도 활용가치가 매우 높다 하겠다.

이러한 공부를 한 이후에 드는 갈증은 역시 좋은 툴이 뭘까 하는 것 아닐까 싶다.
아직 레지스트리 분석에 관심을 갖지 않으셨던 분들께 좋은 참고자료가 될까 싶어
몇가지 도구들을 캡쳐를 해보았다.

Encase
모든 포렌식 전문가들에게 거의 표준으로 자리 한 Encase, 하지만 기존의 Table view에
맞추려다 보니깐 레지스트리 분석은 좀 병맛이 된듯-_-; 다음과 같이 간단하게 마운트 해서
확인 할 수 있다.

노드를 눌러보면 아래처럼 값을 확인 할수 있는대, 기존의 레지스트리 뷰어와 많이
다르기도 하고 보는게 엥간히 불편한게 아니다.


끔찍하다-_-;;
문제는 이렇게 마운트를 시켜두면 다른 분석에도 방해가 된다는 점이다. 노드 갯수가 늘어
나면서 화면 전환이나 프로세싱에 아무래도 부하가 걸릴수 밖에 없다.

자체적으로 제공하는 분석 스크립트가 있지만 레지스트리를 분석한다기 보다 레지스트리의
몇가지 특정 키값으로부터(MRU나 네트워크 설정등) 특정 정보를 긁어오는 식이기에
활용도가 떨어질 수밖에 없는게 아쉽다. 물론 자체적으로 레지스트리를 핸들링 할수 있는
object를 제공하므로 script를 새로 만들어 주면 편하게 활용 가능하다고 하지만, 아무래도
접근성이 딸리는건 사실...

FTK-Registry Viewer
그 유명한 Registry Viewer... 제대로 써본적도 없고 라이센스도 없고, 해서 자료를 AD
홈피에서 좀 퍼왔다.일단 데모 버젼으로도 대충 볼순 있으나 중요한 Report 기능이
막혀 있으므로 제대로 쓸 순 없다. 기존의 regedit와 유사한 UI를 제공 하면서 분석을 위한
정보들이 아래쪽에 배치 되서 꽤 편하게 볼 수 있다.

써보질 않아서 뭐라 말하긴 힘들지만 테스트 했던 것중 가장 좋아 보였다.

Paraben의 Registry Analyzer
일단 레지스트리 파일을 읽어들일때 오류가 나면서 다 못불러온걸로 봐서 좀 신뢰성이
많이 떨어진다고 보여진다-_-;;역시 홈페이지 자료를 일부 가져왔다.

아래처럼 시스템의 레지스트리를 읽어와주기도 한다.

가장 맘에 들었던 것은 아래처럼 기 등록된 키들에 대해서 빠르게 분석이 가능한 점이다.

Report view에서 그 내역을 확인 할수 있다.

처음 불러오는 문제 빼곤 이부분은 정말 맘에 드는 것 같다.

Regripper
Carvey가 몇가지 분석용 스크립트를 Perl로 만들었다가 그를 위한 프레임 웤?인
Regripper을 만들어서 공개했다. Registry 파일을 읽어와서 하위 폴더인 plugins을
뒤져서 안에 옵션으로 넘겨준 플러그 인들을 실행하여 준다. 각 플러그인들을 묶어서
모듈로 실행할 수도 있다 carvey가 기본적인 건 대부분 공개해줬고 각 레지스트리
타입마다 실행할 모듈도 묶어놨기 때문에 별다른 설정 없이 쓸수 있다. all 모듈만
열어서 주석 처리만 지워주면 될듯?


cui 기반의 프로그램이지만, GUI 도구도 제공해준다. 위에 hive 파일을 넣고
그 아래 report 출력 파일 지정하고 플러그인 선택하고 run 시키면 된다.

위에서 지정한 파일로 결과 값이 들어가고 실행 로그는 동일 파일명.log에 저장된다.
출력을 보면 정말 끝내주는 것을 알 수 있다.

뭐 어느 하나만 써야 할 필요가 없기 때문에 각각의 도구를 적절히 사용하면 좋을 것 같다.
개인적으론 regripper을 많이 쓴다.
특별한 키를 분석하기 위해서는 적절한 perl 스크립트를 만들어 넣어주면 된다.

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://ykei.egloos.com/tb/4970319 [도움말]

핑백

덧글

덧글 입력 영역


간단 메모








내 전자서재
encykei[at]gmail[dot]com