본문 바로가기

Network

시스코 라우터 포렌식 (2002)


2002년 블랙햇 USA 에서 발표된 시스코 라우터 포렌식을 정리한 것이다. IT 기술, 보안 기술이 매일 새로운게 나온다고 하지만 가끔은 과거의 기술을 정리하고 학습할 필요가 있다. 그 가운데 이미 많은 고민을 통해 나오고 정리된 내용은 새로운 아이디어를 도출하게 만들기도 하기 때문이다 :)


시스코 관련 취약점 통계는 현재까지 1050개 정도 이며, 매해 취약점이 증가하고 있다. (문서에는 라우터 취약점만 고려한 것이므로 다소 차이가 있음. )


라우터를 해킹했던 사례 중 HTTP 인증 취약점, NTP취약점, SNMP파싱 취약점이 있었다. 현재까지 공개된 라우터 exploit 은 50여개 정도이며 라우터가 해킹당하면 다음과 같은 공격이 가능하다.


- DoS, 라우터 네트워크 사용불능

- 다른 라우터 장악

- 방화벽, IDS 시스템 우회

- 아웃바운드, 인바운드 트래픽 모니터 및 저장

- 트래픽 리다이렉트


Cisco Routers ina Nutshell :: 시작관련 설정정보, IOS 파일들과 같이 비휘발성 정보는 플래시에 저장되고, 휘발성정보인 실행 설정, 동적 테이블 정보(ARP/Routing/NAT/ACL 제약조건/프로토콜 정보)들은 RAM에 저장된다.


 과거에는(2002년 이전) 침해사고가 발생하면 시스템을 종료하거나 파워를 뽑고, 복사본을 만들어 분석을 진행했다. 라이브 시스템 데이터는 거의 복구하지 않았다. 라우터 포렌식에서는 라이브 시스템 데이터가 매우 가치있으며 셧다운하면 데이터는 모두 사라진다. 반면, 전원이 끊겨도 정보가 지워지지 않는 플래시 데이터는 변경되지 않으며 쓸모 없을수도 있다. 분석가는 분석을 위해서 라이브 데이터를 복구해야만 한다.


◇ 컴퓨터 포렌식에서 다음을 명심해야 한다.


- 범인을 잡는것이지 매력적인 컴퓨터 증거를 찾는것이 아니다.

- 컴퓨터 증거는 절대 Smoking Gun(움직일 수 없는 증거)이 아니다.

- 대부분 컴퓨터 증거들은 다른 증거를 수반하기도 하고 다른 증거를 확증하기도 한다.


◇ 다음은 증거를 확보할 때 반드시 확인되어야 하는 부분이다.


- 증거를 어디서 받았는지

- 증거를 언제 받았는지

- 증거를 누구로부터 받았는지

- 어떤 방법으로 압수했는지

- 왜 증거를 압수한것인지

- 증거를 확보하는 과정에서 관리의 영속성(CoC, Chain of Custody)이 유지되었는지


◇ 사고 대응시 유의 사항


- 라우터를 재시작 하지 말것

- 아무것도 변경하지 말고, 모든것을 저장할것

- 이것이 우연히 일어난것이라고 확신하기 전에 사고가 아님을 밝힐것

- 사고라고 확신하기 전에 우연이 일어난것이 아님을 밝힐것


◇ 라우터 접근시 유의사항


- 해야할것 :  콘솔을 통한 라우터 접근, 전체 콘솔 세션 저장, show 명령어들 실행할것, 실제 시간과 라우터 시간을 기록, 휘발성 정보를 저장

- 하지 말아야 할것 :  라우터 재시작, 네트워크를 통한 라우터 접근, 설정 명령어 실행, 비휘발성 정보에 의존


◇ 세션을 저장할때 ::  RouterOne을 통한 Capture Text


 - 항상 라우터에 로그인하기 이전에 세션 저장을 시작할것

 - 실제 시간을 확인하기 위해 종종 show clock detail 명령어를 사용함


◇ 휘발성 증거를 직접 접근하는 방법


show clock detail

show version

show running-config

show startup-config

show reload

show ip route

show ip arp

show users

show logging

show ip interface

show interfaces

show tcp brief all

show ip sockets

show ip nat translations verbose

show ip cache flow

show ip cef

show snmp user

show snmp group


◇ 휘발성 증거를 간접적으로 접근하는 방법


패스워드가 변경되지 않았다면 다음과 같이 원격지 증거를 얻을 수 있을 것이다.


Port scan each router IP

nmap -v -sS -P0 -p 1-   Router.domain.com

nmap -v -sU -P0 -p 1-   Router.domain.com

nmap -v -sR -P0 -p 1-   Router.domain.com


SNMP scan each router IP

snmpwalk -v1 Router.domain.com public

snmpwalk -v1 Router.domain.com private


◇ 침해 분석에 앞서 다음 사항을 인지하고 있어야 한다.


- 시스코 IOS(Internetwork Operation System) 취약점이 무엇이 있는지
- Running / Startup 설정들
- 로깅
- Timestamp

◇ 로깅

-Console Logging
-Buffer Logging
-Terminal Logging
-Syslog Logging
-SNMP logging
-AAA Logging
-ACL Violation Logging

◇ 침해당한 라우터에서 정보를 삭제, 취합한 후에 이전에 설정하지 않았다면 다음과 같이 로깅을 켜서 네트워크를 모니터하는 용도로 라우터를 이용할 수 있을것이다. 

Router#config terminal
Router(config)#service timestamps log datatime msec \ localtime show-timezone
Router(config)#no logging console
Router(config)#logging on
Router(config)#logging buffered 32000
Router(config)#logging buffered informational
Router(config)#logging facility local6
Router(config)#logging trap informational
Router(config)#logging Syslog-server.domain.com

◇ AAA 로 로깅할 수 있으며, TACACS+로 라우터에서 네트워크 접근 서버로 수행하는 모든 명령을 로깅할 수 있다.

Router#config terminal
Router(config)#aaa accounting exec default start-stop \ group tacacs+
Router(config)#aaa accounting system default stop-only \ group tacacs+
Router(config)#aaa accounting connection default \   start-stop group tacacs+
Router(config)#aaa accounting network default \      start-stop group tacacs+


◇ 패킷수를 세거나 특정 이벤트를 로그하는데 ACL 로깅을 이용할 수 있다. syslog 로깅을 설정하고 실시간 syslog파일을 분석하여 실시간 모니터링을 수행할 수 있다.


# 패킷을 막는것은 아니지만 130.18.59.1로부터 내부 호스트로 들어오는 SNMP 요청에 대해 로깅

access-list 149 permit tcp host 130.18.59.1 any eq \ 161 log-input


#130.18.59.0/24로부터 내부 호스트로 DNS 패킷을 막고 로깅함.

access-list 148 deny tcp 130.18.59.0 0.0.0.255 any \  eq 53 log-input

access-list 148 deny udp 130.18.59.0 0.0.0.255 any \  eq 53 log-input



참고


라우터의 보안기능과 필수보안요소