미소띠움

네트워크를 이해하면 포렌식 분석이 쉽다 (4) 본문

Diary/Diary

네트워크를 이해하면 포렌식 분석이 쉽다 (4)

미소띠움 2009. 10. 8. 10:40

모니터링을 통한 네트워크 포렌식

네트워크 포렌식에는 분석자 관점에서 바라본 2가지 형태로 나뉘어 정의되고 있다. 첫째, 원격에서 네트워크를 통하여 해당하는 컴퓨터의 정보를 가져와서 분석하는 방법과 둘째, 네트워크 망내에 연결된 하드웨어 장비(라우터, 서버, 백본 스위치, 방화벽등)에 저장된 로그기록, 셋팅 정보에 대해 분석하는 방법이 있다. 본 원고에서는 첫번째 정의를 중심으로 설명하고자 한다. 첫번째 정의를 바탕으로 한 네트워크 포렌식에서는 시스템 정보를 전달하는 에이전트와 포렌식 이미지의 효율적인 전송을 담당하는 클라이언트를 통하여 실시간으로 정보를 가져오게 된다. 인터넷 망을 형성한 사용자 컴퓨터의 상태를 감시하고 저장하고 분석하기 위해서는 에이전트-중앙서버-클라이언트 간의 통신으로 이루어지며 자체 프로토콜로 통신하게 된다. 따라서, 실시간 네트워크 포렌식에서는 크게 휘발성 정보 백업, 시스템 상태 정보 백업, 디스크 이미지 백업 형태로 구성되어 진행된다. 

1. 휘발성 정보 백업

네트워크 침입에 대한 정보를 분석하기 위해서 시스템을 종료시키거나 네트워크에서 격리시키는 등의 조치를 하기전에 공격자의 로그인 상태 정보, 네트워크 연결 정보, 커널 모듈 정보 등 중요한 정보를 백업해야 한다. 이러한 과정을 “Freezing the scene" 이라고 한다. 이러한 휘발성 정보의 백업은 메모리상에서 프로세스 정보나 네트워크 정보들을 시스템 명령(ps, netstat 등)을 사용하여 그 결과를 백업한다. 그런데, 에이전트가 피해 시스템에 설치한 루트 킷과 같은 악성 프로그램과 프로그래밍에 의해 변조된 정보를 가져올 수 있는 가능성도 가지고 있다. 따라서 변조되기 전의 정보를 커널에서 직접 원천적인 데이터로 추출하면서 침입자가 변조하지 않은 정보를 얻도록 하는게 중요하다.

o 프로세스 상태 정보
o 네트워크 세션 정보(arp 정보, netstat 정보, route 정보,open port 정보 등)
o 현재 적재된 커널 모듈(Loadable Kernel Module) 정보
o 네트워크 장치 카드의 상태 정보(Promiscuous 검사)

2. 시스템 상태 정보 백업해팅

피해 시스템의 데이터의 중요도에 따라 필요한 디렉터리나 파일들을 먼저 백업해야 한다. 일반적으로 중요 데이터는 시스템 정보 및 환경 설정 내용, 로그 파일, 데이터 디렉터리, 응용 프로그램 관련 파일 등을 포함하고 있다.

o 운영체제 OS 정보
o 주요 시스템 프로그램을 실행한 결과 값
o 로그 디렉토리의 시스템 로그
o 시스템 설정 파일 정보
o 주요 서비스 데몬의 설정 및 데이터 파일(Apache, DB, FTP, Proxy, Mail, etc)
o 유닉스 운영체제인 경우 각 사용자의 /home 디렉토리의 .*sh_history , .ssh_known_hosts 등의 파일

3. 디스크 이미지 백업

피해 시스템의 증거를 훼손하지 않고 복사된 정보를 분석하기 위하여 피해 시스템의 디스크 파티션별로 분석용 컴퓨터로 복사한다. 이때 유용하게 사용되는 도구는 Linux의 “dd”라는 시스템 명령이다. 백업 단계에서 “dd”를 이용하여 각각의 파티션을 비트단위로 디스크 이미지 생성을 수행하도록 한다. 네트워크 포렌식에서 컴퓨터 저장장치인 하드디스크에서 삭제된 데이터의 복구 및 분석을 위한 S/W는 분석용 컴퓨터에 설치되고, 시스템에 대한 상태정보를 전달하는 포렌식 에이전트는 포렌식 클라이언트에 함께 설치된다. 또한 중앙서버에서는 각 포렌식 클라이언트의 디스크 상태를 포렌식 에이전트를 통하여 수집하며, 각 포렌식 클라이언트에 설치된 디스크 이미지의 위치 지정 및 자동설정을 통해 분석 관리할 수 있도록 한다.

과거 네트워크 통합망에 등록하지 않고 자체 오프라인 상에서 디스크 이미지 생성을 작업한 내용에 대해서는 담당 부서 이외는 보고되지 않아 동일한 그룹내 정보공유가 부족하였지만 네트워크 포렌식에서는 네트워크상에 연결된 포렌식 에이젼트 및 클라이언트 컴퓨터들이 동일한 그룹으로 형성되어 있어 정보공유가 가능하다.



4. 포렌식 에이전트

포렌식 에이전트에서는 네트워크에 연결된 사용자들의 컴퓨터에 설치되어 저장장치의 탈부착 상태, 공유폴더의 등록/변경/해제/접속, 파일의 확장자 지정/ 생성/ 삭제/ 복사/ 이동/ 인쇄 등의 행위를 로그화하며 실시간으로 또는 프로세스 변동이 있는 경우 이를 중앙서버로 전송하는 역할을 한다.

포렌식 에이전트에서는 중앙서버의 명령에 따라 또는 일정 시간 간격으로 시스템 정보를 전송하며 네트워크 연결이 로그오프된 경우, 포렌식 에이전트는 시스템 정보를 PC에 저장하고 있다가 온라인으로 전환될 때 저장한 시스템 정보를 중앙서버로 전송하게 된다. 시스템정보는 중앙서버에 실시간으로 저장되며 중앙서버에 접속하는 분석 담당자의 포렌식 클라이언트 시스템에 대용량 매체를 가진 시스템의 정보가 전달된다.

5. 포렌식 클라이언트
포렌식 클라이언트에서는 해당 운영체제(MS WINDOWS계열 또는 UNIX 등) 포맷을 가진 디스크의 전체내용을 1개의 파일로 압축해서 저장한 디스크 이미지를 근거리에 위치한 포렌식 클라이언트들의 공유폴더로 전송하는 역할을 한다. 일반적으로 해당 운영체제(MS WINDOWS 나 UNIX) 포맷을 가진 디스크의 전체내용을 1개의 파일로 압축해서 저장하는데 이때 생성된 파일은 디스크 이미지라고 부른다. 디스크 이미지에는 운영체제별 특성에 따른 시스템 데이터 및 모든 미디어 파일까지 포함하고 있어 분석 시스템의 분석활동에 큰 영향을 미치는 요소가 된다. 예를 들면, Windows 계열에서는 자체 레지스트리를 포함한 각종 정보데이타, 메타파일, 부팅영역까지 비트복사를 통해 디스크 이미지파일이 생성된다.

따라서, 현 시스템 디스크와 동일한 내용을 가진 디스크 이미지 파일을 분석하게 되면 이전 삭제된 내용까지 정밀조사가 가능하다. 이와 같은 포렌식 클라이언트가 설치된 시스템의 디스크 이미지는 포렌식 클라이언트에서 디스크 이미지 전송 명령에 의해 포렌식 클라이언트들로 전송하기도 하며 분석 시스템에 의해 정해진 스케쥴링에 의해서 지정된 포렌식 클라이언트들로 백업전송 할 수가 있다.

6. 중앙서버

중앙서버에서는 네트워크에 연결되어 사용자의 포렌식 에이전트를 IP 범위(Scope) 또는 네트워크 작업 그룹(PC 이름)로 관리하는 역할을 한다. 포렌식 클라이언트로 현재 상태(Status)의 전송 명령을 전달하고, 중앙서버의 디스크 이미지 리스트 백업 정책을 설정하며 포렌식 에이전트 및 클라이언트와 네트워크로 연결되어 포렌식 에이전트의 이벤트 로그와 포렌식 클라이언트에서 전송된 디스크 이미지 리스트를 저장 한다. 중앙서버의 환경설정에서는 IP, Port를 지정해야 한다. 디스크 이미지 생성 폴더를 설정시는 중앙서버가 디스크 이미지 생성할 때 저장할 공유폴더에 대한 상태정보를 저장하고 포렌식 클라이언트는 중앙서버의 디스크 이미지 생성정보를 가지고 요청에 의해 디스크 이미지 생성시 설정된 각 포렌식 에이전트 컴퓨터들의 상태정보를 받아 디폴트값으로 근거리의 디스크 이미지 생성 폴더순으로 디스크 이미지를 저장한다. 예를 들면, 공유폴더 경로 : \\kit1989\공유(공유폴더 컴퓨터 이름 + 공유폴더 이름) , 공유폴더 계정: administrator, 공유폴더 비밀번호 : ********, 디스크 이미지 비밀번호 : ******** 을 따른다.

상태정보 설정에서는 각 포렌식 에이전트 컴퓨터에서 발생하는 상태정보 데이터에 대해 중앙서버에서 특정 데이터만을 보고자 할 때 필터 조건을 설정하게 된다. 파일 확장자는 정의된 목록에서 선택 및 사용자 정의 추가로 추가할 수 있으며 상태정보 조건에는 포렌식 에이전트 컴퓨터에서 파일에 대한 행위의 모든 데이터에 대한 필터 조건을 갖게 된다. 저장 장치에 대한 필터 조건에는 포렌식 에이전트에 USB 및 기타 저장장치에 대한 추가 및 제거 행위에 대한 데이터에 대한 필터 조건을 포함한다. 공유 폴더 필터 조건에는 포렌식 에이전트 컴퓨터에 설정된 공유폴더에 다른 컴퓨터에서 접근하여 공유된 파일에 접근 행위 데이터에 대한 필터 조건을 가지며 프린터 필터 조건은 포렌식 에이전트 컴퓨터에 문서 등을 프린트 할 경우 프린트한 문서의 정보 데이터에 대한 필터 조건을 갖게된다.

7. 분석방법

해쉬 분석에서는 해당 시스템에 속해있는 모든 파일들의 해쉬값을 계산한 후 미리 정의된 해쉬 DB와 비교하여 파일을 추출한다. 파일 추출 방법에는 삭제 또는 손상된 파일, 전자메일, DB 테이블 및 레코드, Web 방문 히스토리등을 복구하여 분석하는 방법 이 사용된다. 기타 분석법으로는 Signature, Timeline, Audit, Process, Retracing analysis 등이 있다.

7.1 이미 알고 있는(Well known) 파일을 해쉬값으로 검색.

OS나 유명한 Application의 파일들에 대한 해쉬값을 미리 마련해 놓고 증거물 시스템에서 이와 같은 파일만을 모두 뽑아내면 결국 사용자가 생성하거나 혹은 변경(modify)한 파일이나 시스템이 변경한 파일(log 등...)만을 얻을 수 있다.

7.2 악성코드(malicious code)에 대한 해쉬값 DB를 미리 준비하고 조사대상 컴퓨터에서 악성코드 해쉬파일만 추출.

악성코드에는 해킹툴(Hacking tool)이나 바이러스(virus), 백도어(Backdoor), 익스플로잇(exploit) 그리고 음란물(Obscenity)등이 속한다. 피해시스템에서 발견한 악성코드의 해쉬를 계산하여 용의자의 컴퓨터에서 이 값과 같은 파일을 찾는다면 가장 빠르고 효과적인 조사가 된다.

7.3 지워지거나 포맷된 상태에서 파일, 전자메일, DB 테이블 및 레코드 및 기타 복구.

일반적으로 파일이 지워지게 되면 기존에 있던 파일의 모든 내용이 삭제되지 않고, 다만 파일의 위치나 크기에 대한 정보나 그 일부분만을 삭제하게 된다. 포맷과 같은 경우도 마찬가지로 디스크 내의 모든 내용을 지우는 하는 것이 아니라 디스크의 처음 부분의 FAT나 루트 디렉터리 같은 디스크 전체의 정보를 담고 있는 영역만을 초기화 하는 것이다. 따라서, 포맷된 디스크나 그 안에서 파일이 삭제된 경우라도 디스크의 사용자 데이터 영역을 검색하여 복구할 수 있다. 이와 같은 복구는 삭제 또는 손상된 파일 복구, 삭제된 메일 복구, 삭제된 DB 테이블 및 레코드 복구, 삭제된 Web 방문 히스토리 복구를 포함한다.

7.4 기타 분석법 (Signature, Timeline, Audit, Process, Retracing analysis)

파일의 앞부분에 파일의 종류를 나타내는 파일 시그니쳐(문자열로 구성됨)를 포함시킴으로서, 의도적으로 파일 확장자를 변경해 놓은 파일을 파악하는 Signature analysis, 포렌식 에이전트에서 제공한 사용자 정보(로그인 ID, 시스템 사용시간, 디스크 및 파일정보) 및 디스크 이미지 파일에 대한 시점을 유추하는 방법, 파일속성 정보에 있는 생성 복사, 이동, 삭제 시간을 포함하는 Timeline analysis, 포렌식 에이전트에서 제공한 네트워크 상태정보(전자메일, P2P, FTP, SMTP, 메신저, 웹게시판) 및 파일사용 상태정보(확장자 지정, 생성, 삭제, 복사, 이동, 인쇄)를 참조하는 Audit analysis, 포렌식 에이전트에서 제공한 프로세스 정보를 이용하여 우선순위, PID, 모듈명(파일명), 절대 경로를 리스트화 하고 현존하는 프로세스 정보와 비교한 후 추가되거나 삭제된 프로세스에 대한 메모리 내용분석을 하는 Process analysis, 포렌식 에이전트에서 제공한 네트워크 정보 (프로토콜, 프로세스명,절대 경로, 상태정보, IP, Port), 시스템 정보, 네트워크 설정(IP, MAC, 게이트웨이. 어댑터정보)을 통해 적합한 디스크 이미지를 저장할 수 있는 포렌식 클라이언트를 추적하는데 주요자료가 되는 Retracing analysis 등이 있다.

출처: 안철수 연구소

Comments