IT/Security

[프로젝트] 네트워크 포렌식 증거 수집

착한아줌마 2018. 8. 7. 16:07
반응형

 

프로젝트 관련 글

 

 

 

[IT/Security] - [프로젝트] 네트워크 포렌식 개요

[IT/Security] - [프로젝트] 네트워크 포렌식 패킷 분석 - 1

[IT/Security] - [프로젝트] 네트워크 포렌식 패킷 분석 - 2

[IT/Security] - [프로젝트] 네트워크 포렌식 패킷 분석 - 3

 

 


 

 

■ 개요

 네트워크 포렌식 조사에 있어 증거 수집에 관련된 전체적인 설명을 하는 글이다.

 조사관들의 표현에서 유래된 증거 수집의 종류가 있다. 먼저 증거 수집의 종류를 살펴보고 그에 따른 세부 설명을 하도록 한다.

 

 

1. 증거 수집의 종류

- 패시브 증거 수집

 계층 이상의 상위 계층에 데이터를 송신하지 않고서 포렌식 용 증거를 수집하는 방법

ex) 트래픽 수집

 

- 엑티브(인터렉티브) 증거 수집

 네트워크상의 스테이션과 상호 작용하여 증거를 수집하는 방법.

ex) 현 상태를 판단하기 위해 콘솔 또는 네트워크 인터페이스를 통해 네트워크 장비에 로그인하거나, 포트 스캔을 수행하는 것.

 

 

 

 

■ 패시브 증거 수집

1. 물리적 감청

- 케이블

• 케이블종류 : 동축 케이블, TP, 광섬유

• 트래픽 스니핑 툴 : 인라인 네트워크 탭, 뱀파이어 탭, 유도코일, 광섬유 탭

 

- 라디오 주파수 (무선)

• 얻을 수 있는 정보

1) broadcast ssid (or non broadcast ssid)

2) 무선 ap의 mac주소

3) 지원하는 암호화/인증 알고리즘 종류

4) 연결된 클라이언트 MAC주소

5) 많은 경우, 3계층 이상의 패킷 전체 내용

• 툴 : 많은 표준 802.11 네트워크 어댑터와 드라이버(모니터 모드 지원가능)

 

- 허브

• 로컬 서브넷의 모든 스테이션을 물리적으로 한 회선으로 연결하는 1계층 장비

• 프레임을 수신하면 다른 모든 포트에 이를 재전송함.

-> 허브에 연결되어 있는 모든 장비는 다른 장비를 목적지로 하는 트래픽도 수신하게 됨.

-> 허브에 연결하면 그 구간의 모든 트래픽을 스니핑 할 수 있음.

의점 : 조사관이 해당 구간의 트래픽을 볼 수 있는 것처럼 다른 사람도 볼 수 있다.

 

- 스위치

• 가장 일반적은 2계층 장비. 허브와 다르게 CAM테이블을 사용하여 목적지 포트로만 전송.

• CAM 테이블 : MAC 주소와 스위치 포트를 매핑한 테이블

트래픽 스니핑 방법

1) 포트 미러링(port mirroirng)

통합이나 분석을 위해 하나 이상의 포트에서 다른 포트로 트래픽을 복제하도록 설정.

ex) cisco사의 SPAN or RSPAN

2) MAC 플러딩

다량의 MAC주소를 사용하는 임의의 이더넷 패킷들을 보내 CAM 테이블을 채우는 것. MAC과 포트를 연결 할 수 없게되어 모든 포트에 트래픽을 전송함.

3) ARP 스푸핑

공격자의 MAC주소를 피해자의 IP와 매핑시키도록 거짓 ARP 패킷을 보냄.

 

 

2. 트래픽 수집 소프트웨어

- libpcap과 WinPcap

libpcap

유닉스 C 라이브러리, 임의의 네트워크 인터페이스에 대해 데이터 링크 계층의 프레임을 캡처하고 필터링하는 데 필요한 API를 제공.

• WinPcap

Windows 플랫폼에서의 libpcap.

• 오늘날 가장 널리 쓰이는 패킷 스니퍼와 분석 툴은 libpcap 라이브러리를 기반으로 하고 있다.

 

- BPF 언어

• Berkeley Packet Filter의 약자, 필터링 언어

• 특징

1) libpcap은 BPF언어를 포함한다.

2) 대부분의 libpcap 기반의 유틸리티가 이 기능을 사용한다.

3) 간단한 필터링은 프리미티브를 사용해 구성될 수 있다.

4) 어떠한 바이트 크기의 프로토콜 필드도 수치 값과 비교될 수 있다.

5) 비트 단위 필터는 비트마스킹과 값 비교를 통해 이뤄질 수 있다.

6) 중첩된 AND, OR 논리식과 같은 복잡한 표현식도 실행 가능하다.

• 필터링 종류

1) BPF 프리미티브 - 항목들과 그 값으로 구분

ex) tcp and host 10.10.10.10

2) 바이트 값으로 필터링 - 프레임에서 프로토콜별 오프셋 값을 통한 해당 값으로 구분

ex) ip[9] != 1 >> ip헤더의 9번째 바이트 오프셋 값이 1이 아닌 것

3) 비트 값으로 필터링 - 바이트가 아닌 비트 수준까지의 구분

ex) ip[6] & 0x40 != 0 >> IP헤더의 Dont fragment 플래그(01000000(0x40))가 1로 체크된 패킷

 

- tcpdump

• 네트워크 트래픽을 캡처, 필터링, 분석하기 위한 도구. libpcap을 사용.

(windows 플랫폼에서 사용되는 WinDump도 있음. WinPcap을 사용)

• 2~4계층(일부는 그 이상)의 보편적인 프로토콜을 해석하여 사용자에게 표시 할 수 있다.

• 커맨드라인 기반의 툴.

• 홈페이지 - www.tcpdump.org

• 옵션



root@kali:~# tcpdump --help
tcpdump version 4.6.2
libpcap version 1.6.2
OpenSSL 1.0.1k 8 Jan 2015
Usage: tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX#] [ -B size ] [ -c count ]
[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
[ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ]
[ -Q in|out|inout ]
[ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ]
[ -T type ] [ --version ] [ -V file ]
[ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z command ]
[ -Z user ] [ expression ] 

 

- 와이어샤크 (WireShark)

• 트래픽을 캡처하고, 필터링하고, 분석하기 위해 설계된 그래픽 기반의 오픈소스 툴.

• 홈페이지 - www.wireshark.org

 

- 티샤크 (TShark)

• 커맨드 라인 네트워크 프로토콜 분석 툴. 와이어샤크 배포판의 일부.

• 많은 옵션들이 있어 패킷 수집으로도 사용 가능.

 

- dumpcap

• 패킷 캡처를 위해 설계된 커맨드 라인 툴. 와이어샤크 배포판에 포함.

• 시스템 자원을 덜 소비하고, 패킷 캡처 능력을 최대한으로 높일 수 있다.

 

 

 

 

■ 액티브 증거 수집

 증거가 휘발성이기 때문에 시스템이 작동하고 있는 상태나 네트워크에 연결된 상태에서 수집되어야 할 필요가 있다. 액티브 수집은 대상 환경에 변화를 일으키기 때문에 다양한 상황에 대해 숙지하고 그 영향을 최소화하기 위해 노력해야 한다.

 

 

1. 보편적 인터페이스

- 콘솔

• 많은 네트워크 장비는 터미널에서 콘솔로 연결하는 시리얼 포트를 가지고 있다.

• 콘솔로 직접 연결하는 것은 다른 원격접속에 비해 추가 트래픽을 생성하지 않기 때문에 흔적을 남기는 것을 최소화하므로 바람직하다.

 

- SSH

• SSH프로토콜을 이용해 원격 커맨들 라인 접속을 사용할 수 있다. SSH는 텔넷과 rlogin과 같은 보안에 취약한 방법을 대체하기 위해 개발되어, SSH트래픽을 공격자가 가로 채더라도 정보를 획들 할 수 없다.

 

- SCP, SFTP

• SCP(Secure Copy)와 SFTP(SSH File Transper Protocol) 은 SSH프로토콜을 이용한 커맨드 라인 상에서 파일을 전송할 수 있도록 해준다.

• 원격서버의 /etc/passwd 파일을 현재 작업위치에 복사해 오는 상황 등에 쓰인다.

 

- 텔넷

• 네트워크 장비에 원격으로 접속하는 방법 중 하나로 보안이 많이 고려되지 않아 데이터가 암호화되지 않고 평문형태로 전송된다.

• 텔넷을 이용해 원격접속을 하는 것만으로 공격자가 트래픽을 캡쳐하여 노출이 될 수도 있다.

 

- SNMP

• 네트워크 장비의 점검과 관리에 널리 쓰이는 프로토콜이다. 네트워크 포렌식 조사에 있어 필수적인 요소가 되고 있어 많은 툴들이 SNMP 기반으로 제작되었다.

 

- TFTP

• 원격 시스템과의 간단하고 자동화된 파일 전송을 위해 설계되었다. 텔넷처럼 나올 당시 네트워크상의 보안에 대해 고려하기 전 시기였기 때문에 노출이 될 위험이 높다.

• SCP나 SFTP가 지원되지 않는 장비에서는 TFTP를 사용해야 할 수도 있다.

 

- 웹과 전용 인터페이스

• 네트워크 장비를 위한 웹 기반의 관리용 인터페이스들로, 요즘 SSL/TLS 의 암호화된 웹 인터페이스를 지원하는 추세이다.

 

 

2. 접근하지 않고 조사

 접근하지 않기 때문에 트래픽을 발생시키고, 대상 시스템의 상태를 변화할 수 있다는 위험을 항상 인지하여야 하는 조사 방법이다.

 

- 포트 스캐닝

• nmap과 같은 도구를 사용하며, 열려 있는 포트와 장비의 소프트웨어 버전 정보를 획득하는데 효율적인 방법이다.

 

- 취약점 스캐닝

• 포트 스캐닝에 더해 취약점을 테스트 한다. 대상 시스템이 침해당했을 가능성이 의심될 경우, 어떤 경로를 통해 침해 되었는지 파악하기 위한 단서가 될 수 있다.

 

 

 

 

■ 증거 수집 전략

 네트워크 장비로부터 증거를 수집하는데 유의하여야할 점이나 팁을 정리해본다.

 기본적인 목표는 주변에 남기는 흔적을 최소화하면서 증거를 보존하는 일이다.

 

 

1. 장비를 재부팅하거나 종료시키는 것을 피해라.

• 많은 네트워크 기반 증거들은 장비의 메모리에 휘발성 데이터로서 존재한다.

 

 

2. 네트워크를 통한 접근보다는 콘솔을 통해 연결하라.

• 네트워크를 통한 원격 접근은 필연적으로 트래픽을 발생시키기 때문에 공격자가 조사관의 흔적을 알아차리기 쉽다.

 

 

3. 시스템 시간 정보를 기록하라.

• 네트워크 장비와 믿을 만한 시스템 사이의 시간 차이를 항상 확인하여야한다. 사소한 시간 차이라도 네트워크 상황에서는 큰 차이이므로 분석을 어렵게 만드는 요인이 된다.

• 특히 대부분의 포렌식 툴은 특정 로그의 시간 차이를 조정하는 법을 제공하고 있지 않기 때문에 수동으로 비교하거나 스크립트를 짜서 사용할 수 밖에 없다.

 

 

4. 휘발성 정도 순서에 따라 증거를 수집하라.

• 다른 조건이 동일하다면, 가장 휘발성이 높은 증거부터 수집해야 한다. 그리하여 가능한 한 많은 증거를 수집할 수 있게 된다.

 

 

5. 조사 활동을 모두 기록하라.

• 커맨드 라인 인터페이스를 통해 접속한다면 ‘screen'이나 ’script'를 사용해 실행한 명령어들을 기록할 수 있다.

• 실수를 저지르고 이것이 기록으로 남는 것에 대한 걱정을 하지만 기록을 남기지 않거나, 실제 수행한 명령어와 다른 기록을 남기는 것보다 낫다.

• 특히 그래픽 인터페이스는 기록을 남기기 어려운 부분이 있어서, 화면을 캡처하거나 사진으로 기록하는 것이 좋다.

 

 

 

 

■ 참고

 

• http://blog.naver.com/semi7623/100005861713 - WinPcap이 유닉스 네트워크 툴을 가져왔다.

 

• http://blog.naver.com/qhrjs11/120087705418 - #Tcp Dump 간단한 사용법

 

• 네트워크 포렌식 ( 3장 증거 수집 ) - 조너선 햄, 셰리 다비도프 지음/ 에이콘 출판사

 


 

이전 프로젝트 개요 글은 아래를 참고한다.

[Security] - [프로젝트] 네트워크 포렌식 개요