네트워크를 이해하면 포렌식 분석이 쉽다-5
네트워크 포렌식 시리즈 마지막으로 실시간 네트워크 포렌식 기법에 대해서 알아보고자 한다. 현재 유선상에서 네트워크를 이용하는 원거리 공격은 ISP(인터넷 서비스 제공업체)의 서버를 경유하고 있어 해당 서버에 남아있는 로그기록의 해당 시간대를 통한 분석 방법이 있다. 또한 무선상에서 네트워크를 이용하는 근거리 공격은 무선네트워크 공유기를 통하여 주변 시스템에 자유롭게 외부에서도 공격하기 때문에 외부에서 들어오는 IP대역과 일치하는 로그를 AP 지점에서 분석해야 한다.
인터넷에 접속하기 위해서는 사용자 컴퓨터에 IP설정과 도메인 네임 서버가 정확히 명시 되어있어야 한다. 이러한 도메인 네임서버는 ISP 에서 제공하고 있으며 이러한 도메인네임서버의 도움 없이는 접속하려고 하는 웹사이트에 접근할 수가 없다. 일반적으로 IP주소는 해당 컴퓨터를 식별하고 도메인 네임은 IP주소를 가리키는게 특징이다. TCP/IP 프로토콜에서는 컴퓨터들이 인터넷상에서 어떻게 통신하고 있는지에 대해 정의하고 있다.
네트워크 포렌식 분석요소에는 IP주소 이외에 패킷, MAC 주소, 포트번호 등이 있다. 네트워크에서 데이터의 전송은 여러개의 작은 패킷으로 나누어져 전송되며 목적지인 IP주소가 들어있다. 따라서 도메인 네임서버에서는 최초로 일치하는 IP주소에 대한 검색이 필요하다. 각 패킷에는 순서가 있으며 잘못된 순서로 오게되면 다시 바로잡아서 패킷이 목적지의 컴퓨터로 전송된다. MAC(Media Access Control)로서 컴퓨터에 장착된 네트워크 카드 어댑터의 유일한 하드웨어 고유식별주소이다. 서로 다른 네트워크 카드 어댑터끼리 통신할수 있도록 ARP( Address Resolution Protocol) 에서 논리적 IP주소를 물리적 IP주소로 매핑하게 된다. 네트워크상에 존재하는 컴퓨터에는 약30초 간격으로 ARP 테이블을 가지고 있으며 위와 같은 매핑을 통해 자유롭게 통신할수 있게된다. 일반적으로 논리적인 IP주소는 네트워크 계층에서 컴퓨터를 연결하고 있으며 물리적 IP주소인 MAC은 데이터 계층에서 컴퓨터를 연결하고 있다. 그러므로 이더넷 네트워크에서 ARP 는 이러한 두 계층사이의 주소를 변환하는 중요한 역할을 하고 있다. MAC 주소를 찾기위해서 Windows 9x/ME 운영체제에서는 winipcfg.exe 명령어를, Windows NT/2000/XP에서는 ipconfig /all 명령어, Linux 에서는 ifconfig –a 명령어를 사용한다. 또한 전체적인 ARP 테이블 목록을 보기위해서는 arp –a 명령어를 사용한다. 여기서 문제점은 사용자 컴퓨터의 모든 MAC 주소는 평상시 네트워크상에 공개되지 않고 단지 네트워크상에서 이더넷 헤더를 통해 최초 라우터(router)의 MAC 주소까지만 가능하다. 네트워크상의 방화벽에서는 공격자의 주소를 식별한 후에는 즉시 NetBIOS NodeStatus Query를 보내게 된다. 공격자가 아직 이러한 쿼리에 대한 질문에 응답 못하게 컴퓨터에서 설정하지 않았다면 방화벽에서 MAC 주소, 로그명, 컴퓨터 이름등을 가져와서 분석할 수 있다. <포트번호 21 ~ 161> 빨간색 부분은 순차적으로 캡처된 패킷들의 시간, 출발지 IP, 목적지 IP, 프로토콜 형태, 기타정보를 포함하고 있고, 초록색 부분은 빨간색 부분에서 선택된 패킷을 사용자가 알아볼 수 있도록 OSI 계층 구조로 재표현하고 있다. 파란색 부분은 선택된 패킷의 실제 내용으로, 16진수와 ASCII로 보여주고 있다. 웹 페이지에서 로그인 할 때 사용자 ID와 암호를 넣을 경우 바로 보라색 부분에 해당 내용이 표시된다. 그러나, 최근에는 암호화로 설정되어 있어 바로 ID와 암호를 식별하는 것이 쉽지 않아 네트워크 포렌식에서 해결해야 할 사항이다. 위와 같이 계층 구조로 표현이 가능한 것은 Wireshark이 '422개의 하위부터 상위계층까지의 다양한 프로토콜을 지원하기 때문이다. 네트워크상에서 IP주소를 알게 되면 해당 주소가 어떤 용도로 사용되는 지 여부에 따라 범죄 가능성에 대한 예측도 하게 된다. 동일한 IP주소로 서로 다른 도메인네임을 사용할수 있는 상황에서 비정식적인 절차를 거치지 않은 개인 도메인 네임에서는 인지도가 높은 IP주소로 리다이렉션 하도록 구성하고 있다. 따라서 이러한 추적을 위해서는 사전에 도메인 네임 서버 관리자에게 통지하거나 실제 범죄자가 직접 운영하는 서버의 도메인 네임의 IP주소에 대한 역추적이 필요하다. 국내에서는 NSLookup을 통한 국내 도메인 네임서버의 IP주소 정보와 더불어 해외 도메인 네임서버의 정보까지 혼용해서 네트워크 포렌식을 해야 더욱 정확한 결과를 얻을 수 있을 것이다. 그동안 네트워크 포렌식에 대한 전반적인 내용들에 대해서 단계별로 알아보았다. 이러한 기본 내용을 중심으로 네트워크 포렌식의 영역은 더욱 체계적으로 발전하리라 예측해 보며 이번 원고를 마쳤으면 한다.@
< ARP- a 를 통한 전체 테이블 출력화면>
그러므로, IP주소로 네트워크 시스템을 식별하고 MAC 주소를 통하여 네트워크에 연결된 네트워크 아답터를 확인할 수 있다. 이때 포트번호의 역할은 적절하게 응용 프로그램이 네트워크 트래픽을 지날 수 있도록 하는 서비스로서 웹 트래픽의 경우, 80 포트번호로 지정하여 웹브라우저에서 인터넷 서핑할 수 있도록 한다. 네트워크 상의 TCP /IP를 사용하여 보내는 모든 패킷들은 출발지, 목적지, 포트번호와 IP주소가 항상 들어있어야만 한다. 네트워크 포렌식에서는 임의로 조작하거나 변경된 경우의 패킷에 대한 검증절차가 필요하다.
네트워크 스니핑에서는 이더넷 네트워크 환경에서 전송되어지는 데이터를 캡쳐하는 것을 말하며 쉽게 말해 네트워크 도청을 의미한다. 스니핑이 가능한 연결계층구조에는 이더넷, 토큰링, FDDI, RS232 시리얼 통신등이 있으며 서브 네트워크안에서 MAC 주소를 가진 컴퓨터들을 지나는 모든 패킷들을 Promiscuous 모드에서 도청할 수가 있다. 이러한 작업을 위해서는 윈도우 경우 WinPcap, 리눅스 경우 LibPcap 라이브러리를 설치해야 하고, 이러한 라이브러리를 사용하여 패킷들을 볼수 있는 프로그램을 사용하면 된다. 기존 물리계층에서 동작했던 더미 허브는 현재 거의 사용하지 않으며 연결계층에서 동작하는 스위치 허브를 주로 쓰고 있다. 스위칭 허브에서 필요한 패킷만이 MAC 주소 필터링을 통해 전달되어 지고 있으며 이를 스니핑하기가 어렵기 때문에 스위칭 허브가 설치된 앞쪽에서 설치되고 스위칭 또는 라우터로 가는 Port mirroring, TAP, HURB 를 사용한다. 윈도우에서는 Ethereal, 리눅스에서는 TCPdump프로그램을 사용하게 되는데 현재 윈도우 버전에서 Ethereal이 발전한 http://www.wireshark.org에서 Wireshark를 사용할 것을 권장한다.

- 안철수연구소보안 칼럼니스트 Alfred Chung