3 पॉइंट द्वारा GN⁺ 2024-05-07 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • VPN एक ऐसी तकनीक है जो उपयोगकर्ता के डिवाइस और किसी दूसरे नेटवर्क के सर्वर के बीच नेटवर्क ट्रैफिक के लिए एक tunnel बनाती है। इससे बना virtual network, भौतिक नेटवर्क की तरह काम करता है और भौगोलिक स्थान की सीमाओं से बंधा नहीं होता।
  • VPN client एक virtual network interface बनाता है, ट्रैफिक को encrypt/decrypt करता है, और फिर उसे physical network interface के जरिए भेजता है।
  • VPN को उपयोगकर्ता के लिए जितना संभव हो उतना आसान बनाने के लिए डिज़ाइन किया गया है, और आमतौर पर login करके एक बटन क्लिक करने के अलावा ज्यादा काम नहीं करना पड़ता।
  • क्योंकि VPN निचले स्तर के network traffic को इंटरनेट पर भेजता है, यह वास्तव में host की attack surface को बढ़ाता है। VPN LAN ट्रैफिक को इंटरनेट पर encapsulate करके इंटरनेट के ऊपर एक local network (LAN) बना देता है।
  • VPN packet encryption जैसे compensating controls का उपयोग करके इस विस्तारित LAN attack surface को कम करता है। लेकिन VPN उपयोगकर्ता को physical LAN पर होने वाले local network attacks से नहीं बचाता।

DHCP और DHCP option 121

  • DHCP एक protocol है जो IP address को dynamically assign करता है और remote तरीके से device configuration बदलने के लिए options देता है।
  • DHCP option 121 एक ऐसा option है जो administrator को client की routing table में static routes जोड़ने देता है।
  • DHCP option 121 की दिलचस्प बात यह है कि DHCP server यह तय नहीं कर सकता कि route किस network interface device पर install होगा। इसके बजाय, DHCP client उस option के लिए routing rules install करते समय उसी network interface को implicitly चुनता है जिसके जरिए वह DHCP server से बात कर रहा होता है।

Decloaking attack की शर्तें और प्रक्रिया

  • लक्ष्य host को हमलावर के नियंत्रण वाले DHCP server से DHCP lease स्वीकार करनी होगी
  • लक्ष्य host के DHCP client में DHCP option 121 implement होना चाहिए
  • हमलावर VPN उपयोगकर्ता के उसी नेटवर्क पर DHCP server चलाता है और DHCP configuration में खुद को gateway के रूप में सेट करता है
  • DHCP option 121 का उपयोग करके VPN उपयोगकर्ता की routing table में routes सेट किए जाते हैं
  • route सेट होने के बाद network traffic, VPN के virtual interface की बजाय उस network interface से भेजा जाता है जो DHCP server से संचार कर रहा होता है
  • ट्रैफिक VPN के encrypted tunnel के बाहर से गुजरता है, लेकिन VPN control channel बना रहता है, इसलिए VPN खुद को अब भी connected मानता है

प्रभावित सिस्टम

  • RFC specification के अनुसार DHCP client implement करने वाले और DHCP option 121 routes को support करने वाले ज़्यादातर operating systems जैसे Windows, Linux, iOS, MacOS प्रभावित हैं। (Android प्रभावित नहीं है क्योंकि वह DHCP option 121 को support नहीं करता)
  • वे VPN जो host के ट्रैफिक की सुरक्षा के लिए केवल routing rules पर निर्भर करते हैं, vulnerable हैं
  • अगर आप अपना खुद का VPN server host कर रहे हैं, तो VPN client configuration को harden न करने पर वह vulnerable हो सकता है
  • यह असर base VPN protocols (WireGuard, OpenVPN, IPsec आदि) से स्वतंत्र है, क्योंकि यह उस OS network stack को reconfigure करता है जिस पर VPN निर्भर करता है

mitigation और सीमाएँ

  • Linux के network namespace का उपयोग इस समस्या को पूरी तरह हल कर सकता है, लेकिन आमतौर पर इसे अच्छी तरह implement नहीं किया जाता
  • कुछ VPN providers physical interface पर inbound/outbound traffic को firewall rules से block करते दिखे हैं, लेकिन यह केवल आंशिक mitigation है
  • DHCP option 121 को ignore करना भी एक mitigation हो सकता है, लेकिन इससे network connectivity टूट सकती है
  • Hot spot या VM का उपयोग मददगार हो सकता है, क्योंकि इससे हमलावर के लिए local network access पाना कठिन हो जाता है
  • अगर पूर्ण ट्रैफिक गोपनीयता चाहिए, तो untrusted networks का उपयोग न करना सबसे अच्छा बचाव है

GN⁺ की राय

  • क्योंकि VPN को physical network पर होने वाले LAN attacks को कम करने के लिए डिज़ाइन नहीं किया गया है, इसलिए यह दावा कि untrusted network में VPN ग्राहकों की रक्षा करेगा, VPN providers की marketing में जोखिमभरा हो सकता है। VPN providers को TunnelVision के लिए mitigation या fixes को सार्वजनिक रूप से document करना चाहिए और उपयोगकर्ताओं को इसकी जानकारी देनी चाहिए।
  • Enterprise VPN अक्सर coffee shop, hotel, airport जैसी जगहों पर उपयोग किए जाते हैं, इसलिए network administrators को कर्मचारियों को इन स्थानों से काम करने के जोखिम के बारे में बताना चाहिए और जहाँ तक संभव हो इससे बचने की सलाह देनी चाहिए। साथ ही, internal resources पर HTTPS जैसे encryption protocols लागू किए जाने चाहिए ताकि untrusted networks से जुड़ने वाले VPN उपयोगकर्ताओं के कारण data leakage रोकी जा सके।
  • इंटरनेट का अधिकांश ट्रैफिक HTTPS से सुरक्षित है, इसलिए VPN निष्क्रिय हो जाने पर भी अधिकांश उपयोगकर्ता डेटा local network attacker के सामने उजागर नहीं होगा। लेकिन sensitive traffic के मामले में चेतावनी ज़रूरी है।
  • Linux को छोड़कर बाकी OS maintainers को यह देखना चाहिए कि network namespace से जुड़ी सुविधाएँ जोड़ना या बेहतर बनाना संभव है या नहीं।
  • यह VPN तकनीक की सुरक्षा विशेषताओं का सीधा उल्लंघन नहीं है, लेकिन VPN providers द्वारा दिए गए आश्वासनों के विपरीत होने के कारण इसे vulnerability माना जा सकता है। शोधकर्ताओं का अनुमान है कि यह तकनीक 2002 से संभव रही होगी, और प्रभावित पक्षों तक व्यापक रूप से जानकारी पहुँचाने के लिए उन्होंने अपने निष्कर्ष सार्वजनिक करने का निर्णय लिया।

1 टिप्पणियां

 
GN⁺ 2024-05-07
Hacker News की राय

सारांश:

  • यह हमला 2016 में Samy Kamkar के "Poison Tap" हमले जैसा है। USB/Thunderbolt network adapter का उपयोग करके दो अधिक विशिष्ट routes advertise किए जा सकते हैं और system के अन्य interfaces पर प्राथमिकता पाकर सारा traffic intercept किया जा सकता है।
  • headline में दावा किया गया है कि इसका असर सभी VPN clients पर पड़ता है, लेकिन कई clients firewall rules सेट करते हैं जो physical interface के साथ traffic को block कर देते हैं। यह document करना अधिक उपयोगी होता कि प्रमुख personal/commercial और enterprise VPN solutions में यह feature default रूप से किस अनुपात में enabled है।
  • DHCP option 121 का उपयोग करने पर DHCP server विशेष CIDR ranges के लिए routing rules सेट कर सकता है। लंबा prefix होने के कारण इन्हें default 0.0.0.0/0 rule पर प्राथमिकता मिलती है।
  • यह "हमला" DHCP option 121 का एक चतुर उपयोग है। सही isolation के लिए उचित policy-based routing (जैसे Linux network namespaces, FreeBSD vnet, OpenBSD rdomains) का उपयोग करना चाहिए।
  • Linux में VPN interface को VRF में रखकर इसे mitigate किया जा सकता है। systemd-networkd इसके लिए built-in support देता है।
  • threat model जिसमें attacker LAN का DHCP server बन सकता है, उसकी संभावना कम है, लेकिन असंभव नहीं है।
  • virtual machine-आधारित architecture भी इस समस्या का समाधान कर सकता है। QubesOS ऐसा मिलता-जुलता setup बहुत आसानी से configure करने देता है।
  • network namespaces का एक दिलचस्प विकल्प है kernel networking को पूरी तरह bypass करना और user-space network stack का उपयोग करना।
  • IPv4-only VPN service का उपयोग करते हुए system पर IPv6 enabled रखना अधिक चिंताजनक है। इससे गंभीर समस्याएँ हो सकती हैं।