터널링 프로토콜

Tunneling protocol

컴퓨터 네트워크에서 터널링 프로토콜은 캡슐화를 이용하여 한 네트워크에서 다른 네트워크로 데이터를 이동할 수 있는 통신 프로토콜입니다.여기에는 캡슐화라고 불리는 프로세스를 통해 퍼블릭네트워크(인터넷 등) 경유로 프라이빗네트워크 통신을 송신할 수 있는 것이 포함됩니다.

터널링에서는 트래픽데이터를 다른 형식으로 재패키지화해야 하기 때문에(암호화를 표준으로 하는 경우), 터널을 통과하는 트래픽의 특성을 숨길 수 있습니다.

터널링 프로토콜은 실제로 서비스를 제공하는 패킷을 전송하기 위해 패킷(payload)의 데이터 부분을 사용하여 작동합니다.터널링은 OSI 또는 TCP/IP 프로토콜 스위트와 같은 계층형 프로토콜 모델을 사용하지만 일반적으로 네트워크에서 제공되지 않는 서비스를 전송하기 위해 페이로드를 사용할 경우 계층화를 위반합니다.일반적으로 전송 프로토콜은 페이로드 프로토콜과 같거나 더 높은 계층 모델에서 작동합니다.

사용하다

예를 들어 터널링 프로토콜은 IPv6 over IPv4 실행과 같이 특정 프로토콜을 지원하지 않는 네트워크를 통해 외부 프로토콜을 실행할 수 있습니다.

또 하나의 중요한 용도는 물리 네트워크주소가 기업 네트워크의 일부가 아닌 리모트 사용자에게 기업 네트워크주소를 제공하는 등 기반이 되는 네트워크 서비스만을 사용하여 실용적이지 않거나 안전하지 않은 서비스를 제공하는 것입니다.

방화벽 정책을 우회하는 중

사용자는 터널링을 사용하여 방화벽이 일반적으로 차단하지만 HTTP와 같이 방화벽이 차단하지 않는 프로토콜 내에서 "랩핑"하는 프로토콜을 사용하여 방화벽을 "스래핑"할 수도 있습니다.방화벽 정책이 이러한 종류의 "랩핑"을 특별히 배제하지 않는 경우, 이 트릭은 의도한 방화벽 정책(또는 연동된 방화벽 정책 세트)을 회피하기 위해 기능할 수 있습니다.

다른 HTTP 기반 터널링 방식에서는 HTTP CONNECT 방식/명령어를 사용합니다.클라이언트는 HTTP CONNECT 명령을 HTTP 프록시에 발행합니다.그런 다음 프록시는 특정 server:port에 TCP 연결을 만들고 해당 server:port와 클라이언트 연결 [1]간에 데이터를 릴레이합니다.이로 인해 보안상의 구멍이 생기기 때문에 CONNECT 대응HTTP 프록시는 일반적으로 CONNECT 메서드에 대한 접근을 제한합니다.프록시는 특정 포트([2]HTTPS의 경우 443 등)에만 접속할 수 있습니다.

네트워크 방화벽을 우회할 수 있는 다른 터널링 방법에서는 DNS,[3] MQTT,[4] [5]SMS 등의 다양한 프로토콜을 사용합니다.

기술 개요

네트워크 레이어의 예로서 Generic Routing Encapsulation(GRE; 총칭 라우팅 캡슐화)는 IP 상에서 실행되는 프로토콜(IP 프로토콜 번호 47)로, 대부분의 경우 퍼블릭 IP 주소를 가진 전달 패킷을 사용하여 인터넷을 통해 IP 패킷을 전송합니다.이 경우 전송 및 페이로드 프로토콜은 동일하지만 페이로드 주소는 전송 네트워크의 주소와 호환되지 않습니다.

데이터 링크층을 사용하여 연결을 확립할 수도 있습니다.Layer 2 Tunneling Protocol(L2TP)에서는, 2 개의 노드간에 프레임을 송신할 수 있습니다.터널은 기본적으로 암호화되지 않습니다.선택한 TCP/IP 프로토콜에 따라 보안 수준이 결정됩니다.

SSH는 포트 22를 사용하여 퍼블릭네트워크(인터넷 등) 접속을 통해 전송되는 payload의 데이터 암호화를 이노블로 하여 VPN 기능을 제공합니다.IPsec에는 엔드 투 엔드 트랜스포트 모드가 있지만 신뢰할 수 있는 보안 게이트웨이를 통해 터널링 모드로 동작할 수도 있습니다.

터널링에 의해 부과되는 특정 프로토콜 스택을 이해하려면 네트워크 엔지니어가 payload와 전달 프로토콜 세트를 모두 이해해야 합니다.

공통 터널링 프로토콜

  • IP in IP(프로토콜 4):IPv4/IPv6 의 IP
  • SIT/IPv6 (프로토콜 41) : IPv4/IPv6 의 IPv6
  • GRE(프로토콜 47):범용 라우팅 캡슐화
  • OpenVPN(UDP 포트 1194)
  • SSTP(TCP 포트 443):시큐어 소켓 터널링 프로토콜
  • IPSec (프로토콜 50 및 51) :인터넷 프로토콜 보안
  • L2TP (프로토콜 115) :레이어 2 터널링 프로토콜
  • VXLAN(UDP 포트 4789) :Virtual Extensible Local Area Network(가상 확장 가능 로컬 영역 네트워크).
  • 유전자
  • 와이어 가드

시큐어 셸 터널링

Secure Shell(SSH) 터널SSH 프로토콜 연결을 통해 생성된 암호화된 터널로 구성됩니다.SSH 터널을 설정하여 암호화되지 않은 트래픽을 암호화 채널을 통해 네트워크를 통해 전송할 수 있습니다.이는 네트워크 보안에 대한 소프트웨어 기반 접근 방식이며, 그 결과 투과적인 [6]암호화가 이루어집니다.

예를 들어 마이크로소프트 윈도우즈 시스템은 암호화되지 않은 프로토콜인 SMB(Server Message Block) 프로토콜을 사용하여 파일을 공유할 수 있습니다.인터넷을 통해 Microsoft Windows 파일 시스템을 원격으로 마운트할 경우 접속을 스누핑하는 사용자가 전송된 파일을 볼 수 있습니다.Windows 파일시스템을 안전하게 마운트하기 위해 모든 SMB 트래픽을 암호화 채널을 통해 리모트파일 서버에 라우팅하는SSH 터널을 확립할 수 있습니다.SMB 프로토콜 자체에는 암호화가 포함되어 있지 않지만, SMB 프로토콜이 이동하는 암호화된 SSH 채널은 보안을 제공합니다.

파란색 컴퓨터에서 ssh가 실행된 로컬 및 원격 포트 포워딩.

SSH 접속이 확립되면 터널은 SSH가 위의 포트를 리슨하는 것으로 시작됩니다. 리모트 호스트 또는 로컬호스트이것에의 접속은, 상대(리모트 또는 로컬)호스트로부터 발신된 지정의 주소 및 포토에 전송 됩니다.

(PPP 같은)(시큐어 셸의 포트 포워딩과 같은)"TCP-over-TCP"으로 알려져 있다TCP-based 연결을 통해 그렇게 한TCP-encapsulating 페이 로드 Tunneling 왜 가상 사설 네트워크 소프트웨어 대신 TCP보다 훨씬 더 단순한 정확을 위한 프로토콜을 사용할 수 있는 전송 성능(문제가"TCP붕괴"으로 알려져)[7][8]에 극적인 상실을 유입할 수 있unnel연결.그러나 OpenSSH의 포트 포워딩을 사용할 때는 문제가 되지 않는 경우가 많습니다.많은 사용 예에서는 TCP-over-TCP 터널링을 수반하지 않기 때문입니다.Open은 Open SSH의 포트 포워딩에 의해SSH 클라이언트는 실제로 전송되는 payload에 도달하기 위해 로컬 클라이언트 측 TCP 접속을 처리한 후 터널 자신의 TCP 접속을 통해 서버 측으로 직접 페이로드를 전송합니다.서버 측에서도 마찬가지로 OpenSSH 서버는 payload를 "랩업"하여 최종 [9]수신처에 라우팅하기 위해 payload를 "랩업"합니다.당연히 이 래핑과 래핑은 양방향 터널의 반대 방향에서도 발생합니다.

SSH 터널은 사이트에서 발신 접속을 허용하는 한 특정 인터넷 서비스를 금지하는 방화벽을 우회하는 수단을 제공합니다.예를 들어, 조직은 사용자가 조직의 프록시 필터를 통과하지 않고 직접 인터넷 웹 페이지(포트 80)에 액세스하는 것을 금지할 수 있습니다(사용자가 웹을 통해 보는 것을 감시 및 제어하는 수단을 조직에 제공합니다).그러나 사용자는 조직의 프록시 필터에 의해 웹 트래픽이 모니터링되거나 차단되는 것을 원하지 않을 수 있습니다.사용자가 외부 SSH 서버에 접속할 수 있는 경우 SSH 터널을 생성하여 로컬머신의 특정 포트를 리모트 웹 서버 포트 80으로 전송할 수 있습니다.리모트 웹 서버에 액세스하기 위해 사용자는 브라우저에서 http://localhost/의 로컬포트를 가리킵니다.

일부 SSH 클라이언트에서는 SOCKS 4/5 프록시를 작성할 수 있는 다이내믹 포트 포워딩이것에 의해서, 유저는 SOCKS 4/5 프록시를 작성할 수 있습니다.이 경우 사용자는 로컬 SOCKS 프록시 서버를 사용하도록 애플리케이션을 설정할 수 있습니다.이렇게 하면 앞서 설명한 단일 포트에 SSH 터널을 작성하는 것보다 유연성이 높아집니다.SOCKS는 사용자가 사전 정의된 리모트포트 및 서버에만 접속할 수 있는 제한으로부터 해방됩니다.응용 프로그램이 SOCKS를 지원하지 않는 경우 프록시ifier를 사용하여 응용 프로그램을 로컬 SOCKS 프록시 서버로 리디렉션할 수 있습니다.Proxycap 등의 일부 프록시 서버는 SSH를 직접 지원하므로 SSH 클라이언트가 필요하지 않습니다.

최신 버전의 OpenSSH에서는 양쪽 끝에서 이러한 터널링 기능이 네이블로 되어 있는 경우 레이어 2 또는 레이어3 터널을 작성할 수도 있습니다.이것으로 작성됩니다.tun(레이어 3, 디폴트) 또는tap(레이어 2) 접속 양 끝에 있는 가상 인터페이스.이것에 의해, 통상의 네트워크 관리 및 루팅을 사용할 수 있게 되어, 라우터에서 사용하면, 서브 네트워크 전체의 트래픽을 터널링 할 수 있습니다.한 켤레tap가상 인터페이스는 접속의 양끝을 연결하는 이더넷케이블과 같이 기능하여 커널브릿지에 접속할 수 있습니다.

터널링을 기반으로 한 사이버 공격

수년간 터널링과 데이터 캡슐화는 일반적으로 보호된 네트워크 밖에서 악의적으로 통신하기 위해 악의적인 이유로 자주 채택되어 왔습니다.

이 맥락에서 기존의 터널에는 HTTP,[10] SSH,[11] DNS,[12][13] MQTT [14]의 프로토콜이 포함됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Upgrading to TLS Within HTTP/1.1". RFC 2817. 2000. Retrieved March 20, 2013.
  2. ^ "Vulnerability Note VU#150227: HTTP proxy default configurations allow arbitrary TCP connections". US-CERT. 2002-05-17. Retrieved 2007-05-10.
  3. ^ Raman, D., Sutter, B. D., Coppens, B., Volcaert, S., Boscher, K. D., Danhieux, P. 및 Buggenhout, E. V. (2012, 11월)네트워크 침투용 DNS 터널링정보보안 및 암호에 관한 국제회의(p. 65-77)에서.스프링거, 베를린, 하이델베르크
  4. ^ 바카리, I., 나르테니, S., 아이엘로, M., 몽겔리, M. 및 캄비아소, E.(2021).악의적인 데이터 유출 활동을 위한 사물 인터넷 프로토콜 악용IEEE Access, 9, 104261-104280.
  5. ^ Narteni, S., Vacari, I., Mongeli, M., Aiello, M. 및 Cambiaso, E.(2021).쇼트 메시지 서비스를 이용한 터널링 공격의 실행 가능성 평가.인터넷 서비스 및 정보 보안 저널, 11, 30-46.
  6. ^ Barrett, Daniel J.; Barrett, Daniel J.; Silverman, Richard E.; Silverman, Richard (2001). SSH, the Secure Shell: The Definitive Guide. "O'Reilly Media, Inc.". ISBN 978-0-596-00011-0.
  7. ^ Titz, Olaf (2001-04-23). "Why TCP Over TCP Is A Bad Idea". Retrieved 2015-10-17.
  8. ^ Honda, Osamu; Ohsaki, Hiroyuki; Imase, Makoto; Ishizuka, Mika; Murayama, Junichi (October 2005). "Understanding TCP over TCP: effects of TCP tunneling on end-to-end throughput and latency". In Atiquzzaman, Mohammed; Balandin, Sergey I (eds.). Performance, Quality of Service, and Control of Next-Generation Communication and Sensor Networks III. Vol. 6011. Bibcode:2005SPIE.6011..138H. CiteSeerX 10.1.1.78.5815. doi:10.1117/12.630496. S2CID 8945952.
  9. ^ Kaminsky, Dan (2003-06-13). "Re: Extensions for long fat networks?". openssh-unix-dev@mindrot.org (Mailing list). the TCP forwarding code is pretty speedy as well. Just to pre-answer a question, ssh decapsulates and re-encapsulates TCP, so you don't have classic TCP-over-TCP issues.
  10. ^ 팩, D. J., Streilein, W., Webster, S. 및 Cunningham, R. (2002)HTTP 터널링액티비티 검출렉싱턴 링컨 연구소의 매사추세츠 주립대
  11. ^ Dang, F., Li, Z., Liu, Y., Zhai, E., Chen, Q. A., Xu, T. ... 및 Yang, J.(2019, 6월).Honeycloud를 사용하는 Linux 기반 iot 디바이스에 대한 파일리스 공격에 대해 이해한다.제17회 모바일 시스템, 애플리케이션 및 서비스에 관한 국제 연차 회의의 속행(pp. 482-493).
  12. ^ Raman, D., Sutter, B. D., Coppens, B., Volcaert, S., Boscher, K. D., Danhieux, P. 및 Buggenhout, E. V. (2012, 11월)네트워크 침투용 DNS 터널링정보보안 및 암호에 관한 국제회의(p. 65-77)에서.스프링거, 베를린, 하이델베르크
  13. ^ 아이엘로, M., 몽겔리, M., 캄비아소, E., 파팔로, G. (2016).PCA 및 상호 정보를 사용한 DNS 터널링 공격의 프로파일링.IGPL의 로직 저널, 24(6), 957-970.
  14. ^ 바카리, I., 나르테니, S., 아이엘로, M., 몽겔리, M. 및 캄비아소, E.(2021).악의적인 데이터 유출 활동을 위한 사물 인터넷 프로토콜 악용IEEE Access, 9, 104261-104280.

외부 링크