Digital Forensics/EnCase2010. 11. 29. 00:25
반응형

 

9.   Hash Analysis

 

9-1.       Hash 함수

-      임의의 메시지를 입력 받아 고정된 사이즈의 결과값을 출력한다. 고정된 사이즈는 어떤 알고리즘을 사용하느냐에 따라 달라짐 MD5 128비트이다.

-      h=H(M)    :   Hash value 또는 Message Digest(메시지 요약)를 사용하는

이유는 대체로 메시지 사이즈보다 Hash 사이즈가 작고, 동일한 메시지에 대해 항상 같은 결과가 나오기 때문이다.

-      h가 주어졌을 때 메시지 M의 내용이나 M과 관련된 어떠한 정보도 계산해 내거나 추출할 수 없는 단방향성을 지니고 있다. , 역함수가 없다.

-      Collision-resistance(메시지는 다른데 결과값이 같은 경우)는 거의 없다.

eg.  MD5) 1 / 340,282,366,920,938,463,463,374,607,431,768,211,456

 

 

9-2.       Digital Forensic 에서 Hash 함수의 용도

-      증거의 무결성을 검증하기 위해 사용한다.

디지털 증거는 조금이라도 조작되었을 경우 크게 다른 결과를 가져올 수 있으므로 무결성을 검증하는 것이 매우 중요하다.

 

 

9-3.       Hash 분석의 방식

  Negative Hash analysis

      1. 의의
        • Known-good hash set을 이용하는 hash 분석 방법
      1. 조사방법
        • 증거이미지에 포함된 파일의 hash값을 모두 발생
        • Known-good hash set과 비교하여 매칭되는 파일을 조사 목록에서 제거

 

  Positive Hash analysis

      1. 의의
        • Known-bad hash set을 이용하는 hash 분석 방법
      1. 조사방법
        • 증거이미지에 포함된 파일의 hash값을 모두 발생
        • Known-bad hash set과 비교하여 매칭되는 파일을 모두 조사

 

9-4.       Hash set

의의  : 선택한 파일의 해쉬값을 모아놓은 DB

종류

      1. Known-good Hash set

·         정상적인 파일의 hash 값 집합

·         조사할 필요가 없는 파일의 hash값의 Data Base

·         OS의 버전이 다양하기 때문에 만들기 힘들다.

·         c.f) NSRL(National Software Reference Library) : 미국의 NIST 산하에서 프로젝트로 만든 known-good hash set으로서, 우리나라 환경에는 잘 맞지 않지만 매우 유용하게 사용될 수 있다. 우리나라도 환경에 맞는 known-good hash set이 필요하다. (참조 : http://www.nsrl.nist.gov/)

                                     ii.        Known-bad Hash set

·         해킹에 사용된 툴, 악성코드 등 조사할 필요가 있는 파일의 hash값의 Data Base

 

9-5.       Empty파일(size 0인 파일) 제거

-      컴퓨터 상에는 size 0인 파일이 많은데, 이는 특정 파일이 특정 프로그램의 존재여부와 관련된 경우와 같이 조사가 필요한 특별한 경우가 아니면 조사할 필요가 없다.

-      Encase는 기본적으로 비어있는 파일에 대한 Hash값을 가지고 있다.

-      Hash 분석을 하면 기본적으로 Hash set에서 Empty file으로 분류한다. Category known으로 분류되어 있다.

-      c.f) Size 0인 파일 만들기 : (Windows) Fsutil file createnew [파일명] [size]

(Linux) touch [파일명]

 

 9-6.       Hash set 생성 실습 (Hash set은 생성 후 Rebuild 필요)

① View - hash set 에서 hash sets 탭을 만든다.

 

 

② Cases entry에서 해시 값 만들 파일들을 선택한 후 Search 기능 이용하여 hash값 만들어낸다.

// Selected items only  : 선택된 파일만

Compute hash value  : hash값 생성

 

// 다음과 같이 선택된 파일에 한해서 Hash Value가 도출된 것을 볼 수 있다.

 

 

③ Hash set 탭에서 New 기능을 통해 Hash set 추가

   (도출된 Hash값을 Known으로 등록)

      1. New hash set에서 Category Notable, Known 두 가지만 사용하는 것이 좋다. 이는 Guidance 권고사항으로, Enscript가 이 두 가지 Hash set을 가정하고 작성된 것이 많기 때문에 이를 활용하기 위함이다.

                                     ii.        Known  : Known-good Hash set

Notable : Known-bad Hash set

 

 

             // Hash Set이 만들어졌다.

Encase가 설치된 폴더의 Hash Sets 폴더에 저장되며, 복사 가능하다.

 

 ④ Rebuild 필요

Hash set 생성 후 당장은 사용이 안 된다. 해당 Hash set을 체크한 후 Rebuild 하거나(우클릭- Rebuild Library) 다시 껐다 켜야 한다.

 

 

9-7.       Hash set을 이용한 조사 실습 (Conditions 활용)

필요한 Hash set 선택 후, Search- Compute hash value 체크 -> Search!

 

우측 하단의 필터 pane을 이용하여 조사 파일의 양을 줄일 수 있다.

예를 들어, Hash category known인 것은 제거할 수 있다.

 

Condition : 해당 조건에 맞는 데이터만 보는 것이 가능하다.

(Enscript로 이루어짐. C++ 문법과 유사함)

 

 ③ Known Files 는 제외하고 필터링한 결과

 

 

④ Query 버튼을 누르면 조건이 적용된다.

 

선택적 적용은 Display 탭에서 체크한다.

 

  

 

참고 : Hash 카테고리 Known 인 파일을 제외시키는 Condition 만들기

                                      i.        New Condition (Name : Remove Known Files)

 

                                     ii.        함수 추가 New

(Properties : Hash Category, Operator : equal to, Value : Known)

 

 

                                   iii.        Not 적용

 

                                    iv.        직접 입력하여 생성된 Condition

 

                                     v.        이를 Run 해보면, Known Files는 제외되는 것을 볼 수 있다.

 

           // 적용 전

 

                     // 적용 후  : Known Files 가 보이지 않음

 

 

반응형
Posted by CCIBOMB