- Tunneling ?
항상 이야기하지만, 해킹의 선제 조건은 해당 타겟의 Sniffing 이 되어야 합니다.
고로 원격 공격자는 자신이 타겟 내부의 네트워크 일원인것처럼 뚫고 들어가서 위장해야 합니다.
= 논리적인 길을 뚫어서 공격대상의 Router 와, 공격자의 Router 를 연결된 하나의 논리적인 길로 연결하는 방법을 흔히 말하는
터널링이라고 합니다. 자주 쓰는 터널링 프로토콜이 있습니다.
- GRE Protocol
Generic Routing Encapsulation의 약자
Cisco 에서 개발한 Tunneling 프로토콜
IP 를 이용하여 다양한 종류의 Network Layer 패킷의 Encapsulation이 가능
VPN(Virtual Private Networks)를 구축하는데도 사용
Tunnel의 종단점의 상태를 확인하지 않으므로 주로 일반 클라이언트를 위한 IP Tunnel을 위해 주로 사용
= (가상적으로) 네트워크간의 복잡한 길을 거치지 않고 독자적으로
네트워크를 뚫고 가로질러서 바로 전달하기 위해 만들어진 프로토콜입니다.
이 프로토콜이 가장 흔히 사용되는 예시로
1. VPN
2. IPv6 = 6to4 Tunneling
3. SSH/SSL Tunneling
등이 있습니다. 보시다시피 대역이 다르거나, 다른 라우터가 지원하지 않는 ( 신형장비 <---> 구형장비 등 ) 데이터 등을 송수신하고, 또한 그러한 평문 데이터에 암호화를 덧붙이기 위해 고안된 방법입니다.
SSH 터널링은 예전에 다뤄보았고, 남은 두 개를 간략하게 설명하자면,
- VPN 터널링
WAN = 공용선(공용망) 입니다.
전용선(ex : 전화, leased line : 극 보안용 일부만 서비스)
ㄴ 기반상 한도가 있으므로, 결국 미리 만들어져있는 공용선을 이용해야 하는데(실제로도 우리는 WAN을 사용하지요), 사용하는 사용자 간(예를 들면 회사간)의 보안문제가 발생하지요. 그래서 이를 개별적인 전용선처럼 쓸 수 있는 가상화 방법으로 VPN을 고안하게 되었습니다.
1) Circuit Switched - 가격이 매우 비쌈. (통신 연결중인 한 라인 지속 임대)
2) Packet Switched - (연결이 아닌 패킷마다 라인 임대,X-25,Frame Relay )
3) Tunnelling -> VPN ( 논리적인 길을 뚫습니다. 암호화 별도 필요 SSL, ipsec 등 )
- IPv6 = 6to4 터널링
IPv6 패킷을 보내면, WAN 망 안에서 많은 라우터 장비를 거쳐 전달되어야 하는데 현재 사용된지 얼마 안 된 IPv6 패킷 처리를 자체 지원하는 라우터 장비가 별로 없습니다.(대부분 한 세대 전 옛날 장비를 쓰지요. 항상 최신버젼이 꼭 좋은게 아닌 이유가 바로 현실성 때문.. ) - 즉 WAN 단의 장비들이 6의 프로토콜을 지원하지 않으므로, 결국 IPv6패킷 위에 기존의 IPv4 패킷을 덮씌워서(encapsulation) , IP4v Protocol (GRE Protocol, pptp, l2tp 등.. )를 사용하여, 논리적인 출발지를 만든 후, 다른 연결장비를 거치지 않고, 다음 논리적인 목적지에 단독으로 도달하도록 만든 기법입니다.
Tunneling 의 3요소
- 궁극적으로 위 두 서비스의 도입목적과 크게 다르지 않습니다.
분류를 다음과 같이 나눕니다.
Passenger Protocol
• 전송하고자 하는 데이터를 담고 있는 프로토콜
Encapsulating Protocol
• 패킷을 Encapsulating / Decapsulating 하기 위한 프로토콜
• 예) GRE, PPTP, L2TP, L2F, IPSec
Carrier Protocol
• Encapsulating 된 패킷을 운반하기 위한 프로토콜
• 네트워크의 중간에 있는 (기존의) 라우터들이 이해할 수 있는 프로토콜
• 일반적으로 기존의 IP프로토콜이 이용된다.
= 주의점을 하나 말씀드리자면, 논리적으로 라우터-라우터를 연결한다! 는 개념입니다. 정말로 그런 터널을 통해 데이터가 전달되는 일은 불가능합니다. 정상적으로 모든 라우터를 거쳐서 가되, 캐리어 프로토콜에 의해 "이해할 수 있는 기존 형태" 로 인캡슐레이션 포장되어 이동된다는 개념으로 이해하시면 되겠습니다. 즉 터널링을 열어도, 원래대로의 물리적 경로가 없다면, 정상 전달되지 않습니다.
그러므로
Gre Sniffing 공격이 가능한 개요를 보자면
- 터널링은 개념상 양쪽 호스트간 가상의 논리적 직선 통신채널이 형성된 것.
- 실제 트래픽은 많은 라우터들을 거치지만, Passenger 입장에서는 직접 통신하는 것처럼 느끼게 됩니다.
= 즉, 두 라우터 간의 HOP = 1 , cisco 장비에서는 직접 연결된 것(=Connected) 으로 인식합니다 (!)
= 터널링으로 연결하면, 내부단처럼 인식하기 때문에, 이것이 바로 원격 스니핑이 가능한 요건이 됩니다.
GRE Sniffing 이란?
흔히 네트워크의 Border Router는 일반적으로 방화벽의 외부에 위치하게 되며,(과거에 만들어진 많은 회사들의 네트워크 상태가 여전히 이러합니다. 새로 보안성에 맞춰 컨설팅된 회사의 네트워크는 이렇지 않습니다. ) 상대적으로 해킹에 노출될 위험성이 큽니다. 그렇게 공격자에 의해 Router가 PBR 이 해킹된 경우 GRE Sniffing 을 시도 할 수 있습니다. PBR(정책기반) 은 DBR(목적지 기반)의 설정보다 우선시됩니다. DBR(Destination Based Routing)
패킷의 목적지 주소를 포함한 패킷의 여러 가지 정보들을 이용해 라우팅 하는 방법 전개도
대상 타겟은 서버와 데이터를 주고받기 위해, 패킷을 목적지 기반으로 정상적으로 전송합니다. 하지만 공격자가 GRE Tunneling 을 통해, 논리적으로 라우터간 연결을 한 후, 타겟의 라우터를 목적지 기반이 아닌, 정책 기반의 라우팅( 에 : hop=1 인 바로 옆의 더 가까운 라우터로 데이터를 전송한다 ) 을 하도록, 설정해버렸습니다. 결국 해당 데이터는 서버로 바로 가지 않고, 터널을 통해 공격자에게 Sniffing 되어 흘러들어가게 됩니다. 물론 공격자는, 사용자들이 알아채지 못하도록, 다시금 자신에게서 Fowarding 되도록 설정하여, 서버에게 도달하도록 합니다.
GRE Tunneling 과 정책 기반 라우팅(PBR)을 이용하여 원하는 패킷을 공격자의 라우터쪽으로 유도하는 Remote Sniffing 기법입니다.
전통적인 방식의 라우팅 방법
데이터 패킷의 목적지 주소를 이용해 라우팅 경로를 결정
• 예) 목적지가 192.168.1.100 인 패킷은 Router1로 보냄
• 목적지가 192.168.2.100 인 패킷은 Router2로 보냄
PBR(Policy Based Routing)
관리자가 원하는 정책에 따라 라우팅을 할 수 있다.
Cisco에서는 route-map 을 이용하여 PBR 설정이 가능하다
모의환경 모델은 (2) 에서 뵙도록 하지요.
'[학습] WMware 환경설정 ( 중단 ) > 2. 네트워크 해킹 파트' 카테고리의 다른 글
[ 12. GRE Sniffing ] - GRE Tunneling Attack 모의환경 구성 (0) | 2013.04.19 |
---|---|
[ 13. PPTP ] (0) | 2013.04.18 |
[ 11. NMS/SNMP/TFTP ] - SNMP 공격 기법( Messange / TFTP/ Proxy ) (0) | 2013.04.16 |
[ 11. NMS/SNMP/TFTP ] - SNMP 개론 (3) | 2013.03.29 |