IP spoofing हमला जो पूरी दुनिया को आपके दोस्तों के पास abuse report भेजने पर मजबूर कर सकता है
(delroth.net)- Hetzner ने
195.201.9.37से SSH port scan होने की abuse report फ़ॉरवर्ड की, लेकिन सर्वर के अंदर malicious process, file change, या असामान्य traffic का कोई सबूत नहीं मिला tcpdumpसे दिखा असली flow यह था कि सर्वर ने बाहर22/tcpपर कनेक्ट नहीं किया था, बल्कि कई इंटरनेट hosts सर्वर को TCP RST वापस भेज रहे थे — यानी यह backscatter के अधिक क़रीब था- मुख्य कारण यह है कि BCP38 filtering न करने वाले network के ज़रिए कोई भी मनमाना source IP लगाकर packet भेज सकता है, और TCP·QUIC·TLS जैसे protocols में attacker जवाब सीधे देख नहीं सकता क्योंकि उनमें round-trip response चाहिए
- यही pattern लेखक के दूसरे Tor relay 2 में भी दिखा, और
tor-relaysmailing list व Tor Project issue में कुछ दिन पहले से ऐसे ही मामले रिपोर्ट हो रहे थे; कुछ nodes अस्थायी रूप से down भी हुए - attacker पीड़ित का IP source के रूप में spoof करके कई SSH targets पर connection attempts भेज सकता है, और automated abuse reports, blocklists, व hosting provider action ट्रिगर कर सकता है
Hetzner की abuse report और सर्वर जांच
- Hetzner ने
195.201.9.37IP के लिए AbuseInfo mail भेजा- रिपोर्ट भेजने वाला:
abuse@watchdogcyberdefense.com - logs में कई
202.91.16x.xtargets के22/tcpकी ओर जाने वालीDENIEDentries शामिल थीं
- रिपोर्ट भेजने वाला:
- ऊपर से देखने पर ऐसा लगा जैसे सर्वर ने इंटरनेट पर SSH connections भेजना शुरू कर दिया हो, इसलिए सामान्य तौर पर malware infection का शक होना स्वाभाविक था
- 1–2 घंटे की जांच के बाद भी सर्वर लगभग सामान्य मिला
- कोई असामान्य process नहीं
- filesystem में कोई बदलाव नहीं
- hypervisor के नज़रिये से कोई असामान्य network traffic नहीं
- उस सर्वर पर कई distributed और federated services चल रही थीं
- Syncthing relay
- Mastodon instance
- Tor relay
- Matrix homeserver
- Tor relay कुछ
22/tcprelays से connect करता है, लेकिन वह रिपोर्ट किए गए network से मेल नहीं खाता था; Matrix·Mastodon logs और Mastodon Sidekiq queue में भी random IP/port requests के निशान नहीं मिले
tcpdump ने पैकेट flow के बारे में क्या दिखाया
- शुरुआत में
dst port 22filter से सर्वर से बाहर22/tcpपर जाने वाला traffic देखने की कोशिश की गई - filter को
not src host 195.201.9.37करने पर कई बाहरी IPs के22/tcpसे लेखक के सर्वर के ephemeral ports पर आने वाले TCP RST packets दिखे - असल में सर्वर ने random hosts के
22/tcpपर connection नहीं भेजा था; बल्कि random इंटरनेट hosts सर्वर को reset packets भेज रहे थे - यह pattern source IP spoofing के कारण spoofed IP पर वापस आने वाले response packets यानी backscatter से मेल खाता है
source IP spoofing और BCP38 की कमी
- इंटरनेट पर destination IP सही होना ज़रूरी है, लेकिन fake source IP के साथ packets कई destinations पर भेजना अब भी संभव है
- BCP38 मौजूदा best practice है, जिसके अनुसार peer networks को केवल उन्हीं IP addresses को source के रूप में इस्तेमाल करने देना चाहिए जिनकी उनसे अपेक्षा की जाती है
- यह filtering packet path की शुरुआत में लागू होनी चाहिए, तभी इसका असर होता है
- बड़े transit provider स्तर पर meaningful filtering कठिन होती है, क्योंकि peers उस provider से पूरे इंटरनेट traffic को carry करने की उम्मीद रखते हैं
- सिर्फ़ एक BCP38 न लागू करने वाला transit provider मिल जाए, तो मनमाने source IP के साथ packets भेजे जा सकते हैं
- APNIC ने 2023 में source address validation अब भी समस्या क्यों है, इस पर लेख प्रकाशित किया था
- TCP, QUIC, TLS जैसे protocols को round-trip communication चाहिए, इसलिए source IP spoof करने पर attacker responses नहीं देख सकता
- इसलिए सामान्य port scan results देखने के लिए यह उपयुक्त नहीं है
- हालाँकि reflection DDoS जैसे ज्ञात दुरुपयोग मौजूद हैं
ऐसा spoofing वास्तविक नुकसान कैसे करता है
- सबसे संभावित flow यह है कि किसी ने लेखक के IP को source बनाकर कई इंटरनेट hosts के
22/tcpपर connection attempts भेजे - अगर उद्देश्य सामान्य open-port probing होता, तो spoofing करने वाला responses देख ही नहीं पाता, इसलिए यह तर्कसंगत नहीं लगता
- पहले Idle Scanning नाम की एक तकनीक थी, लेकिन वह कम व्यस्त सर्वरों और predictable network stack counters पर निर्भर थी, और दशकों पहले ही व्यावहारिक उपयोगिता खो चुकी है
- traffic का volume बहुत कम है और अवधि बहुत लंबी, इसलिए scanner configuration में गलती से source IP ग़लत भर देना भी विश्वसनीय नहीं लगता
- असली नुकसान abuse reporting automation से होता है
- spoofed connection attempts honeypot या intrusion detection system वाले networks तक पहुँचते हैं
- कुछ systems अपने-आप abuse reports भेजते हैं
- hosting providers यह ग़लत समझ सकते हैं कि पीड़ित सर्वर compromised है या malicious है
दूसरे Tor relays में भी यही pattern
- लेखक ने फिर पुष्टि की कि उनका सर्वर Tor relay के रूप में काम कर रहा है
- Tor relay, Tor network के अंदर का node होता है; अगर वह exit node नहीं है, तो वह public internet से सीधे communicate नहीं करता
- relay, Tor network में शामिल nodes के बीच encrypted anonymous traffic forward करता है
- कुछ relays Guard Node के रूप में काम करते हैं और Tor network का entry point बन सकते हैं
- अलग-अलग देशों और ISPs में मौजूद 2 अतिरिक्त relays पर भी
tcpdumpचलाया गया- home internet connection पर relay
- जापान में Linode VPS पर relay
- दोनों relays पर बाहरी
22/tcpसे relay IP की ओर आने वाला वही spoofed TCP response pattern दिखा - लेखक ने
tor-relaysmailing list पर mail भेजी, और कुछ दिन पहले से इसी घटना का विश्लेषण कर रहा Tor Project issue पहले से मौजूद था - यह spoofing हमला relays से पहले दूसरे तरह के nodes पर शुरू हुआ था, और बड़े पैमाने पर forged connections की वजह से कुछ nodes अस्थायी रूप से down भी हुए थे
ऐसा attack flow जिसमें कोई भी target बन सकता है
- संभावित attack flow इस प्रकार है
- attacker को BCP38 filtering के बिना किसी network तक access मिलता है
- वह कई random इंटरनेट hosts के
22/tcpपर TCP connection requests भेजता है - source IP के रूप में victim का IP spoof करता है
- target hosts या security systems इसे victim की connection attempt मानकर abuse reports भेजते हैं
- पर्याप्त scale होने पर victim IP कई blocklists में चढ़ सकता है, और hosting provider सर्वर suspend कर सकता है
- इस हमले में Tor-विशिष्ट कुछ भी नहीं है
- किसी एक प्रेरित attacker के लिए इसे अंजाम देना विशेष रूप से कठिन नहीं लगता
- पीड़ित असली attacker नहीं, बल्कि spoof किए गए source IP का मालिक होता है; लेकिन automated abuse reports और hosting provider की प्रतिक्रिया के कारण उसे operational नुकसान हो सकता है
2024 में भी बना हुआ इंटरनेट ऑपरेशंस का संकट
- spoofed source IP का 2024 में भी समस्या बने रहना इंटरनेट ऑपरेशंस की विफलता जैसा है
- सिर्फ़ BCP38 ही नहीं, RPKI को भी deployment के मामले में मिलती-जुलती समस्याएँ रहीं; बड़े इंटरनेट businesses ने सीधे peers पर requirements लागू करनी शुरू कीं, तब जाकर adoption बढ़ना शुरू हुआ
- इस हमले के अगले कदम स्पष्ट नहीं हैं
- यह पहले से वास्तविक दुनिया में हो रहा है
- लेखक को नहीं पता कि यह पहले से documented attack है या नहीं
- spoofed IP packets के असली source को बाद में trace करने का कोई तरीका लेखक को ज्ञात नहीं है
- जिन operators को ऐसी abuse reports मिलें, उन्हें यह सत्यापित करना चाहिए कि उनका सर्वर attacker नहीं बल्कि victim हो सकता है, और hosting provider को समझाने के लिए प्रमाण जुटाने चाहिए
1 टिप्पणियां
Hacker News की टिप्पणियां
इस तरह की समस्या से निपटना सच में बहुत झुंझलाहट भरा है। दुरुपयोग की रिपोर्ट का वैध जवाब—“किसी ने मेरा IP spoof किया, वह मैं नहीं था, और मेरे उपकरण भी compromise नहीं हुए”—किसी दुर्भावनापूर्ण व्यक्ति के बहाने जैसा बिल्कुल वही लगता है
आखिरकार, लेख में बताए अनुसार, आपको ऐसे पक्ष के सामने अनुपस्थिति का प्रमाण देना पड़ता है जिसे खास परवाह भी नहीं होती, और यह व्यावहारिक रूप से लगभग असंभव है
किसी ऐसी चीज़ पर automated abuse report, जिसे आसानी से spoof किया जा सकता है, अपने-आप में रिपोर्ट को उचित नहीं ठहराती; लेकिन यह मेरे server के सही चलने और hijack न होने की जल्दी जांच करने की वजह जरूर हो सकती है
कम से कम पहचान और jurisdiction का आधार, और शायद video call जैसी चीज़ भी जरूरी हो सकती है। इंटरनेट पर anonymously “मैं अच्छा व्यक्ति हूं” कहकर भरोसा करने को कहना पर्याप्त नहीं है
Spoof किए गए MAC address, email address, ARP messages, Neighbor Discovery, man-in-the-middle TLS certificates के साथ भी यही बात है
फिर भी यह हैरानी की बात है कि अभी भी कुछ चीजें काम कर रही हैं
अगर इसे बिल्कुल perfect design और operate करने के लिए बनाया गया होता, तो शायद यह काफी बार बड़े स्तर पर टूटता। थोड़ी imperfection सहने की क्षमता ने इंटरनेट की मजबूती और उपयोगिता में बड़ा योगदान दिया है
इसका मतलब यह नहीं कि सुधार न किए जाएं; यह ज्यादा एक चेतावनी है कि perfectionism के पीछे भागने से सब कुछ बिगाड़ देने वाली बड़ी गलती आसानी से हो सकती है
पहले इसी तरह DrDoS reflection servers scan किए जाते थे। कोई hosting provider port scan की शिकायतें नहीं पाना चाहता, इसलिए scan का source address किसी अच्छी reputation वाले निर्दोष cloud provider के IP पर सेट कर दें, तो reflection servers खुशी से UDP responses उसी तरफ भेज देते थे
Cloud provider को स्वाभाविक रूप से ढेर सारी complaints मिलती हैं, लेकिन अगर मैं कहता कि मेरे server से scan नहीं हो रहा, तो provider जांच करके service बंद नहीं करता था। Spoofed scan packets भेजने वाला server detect नहीं होता, इसलिए सामान्य abuse-report की समस्या के बिना पूरे इंटरनेट को बार-बार scan किया जा सकता था
असल में यह कितनी बार होता है, पता नहीं; लेकिन transit providers के साथ मिलकर hops को पीछे trace करें तो spoofed packets के source को track करना संभव है। एक बार JPMorgan ने Cogent के साथ मिलकर मुझे बताया था कि उनके IP address पर packets न भेजूं। संदर्भ के लिए, Cogent इंटरनेट के Tier 1 providers में भी spoofing को लेकर काफी tolerant है
यह तरीका खास तौर पर Tor के लिए इस्तेमाल हुआ, यह पहली बार सुना, और यह intuitively थोड़ा उलटा लगता है। क्योंकि spoofed packets भेजने वाला व्यक्ति Tor supporter जैसा लगता। शायद यह बस कोई troll है, और अच्छी बात है कि Tor host करने वाले providers ऐसी चीजों को ज्यादा गंभीरता से नहीं लेंगे
यह बस troll भी हो सकता है, लेकिन कोई ऐसा पक्ष भी हो सकता है जो Tor को radioactive waste जैसा बना देना चाहता हो, क्योंकि Tor surveillance operations में बाधा डालता है
यह कोई नई बात नहीं है। कुछ साल पहले मैंने एक बहुत basic firewall rule बनाया था: destination port 22 पर आने वाले TCP packets में अगर SYN=1, ACK=0 हो, तो source IP को एक दिन के लिए block कर देता था
फिर शिकायतें आने लगीं कि कुछ खास sites और services काम नहीं कर रहीं। पता चला कि हर कुछ दिनों में 8.8.8.8, 1.1.1.1, Steam, Roblox, Microsoft, Facebook, Instagram, और कई chat services जैसे popular server IPs से ऐसे packets आ रहे थे। जाहिर है वे सभी spoofed packets थे, और आखिरकार firewall rule में थोड़ा और verification जोड़ना पड़ा
इसलिए मुझे पूरा भरोसा है कि यह काफी common है। व्यक्तिगत रूप से मुझे पता है कि कई IP addresses operate करना एक exceptional case है, लेकिन मुझे यह flexibility चाहिए कि मैं अपने source addresses में से कोई भी इस्तेमाल करके किसी भी ISP को packets भेज सकूं। मेरे लिए यह महत्वपूर्ण है, और अगर ISP source के आधार पर filtering करता है, तो यह contract खत्म करने की वजह है; मैं दूसरे ISP पर चला जाऊंगा
बाद वाला मामला “spacebar heating फिर चालू करना” जैसी category में आता है, और उम्मीद है कि ISPs अपने broken networks ठीक करेंगे
एक company ने branch office on-premises में कुछ web assets host किए थे, और वहां 1Gbps line थी। headquarters में कई 10G lines और काफी अच्छा datacenter था, इसलिए web VM को headquarters में shift किया गया, लेकिन assigned IP address—यानी ISP-A का public static IP—बरकरार रखा गया। VPN के जरिए headquarters तक routing की, और server ने default gateway का इस्तेमाल करते हुए ISP-A source IP वाले responses ISP-B की 10G line से भेजे
इससे incoming traffic 1G तक limited रहा, लेकिन outgoing में 10G का फायदा मिला। वैसे भी सिर्फ GET requests थीं। यह optimal setup नहीं था और आखिरकार IP बदल दिया गया, लेकिन यह valid use case लगता है
दूसरा, हमारे पास दो अलग-अलग ISP lines, अपना ASN, और अपना /23 address था। कुछ traffic को load-balance करने के लिए आधे IPs ISP-A से और बाकी आधे ISP-B से भेजे। यह ठीक चला, लेकिन balance थोड़ा मिलाने की कोशिश पर एक दिलचस्प समस्या सामने आई। पहला /24 ISP-A पर और दूसरा /24 ISP-B पर announce किया था, लेकिन ISP-A में RP filtering थी। इसलिए सभी IPs वहां भी announce करने पड़े
RP filter के काम करने के तरीके के कारण prepend जैसी चीज़ नहीं कर सकते, और सारा traffic उनके जरिए ही आना पड़ता है। अगर उस prefix के लिए बेहतर route दिखता है, तो वह filter कर देता है। कई महीनों तक उन्होंने security का हवाला देकर इसे ठीक करने से इनकार किया। Security best practice के नाम पर था, इसलिए ISP का नाम बता सकता हूं: Virgin Media
संदर्भ के लिए, rp_filter वाली इंटरनेट line कोई 20 डॉलर महीने वाली नहीं थी, बल्कि 5 हजार डॉलर प्रति माह से ज्यादा की थी। उस इलाके में विकल्प नहीं था इसलिए बदल नहीं सके, लेकिन अगर विकल्प होता तो किसका contract जाता, यह साफ है
“किसी को Tor relay पसंद नहीं हैं” वाली परिकल्पना, लगाई गई मेहनत के मुकाबले बहुत भरोसेमंद नहीं लगती
हो सकता है कि malicious relay चलाने वाला कोई पक्ष वैध relay को अनैतिक तरीके से हटवाकर, अपने नियंत्रण वाले network का अनुपात बढ़ाना चाहता हो
कुछ BitTorrent downloads चला देना भी काफी हो सकता है
spoofing को आगे असंभव बनाने के लिए, BCP38 लागू न करने वाले सभी AS का traffic पर्याप्त संख्या में network operators द्वारा reject करवाने के लिए क्या चाहिए होगा?
उसके पास पहले से ही काफी inbound traffic पर पकड़ है, इसलिए “connection security check” का सच में मतलब हो सकता है
हालांकि reflection amplification factor घटाना कहीं ज्यादा आसान है। क्योंकि IPv4 में reflection vectors scan किए जा सकते हैं, और input bytes के 10 गुना response देने वालों से शिकायत की जा सकती है
यह swatting जैसी ही समस्या है। यह इस बात पर निर्भर करती है कि authority वाला कोई पक्ष unverifed problem reports के आधार पर कड़ा action ले
फर्क शायद यह है कि authority से सीधे संपर्क करने के बजाय, unrelated third parties से report भिजवाई जाती है
single packet और बिना round-trip वाली requests के लिए, जब तक traffic denial-of-service level का न हो, system को automatic abuse reports नहीं भेजनी चाहिए
खासकर SSH में, किसी भी तरह का handshake होने से पहले उसे valid connection attempt मानने का कोई तरीका नहीं है
मेरा मुख्य server भी fake abuse report की वजह से down हो चुका है। दावा था कि मेरे IP से 1Gbps से ज्यादा का DoS attack हुआ, जबकि मेरे server की line 400Mbps पर capped थी। अगर किसी इंसान ने report पढ़ ली होती, तो उसे पता चल जाता कि यह असंभव है, और छुट्टी के दौरान phone support से दो दिन तक लड़ना नहीं पड़ता
यह IP version का swatting, patent trolling, निर्दोष लोगों को फंसाना, और competitor को हटाने के लिए DMCA takedown requests जैसा है
मूल रूप से यह abuse-prevention mechanisms को weaponize करके नापसंद target पर हमला करने का तरीका है। यह दिलचस्प है कि authority वाला पक्ष weak link बनकर अनैतिक actors के लक्ष्य हासिल करने में सक्रिय रूप से इस्तेमाल हो सकता है, लेकिन यह पूरी तरह नई घटना नहीं है
metrics.torproject.org पर relay count और “advertised bandwidth” graphs देखने पर लगता नहीं कि इससे बहुत बड़ा फर्क पड़ा, लेकिन फिर भी यह दिलचस्प है
सबसे खराब बात यह है कि “Watchdog Cyber Defense”, Spamhaus, Shadowserver, या UCEPROTECT जैसे extortionists की नकल करने वाली जगहें लाखों automated reports डाल सकती हैं, और hosts को अपनी IP range blocklist में न चढ़े, इसके लिए व्यावहारिक रूप से उन reports को मानना पड़ता है
इस समस्या का कोई in-band solution नहीं है, लेकिन out-of-band solution हो सकता है
उदाहरण के लिए (1) destination ISP को बताना कि reverse traffic मिल रहा है, (2) वह ISP packets कहां से आ रहे हैं यह जांच करे और उस ISP को बताए, (3) source मिलने तक step 2 दोहराना, (4) उस network के हिस्से को तब तक isolate करना जब तक वह ठीक से काम न करे
आखिरकार internet इंसानों से बना है