터널링 프로토콜
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가 위의 포트를 리슨하는 것으로 시작됩니다. 리모트 호스트 또는 로컬호스트이것에의 접속은, 상대(리모트 또는 로컬)호스트로부터 발신된 지정의 주소 및 포토에 전송 됩니다.
(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]등의 프로토콜이 포함됩니다.
「 」를 참조해 주세요.
- GPRS 터널링 프로토콜(GTP)
- HTTP 터널
- ICMP 터널
- NVGRE
- OSI 모델(그림)
- 의사 와이어
- 스턴넬
- 터널 브로커
- 가상 확장 LAN(VXLAN)
- Virtual Private Network(VPN; 가상개인 네트워크)
레퍼런스
- ^ "Upgrading to TLS Within HTTP/1.1". RFC 2817. 2000. Retrieved March 20, 2013.
- ^ "Vulnerability Note VU#150227: HTTP proxy default configurations allow arbitrary TCP connections". US-CERT. 2002-05-17. Retrieved 2007-05-10.
- ^ Raman, D., Sutter, B. D., Coppens, B., Volcaert, S., Boscher, K. D., Danhieux, P. 및 Buggenhout, E. V. (2012, 11월)네트워크 침투용 DNS 터널링정보보안 및 암호에 관한 국제회의(p. 65-77)에서.스프링거, 베를린, 하이델베르크
- ^ 바카리, I., 나르테니, S., 아이엘로, M., 몽겔리, M. 및 캄비아소, E.(2021).악의적인 데이터 유출 활동을 위한 사물 인터넷 프로토콜 악용IEEE Access, 9, 104261-104280.
- ^ Narteni, S., Vacari, I., Mongeli, M., Aiello, M. 및 Cambiaso, E.(2021).쇼트 메시지 서비스를 이용한 터널링 공격의 실행 가능성 평가.인터넷 서비스 및 정보 보안 저널, 11, 30-46.
- ^ 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.
- ^ Titz, Olaf (2001-04-23). "Why TCP Over TCP Is A Bad Idea". Retrieved 2015-10-17.
- ^ 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.
- ^ 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.
- ^ 팩, D. J., Streilein, W., Webster, S. 및 Cunningham, R. (2002)HTTP 터널링액티비티 검출렉싱턴 링컨 연구소의 매사추세츠 주립대
- ^ Dang, F., Li, Z., Liu, Y., Zhai, E., Chen, Q. A., Xu, T. ... 및 Yang, J.(2019, 6월).Honeycloud를 사용하는 Linux 기반 iot 디바이스에 대한 파일리스 공격에 대해 이해한다.제17회 모바일 시스템, 애플리케이션 및 서비스에 관한 국제 연차 회의의 속행(pp. 482-493).
- ^ Raman, D., Sutter, B. D., Coppens, B., Volcaert, S., Boscher, K. D., Danhieux, P. 및 Buggenhout, E. V. (2012, 11월)네트워크 침투용 DNS 터널링정보보안 및 암호에 관한 국제회의(p. 65-77)에서.스프링거, 베를린, 하이델베르크
- ^ 아이엘로, M., 몽겔리, M., 캄비아소, E., 파팔로, G. (2016).PCA 및 상호 정보를 사용한 DNS 터널링 공격의 프로파일링.IGPL의 로직 저널, 24(6), 957-970.
- ^ 바카리, I., 나르테니, S., 아이엘로, M., 몽겔리, M. 및 캄비아소, E.(2021).악의적인 데이터 유출 활동을 위한 사물 인터넷 프로토콜 악용IEEE Access, 9, 104261-104280.
외부 링크
- 모든 TCP 프로토콜을 위한 PortFusion 분산 리버스/전송 로컬 전송 프록시 및 터널링 솔루션
- SSH VPN 터널, "SSH-BASED Virtual PRIVATE NETWORKS" 섹션을 참조하십시오.
- BarbaTunnel 프로젝트 - Windows에서의 HTTP-Tunnel 및 UDP-Tunnel 무료 오픈소스 구현
- VpnHood 프로젝트 - 소켓리다이렉션을 사용한 VPN의 무료 오픈소스 구현