old

포포포포렌식

nopdata 2016. 5. 26. 10:30

#0. 조사

1. 오프라인상태의 윈도우에서 Timezone을 확인하는 방법에는 무엇이 있고, NTFS와 FAT32 파일시스템에서 파일의 시간정보를 기록하는 방식에는 어떤 차이가 있는가?


윈도우 오프라인으로 디스크의 로컬 시간을 확인하는 방법은 레지스트리를 열어보는 방법이 있다.

경로는 HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation 인데

직접 레지스트리를 열 순 없으므로 SYSTEM하이브 파일이 존재하는 위치를 찾아가야 한다.

C:\Windows\System32\Config 하위에 레지스트리 하이브 파일이 존재하며 여기에 SYSTEM도 존재한다.

[ OSForensic으로 SYSTEM Registery파일 확인 ]


FAT의 파일 시간정보 기록은 다음과 같다.

NTFS도 파일의 MAC 시간 정보를 기록하는데 주요 차이점은 아래와 같다.

http://forensic-proof.com/archives/5307


FAT파일 시스템의 경우 파일의 생성시간은 10밀리초마다 갱신되고, 수정시간은 2초, 접근시간은 1일마다 갱신 된다고 한다.

NTFS는 1시간단위로 마지막 접근 시간이 갱신 된다고 한다.



2. Timeline 분석이란 무엇인가


Timeline이란 컴퓨터나 네트워크에서 이용되는 모든 데이터, 정보 처리등은 시간정보를 포함한다.

따라서, 어떤 일이 발생 하였을 경우, 시간정보를 획득, 시간순으로 어떤 사건이 발생하였는지에 대한 정보가 포렌식에 있어서 중요 분석 기초가 될 것이다.

PC에서 사건이 발생 하였을 경우에는 주로 메모리에서 타임라인을 구성하여 분석을 한다고 한다.



3. 현대의 웹 브라우저 IE, Firefox, chrome은 파일을 다운로드 받을 때 임시 partial 파일을 생성하는데, 하나의 웹 브라우저를 골라 파일을 다운로드하는 과정에서 생기는 트랜잭션 로그($logfile)를 확인하고 스크린샷을 첨부하시오.


IE의 경우 임시폴더로 다운로드 파일이 임시 저장되는 것으로 알고 있다.

주로 사용하는 Chrome을 이용해 보기로 했다.

Chrome은 약간 용량이 있어 시간이 걸리는 파일의 경우 .crdownload라는 파일이 다운로드 경로에 임시로 생긴다.

아래는 Orebaugh~.pdf 파일을 다운로드 받고 난 뒤 Log Tracker로 $logfile을 분석 한 결과이다.



주요 부분은 빨간 박스 부분이다.

먼저 Cluster 588591을 Non-Resident로 할당하여 파일 6B34.tmp를 저장한다.

이후 임시 파일 Orebaugh~.pdf.crdownload로 이름을 변경하고 다운로드가 완료 되었으므로

crdownload를 지워 orebaugh~.pdf로 이름을 다시 변경한다.

$logfile만을 Log Tracker로 분석하면 경로를 알아낼 수 없기 때문에 $MFT를 이용하여 경로를 확인해 보았다.


보면 먼저 \User\계정명\Downloads\6B34.tmp라는 파일이 생성된다. .tmp파일의 경우 사용자에게 직접적으로는 보이지 않는 것 같다.

이후 ~~~.crdownload로 변경되고 완료되면 .pdf로 변경되는 것을 확인 할 수 있다.

이로써 Chrome은 IE와는 달리 특정 임시폴더로 .tmp가 저장되는 것이 아닌 다운로드 경로에 .tmp파일이 생성되는 것을 확인할 수 있었다.



4. 윈도우에서 프로그램이 실행되었을 때 생성되는 대표적 아티팩츠에는 UserAssist와 Prefetch가 존재한다. 이 중 프리패치는 포렌식적 관점에서 UserAssist에 비해 어떤 장점이 있는지 비교하고, 어떻게 활용할 수 있을지 생각해서 적으시오.


UserAssist는 사용자가 Explorer를 통해 사용자가 사용한 프로그램의 빈도를 알아내여 주로 사용하는 프로그램을 시작목록에 나타내 준다고 한다.


Prefetch는 실행 파일이 사용하는 특정 자원을 파일로 미리 저장하는 것으로 실행 속도 향상을 위 해 주로 사용한다고 한다.


Prefetch파일은 응용프로그램의 이름, 실행횟수, 마지막 실행 시간, 프로그램 실행 시 참조 목록 등이 포함된다고 한다.

이를 토대로 보면 UserAssist로 알 수 있는 정보를 Prefetch를 통해 알 수 있을 뿐만 아니라 사용자가 주로 사용하는 프로그램과 연관되어 같이 이용되는 서브 파일을 알아 낼 수 있을 것이다.

만약, 사고가 발생하여 분석을 하는 중 Prefetch를 분석하다 보면 사건의 주요 프로그램과 연관된 악성 프로그램을 찾아낼 가능성도 있을 것이다.



#1 범인찾기.


0. 타임존을 확인하라.

[ 피해 PC 타임존 ]

[ 현재 사용 컴퓨터 타임존 ]

피해 PC와 현재 사용중인 PC의 TimeZone을 비교해 보면 다른 점이 없다.

[ Regedit으로 보았을 때 ]

Regedit으로 열었을 때인데 위 포렌식 툴에서의 timezone표현 방식에 차이가 약간 있는 듯하다.





1. 침입자의 침입 경로는?

로컬에서 직접 접근한 침입자는 없다고 하였으므로 일단은 외부에서 원격으로 침입을 한 것이다.

TeamViewer 등 원격 서비스를 제공하는 프로그램은 다양하지만, 해당 덤프에서는 특이한 원격을 제공하는 프로그램은 찾을 수 없었다. 단, 사건이 발생했다고 하는 04-20 새벽에 다수의 이벤트로그가 발생한 것은 파악이 가능하다.

따라서 침입자는 윈도우에서 제공하는 원격 터미널 서비스를 통해 침입하였다고 볼 수 있다.


2. 침입자의 침입 시간은?

이벤트 로그를 보았을 때 사건이 발생 하였던 04.20 00:41:02에 처음으로 접속 이벤트가 발생하였으며 아래의 게임이 지워진 시간을 보았을 때 이 시간이 침입자가 접근을 한 시간이라고 추정할 수 있다.


3. 침입자를 특정하라.(IP)

위 이벤트 로그의 정보를 보면 ip주소를 확인할 수 있다.


4. (선택) 침입자가 삭제한 게임은 무엇인지 특정할 수 있는가?

Log Tracker의 검색 기능을 이용하여 삭제한 게임을 찾아 내었다.

$logfile에는 정보가 나타나지 않고 usrjrn에 데이터가 있다.

Riot을 path로 검색 하였을 경우 위처럼 다수의 Riot 하위의 롤이 지워졌다는 것을 확인할 수 있다.

시간대를 보면 00:45:00 전후


침입자는 롤 뿐만 아니라 Riot Games 하위에 존재하던 Sudden Attack도 제거하였다.


이 방식으로는 실제 상황에서 삭제된 데이터를 찾기는 어려울 수 있으나, 문제에서 제공된 덤프의 특성을 보고 파악할 수 있다.



#2 증거에 관해서


1. 범죄의 성립요건(범죄 성립의 구성요건)과 위법성 조각사유에 대해서 조사. 단, 위법성 조각사유의 종류와 대략적인 설명이 반드시 포함되어야 한다.

https://ko.wikipedia.org/wiki/%EB%B2%94%EC%A3%84


https://ko.wikipedia.org/wiki/%EC%9C%84%EB%B2%95%EC%84%B1#.EC.9C.84.EB.B2.95.EC.84.B1.EC.A1.B0.EA.B0.81.EC.82.AC.EC.9C.A0


위법성 조각사유에는 위처럼 5가지 경우가 있다.

정당방위는 주로 뉴스 같은데에서도 자주 나오는데 가령 폭행 사건이 발생하였을 경우, 혹은 생명위 위협을 느끼는 상황에서 피해자가 가해자를 공격하는 행위 자체가 발생한다면 그 행위는 정당방위로 인정 하는 사유이다.


긴급피난의 형법은

1. 자기 또는 타인의 법익에 대한 현재의 위난을 피하기 위한 행위는 상당한 이유가 있는 때에는 벌하지 아니한다.

2. 위난을 피하지 못할 책임이 있는 자에 대하여는 전항의 규칙을 적용하지 아니한다.

3. 전조 제2항과 제3항의 규정은 본조에 준용한다.

인데 사례로는 덤벼든 개를 부득이하게 죽이는행위 따위가 이에 속한다고 한다.

보면 정당 방위라고 생각이 되기도 하는데 정당방위는 위해를 가한 가해자를 대상으로 하지만, 긴급피난은 위해를 가한 가해자 뿐만 아니라 무관한 제 3자에게도 피해자의 위해로 인한 피해를 입힐 수 있다는 내용이다.

위에서 개를 죽인 경우는 직접적으로 피해를 준 가해요인은 개이지만 형법상 개는 사람과 다른 취급을 하는 것 같다.


자구행위란 피해를 당한 피해자가 자신의 피해를 수습하기 위한 행위를 의미하는 것으로 가령 지갑을 도둑 맞은 사람이 직접 도둑을 잡는 행위등을 의미한다.


정당행위는 공무원이 공무집행에 관하여 하는 행위를 의미한다. 가령 경찰관이 범죄자를 체포하는 등의 행위를 의미한다.


피해자의 승낙은 법익을 침해받은 피해자가 피해상황에 대하여 승낙이 있었다면 침해를 허용한다는 의미이다.

강간사건이 발생하였다 하여도 피해자의 승낙이 있었다고 한다면 그 사건에 대해서는 처벌하지 않는다.



2. 서비스 장애가 우려되는 DDOS 공격을 받는경우 공격의 진원지를 역으로 공격하여 공격을 차단할 경우 위법성 조각사유의 정당방위에 해당하는지에 대해 생각해보기

공격의 진원지를 역으로 공격하여 차단하는 자체는 정당방위에 해당한다고 생각된다.

하지만 그 역공격의 여파로 공격의 진원지의 위해 크기여부에 따라 정당방위 성립이 되지 않을 수 도 있다.


3. Frye 판례와 Daubert 판례에 대해 조사하고, 해당 판결이 증거에 있어서 무엇을 요구하는지 정리.

Frye 판례는 증거로 과학적 근거를 제시할 때 이 근거가 '과학계에서 통용적으로 인정될 때' 사용되며

Daubert 판례는 증거로 과학적 근거를 제시할 때 이 근거과 '과학적으로 성립할 때' 사용된다.


단적으로, 거짓말 탐지기를 보면 Frye판례에서는 통상적으로 거짓말 탐지기의 정확성 여부에 대해서는 확실하게 정립된 것이 없어 과학계에서는 인정하지 않는다. 따라서 재판에서 근거로 제시된다면 인정되지 않을 것이다.


하지만 Daubert 판례로 본다면 과학적 근거가 완전히 정립된 것은 아니나 충분한 근거로 제시될 과학적 근거가 있으므로 재판에서 증거로 채택 되는 것이다.

http://forensicstudy.tistory.com/entry/Frye-%ED%8C%90%EB%A1%80%EC%99%80-Daubert-%ED%8C%90%EB%A1%80%EB%A1%9C-%EB%B3%B4%EB%8A%94-%EB%94%94%EC%A7%80%ED%84%B8%EC%A6%9D%EA%B1%B0%EC%9D%98-%EC%A6%9D%EA%B1%B0%EB%8A%A5%EB%A0%A5


4. (선택) Frye판례와 Daubert판례 중 우리나라에서 디지털 증거의 증거능력을 인정할 때 어느 판례를 따르는 것 같은지에 대해 생각해오기

우리나라에서 디지털 증거를 인정한다 해도, 위에서 제시하였던 거짓말탐지기와 같은 증거는 아직 우리나라에서 중요 증거로 참고되지 않는다고 알고 있다. 일부 참고 증거로는 사용되지만 중요 증거로는 채택되지 않으므로 우리나라는 Frye 판례를 따르는 것 같다.


5. 전문증거란 무엇이고 전문법칙은 무엇인가.

전문 증거 (傳聞, Hearsay) 는 진위여부를 알지 못하고 전해들은 말을 의미한다.

가령 강도사건이 발생하였는데 강도의 주변인이 '그 사람이 100만원을 훔쳤다고 했다'라는 진술을 하였을 경우, 실제 100만원을 훔쳤는지, 200만원을 훔쳤는지가 중요한 것이 아니라 진술인이 진술을 한 내용이 사실인지가 중요한 관건이 된다.


전문법칙은 '전문증거는 증거로 인정되지 않는다' 인데 진술인의 진술을 증거로 채택하지 않을 수도 있는 것이다. 진술인의 신빙성 여부에 따라 진술의 증거 채택이 거부 될 수도 있는 것이다.

전문법칙의 이론적 근거는 선서의 결여, 원진술자의 공판정 불출석, 반대신문 결여 등이 있다고 한다.


6. 디지털 증거에 있어 전문증거와 전문증거가 아닌 것의 기준은 무엇인가.

형사소송법 315조에 따르면 '신용성의 정황적 보장과 필요성 원리를 적용하여 당연히 증거능력이 있는 서류를 전문법칙의 예외로 둔다'라고 하는데 서류문서는 일반적으로 전문법칙에 따라, 증거로 인정되지 않는다.

하지만 디지털 증거의 출력문건의 경우 무결성과 신뢰성이 보장된다면 증거로 인정이 된다.


이와 다르게 디지털 증거 또한 특정 프로그램으로 작성이 되었거나, 사람이 표현하고자 하는 내용의 자료를 입력하여 처리, 생성된 부분이 존재한다면 전문법칙을 따라 증거로 채택되지 않을 수 있다.




'old' 카테고리의 다른 글

포포포포렌식 #2  (0) 2016.06.23
[고전암호] PlayFair 암호  (0) 2016.06.21
TUCTF16 - Crypto  (0) 2016.05.16
Wechall / php0817  (0) 2016.04.10
Wechall / Get Sourced  (0) 2016.04.10