Атака TunnelVision, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ VPN-Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Ρ‡Π΅Ρ€Π΅Π· манипуляции с DHCP

Π’Π½ΠΈΠΌΠ°Π½ΠΈΡŽ ΠΏΡƒΠ±Π»ΠΈΠΊΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°Ρ‚Π°ΠΊΠΈ TunnelVision, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ доступа ΠΊ локальной сСти ΠΈΠ»ΠΈ контроля Π½Π°Π΄ бСспроводной ΡΠ΅Ρ‚ΡŒΡŽ, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° свой хост Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΆΠ΅Ρ€Ρ‚Π²Ρ‹ Π² ΠΎΠ±Ρ…ΠΎΠ΄ VPN (вмСсто ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· VPN, Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π±Π΅Π· туннСлирования Π½Π° систСму Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅Π³ΠΎ). ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ Π»ΡŽΠ±Ρ‹Π΅ VPN-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ пространства ΠΈΠΌΡ‘Π½ сСтСвой подсистСмы (network namespace) ΠΏΡ€ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π² Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ ΠΈΠ»ΠΈ Π½Π΅ Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈ настройкС туннСля ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°, Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ VPN-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ физичСскиС сСтСвыС интСрфСйсы.

Π‘ΡƒΡ‚ΡŒ Π°Ρ‚Π°ΠΊΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ свой DHCP-сСрвСр ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ для измСнСния ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ частности, Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ прСдоставляСмой Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ DHCP ΠΎΠΏΡ†ΠΈΠ΅ΠΉ 121 (RFC-3442, принят Π² 2002 Π³ΠΎΠ΄Ρƒ), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΉ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ свСдСний ΠΎ статичСских ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°Ρ…, для внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° машинС ΠΆΠ΅Ρ€Ρ‚Π²Ρ‹ ΠΈ направлСния Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π² ΠΎΠ±Ρ…ΠΎΠ΄ VPN. ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· выставлСния сСрии ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ² для подсСтСй с прСфиксом /1, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ высокий ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚, Ρ‡Π΅ΠΌ примСняСмый ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ с прСфиксом /0 (0.0.0.0/0), соотвСтствСнно Ρ‚Ρ€Π°Ρ„ΠΈΠΊ вмСсто выставлСнного для VPN Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сСтСвого интСрфСйса, Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Ρ‡Π΅Ρ€Π΅Π· физичСский сСтСвой интСрфСйс Π½Π° хост Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅Π³ΠΎ Π² локальной сСти.

Атака ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ осущСствлСна Π² Π»ΡŽΠ±Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… 121 ΠΎΠΏΡ†ΠΈΡŽ DHCP, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Linux, Windows, iOS ΠΈ macOS, нСзависимо ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° VPN (Wireguard, OpenVPN, IPsec) ΠΈ Π½Π°Π±ΠΎΡ€Π° ΡˆΠΈΡ„Ρ€ΠΎΠ². ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Android Π°Ρ‚Π°ΠΊΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΏΡ†ΠΈΡŽ 121 Π² DHCP. ΠŸΡ€ΠΈ этом Π°Ρ‚Π°ΠΊΠ° позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΡƒ, Π½ΠΎ Π½Π΅ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΠΈΠ½ΠΈΡ‚ΡŒΡΡ Π² соСдинСния ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ содСрТимоС, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ с использованиСм Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² уровня ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ TLS ΠΈ SSH, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ содСрТимоС запросов ΠΏΠΎ HTTPS, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊ ΠΊΠ°ΠΊΠΈΠΌ сСрвСрам ΠΎΠ½ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ.

Для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π°Ρ‚Π°ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², адрСсованных Π² VPN-интСрфСйс, Ρ‡Π΅Ρ€Π΅Π· Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сСтСвыС интСрфСйсы; Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ DHCP-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ 121; ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ VPN Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ (ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°), ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΎΡ‚ внСшнСй сСти, ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹ настройки Ρ‚ΡƒΠ½Π½Π΅Π»Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ пространства ΠΈΠΌΡ‘Π½ Π² Linux (network namespace). Для экспСримСнтов с ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π°Ρ‚Π°ΠΊΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π½Π°Π±ΠΎΡ€ скриптов.

МоТно ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ идСя локального измСнСния ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ Π½ΠΎΠ²Π° ΠΈ Ρ€Π°Π½Π΅Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ использовалась Π² Π°Ρ‚Π°ΠΊΠ°Ρ…, Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π½Π° ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρƒ DNS-сСрвСра. Π’ ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ Π°Ρ‚Π°ΠΊΠ΅ TunnelCrack, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ»ΠΎΡΡŒ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΌΠ΅Π½Ρƒ шлюза ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π»Π° всС ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ VPN-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ для iOS, Π² 87.5% VPN-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² для macOS, 66.7% для Windows, 35.7% для Linux ΠΈ 21.4% для Android. Π’ контСкстС VPN ΠΈ DHCP ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ упоминался Ρ€Π°Π½Π΅Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΅ΠΌΡƒ посвящён ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ² Π½Π° ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎΠ΄Π½Π΅ΠΉ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ USENIX 2023 (исслСдованиС ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ 64.6% ΠΈΠ· 195 протСстированных VPN-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ Π°Ρ‚Π°ΠΊΠ΅).

Для подстановки ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ² Ρ€Π°Π½Π΅Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹ΠΉ USB-Π±Ρ€Π΅Π»ΠΎΠΊ, ΡΠΈΠΌΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρƒ сСтСвого Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ DHCP ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ сСбя Π² качСствС шлюза. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ контроля Π·Π° шлюзом (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΆΠ΅Ρ€Ρ‚Π²Ρ‹ ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΌ бСспроводной сСти) Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° подстановки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ, воспринимаСмых Π² контСкстС сСтСвого интСрфСйса VPN.

ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ использовании VPN:

Атака TunnelVision, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ VPN-Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Ρ‡Π΅Ρ€Π΅Π· манипуляции с DHCP

ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… послС ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π°Ρ‚Π°ΠΊΠΈ:

Атака TunnelVision, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ VPN-Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Ρ‡Π΅Ρ€Π΅Π· манипуляции с DHCP


Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru