- DEFCON 31 2023 की प्रस्तुति SpamChannel में Cloudflare Worker के जरिए ईमेल भेजने की कोशिश के दौरान 20 लाख से अधिक डोमेनों को प्रभावित करने वाली spoofing समस्या पर चर्चा की गई है
- मुख्य प्रयोग की शुरुआत ईमेल ट्रांसमिशन को मैन्युअल तरीके से नहीं, बल्कि प्रोग्रामिंग तरीके से संभालने और उसे Worker deployment flow से जोड़ने से हुई
- Cloudflare Workers को JavaScript, TypeScript, WASM आधारित serverless computing environment के रूप में प्रस्तुत किया गया है
- मूल प्रक्रिया
npm create cloudflare@latestसे प्रोजेक्ट बनाना औरnpx wrangler deployसे deploy करना है - Workers से ईमेल भेजने का सुराग Cloudflare ब्लॉग की MailChannels integration पोस्ट से मिलता है
SpamChannel प्रस्तुति की शुरुआत
- SpamChannel DEFCON 31 2023 में Marcello Salvati(@byt3bl33d3r) द्वारा प्रस्तुत एक PDF है, जिसमें 20 लाख से अधिक डोमेनों से spoofing ईमेल भेजने के विषय को कवर किया गया है
- प्रस्तुति का लक्ष्य निम्न शर्तों के तहत ईमेल ट्रांसमिशन को लागू करना है
- ईमेल को प्रोग्रामिंग तरीके से भेजना
- Cloudflare Worker के माध्यम से भेजना
- कानूनी जिम्मेदारी के संबंध में “अपराध मत करो” जैसी disclaimer भी शामिल है
Cloudflare Workers और ईमेल ट्रांसमिशन के संकेत
- Cloudflare Workers को serverless computing environment के रूप में पेश किया गया है, और इसमें JavaScript, TypeScript, WASM का उपयोग होता है
- बुनियादी उपयोग flow इस प्रकार है
npm create cloudflare@latestworker.jsबनानाnpx wrangler deploy- deploy के बाद
https://<YOUR_WORKER>.<YOUR_SUBDOMAIN>.workers.devफ़ॉर्मेट के पते पर Worker का उपयोग किया जा सकता है
- शुरुआती दस्तावेज़ Cloudflare Workers Get started guide से जुड़े हैं
- ईमेल ट्रांसमिशन का सुराग Cloudflare ब्लॉग की Sending email from Workers with MailChannels पोस्ट में देखा जा सकता है
1 टिप्पणियां
Hacker News की राय
प्रेज़ेंटेशन वीडियो: https://www.youtube.com/watch?v=NwnT15q_PS8
या यह यहाँ भी है। मेरे Firefox में वीडियो फ़ॉर्मैट नहीं चला, लेकिन VLC में प्ले हो गया: https://media.defcon.org/DEF%20CON%2031/DEF%20CON%2031%20vid...
https://www.youtube.com/watch?v=61PIOBp30vA
https://www.youtube.com/watch?v=eODw4t4WaCw
SPF इस प्रेज़ेंटेशन में बताए गए तरीकों से कहीं ज़्यादा तरीकों से टूटा हुआ है। ईमेल सुरक्षा हार्डनिंग/डिलिवरेबिलिटी सपोर्ट इंजीनियर के तौर पर काम करते हुए, मेरी सलाह हमेशा SPF के बजाय DKIM + DMARC पर फोकस करने की होती है
लेगसी कारणों से SPF अभी भी ज़रूरी है, लेकिन डिलिवरेबिलिटी या impersonation रोकने के लिए उस पर निर्भर नहीं रहना चाहिए
स्लाइड 54 कहती है कि DKIM + DMARC इस अटैक में मदद नहीं करते, लेकिन यह पूरी तरह सही नहीं है
DMARC
p=rejectपॉलिसी को सुरक्षित रूप से तभी चालू किया जा सकता है जब आपने सभी delegated senders पर DKIM सेट किया हो, और उस स्तर पर पहुँचने के बाद SPF में?neutral modifier इस्तेमाल करके third-party senders के लिए SPF हटाना शुरू किया जा सकता हैउदाहरण के लिए
v=spf1 include:relay.mailchannels.net ~allबदलकरv=spf1 ?include:relay.mailchannels.net ~allहो जाता हैइससे MailChannels से आया मेल DMARC-सक्षम receivers के लिए SPF में neutral माना जाएगा और वे DKIM का उपयोग करेंगे, जबकि पुराने लेगसी मेल सर्विसेज़ को भी neutral result स्वीकार करना चाहिए
यह परफेक्ट समाधान नहीं है, लेकिन ईमेल वैसे भी कभी 100% भरोसेमंद या सुरक्षित नहीं हो सकता
मैं SPF को सिर्फ़
$myIPकी अनुमति देने के लिए सेट करता आया हूँ। मेरे domain name से spam भेजने के लिए पहले ISP या registrar को hack करना होगा, और उस स्तर पर वे मेरे domain का TLS certificate भी ले सकते हैंबड़े संगठनों में भी, जिन्हें कई sending systems को allowlist करना पड़ता है, जब DKIM records forge करना संभव नहीं है तो कोई वैध SPF sender में से एक होने का दिखावा कैसे करेगा, यह मुझे समझ नहीं आता
submitted presentation जैसी स्थिति, जहाँ कोई भी public तौर पर इस्तेमाल कर सकने वाली IP range को allowlist कर देता है, बस मूर्खतापूर्ण configuration है
पूरे mail exchange को spoof करने के लिए कुछ bytes की एक email पर terabytes traffic चाहिए होगा, और STARTTLS enforce हो तो यह असंभव हो जाता है
हम production में Cloudflare Workers + MailChannels इस्तेमाल कर रहे हैं। डराने वाली बात है
हम पहले से ही CF Workers से असली server पर migrate करने का काम कर रहे थे, अब लगता है MailChannels भी छोड़ना पड़ेगा
security risk सुविधा जितना क़ीमती नहीं है
_mailchannelsrecord publish नहीं करते, Workers से MailChannels के जरिए email नहीं भेज सकते“DKIM signature नहीं है, लेकिन DKIM implement करने वाले domain से आई हर email पर banner दिखाना” — मेरी समझ में यह ज़्यादातर असंभव है। क्योंकि पक्का जानने का कोई तरीका नहीं है कि किसी domain ने DKIM implement किया है या नहीं
सिद्धांत रूप में
"_domainkey.example.com"पर DNS query करके देखा जा सकता है कि NXDOMAIN आता है या NOERROR। बाद वाला आम तौर पर subdomain होने का संकेत देता है, और इसलिए इसका मतलब हो सकता है कि DNS में कुछ DKIM keys मौजूद हैंलेकिन selector name पता नहीं चल सकता, और यह भी नहीं पता चल सकता कि वह key active है या बाद में activate करने के लिए है
एक domain में कई authenticated senders हो सकते हैं, जिनमें से कुछ DKIM signatures इस्तेमाल करते हों और कुछ नहीं
सभी DNS servers standard को ठीक से follow नहीं करते, इसलिए NXDOMAIN/NOERROR distinction भी बस मोटे तौर पर ही काम करता है
उद्धृत वाक्य का मतलब लगता है कि MailChannels से आए उन mails को reject किया जाए जिनमें DKIM signature नहीं है
“MailChannels के मुख्य ग्राहक वे web hosting providers हैं जो भेजी जाने वाली emails के domains के owner नहीं हैं” — यह कुछ समय में सुना गया सबसे खराब बहाना है
web hosting providers आम तौर पर host किए जाने वाले domains के “owner” नहीं होते, लेकिन वे यह निश्चित रूप से जानते हैं कि वे कौन-से domains host कर रहे हैं। domains को customer account/directory पर route करना ही web hosting का मूल काम है
ज़रूरत बस इतनी है कि cPanel जैसी integration domain list report करे और हर domain को randomly generated key से bind कर दे
यह सब end users को परेशान किए बिना automate किया जा सकता है, और किया जाना चाहिए
अच्छा होगा अगर DMARC specification आगे बढ़कर ऐसा तरीका दे कि validation में SPF नहीं, बल्कि सिर्फ DKIM का इस्तेमाल किया जा सके। अफसोस, Google Calendar invites जैसी चीज़ें अभी भी DKIM में fail हो जाती हैं
https://mailarchive.ietf.org/arch/msg/dmarc/PDktxOYkB28k6ukL...
मुझे यह बहुत अच्छा idea लगता है, क्योंकि domain owner DMARC इस्तेमाल करते हुए भी specify कर सकेगा कि “मेरे domain के traffic को सच में authenticate करने वाला mechanism सिर्फ DKIM हो”
industry में SPF और DMARC की कमजोरियों को bypass करने के कई तरीके हैं, जैसे SPF macros, जो SPF evaluation के समय ही पता चलने वाले criteria के आधार पर authentication को dynamically adjust करते हैं
लेकिन कोई भी workaround “मेरे domain के लिए कृपया सिर्फ DKIM इस्तेमाल करें” कहने से बेहतर नहीं है
हाल ही में मैंने अपने domain के लिए email setup खुद किया, और खासकर उस ISP की वजह से बेहद frustrate हुआ जिसने तय कर रखा है कि “अपने equipment से email भेजने के लिए business account होना चाहिए”; ऐसी बातें सच में गुस्सा दिलाती हैं
मैं network का responsible member बनने के लिए जी-जान लगाकर कोशिश करता हूँ, और अपने systems को सही तरह से configure करने के लिए current state-of-the-art तक गहराई में जाकर सब समझता हूँ
लेकिन यह जानकर हैरानी होती है कि ऐसे लोग न सिर्फ मौजूद हैं, बल्कि practically open relay की तरह लापरवाही से चलते हैं, और लगभग आधा Internet उसकी कीमत चुकाता है
संक्षेप में, बात यह है कि कई SPF records में शामिल open relays मिले हैं
DEFCON presentation ने किसी बड़े hole के अस्तित्व को prove नहीं किया, बल्कि Internet email के शुरुआती दिनों से मौजूद एक तथ्य दिखाया
S/MIME या DKIM जैसे message signatures इस्तेमाल न करने पर sender domain को पर्याप्त रूप से authenticate नहीं किया जा सकता
DKIM होने पर भी DKIM replay attacks के जरिए बड़े पैमाने पर abuse संभव है
ARC headers का spam score पर असर दिलचस्प है। एक personal mail server चलाने वाले के तौर पर, क्या सिर्फ अपने emails में बेकार-सा ARC headers का set जोड़ देने से deliverability बढ़ाई जा सकती है?
organized और knowledgeable spammers इस तरह की हर चीज़ की गहराई से पड़ताल कर रहे होंगे, और निश्चित ही इसे breakthrough के लिए इस्तेमाल कर रहे होंगे
लगता है यह मई 2022 में भी पहले ही confirm हो चुका था: https://news.ycombinator.com/item?id=30533032
“हमारे पास व्यापक spam और phishing detection capabilities हैं और हम abuse handle कर सकते हैं”
आह, अच्छा :D