Tunneling & VPN

터널링

a1.png

-그림 1. 터널링에서의 패킷 캡슐화-

  • 두 네크워크를 한 네트워크처럼 안전하게 사용할 수 있게 만드는 기술
  • 터널링에서는 [그림-1]과 같이 터널링 장비를 지날 때 일반 라우터나 스위치처럼 원래 패킷에 있던 2계층이나 3계층 정보를 벗겨내지 않고 캡슐화를 수행

VPN

  • 방화벽, 침입 탐지 시스템(IDS)과 함께 사용되는 가장 일반적인 보안 솔루션 중 하나
  • 인터넷 회선을 임대 회선처럼 사용할 수 있게 해주는 솔루션
  • VPN은 임대 회선과 비슷한 수준의 기밀성을 제공해야 함. -> 암호화 요구
  • VPN에서 사용하는 암호화 프로토콜에는 PPTP, L2TF, IPSec, SSL등이 있음

임대 회선

a2.png

-표 1. 일반회선과 전용회선 비교-

  • 두 지점을 하나의 회선으로 연결하여 24시간 특정 개인 혹은 집단이 단독으로 사용할 수 있도록 하는 서비스
  • 다수의 이용자가 공동으로 사용하는 공중망 서비스와는 달리 고객이 설비 일부를 독점

VPN 암호화

  • VPN이 임대 회선과 비슷한 수준의 기밀성을 제공해야 하는데 여기에는 암호화가 필요
    • PPTP:Point-to-Point Tunneling Protocol (취약한 암호 알고리즘 사용, 인증 부실)
    • L2TP: Layer 2 Tunneling Protocol(기밀성 제공하지 않음. IPSec와 함께 사용해야 함)
    • IPSec: IP Security 네트워크 계층에서 IP 패킷단위 암호화, 인증, 키관리(접근제어, 메시지인증, 개체인증, 기밀성, 재전송 공격 방지)
    • SSL: Secure Socket Layer 브라우저와 웹 서버 사이의 통신을 위한 세션 기반 프로토콜(상호인증, 메시지인증, 기밀성)

VPN 사용 용도

a3.png

-그림 2. VPN을 이용한 외부에서의 접근-

a4.png

-그림 3. VPN을 이용한 터널링-

  • 집에서도 회사 내부 네트워크에 보안 상태로 접근

    • 대부분 유동 IP 주소를 사용하므로 외부에서 접속할 경우 해킹에 노출될 위험이 높음
    • VPN을 이용하면 회사 밖에서도 회사 서버에 접근 가능
    • 네트워크 트래픽이 암호화되어 사용자는 VPN 인증과 함께 방화벽을 통한 서비스 통제, 접근 대상 서비스 인증을 거치므로 임의 접근보다 훨씬 높은 수준의 보안을 유지할 수 있음
  • 해외여행을 하면서 국내 게임 서버 이용

    • 대부분의 온라인 게임은 그 국가의 IP 주소만 사용해 접속 가능
    • 국내에 VPN 장비를 마련해두면 VPN 장비에 접속해 국내 IP 주소를 할당받아 국내 게임 서버에 접근 가능

은닉 채널(Covert Channel)

  • 기본 통신 채널에 기생하는 것으로, 표면적인 목적 외의 정보나 은닉 메시지를 전송하기 위한 것
  • 은닉 메시지는 다른 사람은 볼 수 없고 송신자와 수신자가 알 수 있도록 한 것
    • 은닉 채널 자체가 암호화는 아님

ackcmd의 패킷 전송 과정

a5.png

-그림 4. ackcmd의 패킷 전송 과정-

  • 클라이언트와 서버 간의 TCP 통신에서는 SYN, ACK, FIN 등의 패킷을 사용한다.
  • ackcmd에서는 ACK 패킷만 사용한다. 즉, 세션이 성립되지 않는다.
    • 따라서 방화벽이나 운영체제 연결 기록도 남지 않는다.
    • TCP의 ACK 패킷을 UDP처럼 사용하는 것과 같다고 생각할 수 있다.
  • 세션 성립 없이 ACK만을 이용해 클라이언트와 서버가 주고받는 형태는 [그림 4]와 같다.
  • 단순히 ACK 패킷만 주고받는 것처럼 보이지만 실제로는 ACK 패킷 안에 숨겨진 데이터를 주고받는 것이다.

은닉 채널과 방화벽 우회

  • 은닉 채널은 데이터를 숨겨 방화벽을 우외하는 데 사용하기도 함
  • 공격자가 방화벽 안에 있는 웹 서버와 통신하려면?

a6.png

-그림 5. ackcmd 패킷의 통신 포트-

  • [그림 5]는 공격자가 공격대상(웹 서버)의 중요 정보를 빼돌리려는 시나리오를 가정한다.
  • 전제조건:
    • 공격자 컴퓨터와 공격대상(웹 서버)에 ackcmd용 프로그램이 깔려 있어야 함.
  • 두 호스트는 ACK 패킷으로만 서로 통신하며, 방화벽이 이를 알아채지 못 함.