- CCC, IdentifyMobile के exposure के जरिए one-time password SMS को real time में देख सका; यह 200 से अधिक कंपनियों के 19.8 करोड़ से ज्यादा SMS leak होने का मामला था
- 2FA-SMS सिर्फ password चोरी हो जाने की स्थिति को रोकने वाला सहायक उपाय है, लेकिन असली security काफी हद तक SMS sending provider के management level पर भी निर्भर करती है
- IdentifyMobile ने authentication codes, recipient phone numbers, sender names और कुछ account information internet पर expose कर दी थी, और सिर्फ
idmdatastoreनाम के subdomain का अनुमान लगाकर access संभव था - Google, Amazon, Facebook, Microsoft, Telegram, Airbnb, FedEx, DHL आदि प्रभावित दायरे में थे, और केवल real-time feed के जरिए WhatsApp number takeover या financial transactions तथा service login attempts संभव थे
- SMS 2FA सिर्फ password इस्तेमाल करने से बेहतर है, लेकिन app-based one-time passwords या hardware tokens जैसी विधियां, जो mobile network और SMS operators पर कम निर्भर करती हैं, ज्यादा सुरक्षित हैं
IdentifyMobile exposure से सामने आई 2FA-SMS की कमजोरी
- 2FA-SMS में user से उसके द्वारा जाने जाने वाले password और phone number access साबित करने वाले SMS code दोनों की जरूरत होती है
- इसका इस्तेमाल password ही leak होने पर account takeover रोकने के लिए अतिरिक्त layer के रूप में किया जाता है
- SMS में WhatsApp authentication code या bank transfer के लिए TAN जैसे code हो सकते हैं, जो थोड़े समय के लिए ही valid होते हैं
- SMS-based authentication पहले से ही कई attack paths के सामने exposed है
- SIM swapping से SMS intercept किया जा सकता है
- mobile network की SS7 vulnerabilities का दुरुपयोग किया जा सकता है
- phishing के जरिए user से one-time password खुद दिलवाया जा सकता है
- CCC ने 2013 से ही SMS को second-factor authentication method के रूप में इस्तेमाल न करने की सलाह दी थी
- इस मामले में, attacker को communication network या users को सीधे target किए बिना भी SMS sending provider authentication chain की कमजोरी बन सकता है
- IdentifyMobile कई कंपनियों और services के लिए bulk SMS भेजने वाला provider है
- इस provider के पास SMS body तक access था, और body में authentication codes शामिल थे
- CCC केवल
idmdatastoreनाम के subdomain का अनुमान लगाकर real-time data तक पहुंच सका
Exposure का दायरा और वास्तविक जोखिम
- Exposed data में SMS body के अलावा recipient phone numbers, sender names और कुछ मामलों में अन्य account information भी शामिल थी
- प्रभावित कंपनियां 200 से अधिक हैं, जिनमें वे मामले शामिल हैं जहां authentication security सीधे या अन्य service providers के जरिए IdentifyMobile को सौंपी गई थी
- Google, Amazon, Facebook, Microsoft
- Telegram, Airbnb, FedEx, DHL
- कुल 19.8 करोड़ से अधिक SMS leak हुए
- केवल real-time feed से भी कई दुरुपयोग scenarios संभव थे
- WhatsApp number takeover
- password पता होने पर, phone तक access किए बिना financial transactions करना
- password पता होने पर, कई services में login करना
- वास्तविक दुरुपयोग के लिए आम तौर पर password अभी भी जरूरी था, लेकिन data में 1-click login links भी शामिल थे
- कुछ बड़े victim companies के मामले में, IdentifyMobile द्वारा protected scope individual services तक सीमित था
- IdentifyMobile की लापरवाही ने companies और customers को काफी जोखिम में डाल दिया
- CCC ने data store नहीं किया, लेकिन किसी और ने access किया हो, इसकी संभावना से इंकार नहीं किया जा सकता
SMS के बजाय चुने जा सकने वाले authentication methods
- उपलब्ध होने पर SMS के बजाय app में generate होने वाले one-time passwords या hardware tokens का इस्तेमाल करना ज्यादा सुरक्षित है
- ये methods mobile network पर निर्भर नहीं करते
- ये IdentifyMobile जैसे SMS sending providers पर भी निर्भर नहीं करते
- फिर भी, second-factor authentication सिर्फ एक password इस्तेमाल करने से बेहतर है
1 टिप्पणियां
Hacker News की राय
हाल ही में एक परिचित Google Ads phishing का शिकार हो गया। हमलावर ने “BANKNAME login” जैसे search terms पर ads खरीदे, बैंक के login page की बहुत बारीकी से copy बनाई, और पीछे से relay attack चला रहा था
जब उन्होंने phone app का 2-step authentication code डाला, तो screen ने उसे reject करके नया code मांगा, लेकिन असल में दूसरा code नया “pay anyone” payee जोड़ने का approval code था, और उसी से पैसा निकल गया
मुझे लगता था कि SMS 2-step authentication protocol के स्तर पर कमजोर है, लेकिन इस मामले में नया payee जोड़ते समय login से अलग message भेजने वाला बैंक का SMS तरीका शायद बेहतर होता
आदर्श रूप से, सिर्फ token बनाने वाला app नहीं होना चाहिए, बल्कि transaction type के हिसाब से token बनने चाहिए—जैसे login के लिए token और payee जोड़ने के लिए token—और वे एक-दूसरे की जगह इस्तेमाल न हो सकें। जानना चाहूंगा कि क्या किसी ने ऐसा स्तर का 2-step authentication देने वाला बैंक देखा है
शायद passkey local hardware के साथ physical connection स्थापित करती है, इसलिए इस तरह की समस्या को बेमानी बना सकती है। वैसे, पीड़ित को आखिर में पैसा वापस मिल गया
अपनी security posture बेहतर करनी हो तो ad blocker install करना सबसे अच्छे तरीकों में से एक है। जो दोस्त या परिवार के लोग tech-savvy नहीं हैं, उनके लिए uBlock Origin set up करने की मैं strongly recommend करता हूं
Australia app की screen यहां देखी जा सकती है, और US व UK apps भी मिलते-जुलते हैं: https://www.hsbc.com.au/content/dam/hsbc/au/images/ways-to-b...
HSBC यह कई सालों से दे रहा है, लेकिन समझ नहीं आता कि यह अभी तक standard क्यों नहीं है या दूसरे US banks ने इसे क्यों नहीं अपनाया
फिर समझ नहीं आता कि आम ads पर इतनी सख्ती रखते हुए भी, बैंक का impersonation करने और उस बैंक को search करने वाले लोगों को target करने वाले phishing pages को ads क्यों बेच देते हैं
“Internet search करते समय ad-blocking extension का उपयोग करें। अधिकांश internet browsers extensions जोड़ने की अनुमति देते हैं, जिनमें ad-blocking extensions भी शामिल हैं। ऐसे ad blockers को browser के अंदर on और off किया जा सकता है, ताकि किसी खास website के ads allow करते हुए दूसरी जगह के ads block किए जा सकें।”
[0] https://www.ic3.gov/Media/Y2022/PSA221221
मैं काफी समय से शक करता आया हूं कि जो companies SMS 2-step authentication अनिवार्य करती हैं, वे security को लेकर serious नहीं हैं; वे बस phone number चाहती हैं और security theater के तौर पर 2-step authentication दिखाकर number ले लेती हैं
ऊपर से यह ऐसा identifier भी है जिसे आप मिलने वाले लोगों को सीधे दे देते हैं, इसलिए इसे खराब system कहा जा सकता है
ban से बचने के लिए नए accounts बनाने से रोकता है, और कई accounts में दिखने वाले bad behavior को जोड़ना आसान हो जाता है
मुझे लगता है कि spammers ने internet के पतन में जितना योगदान दिया है, उसे कम आंका जाता है
Support करना भी आसान है
NIST काफी पहले से साफ तौर पर SMS 2-step authentication इस्तेमाल न करने को कहता आया है
NIST SP 800-63B §5.1.3.3
https://pages.nist.gov/800-63-3/sp800-63b.html#pstnOOB
Customer: “2-step authentication app से आपका क्या मतलब है? Code मेरे phone पर नहीं आता था?”
Support: “हां, लेकिन अब हम SMS 2-step authentication support नहीं करते।”
Customer: “लेकिन जब code मेरे phone पर आता था, तब कोई problem नहीं थी।”
Support: “जी, लेकिन NIST SMS 2-step authentication इस्तेमाल न करने की सलाह देता है।”
Customer: “NIST क्या है? यह बहुत frustrating है। मुझे अपने account में जाना है।”
दुर्भाग्य से लगभग सभी banks SMS इस्तेमाल करवाते हैं। क्योंकि banking apps rooted phones पर चलने से इनकार कर देते हैं। क्या शानदार security achievement है
मेरे देश में लगभग सभी banks SMS विकल्प के बिना app-based 2-step authentication अनिवार्य करते हैं
अगर अलग phone खरीदकर साथ नहीं रखना चाहते, तो बस वही एक bank इस्तेमाल करना पड़ता है जो इसकी मांग नहीं करता
Rooted phone में दूसरे apps के लिए banking information झांकने और चोरी करने की संभावना खुल जाती है
compromised phone पर banking app का न चलना काफी reasonable लगता है
हालांकि GrapheneOS इसमें शामिल नहीं है, क्योंकि GrapheneOS के official builds में root privileges नहीं होते
लेख सुरक्षा के लिहाज से अलग मायने रखने वाली दो समस्याओं को मिला रहा है
1-click login लिंक चिंता की बात हैं, और सिर्फ SMS access के जरिए WhatsApp जैसी सेवाओं पर कब्ज़ा किया जा सकता है
लेकिन 2-step authentication codes अपेक्षाकृत कम चिंता की बात हैं। वे दूसरा factor हैं, इसलिए attacker को password भी चाहिए होता है
ऐसे मामले में SMS के इस्तेमाल और interception के जोखिम को मैं कहीं कम चिंताजनक मानता हूं
UK में अब लगभग सभी online banking transactions SMS से verify होते दिखते हैं। देखने में यह कानूनी requirement जैसा लगता है, और इसने पुराने bank card + card reader + PIN verification system की जगह ले ली है
पुराना तरीका न सिर्फ ज्यादा सुरक्षित था, बल्कि signal पकड़ रहे, सही से काम कर रहे mobile phone पर निर्भर भी नहीं था
उम्मीद है कि किसी दिन माना जाएगा कि यह भयानक गलती थी और इसे ठीक किया जाएगा, लेकिन बहुत उम्मीद नहीं है
मैं मानता हूं कि offline में card reader उपयोगी था। लेकिन मैं उस device को याद रखकर साथ ले जाना लगभग कभी नहीं कर पाया, इसलिए travel के दौरान अक्सर अटक जाता था
Sweden ने बहुत पहले BankID से यह समस्या हल कर ली थी
https://en.wikipedia.org/wiki/BankID
public institutions और private institutions थोड़ा-सा सहयोग करें तो क्या हासिल हो सकता है, यह हैरान करने वाला है। government services और ज्यादातर banks में login और 2-step authentication का यही एक तरीका है, और यह अच्छी तरह काम करता है
यकीन करना मुश्किल है कि हर देश में ऐसा system नहीं है, और उससे भी आगे, पूरे EU में ऐसा system नहीं है
फिर भी मैं अपनी उम्मीदें बहुत ज्यादा नहीं रख रहा हूं
https://ec.europa.eu/digital-building-blocks/sites/display/E...
S3 bucket में messages शायद हर 5 मिनट में refresh होते थे: https://www.zeit.de/digital/datenschutz/2024-07/it-sicherhei...
हालांकि CCC का इसे सिर्फ 2FA-SMS की समस्या बताना गलत था। प्रभावित केवल Twilio Verify (2-step authentication API) नहीं था, बल्कि इस provider के जरिए भेजे गए सभी SMS थे
यह SMS की अपनी समस्या से ज्यादा, sensitive data storage को ठीक से protect न करने वाली vendor security की समस्या लगती है
ऐसा खास attack path उन technologies में होता ही नहीं
जिन कई financial institutions में मैं काम करता हूं, वे SMS 2-step authentication मांगते हैं और HOTP/TOTP का विकल्प नहीं देते। पागल कर देने वाला है