2015년 5월 26일 화요일

웹 브라우저 포렌식(Web Browser Forensics) 개요

Web Browser Forensics 개요

Web Browser Forensics?

 웹 브라우저 포렌식이란 사용자의 컴퓨터에 저장되어 있는 웹 브라우저 사용 흔적을 디지털 포렌식적인 방법을 이용하여 조사하는 것을 말한다. 웹 브라우저는 로그 정보(Cache, History, Cookie, Download List)를 파일로 남기는데 웹 브라우저 포렌식은 이러한 로그 정보를 분석하는 것이 일반적이다. (로그 파일 외에 다른 분석 대상도 존재한다고 한다.)
 웹 브라우저 포렌식이 왜 필요한가? 오늘날 대부분의 가정집에선 컴퓨터들이 하나씩은 있을 것이다. 또는 스마트폰이 있을 것이다. 이러한 컴퓨터나 스마트폰으로 무엇을 하느냐? 게임도 할 것이고 노래도 들을 수 있을 것이고 검색도 할 수 있을 것이다. 우리는 컴퓨터를 이용하여 다양한 작업들을 할 수 있다. 잘 생각해보자. 온라인 게임이나 노래를 다운받을 때, 검색할 때 우리는 어디에 접속하는가? 넥슨이나 위메이드 등의 게임 회사 웹 사이트나 멜론이나 엠넷 등의 음악 사이트, 네이버나 다음, 구글 등의 검색 사이트일 것이다. 우리가 웹 사이트에 접속할 때 사용하는 것이 바로 IE, Chrome, Firefox , Safari, Opera 등의 웹 브라우저이다. 우리는 웹 브라우저를 굉장히 많이 사용한다. 따라서 범죄 사건에 관련된 내용이 웹 브라우저 로그 파일에 남아 있을 가능성이 크다. 이를 통해 악성코드 유입 경로나 악성코드의 목적 등 수사에 유용한 정보를 획득할 수 있다. 

Cache

 캐시란 웹 사이트 접속 시, 웹 브라우저가 방문 사이트로부터 자동으로 데이터를 다운받는 작업을 말한다. 그리고 동일한 사이트에 다시 접속할 땐, 웹 사이트의 데이터를 다시 다운받는 것 대신 그 캐시를 사용하여 로딩한다. 따라서 이 캐시는 우리 컴퓨터 어딘가에 저장될 것인데 이를 조사하면 유용한 정보를 얻을 수 있다.
 Cache 정보는 캐시 데이터 정보와 캐시 인덱스 정보로 나눌 수 있다. 캐시 데이터 정보는 내려받은 데이터 그 자체를 의미하며 캐시 인덱스 정보는 캐시 데이터의 위치, 다운로드 URL, 다운로드 시간, 데이터 크기, 캐시 데이터 파일명과 같은 인덱스 정보를 말한다. 이것들을 활용하여 몇시에 어떤 사이트에 접속했는지, 어느 주소에서 어떤 데이터를 다운받았는지 등의 정보를 획득할 수 있다.

History

 히스토리 정보란 사용자가 방문한 웹사이트의 접속 기록을 말한다. 웹 브라우저는 이 정보를 이용하여 사용자가 예전에 방문한 사이트를 다시 방문하고 싶으면 그 사이트를 로딩시켜 준다.
 히스토리 정보를 통해 방문사이트 URL, 방문 시간, 방문 횟수, 웹 페이지 제목 등의 정보를 얻을 수 있다.

Cookie

 쿠키란 웹사이트에서 사용자의 하드디스크에 저장해 놓은 사용자에 대한 데이터를 말한다. 쿠키에는 쇼핑몰에서의 찜목록, 로그인 정보가 담길 수 있다. 우리가 웹사이트에서 자동로그인을 활성화 시켜놓았다면 이 자동로그인에 사용되는 것도 쿠키이다.
 쿠키 정보는 호스트, 경로, 쿠키 수정시간, 만료시간, 이름, 값으로 구성된다. 이를 통해서 사용자가 방문한 사이트를 알아낼 수 있으며 쿠키 만료시간을 통해서 마지막으로 해당 사이트에 접속한 시간도 구할 수 있다. 

Download List

 다운로드 목록 정보는 사용자가 다운받아 놓은 데이터에 대한 기록을 의미한다. 사용자가 의도적으로 데이터를 다운받은 것이므로 사용자의 의도와 관계없이 다운로드된 데이터인 캐시와는 차이가 있다. 

 다운로드 목록 정보에는 다운로드된 파일의 저장 경로, 다운로드한 URL, 다운로드 시간, 파일 크기, 다운로드 성공 여부 등의 정보가 포함된다. 이를 통해서 몇 시에 어떤 파일이 어디에서 다운받아 졌는지, 어디에 저장되었는지를 알 수 있다. 만약 그 파일이 악성코드라면 악성코드의 유입 경로를 파악할 수 있을 것이다.

2015년 5월 25일 월요일

디지털포렌식(Digital Foresics) 개요

디지털포렌식 (Digital Forensics)


디지털포렌식이란?

포렌식은 법의학 용어로 범죄에 대한 증거를 확정하기 위한 과학적 수사를 일컫는 말이다. 최근에 디지털 기기의 사용이 늘어나면서 이에 대한 범죄 증거 확보가 중요해져 디지털 포렌식이란 용어로 확대되었다.

디지털포렌식의 정의는 다음과 같다. 
  • 디지털기기를 매개체로 하여 발생한 특정 행위의 사실 관계를 법정에서 규명하고 증명하기 위한 절차와 방법


디지털포렌식의 유형

디지털포렌식은 디지털 데이터를 수집하는 것이다. 디지털데이터의 정의는 컴퓨터, 휴대폰 등의 디지털 기기에 존재하는 모든 데이터를 의미한다. 때문에 디지털포렌식은 개인용 컴퓨터, 서버용 컴퓨터, 휴대폰, 데이터베이스, 디지털 카메라, PDA, CCTV, 네비게이션, 라우터, 스위치 등등의 디지털 데이터가 남을 수 있는 모든 디지털 기기에 적용될 수 있다. 그래서 유형 또한 많이 존재한다. 비휘발성 저장매체(HDD, SSD, USB, CD 등)을 대상으로 증거를 수집하고 분석하는 디스크 포렌식, 휘발성 데이터를 대상으로 증거를 수집하고 분석하는 라이브 포렌식, 네트워크로 전송되는 데이터를 대상으로 증거를 수집하고 분석하는 네트워크 포렌식 등의 유형이 존재한다. 디지털포렌식의 적용 범위가 광범위하기 때문에 디지털포렌식 전문가들은 많은 지식을 가지고 있어야 한다. 다만 우리는 사람이기 때문에 이들을 모두 알 수는 없다. 하지만 디지털포렌식 전문가로서 많은 지식을 보유하면 디지털 데이터를 수집하고 분석하는데 유리할 것이다.


디지털포렌식 기술


저장매체에 대한 디지털포렌식 기술 


  • 증거 복구 : 하드디스크 복구, 메모리 복구 등
  • 증거 수집 및 보관 : 하드디스크 복제 기술, 저장매체 복제 장비
  • 증거 분석 : 저장 매체 사용흔적 분석, 메모리 정보 분석


시스템에 대한 디지털포렌식 기술


  • 증거 복구 : 삭제된 파일 복구, 파일 시스템 복구, 시스템 로그온 우회 기법
  • 증거 수집 및 보관 : 휘발성 데이터 수집, 시스템 초기 대응, 라이브 포렌식
  • 증거 분석 : 윈도우 레지스트리 분석, 시스템 로그 분석, 백업 데이터 분석


응용프로그램 및 네트워크에 대한 디지털포렌식 기술 


  • 증거 복구 : 파일 포맷 기반 복구, 암호 통신 내용 해독
  • 증거 수집 및 보관 : 네트워크 정보 수집, 역추적
  • 증거 분석 : 네트워크 로그 분석, 해시 데이터베이스, 악성코드 분석

이외에도 타임라인 분석, 리버스엔지니어링 등의 디지털포렌식과 관련된 다양한 기술들이 존재한다.


디지털포렌식 조사의 기본 원칙 

  • 정당성의 원칙 : 증거는 적법 절차를 통해 수집되어야 함.
  • 재현의 원칙 : 같은 조건에서 항상 같은 결과가 나와야 함.
  • 신속성의 원칙 : 전 과정은 지체 없이 신속하게 진행되어야 함.
  • 절차 연속성의 원칙 : 증거물 획득 - 이송 - 분석 - 보관 - 법정 제출의 각 단계에서 담당자 및 책임자를 명확히 해야 함
  • 무결성의 원칙 : 수집된 증거가 위조 및 변조 되지 않았음을 증명할 수 있어야 함.

디지털 데이터가 법적 증거로써 효력을 발휘하려면 위의 원칙이 모두 이루어져야 한다. 디지털 데이터를 수집하기 위해 사용하는 툴 또한 합법적이어야 한다. 만약 불법적인 툴을 사용했다면 그 툴을 사용하여 수집한 데이터는 법적 효력을 발휘할 수 없다.


디지털포렌식 수행 과정

  1. 수사 준비 : 포렌식 툴 테스트, 장비 확보, 협조체계 확립
  2. 증거물 획득 : 현장 분석, 메모리 덤프, 스냅 샷, 디스크 이미징, 증거물 인증
  3. 보관 및 이송 : 이미지 복사, 증거물 포장 및 운반
  4. 분석 및 조사 : 자료복구 및 검색, 타임라인 분석, 시그니처 분석, 은닉자료 검색, 해쉬/로그 분석
  5. 보고서 작성 : 증거분석 결과, 증거 담당자 목록, 전문가 소견


[참조]
 [FP] 디지털포렌식 개요 (Introduction to dForensics) (Last updated: 2014-08-13)

SSH란 무엇인가?

SSH란 무엇인가?



SSH는 안전한 원격 통신을 위해 사용된다. SSH가 사용되기 이전에는 텔넷(Telnet)이 사용되었다. 텔넷 통신에는 기본적으로 23번 포트가 사용되었다. 통신에서 데이터를 암호화하는 과정이 없기 때문에 같은 네트워크 상의 누군가가 통신을 가로챈다면 통신 내용을 모두 엿볼 수 있다는 문제가 존재하였다. 이러한 보안 상의 문제로 SSH가 설계된 것이다. SSH는 암호화 기법을 사용하기 때문에 누군가 통신을 가로챈다고 하더라도 암호화된 텍스트로 보이게 된다. 기본적으로 22번 포트가 사용되며 주로 리눅스, 유닉스 시스템에서 사용된다.

시큐어 셸(Secure ShellSSH)은 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜을 가리킨다. 기존의 rshrlogin텔넷 등을 대체하기 위해 설계되었으며, 강력한 인증 방법 및 안전하지 못한 네트워크에서 안전하게 통신을 할 수 있는 기능을 제공한다. 기본적으로는 22번 포트를 사용한다.
SSH는 암호화 기법을 사용하기 때문에, 통신이 노출된다 하더라도 이해할 수 없는 암호화된 문자로 보인다.
•SSH(Secure Shell)는 버클리 서비스들(rsh, rcp, rlogin, rexec)및 telnet, ftp 서비스를 좀 더 보안이 강화된 명령으로 대체하기 위해 만들었다. 1995년 핀란드의 Tatu Ylönen이 개발해공개했고, 많은 반향을 이뤘다. 1995년 말 Ylönen은 SSH Communications Security사를 설립하고, 상용화되었다. 소스코드는 공개되었지만 여러가지 제약이 있었다고 하는데, 이에 SSH 1.2.12 릴리즈를 기반으로 OpenSSH 프로젝트가 결성되고 BSD 라이선스로 개발하기 시작했다. OpenSSH가 처음 선보인건 1999년 OpenBSD 2.6 릴리즈 부터다. 이후 계속 보완되어 오늘날에 이르게 되었다. •SSH의 주요 기능은 다음과 같다. ◦보안 접속을 통한 rsh, rcp, rlogin, rexec, telnet, ftp 등을 제공 .◦IP spoofing (IP스푸핑, 아이피 위/변조 기법중 하나)을 방지하기 위한 기능을 제공. ◦X11 패킷 포워딩 및 일반적인 TCP/IP 패킷 포워딩을 제공.
•SSH에 사용되는 암호화 알고리즘은 유럽에서 개발되었기 때문에, 미국의 수출 제한에도 걸리지 않는다.

요약

  • SSH는 Secure Shell의 약자이다.
  • 원격 시스템에서 명령을 실행할 수 있도록 해주는 프로토콜이다.
  • 주로 리눅스, 유닉스 시스템에서 사용된다.
  • 암호화 기법을 사용하여 안전한 통신이 가능하다. 
  • 22번 포트를 사용한다.

SSH를 통해 다른 시스템에 접속하는 방법(클라이언트)

리눅스 / 유닉스 / 맥 OS에서는 터미널을 통해 SSH를 사용할 수 있다.
$ ssh UserName@HostName
터미널을 열고 위처럼 입력해주면 된다. 예시는 다음과 같다.
$ ssh delspon@example.com
포트를 따로 설정해주고 싶다면 옵션만 붙이면 된다. 예시는 다음과 같다.
$ ssh -p 22 delspon@example.com
Windows에선 따로 프로그램이 필요하다. putty 라는 프로그램을 추천하고 싶다. 무료로 제공되는 서비스이며 다양한 설정도 가능하기 때문이다.
여기에서 다운로드 가능하다. (설치방법과 세팅은 여기를 참고하길 바란다.)
설치와 세팅이 완료되었다면 SSH 접속 방법은 리눅스의 방법과 같다.