[Digital Forensic] Live Response (실시간 대응) (4)

 

실시간 대응


(8) 라우터(Router) 포렌식

  • 라우터는 서로 다른 네트워크망을 연결하는 중요한 네트워크 장비들 중 하나

  • 그러므로 일반 사용자와 공격자는 라우터를 거쳐 목적지에 도달하게끔 되어 있음

  • 따라서 라우터는 조사관에게 많은 정보 제공과 복잡한 사건을 해결하는 실마리 제공 가능

 

8-1. 휘발성 정보

  • 라우터 장비 역시 메모리가 존재하고 메모리에 존재하는 정보들은 휘발성 정보

  • 메모리 용량이 제한적이라 새로운 정보들이 이전 정보들을 삭제할 우려가 있음

  • 라우터 메모리에 존재하는 중요 정보로는 라우팅 테이블, 서비스 등이 있음

 

1) 시스템 시간

  • 시간은 휘발성 정보 수집에서 빠지지 않는 정보

  • 라우터의 사용자 모드 또는 관리자 모드에서 show clock 명령어로 시스템 시간 확인 가능

 

2) 가동 시간

  • 라우터가 마지막 재부팅으로부터 현재까지 얼마만큼 가동되고 있었는지 확인할 필요 있음

  • 재가동 된지 얼마 되지 않은 메모리에 남아 있는 정보는 악의적인 사용자로부터 수정되었을 확률이 오래 가동된 경우보다 적음 (그만큼 메모리에 남아 있는 여러 정보들 또한 양이 적을 것)

  • 가동 시간은 show version 명령어를 통해 확인 가능하며, 라우터의 하드웨어 정보와 소프트웨어 정보도 함께 출력

 

3) 로그인 한 사용자

  • 현재 로그인 한 사용자 목록을 수집하는 것 또한 매우 중요 (악의적인 사용자가 접속해 있을 수도 있기 때문)

  • 확인 명령어는 show user

 

4) ACL 목록 수집

  • 해당 라우터 접근이 어떻게 이루어지는지 파악을 위해 ACL 확인도 중요

  • ACL 목록 수집 명령어로는 show access-lists

 

5) 라우팅 테이블 수집

  • 공격자를 추적하거나 공격자가 어떠한 경로를 통해 접속하였는지 결정하기 위해 필수적으로 확인 필요

  • 공격자가 라우팅 테이블을 수정하여 패킷 흐름을 바꿀 수도 있어 필수적으로 수집해야 하는 정보들 중 하나

  • 라우팅 테이블은 show ip route 명령어

 

6) ARP 테이블 수집

  • 해당 정보는 MAC 주소 스푸핑 흔적이 있는지 파악할 수 있게끔 도와줌

  • ARP 테이블 수집 명령어는 show arp

 

7) 스택 모니터링 정보

  • 어떤 이유로 인해 system crash가 발생하면 프로세서가 상황에 따라 라우터를 재부팅시킴

  • 이 때 재부팅이나 Crash 원인을 스택 모니터링 기능의 장애 정보를 통해 확인 가능

 

8) 여러가지 정보 한꺼번에 얻기

  • CISCO 소프트웨어 11.2 버전 이후부터 show tech-support 명령어 지원

  • 해당 명령어는 여러 명령어들의 출력 결과를 한꺼번에 보여주는 명령어

  • 위 명령어들의 결과도 이 명령어 결과에 포함

 

 

show tech-support 명령어에서 보여주는 결과물들은 다음 명령어들의 출력 결과와 동일하다.

  • show version

  • show running-config

  • show stacks

  • show interface

  • show controller

  • show process cpu

  • show process memory

  • show buffers

 

여러 휘발성 정보 수집 명령어들은 위 내용과 같다.

 

하지만 이 정보들만 가지고는 라우터 분석이 끝난 것이 아니므로, 휘발성 정보에서 얻을 수 없는 정보는 라우터 메모리에서 얻을 수 있다.

 

라우터의 메모리는 일반 컴퓨터를 대상으로 한 메모리 덤프 도구로는 이미징하지 못한다.

 

라우터에서 자체적으로 제공하는 코어 덤프 기능을 이용하여 메모리 덤프를 수행해야 한다.


8-2. 메모리 구조

  • Cisco 라우터 메모리는 DRAM, EPROM, NVRAM, Flash memory 총 4개로 구분 된다.

 

1) DRAM

  • 전원 Off 시 데이터가 날라가는 휘발성 메모리이며, 두 가지의 타입을 가짐

  • primary memory (main memory, process memory) : CPU가 IOS를 실행할 때와 running config, routing table 운용할 때 사용하는 타입

  • shared memory (I/O memory 또는 packet memory) : 라우터 인터페이스를 통해 오고 가는 데이터들의 버퍼를 제공할 때 사용되는 타입

 

2) EPROM

  • ROM이라고도 하며, IOS 이미지가 손상되었거나 문제가 생겼을 시에 사용되는 소프트웨어가 저장된 메모리

  • 당연 비휘발성 메모리로, 이미지가 손상 / 삭제되면 사용될 대체 소프트웨어인 ROM Monitor가 들어 있음

  • 플래시 메모리에서 올바른 IOS 이미지를 찾을 수 없을 때 라우터 부팅을 위해 부트 이미지가 저장되어 있음

 

3) NVRAM

  • EPROM과 마찬가지로 비휘발성 메모리이며 Startup-configuration file이 저장되어 있음

 

4) Flash Memory

  • 라우터의 IOS 이미지를 저장하고 있으며, 일부 라우터에서는 설정 파일과 부트 이미지도 저장하고 있음


8-3. 메모리 덤프 방법

 

1) TFTP

  • TFTP를 이용한 방법은 한 가지 제약 조건이 있음

  • 메모리 덤프 파일 크기 16MB 초과 시, 해당 방법을 사용하는 것은 효율적이지 못한 방법 > 메모리 덤프 파일이 전송되는 도중 손상을 입을 수 있기 때문

  • 다음과 같은 명령어를 수행하면 TFTP 서버에 hostname <라우터 hostname> -core 파일이 생성됨

    • router# exception dump <TFTP IP>

 

2) FTP

  • FTP는 제약 조건이 없음

  • 다음과 같은 명령어를 수행하면 FTP 서버에 메모리 덤프 파일이 생성됨

  • 만약 사용자 ID와 사용자 Password를 입력하지 않으면 익명으로 접속하게 됨

    • router# ip ftp username <사용자 ID>

    • router# ip ftp password <사용자 Password>

    • router# exception protocol ftp

    • router# exception dump <FTP IP>

 

3) RCP

  • 해당 방법을 사용하기 위해서는 먼저 router configuration에서 해당 기능이 활성화 되어야 함

  • 해당 기능은 보안 문제로 default로 비활성화이기 때문

    • router# exception protocol rcp

    • router# exception dump <RCP IP>

 

4) Flash Disk

  • 해당 방법을 사용하기 위해서는 라우터에서 PCMCIA를 지원해야 함

  • partition number 경우 show flash all 명령어 수행 시에 알 수 있음

    • router# exception flash <procmem | iomem | all> <partition number> <erase | no_erase>


8-4. 메모리 분석

  • 라우터 메모리 분석의 경우 지원하는 도구로는 현재 Recurity Lab에서 개발한 'CIR' 도구만 존재

  • 이 도구는 오픈소스로 배포

  • 메모리에서 백도어를 분석해 내고 프로세스, 메모리 예외 처리 등을 분석하여 사용자에게 그 결과를 출력하여 줌


라우터 포렌식에서 메모리 분석 분야는 계속 연구되어야 하는 분야이다.

 

Flash Disk 방식을 사용하여 메모리 덤프를 하는데 옵션은 iomem으로 지정하여 덤프를 시도하고 분석을 수행하면 해당 라우터에 들어오고 나간 패킷 트래픽까지 추출이 가능하다.

 

이 정도로 라우터 메모리 분석은 매우 중요하다.


# Reference

 

http://www.yes24.com/Product/Goods/8511539

+ Recent posts