본문 바로가기

해킹 강의/포렌식

[책 요약] 이제 시작이야! 디지털 포렌식 4장

3장에서 이야기 한것처럼 증거의 무결성을 보장하기 위해, 증거로의 모든 접근을 끊어야 한다.

USB와 같은 이동식 매체는 매우 조그만데 안에 엄청나게 많은 정보가 들어갈 수 있다. 그러므로 이런 매체를 잘 수색해야 한다.

저장매체 이외에도 근처를 관찰해서 용의자의 지식수준등을 파악하거나, 암호기능을 사용하고 있는지 파악해야 한다. 포렌식 조사관에게 있어서 암호는 큰 걸림돌이다. 쓰레기 통을 뒤지다 보면 어떤 제품을 사용하고 있는지 알 수도 있다.

휴대폰과 같은 무선 통신 기기는 원격으로 정보가 조작될 수 있다. 그러므로, 휴대폰을 끄거나, 페러데이 봉투같은 무선신호로 부터 휴대폰을 고립시킬수 있는 방법을 사용한다. 다만 휴대폰을 끄는 경우 PC와 동일하게 휴대폰에 암호가 걸려 있을 수도 있다. 

휘발성의 순서대로 증거 수집의 우선순위를 정하는 것도 좋다. 일반적으로 휘발성이 가장 강한 증거 먼저 수집하는 것이 좋다. 휘발성의 순서는 다음과 같다.

  • CPU, 캐시 및 레지스터 데이터
  • 라우팅 테이블, ARP 캐시, 프로세스 테이블, 커널 통계
  • 메모리
  • 임시 파일 시스템/스웝 공간
  • 하드 디스크에 있는 데이터
  • 원격에 있는 로그 데이터
  • 아카이브 매체에 있는 데이터

모든 것을 문서화해야 한다고 3장에서 언급한 바있다. 문서화를 위해서는, 사진과 노트가 주로 쓰이고, 비디오도 사용되는 경우가 있다. 문서는 사건 현장에 도착하는 순간부터 시작되어서, 일반적으로 현장에 도착한 날짜와 시간 그리고 현장에 있는 사람들을 기록하면서 문서화를 시작한다. 그리고 증거들을 정확하게 묘사해야 한다. 증서의 상태, 증거의 종류, 생산자, 모델, 시리얼 번호 등, 또한 기기의 전원이 켜져있는지 기기가 다른 기기와 연결되어 있는지 등을 기록해야 한다. 특히 연결상태의 경우 잘 문서화를 해두고, 증거가 필요시 랩에서 모든 시스템이 재구성 될 수 있도록 문서화해야 한다. 

사진은 멀리서부터 가까운 곳까지 거리에 따라 사진을 찍어야한다. 사진은 많이 찍을 수 있지만, 사진 찍을 기회는 한번 뿐이니 열심히 찍어둔다. 특히 증거와 함께 자를 찍은 사진이 있을 수 있는데, 이 경우, 자를 두지 않은 사진도 찍어야 한다. 

증거에 대해서 상세히 기록을 해야 오랜 시간(몇 달에서 길면 몇 년)뒤에 법정에 섰을 때, 기억을 상기시켜줄 수 있다. 여기에 전적으로 의존해야 하므로, 무조건 상세히 적어야 한다.

연계보관성은 증거가 법정으로 보내지기 전까지 여러 사람의 손을 거치게 되는데, 이 때 그 과정들을 상세히 기록해야만 증거의 신뢰성을 높일 수 있다.

증거를 습득하면, 이니셜, 날짜 그리고 사건 번호등으로 표시한다. 유성펜을 이용하여 기록이 사라지지 않도록 해야 한다. 이런 과정은 법정에서 증거를 인증하는데 도움이된다. 이런 증거들을 증거 봉투에 봉인할 때, 하드 드라이브 같은 증거는 정전기 방지 봉투에 넣어야 한다.

하드드라이브 등의 증거는 원본을 조사하다보면 증거를 훼손할 가능성이 있으므로, 클로닝을 한다. 클로닝은 드라이브를 하나의 비트까지 완벽하게 포렌식적으로 복제해내는 기법으로 해시라는 것을 이용해서 완벽하게 복제되었음을 검증할 수 있다. 클로닝을 위해 랩에 하드 등의 증거를 가져가기 위해서는 허가를 받아야 한다. 

클로닝을 하기 위해서는 증거가 훼손되지 않도록 원본 하드에 쓰기 방지 툴을 사용하고, 복제의 데스티네이션 하드는 포렌식적으로 초기화 되어 있어야 한다. ( 모든 비트가 1로 설정되어있는등, 특정 패턴으로 덮어써진 것을, 포렌식적으로 초기화 되었다고 한다.) 그런 클로닝의 결과를 포렌식 이미지라고 한다. 

하드가 손상된 경우에는 이런 클로닝이 매우 어려울 수 있다.

디지털 증거제시제에 의해 디지털 증거를 제대로 보존하지 못하면 처벌 받을 수 있다. 

옛날에는 기기가 켜져있으면 증거 훼손을 막기 위해, 바로 플러그를 뽑는 것이 일반적이었다.

하지만 다음과 같은 이유로 인하여 이런 방식에 의구심을 갖는 사람들이 늘어났다. 

  • 플러그를 봅으면 RAM의 있는 증거가 파괴될 위협에 처하게 된다.
  • 암호가 걸려있을 수 있다.
  • 갑자기 전원이 중단되면 중요한 정보가 손상되어 읽을 수 없게 될 수도 있다.
  • 일부 증거는 정상 종료되지 않으면 드라이브에 기록되지 않을 수 있다.

라이브 포렌식의 이점으론 옛날에 실행 중인 RAM의 데이터를 수집하는 것이 어려웠으나 요즘은 매우 간단하게 랩까지 가져오지 않고도 정보를 수집할 수 있다. 하지만 라이브 포렌식은 라이브 포렌식을 할 수있을 인력이나 자원없이는 유용하지 않으니 그런 경우엔 차라리 플러그를 뽑는게 낫다. 그리고 한가지 더 고려해야할 점은, 잠재적 증거를 시간과 노력을 투자하여 복원할말한 가치가 있는 것인가를 고려해야 한다. 예를들어 악성코드 관련한 사건은 RAM의 정보가 중요하겠지만, 아동 포르노 소지하고 있는 경우에는 RAM의 정보가 가치가 없을 수 있다.

라이브 포렌식을 실시할 때, 조사관이 어떻게 조작하고 행동하여 어떤 변화가 일어났는지 기록해야 한다. 예를들어 화면이 검게 있어서 마우스를 조금움직여서 모니터를 작동시킨 것들의 경우를 다 적는 것이다. 그리고 컴퓨터 화면이 보이면 가장먼저 날짜와 시간을 기록하고 다음으로 실행중인 프로그램과 아이콘을 기록한다. 그리고 어떤 프로세스가 실행중인지 기록해두어서, 악성코드가 작동 중인지 식별하는데 도움이 될것이다. 악성 코드가 작동 중인지 식별하지 않으면, 범죄자가 이를 핑계를 댈수 있으므로 사전에 차단해야 한다. 그리고 검증된 메모리 캡쳐 툴을 사용하여 RAM에 있는 휘발성 증거를 수집하고 컴퓨터를 끈다.

해싱이란 SHA - 1, SHA - 2, MD5등의 해싱 알고리즘을 이용하여 증거의 무결성을 증명하기 위해 사용한다. 해싱 알고리즘의 결과는 비트 하나만 바뀌어도 완전 다른 해시 값이 나오는 것을 이용하여, 클로닝이 완벽하게 되었고, 증거가 조작되지 않았음을 증명할 수 있다.