hhkb.dev

BLOG

2025-12-18 / 피버팅과터널링 · 06

터널링 트래픽 캡슐화와 보안 검증

1. 개요

이 문서는 터널링(Tunneling)이 패킷 수준에서 어떻게 보이는지, 그리고 설정이 어긋났을 때 어떤 흔적이 남는지를 정리한다. 특히 트래픽 유출(Traffic Leakage)이 왜 생기고 어떤 문제로 이어지는지 이해하는 데 초점을 둔다.

2. 터널링 패킷 구조

터널링은 기술적으로 보면 "패킷 안에 다른 데이터를 넣어 전달하는" 캡슐화(Encapsulation) 과정이다.

2.1 일반패킷 vs 터널링 패킷 구조 프로토콜

비교해서 보면 구조 차이가 더 잘 보인다.

  • 일반 HTTP 패킷
    [ IP Header | TCP Header | HTTP Data ]
    방화벽이나 IPS는 HTTP Data까지 확인해 정책을 적용할 수 있다.
  • SSH 터널링 패킷
    [ IP Header (Pivot) | TCP Header (Port 22) | SSH Header | [Encrypted Data] ]
    네트워크에서는 일단 SSH 트래픽으로 보이고, 실제 내부 데이터는 암호화된 상태로 들어간다. 피벗 호스트의 SSH 데몬까지 도달해야 원래 데이터가 다시 풀린다.

3. 트래픽 관측 지점별 분석

터널링이 제대로 동작하면, 어디서 보느냐에 따라 보이는 데이터가 달라져야 한다.

3.1 Loopback 인터페이스(lo)

로컬 시스템 내부 통신(localhost:8080 <-> SSH Client)을 보는 구간이다.

  • 관측 결과: 이 구간에서는 평문(Cleartext) 데이터가 보일 수 있다.
    예를 들면 GET /admin/login.php HTTP/1.1 같은 형태다.
  • 이유: 애플리케이션 계층에서 만들어진 데이터가 SSH 클라이언트로 들어가기 직전 단계이기 때문이다.

3.2 Tunnel/Ethernet 인터페이스(eth0/tun0)

실제 물리 네트워크나 VPN 터널을 지나는 구간(SSH Client <-> Pivot Host)이다.

  • 관측 결과: 여기서는 암호화(Ciphertext)된 패킷만 보여야 정상이다.
    예를 들면 Protocol: SSHv2, Payload: Encrypted Packet처럼 보인다.
  • 의미: 중간 장비는 이를 SSH 트래픽으로만 인식하고, 내부 데이터까지는 바로 보지 못한다.

4. 작전 보안(OpsSec) 위협: 트래픽 유출

4.1 트래픽 유출(Traffic Leakage) 메커니즘

설정 오류 때문에 원래 터널 안으로 들어가야 할 패킷이 일반 네트워크 인터페이스로 직접 나가는 현상이다.

  • 증상: eth0에서 HTTP 같은 평문 프로토콜이나, 내부망 IP(10.1.20.x)를 목적지로 한 패킷이 보인다.
  • 결과
    • 경로 실패: 내부망 주소는 외부 인터넷에서 라우팅되지 않아 중간에서 폐기될 수 있다.
    • 흔적 노출: 실제 출발지 IP(Source IP)가 방화벽이나 IDS 로그에 그대로 남을 수 있다.

4.2 DNS 유출(DNS Leak)

HTTP 트래픽은 터널로 보냈더라도, 도메인을 IP로 바꾸는 DNS 질의(DNS Query)가 로컬 DNS로 새어 나가는 경우가 있다.

이 경우는 데이터 경로가 완전히 한 방향으로 묶이지 않았다는 뜻이라, DNS 쿼리까지 같은 경로 정책 안에 들어가는지 따로 확인해야 한다.