6) 키워드 검색 / Base64 Decode
Last updated
Last updated
Autopsy에서 키워드를 미리 입력하여 검색하는 방법과 색인을 통해 보다 쉽게 검색이 가능하도록 하는 기능이 있습니다.
이를 활용하여 실제 시험에서 어느정도 파일 구조와 시나리오 등이 익숙해졌을 때 필요한 검색 기능을 활용하는 것을 추천합니다. 다만 검색의 경우 상당히 오랜 시간이 소요되기 때문에 감안하고 활용해야 합니다.
파일명, 확장자와 같이 테이블에서 확인되는 속성들을 검색하여 봅시다. 우측 하단에서 Condition 탭에서 User 폴더 선택 후 New를 선택하여 검색 조건을 추가하여 봅시다.
- Function Name에서 검색조건 명을 설정할 수 있으며 - Properties에서 검색하고자 하는 속성을 선택 한 뒤 - Operator에서 속성을 어떻게 검색할 수 있는지 선택할 수 있습니다. - Value 에서 해당 내역들을 추가할 수 있습니다. Name을 Find로 설정 후 Value에 검색할 키워드를 여러 개 추가할 수 있습니다. (기타 옵션들은 직접 해보시면 금방 이해할 수 있을 것입니다.)
검색할 대상들은 Filter 대상(Current View, Current device, All Evidence Files)을 선택할 수 있습니다. 일반적으로는 플래이트를 선택하여 하위 파일을 모두 Table에 표시한 상태에서 추가한 Condition 1 을 더블클릭 한 뒤 Filter - Current View를 선택 후 OK를 눌러 검색을 진행할 수 있습니다.
검색 결과를 확인할 수 있으며 [Filter : Condition 1]을 클릭 할 경우 뒤로 Condition Filter를 종료하여 이전 상태로 확인이 가능합니다.
이런 Condition을 저장해 놓고 여러 폴더를 돌아가면서 검색하거나 아래와 같이 최상위를 선택한 뒤 한번에 검색도 가능합니다.
실제 시험에서는 특정 파일명, 확장자, 용량 등을 알게 되어 검색이 필요한 경우 활용할 수 있습니다.
최근에는 출제되지 않고 있으나, 해시값을 이용한 검색을 하는 법을 알고 있어야 합니다. 먼저 전체 파일에 대한 해시값 계산을 먼저 해야 합니다. 프로세스 기능을 이용하여 전체 파일을 대상으로 해시값을 획득할 수 있습니다.
프로세스 옵션에서 Hash analysis를 체크 합니다. 만약 시험에서 SHA256, SHA512 해시값을 찾아야 하거나 답안 작성에 활용해야 할 경우 Hash analysis를 선택하여 옵션을 추가할 수 있습니다.
프로세스가 끝난 후 [Refresh]를 클릭 시 해시값 내용 확인이 가능합니다.
또는 몇 개의 파일만 먼저 해시값 획득을 할 수 있습니다. 해시값을 계산할 파일만 먼저 체크한 뒤 우클릭 - Entries - Hash\Sig Selected 를 선택합니다.
필요한 해시값 부분을 체크 한 뒤 OK 를 눌러 진행합니다.
해시값 계산 이후 [Refresh]를 선택 하면 계산된 해시값을 확인할 수 있습니다. 소수의 파일들은 매우 빠른 속도로 계산이 되기 때문에 유용하게 사용할 수 있습니다.
Condition을 새로 추가한 뒤 MD5를 선택 후 해시값을 한번 검색해보도록 하겠습니다. 해시값의 경우 find Operator이 없어 Matches 를 선택 후 해시값을 입력하여 검색에 활용하여 봅시다.
해당 Condition을 적용해보면 금방 검색결과를 확인할 수 있습니다.
키워드 검색의 경우 저장매체 전체를 대상으로 키워드 검색 해야 할 경우 프로세스를 시작하여 검색을 할 수 있습니다.
Search for Keywords 클릭 하여 검색할 키워드를 추가해야 합니다. 키워드 리스트 관리 메뉴에서 New를 선택하여 키워드를 추가합니다.
추가할 키워드를 입력 합니다. 또한 옵션으로 UTF8, Unicode를 체크하고 Code Page에서 Korean 도 체크합니다.
New를 이용하여 키워드 여러개를 추가한 뒤 OK를 선택합니다.
추가로 옵션들이 있는데 파일시스템 구조나 분석 대상을 상세히 파악한 뒤에 사용여부를체크하시는 것을 추천합니다. 상당히 시간이 많이 걸리거나, 추가 설정 이후 활용할 수 있습니다.
Search entry slack: 파일의 Slack 공간(남은 할당 공간)을 검색하여, 이전 데이터의 흔적이나 숨겨진 데이터를 찾음.
Undelete entries before searching: 삭제된 파일 및 디렉토리를 복구하여 검색에 포함.
Use initialized size: 파일의 초기화된 크기만을 기준으로 검색하여, 불필요한 더미 데이터나 비활성화된 공간을 무시하고 검색.
Search only slack area of known items in Hash Library: 해시 라이브러리에 등록된 파일의 Slack 영역만 검색하여, 숨겨진 정보나 악성 코드 등을 탐지.
검색 키워드 리스트 등록 후 프로세스에서 OK를 눌러 진행합니다. 키워드 검색은 많은 시간이 소요되기 때문에 충분한 시간을 확보한 뒤에 진행해야 합니다.
View - Keyword Hits 창에서 검색 결과를 확인할 수 있습니다. 키워드의 Items 의 경우 키워드가 검색된 파일의 개수이고 Hits의 경우 파일에서 어떤 부분이 검색된 것인지 표시가 되고 있습니다. 해당 숫자를 누른 뒤 파일을 클릭 한 뒤 하단의 Hex, Text, Trascript 등에서 확인이 가능합니다. 만약 잘 보이지 않는 경우 Codepage를 바꿔가면서 확인해봐야 합니다.
이제 선택한 파일만을 대상으로 키워드 검색을 할 수 있는 기능을 알아보도록 하겠습니다.
먼저 특정 폴더를 선택 한 뒤 [Raw Search Selected] - [New Raw Search Selected]를 선택합니다.
ex) 아래 경로
C\Users\web-bit\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\
프로세스 키워드 리스트 추가와 동일한 방식으로 키워드를 추가합니다.(UTF8, Korean 체크) OK를 눌러 검색을 진행할 수 있습니다.
다른 파일을 선택 후 동일한 키워드 검색이 필요할 경우 체크 후 Raw Search Selected 1로 저장한 키워드 리스트를 선택하면 검색을 동일하게 할 수 있습니다.
소수의 파일을 대상으로 키워드 검색을 하였기 때문에 키워드 검색이 금방 완료되었을 것입니다. View - Keyword Hits 창에서 검색 결과를 확인할 수 있습니다. Raw Search Selected 1 폴더내에서 검색한 결과를 확인할 수 있습니다.
Raw Search Selected의 경우 프로세스에 의한 검색보다 빠른 검색이 가능합니다. 아래와 같이 원하는 경로 내의 파일내에서 검색이 가능하기 때문에 아래와 같이 다양한 방면으로 활용하는 것을 추천합니다.
색인 검색(Index Search)은 디지털 포렌식 분석 시 대량의 데이터를 신속하게 검색하기 위해 사용되는 중요한 기능입니다. 색인 검색은 키워드 검색과 관련이 있으며, 색인(Index)을 사전에 생성해 놓고 이 색인을 기반으로 검색 작업을 수행하는 방식입니다. 이를 통해 대량의 데이터에서도 빠르고 효율적인 검색이 가능합니다. 실제 시험에서는 정말 필요한 분석을 빠르게 마무리 하고 바로 색인 검색해두는 것을 추천합니다. 다만 Index 검색의 경우 한글 등을 완벽히 지원하는 것은 아닐 수 있으니 참고용으로 활용해야 하며 정확한 건 키워드 검색으로 하는 것이 좋은거 같습니다. (EnCase 버전, 윈도우 버전에 따라서 결과가 정상적으로 안되는 케이스도 있었습니다.ㅠㅠ)
색인 검색 기능 활용을 위해 프로세스를 실행 해보도록 하겠습니다.
[Index text and metadata] 클릭하여 Default, Chinese, Japanese, and Korean을 선택 합니다. Enabled 를 체크 한 뒤 OK 클릭하여 진행합니다.
색인 프로세스가 끝나면 View - Indexed Items 에서 검색 및 결과를 확인할 수 있습니다. 검색창([Run] 버튼 밑에 창) 에 키워드 입력 후 [Run]을 클릭하거나, 엔터를 입력하면 검색 결과가 하단에 출력 됩니다.
Logic 옵션을 통해서 조건을 추가할 수도 있습니다. 다만 키워드 검색에서는 검색이 되었던 부분이 Index에서는 검색되지 않을 수 도 있습니다. 유니코드로 저장된 "포렌식", "010-1111-2222" 이런건 평문으로 저장되어 있는데도 검색이 안되는 경우도 발생하네요!!
색인 검색은 사용해보시면 알겠지만, 파일명 검색등을 빠르게 하는데 상당히 도움이 되는걸 알 수 있을 것입니다. 일일이 검색을 하는게 아니기 때문에 검색어가 계속 바뀌거나 추가될 경우에 매우 유용할 수 있을 것입니다.
Base64는 주로 텍스트 기반 시스템(예: 이메일, URL, JSON)에서 이진 데이터를 안전하게 전송하거나 저장하기 위해 사용됩니다. 빈도가 많은 것은 아니지만 기출 문제 중에서 Base 64로 인코딩 되어 있는 것을 해석하는 문제도 출제된 적이 있기 때문에 살펴보도록 하겠습니다.
Encase에서는 Base64로 되어 있는 부분을 디코딩 해주는 기능이 포함되어 있습니다. 다만 한글의 경우 파악이 어려울 수도 있으며, 이 경우 윈도우의 기능을 이용하여 분석해볼 수 있습니다. Base 64의 특징으로는 "영문~~~==" 이런 구조를 가집니다. 뒤에 "=" 또는"=="이 있는 경우가 많습니다. 이러한 경우 Base64 디코딩 시도를 해볼 필요가 있는 것입니다.(다만 필수는 아닙니다.)
D드라이브의 "5. Base64인코딩" 폴더에서 text.txt를 살펴보겠습니다. Text에서는 한눈에 보기에는 잘 알아보기 어려운 데이터가 있습니다. 이 부분을 드래그하여 선택 후 우측 Decode - Text - Base64 Encoded를 선택하면 우측에 디코딩한 내용을 확인할 수 있습니다.
만약 위의 방식으로 내용을 확인할 수 없을 경우 해당 파일을 선택하여 우클릭 - Entries - Copy Files를 선택하여 파일을 추출하여 봅시다. 추출한 파일이 있는 폴더에서 Shift + 우클릭을 한 뒤 [여기에 PowerShell 창 열기] 를 선택합니다.
이 후 아래 명령어를 입력하여 base64를 해석한 파일을 만들 수 있습니다.
> certutil -decode "base64 파일" "원하는 파일명"
> certutil -decode text.txt 디코딩.txt
생성된 파일을 열어보면 base64가 해석되어 있습니다.
EnCase에서 내용 확인이 어려운 경우 이 방식으로 내용 확인이 가능합니다.
실제 시험에서는 아래와 같이 JPG의 끝(FF D9) 뒤에 Base64로 데이터를 숨겨서 특정 값을 저장하는 경우가 있었습니다.
만약 파일을 추출한 뒤 HxD를 이용하여 FF D9 뒷부분을 복사하여 새 파일로 복사 붙여넣기 하여 저장한 뒤 certutil
명령어를 이용하여 디코딩 해볼 수 있을 것입니다.
base64 인코딩 방식의 경우 인터넷에서 많이 사용하는 방식이며, 이를 디코딩 하여야 하는 문제가 출제되었습니다. 다만 Encase와 같은 상용 도구가 아닌 시험에서 제공하는 무료도구에서는 base64를 디코딩 하는 방법이 없어서 윈도우 certutil 기능을 활용해야 합니다.