Yet Another Registry Utility(YARU)

Digital Forensic Wikipedia
둘러보기로 가기 검색하러 가기

소개[편집]

레지스트리 분석 도구인 Yet Another Registry Utility (이하 YARU로 칭한다.)의 제조회사는 미국에 위치한 TZWorks이다. 해당 도구는 누구나 제조회사의 다운로드 페이지에서 도구를 무료로 다운을 받을 수 있지만, 도구를 사용하려면 라이선스가 반드시 필요한 상용 소프트웨어이다. 한번 라이선스를 구입을 하면 1년 동안 도구를 사용 할 수 있다. [그림 1]과 [그림 2]는 라이선스의 설치 유무에 따른 시작 화면이다. 해당 도구를 이용하여 분석하고자 하는 대상의 레지스트리의 하이브 파일을 수집하여 분석 할 수 있고, 미리 수집한 하이브파일을 입력하여 레지스트리를 분석을 할 수 있다. 할당된 영역 혹은 비할당된 영역에서 찾고자하는 키 값(이름, 날짜 스트링 등)을 검색 할 수 있고, Hex로 덤프, 비교, 로그파일 생성 등의 기능을 이용할 수 있다.

[그림 1] 라이선스 없이 YARU 실행 화면
[그림 2] 라이선스 구입 및 설치 후 YARU 실행 화면



사용법[편집]

YARU는 GUI(Graphic User Interface)의 도구이다. [그림 3]을 보면 첫 번째 메뉴 모음 창에서는 레지스트리 파일을 읽어 들이거나, 도구 화면에 데이터가 표시되는 방법 선택, Key의 이름, 값, 패턴 등의 검색, reg파일 비교, 덤프, 도구 사용의 로그 생성 등의 기능을 이용 할 수 있다. 두 번째로는 Registry Key화면은 도구의 왼쪽에 위치하는데 일어들인 레지스트리들의 Tree구조로 보여준다. 해당 레지스트리의 키를 선택하면 오른쪽 화면인 Key/Valur Data에 정보가 출력된다.

[그림 3] YARU의 설명 화면



도구기능[편집]

총 3가지의 기능이 있다. 첫 번째 분석 대상의 파일 입력 기능, 두 번째 화면에 데이터 표시 방법 선택하는 기능, 세 번째 검색, reg 파일 비교, 덤프, 로그 생성 기능이 있다. 이 3가지의 기능에 대해서 살펴볼 것이다. 첫 번째 대상의 파일 입력 기능이 있다. 분석대상의 파일은 레지스트리의 정보가 담겨 있는(미리 추출한) 하이브 파일과 이미지파일, Vmware 디스크 파일, Cmd파일로 이 중 1개를 선택하여 입력 할 수 있다. [그림 4]처럼 도구의 상단 메뉴 중에 File메뉴를 클릭하고, 입력하고자 하는 파일을 하나를 선택 하여 도구에 입력 할 수 있다.

[그림 4] 입력할 파일 형식을 선택하는 화면

[그림 5]는 Vmware 디스크로 도구에 입력 선택 했을 때의 해당 Vmware 디스크에서 레지스트리의 하이브 파일 중 어떤 하이브 파일을 추출할지 선택 할 수 있는 메뉴가 나타난 화면이다.

[그림 5] vmdk의 하이브 파일 선택 화면

분석 대상의 하이브 파일을 추출을 하면 도구 화면에 해당 하이브 파일이 디렉터리 트리 구조로 볼 수 있다. [그림 6]은 SAM 하이브 파일을 불러들인 예이고, 빨간 네모 박스부분처럼 할당영역과 미할당영역으로 디렉터리 트리 구조로 보이게 된다.

[그림 6] SAM 하이브 파일을 선택한 화면

살펴보고자 하는 키를 Registry Keys 화면에서 클릭하면 Key/Value data 화면에 키에 대한 자세한 정보인, 키의 생성 시간, 소유자 등에 대한 내용을 확인 할 수 있다. 두 번째 화면에 데이터 표시 방법 선택 기능이 있다. 살펴보고자 하는 키의 정보를 도구의 화면에 ‘로우 데이터’도 보이게 할 것인지에 대한 선택을 할 수 있다. 도구의 메뉴 창에서 View를 클릭하면 Interpreted data와 Interpreted w/raw를 선택 할 수 있다. Interpreted data를 선택을 하면 선택한 키에 대한 로우 데이터가 화면에 보이지 않는다. Interpreted w/raw를 선택하면 선택한 키에 대한 로우 데이터가 화면에 보이게 된다. [그림 7]은 Interpreted data를 선택 하였을 때의 화면이고, [그림 8]은 Interpreted w/raw를 선택 하였을 때의 화면의 예이다.

[그림 7] 화면 출력 방식을 Interpreted data로 선택한 화면

Interpreted w/raw를 선택하면 아래 그림에서 빨간 네모 박스로 처리된 부분인, 로우 데이터도 화면에 추가적으로 출력한다.

[그림 8] 로우 데이터로 선택 화면

세 번째 검색, reg 파일 비교, 덤프, 로그 생성 기능이 있다. 도구의 메뉴창의 Options을 통해 검색, 비교, 덤프, 로그 생성 등의 기능을 이용 할 수 있다. [그림 9]를 통해 Options 메뉴에 어떤 기능들이 있는지 알 수 있다.

[그림 9] Options 메뉴를 클릭한 화면

할당 영역에서는 Find key name, Find key date range, Find all dates in range, Find value name, Find All Strings, Find pattern, Find unlinked chunks을 통해 다양한 검색을 할 수 있다. [그림 10]은 Options 메뉴에서 지원하는 검색 방법들을 보여주는 화면이다.

[그림 10] 검색 방법을 선택하는 화면

Find key name는 찾고자 하는 키의 이름으로 검색하는 방법이다. 아래 [그림 11]과 Find key name 메뉴를 클릭하면 직접 검색하고자 하는 키 이름을 입력 할 수 있는 창이 생성된다.

[그림 11] 키 이름을 입력하는 화면

예로 ‘micro’로 검색해보았고, 검색한 결과는 [그림 12]와 같다. 검색한 키 이름과 일치하는 키가 존재한다면 그 키의 경로를 알 수 있다.

[그림 12] Find key name로 검색한 결과 화면

Find key date range은 사용자가 직접 입력한 날짜 사이에 생성된 키만을 확인하고자 할 때 사용하는 검색방법이다. [그림 13]과 같이 Find key date range 메뉴를 클릭하면 날짜를 입력 할 수 있는 창이 생성된다.

[그림 13] 날짜를 직접 입력하는 화면

예로 날짜를 09/07/2013 ~ 09/07/2014로 설정하였고, 그 결과는 [그림 14]와 같다.

[그림 14] 입력한 날짜 범위 내에서 생성된 키의 화면

Find all dates in range은 모든 날짜 사이에 생성된 키를 확인하고자 할 때 사용하는 검색방법이다. Find all dates in range을 클릭하면 사용자가 따로 날짜를 입력하지 않아도 아래 [그림 15]와 같이 날짜가 이미 설정되어 있는 창이 나타난다. 물론, 사용자가 직접 날짜를 설정 할 수 있다.

[그림 15] 전체 날짜가 입력된 화면

예로 이미 설정되어 있는 전체 날짜인 09/09/2004 ~ 09/07/2014로 검색한 결과는 [그림 16]과 같다.

[그림 16] 전체 날짜 범위에 Key가 출력된 화면

Find value name은 사용자가 입력한 문자열을 포함하고 있는 키를 찾을 때 시용하는 검색 방법이다. Find value name 메뉴를 클릭하면 [그림 17]과 같이 문자열을 입력하는 창이 생성된다.

[그림 17] 문자열을 입력하는 화면

예로 문자열을 ‘Color’로 검색한 결과는 [그림 18]과 같다. Color를 포함하고 있는 키의 이름과 경로가 결과 화면에 나타났다.

[그림 18] Color를 검색한 화면

Find All Strings은 문자를 포함한 모든 키를 검색하는 방법이다. 따로 사용자가 지정하는 옵션 창은 없고, Find All Strings을 클릭하면 문자를 포함한 모든 키가 검색된다. 아래 [그림 19]는 검색 결과의 예이다.

[그림 19] 문자를 포함한 키와 Offset와 경로가 검색된 화면

Find pattern은 특정 패턴을 포함한 문자열이나 offset으로 찾고자 할 경우에 사용하는 검색 방법이다. Find pattern 메뉴를 클릭하면 [그림 20]과 같이 패턴 문자열 또는 Offset을 입력할 창이 생성된다.

[그림 20] 찾고자 하는 패턴 문자열 또는 Offset을 입력하는 화면

아래의 [그림 21]은 예로 패턴 문자열 입력을 000000으로 검색한 결과이다.

[그림 21] Offset, 문자열, 경로 등의 정보가 검색된 화면

Find unlinked chunks은 unlinked chunks만을 찾아주는 검색 방법이다. 따로 사용자가 지정해야하는 옵션은 없고, Find unlinked chunks을 클릭하면 unlinked chunks가 있다면 화면에 보여준다. 미할당영역에서의 검색은 Find strings, Find pattern, Find all dates in range로 3가지의 방법으로 검색이 가능하다. [그림 22]는 미할당영역에서 검색 메뉴를 보여주는 화면이다. 3가지 모두 할당영역에서 검색하는 방법과 동일하다.

[그림 22] 미할당영역에서 검색 방법을 지정하는 화면

Find strings은 사용자가 따로 문자열을 입력하는 창은 없다. Find strings을 클릭하면 자동으로 문자열을 검색하며, [그림 23]은 검색 결과의 예이다.

[그림 23] Find strings 검색 화면

Find pattern은 패턴 문자열을 입력하여 검색하는 방법이다. Find pattern 메뉴를 클릭하면 [그림 24]와 같은 입력 창이 생성된다.

[그림 24] 패턴 문자열을 입력하는 화면

패턴 문자열을 입력하면 검색을 하면 된다. Find all dates in range은 할당영역에서의 Find all dates in range 검색방법과 동일하다. [그림 25]는 Find all dates in range의 검색 결과이다.

[그림 25] 미할당영역에서의 Find all dates in range 검색 화면

할당영역과 미할당영역에서의 검색결과를 텍스트 파일 또는 바이너리 파일로 저장 할 수 있다. [그림 26]과 같이 검색 결과를 보여주는 화면에서 마우스 오른쪽 버튼을 클릭을 하면 2개의 메뉴창이 보이게 된다. 검색 결과 화면을 텍스트로 저장을 할 것인지, 바이너리 파일로 저장을 할 것인지 선택할 수 있다.

[그림 26] 결과에 대한 정보 저장 방식 선택 화면

두 개의 reg 파일을 입력하여 비교하는 기능은 [그림 27]과 같이 Options 메뉴에서 Compare 메뉴를 클릭하면 2 snapshots 메뉴를 선택해서 이용이 가능하다.

[그림 27] 2개의 reg파일 비교 메뉴 선택 화면

2 snapshots 메뉴를 클릭을 하면 [그림 28]과 같이 비교하고자 하는 2개의 reg파일을 입력을 하는 창이 생성된다.

[그림 28] 2개의 reg파일 입력 화면

예로 2개의 windows 8의 software의 reg파일을 비교해 보았다. 2개의 reg파일을 입력 한 후에 비교 결과는 [그림 29]와 같다.

[그림 29] 비교된 reg파일에서의 비교 출력 화면

2개의 reg파일에서 일치하지 않는 키와 값은 new key와 new value로 표시되어 있다. 또한 일치하지 않는 키와 값의 경로도 화면에 상세히 나타나 있다. 덤프 기능을 이용하려면, 덤프를 하고자하는 주소를 알고 있다면 이용을 할 수 있다. [그림 30]과 같이 Options 메뉴에서 Dump Hex 메뉴를 클릭하면 덤프 기능 선택이 가능하다.

[그림 30] Dump Hex 선택 화면

Dump Hex 메뉴를 클릭하면 [그림 31]과 같은 덤프를 하고자하는 시작주소를 입력, 몇 바이트만큼 덤프를 할 것인지를 입력 할 수 있는 창이 나타난다.

[그림 31] 덤프 내용 입력 화면

[그림 32]는 덤프한 결과 화면이다.

[그림 32] 덤프한 화면

YARU도구를 이용하면서 로그파일을 남길 수 있게 설정 할 수 있다. Options 메뉴에서 [그림 33]과 같이 Log on 메뉴를 클릭한다.

[그림 33] Log on 메뉴 선택 화면

Log on 메뉴를 클릭을 하면 로그 파일의 이름과 저장을 하고자하는 디렉터리를 선택 할 수 있는 창이 생성된다. 로그 파일의 이름을 따로 입력하지 않고 OK버튼을 클릭하면 로그 파일이 생성된 시간으로 파일명이 생성된다. 로그파일은 총 2개의 파일이 생성이 되는데, [그림 34]와 같이 yyyy_mm_dd_hh_mm_ss_이름.xsl 와 yyyy_mm_dd_hh_mm_ss_이름.xml가 생성된다.

[그림 34] 로그파일의 미국시간 기준 화면

2개의 로그 중에 xml파일에 로그가 기록이 되어 있다. [그림 35]는 생성된 xml 로그파일의 화면이다. 시간은 미국을 기준으로 설정되어 있다.

[그림 35] YARU도구를 이용한 로그 파일 화면

도구의 Reports 메뉴를 클릭하면, 읽어들인 하이브 파일에 대해서는 [그림 36]과 같이 Currently loaded hive, Live System, Extracted hives의 총 3가지의 메뉴를 통해 정보를 화면에 출력 도구 밖으로 내보내기 기능을 이용 할 수 있다.

[그림 36] 레포트 기능 선택 화면

Currently loaded hive 메뉴를 클릭하면 현재 읽어 들인 하이브 파일에 대한 모든 정보 화면에 출력된다. [그림 37]은 Sam 하이브 파일을 읽어 들였을 때의 결과와 [그림 38]은 Software 하이브 파일을 읽어 들였을 때의 결과이다.

[그림 37] Sam 하이브 파일의 Currently loaded hive 선택 화면

어떤 하이브 파일을 읽어 들이느냐에 따라 출력되는 정보의 결과는 각각 다르다.

[그림 38] Software 하이브 파일의 Currently loaded hive 선택 화면

Live System기능은 도구가 설치되어 있는 PC에 대한 하이브 파일들을 Password hashes, USB artifacts, Software hive, System hive, Sam, Security hive을 각각 따로 User hiveKey/Value data 화면에 출력해주는 기능이다. 이 총 6개의 하이브 파일을 한꺼번에 읽어 들이라는 것이 아니라 각각 따로 하이브 파일을 읽어 들여 더 자세하고 다양한 정보를 보여준다. [그림 39]는 Password hashes 메뉴를 클릭한 후의 결과 화면이고, [그림 40]은 USB artifacts 메뉴를 클릭한 후의 결과 화면이다. 또 [그림 41]은 Software hive 메뉴를 클릭한 후의 결과 화면이고, [그림 42]는 System hive에 대한 결과 화면이다. [그림 43]은 Sam 메뉴를 클릭 한 후 결과 화면이고, [그림 44]는 Security hive 메뉴를 클릭한 후 의 결과 화면이다. 마지막으로 User hive 메뉴를 클릭하면 [그림 45]와 같이 3개의 dat 파일 중 1개의 파일을 선택하는 창이 생성된다. 선택하고자 하는 dat 파일을 하나를 클릭하면 된다. [그림 46]은 User hive 결과 화면이다. 각각의 화면은 선택한 하이브 파일과 dat파일에 따라 화면에 출력되는 정보가 모두 다르다.

[그림 39] Password hashes 선택 화면
[그림 40] USB artifacts 선택 화면
[그림 41] Software hive 선택 화면
[그림 42] System hive 선택 화면
[그림 43] Sam 선택 화면
[그림 44] Security hive 선택 화면
[그림 45] User hive 선택 후 dat 선택 화면
[그림 46] User hive 선택 화면

시간 포맷을 설정 할 수도 있다. [그림 47]와 [그림 48]에 보이는 메뉴를 선택하여 날짜 포맷과 Time Resolution 설정이 가능하다.

[그림 47] 날짜 포맷 선택 화면
[그림 48] Time Resolution 선택 화면



제한 사항[편집]

도구 YARU는 총 2가지의 제한사항이 있다. 첫 번째 제한사항은 가장 중요한 부분인데, 그것은 사용자가 도구의 날짜 시간을 변경 할 수 없다는 것이다. 도구를 사용하는 사용자가 미국이 아닌 다른 나라에 거주하고 있는 사용자의 경우, 사용자의 나라에 맞게 시간을 변경 할 수가 있어야 한다. 그런데 YARU는 도구 제조국가인 미국에 시간이 맞추어져 있고, 사용자가 직접 날짜 시간 변경이 불가능하여 도구에서 출력되는 모든 시간의 기준은 미국의 시간으로 정해져 있다는 한계점이 있다. 두 번째 제한사항은 로그 파일이다. 로그 파일을 생성할 때 지정한 디렉터리 외에 로그파일인 xml와 로그 파일 포맷의 정보를 담고 있는 xsl을 모두 다른 디렉터리로 이동시킨 경우, xml 로그파일의 포맷이 깨져서 보이기 때문에 섣불리 로그파일의 디렉터리 이동은 해서는 안 된다는 문제점이 존재한다.

수사활용방안[편집]

이미 수집한 하이브 파일 외에 이미지 파일, vmdk파일에서도 레지스트리에 관련된 정보를 추출 할 수 있기 때문에 이미지 파일과 vmdk파일을 분석할 때 레지스트리 분석에 대해 유용하게 도구를 사용 할 수 있을 것으로 보인다. 또한 이미 수집한 하이브 파일 2개간의 비교하여 정보가 화면에 자세하게 출력이 되기 때문에 2개의 하이브 파일을 비교해야할 때 유용하게 도구를 이용 할 수 있을 것으로 보인다. 그 외에 미할당영역에서 특정 패턴을 가지는 부분을 검색해야한다든가, 특정 영역을 덤프를 해야 하는 등의 상황에서도 해당 기능들을 도구가 지원하고 있기 때문에 적절하게 사용될 수 있을 것으로 보인다.