टेलीफ़ोनी फ्रॉड आमतौर पर हमलावर को सीधे भुगतान करता है, बिना किसी खरीदार या फिरौती के। कुछ भी चुराया या एन्क्रिप्ट नहीं किया जाता, इसलिए ब्रीच के सामान्य संकेत अनुपस्थित रहते हैं। नुकसान कॉल खर्च के रूप में दिखता है।
इसी से सुरक्षा की रूपरेखा बनती है। आप कॉल की सामग्री में कुछ असामान्य खोजकर इसे पहचान नहीं सकते। सभी नियंत्रण इस बारे में हैं कि कॉल कहाँ जा सकती हैं, कितनी हो सकती हैं, और कितना खर्च कर सकती हैं।
अगर मेरा सिस्टम सुरक्षित है तो इससे बचाव क्यों ज़रूरी है?
क्योंकि कंप्रोमाइज़ का फ़ायदा तुरंत मिलता है और मौका बहुत छोटा होता है।
एक चुराया गया SIP क्रेडेंशियल, या PBX पर एक खुला पोर्ट, यानी वह बिज़नेस फ़ोन सिस्टम जो कंपनी की कॉल रूट करता है, इस्तेमाल होते ही भुगतान देने लगता है। हमलावर की प्रेरणा है कि किसी के ध्यान देने से पहले ज़्यादा से ज़्यादा डायल किया जाए। सबसे अधिक भुगतान देने वाले गंतव्य वही हैं जिन पर कोई सामान्य व्यवसाय कभी कॉल नहीं करता।
यही बात allow list को केवल व्यवस्थित नहीं बल्कि प्रभावी बनाती है। अधिकतर व्यवसाय देशों के एक छोटे और स्थिर समूह को कॉल करते हैं। हमलावर को एक विशिष्ट और अलग समूह चाहिए। जो भी चीज़ इन दोनों को ओवरलैप करने पर मजबूर करे, वह हमलावर के पूरे बिज़नेस मॉडल की कीमत बन जाती है।
गंतव्य नियंत्रण कैसे काम करते हैं?
हर देश या तो आपके वर्कस्पेस के लिए सक्षम है या नहीं, और कॉल केवल उन्हीं तक पहुँचती हैं जिन्हें आपने चालू किया है।
दो अलग-अलग चीज़ें तय करती हैं कि आप किसी देश के साथ क्या कर सकते हैं, और इन्हें एक मानना सबसे आम भ्रम है:
- उपलब्धता बताती है कि क्या वह देश आपके लिए सक्षम करने योग्य है।
Availableका मतलब है कि Bird आपके खाते से वहाँ कॉल कर सकता है।Not supportedका मतलब है कि नहीं कर सकता, और इसे बहाल करना एक सपोर्ट बातचीत है। - आपका टॉगल बताता है कि कोई उपलब्ध देश चालू है या नहीं। बदलाव करते ही यह लागू हो जाता है।
तो किसी देश का उपलब्ध होना यह नहीं बताता कि कॉल वर्तमान में वहाँ पहुँच रही हैं या नहीं। वह टॉगल है, और वही वह नियंत्रण है जो आप संचालित करते हैं।
कुछ देशों पर high risk मार्कर होता है, जो उनकी दरों और फ्रॉड एक्सपोज़र दोनों को दर्शाता है। ये वही गंतव्य हैं जिन तक हमलावर पहुँचना चाहता है। जब तक व्यवसाय वास्तव में वहाँ कॉल न करता हो, इन्हें बंद रखें, और सक्षम करने से पहले वहाँ कॉल की लागत जाँचें। वॉइस गंतव्य पेज हर देश की उपलब्धता और सक्षम स्थिति दिखाता है, और वॉइस प्राइसिंग में दरें हैं।
इस कारण से अस्वीकृत कॉल destination_not_enabled के साथ रिजेक्ट होती है। समाधान उस देश को चालू करना है, न कि फिर से प्रयास करना।
उपलब्धता पूरे देश पर लागू होती है। किसी सक्षम देश के अंदर एक विशिष्ट नंबर फिर भी अनुपलब्ध हो सकता है। वह no_route_found के रूप में रिजेक्ट होता है।
no_route_found एक से अधिक कारणों को कवर करता है। Bird आपके गंतव्य सेटिंग्स देखने से पहले डायल किए गए नंबर को वर्गीकृत करता है। यह उस प्रकार को अस्वीकार करता है जिसे वह रूट नहीं करता। प्रीमियम रेट यहाँ सबसे महत्वपूर्ण है: ऐसे नंबर जिनकी टर्मिनेशन उनके मालिक को भुगतान करती है, और यही वह है जो हमलावर डायल करता है। शेयर्ड-कॉस्ट और पर्सनल-नंबर रेंज कॉल शुल्क को बाँटती हैं या दूसरी लाइन पर फ़ॉरवर्ड करती हैं। नॉन-जियोग्राफ़िक नंबर किसी देश के एरिया कोड से संबंधित नहीं होते। तीनों एक ही तरह से अस्वीकार किए जाते हैं। ये अस्वीकृतियाँ जानबूझकर हैं। ये उन नंबरों तक पहुँचती हैं जो हमलावर चाहता है, क्योंकि आपके सक्षम किए गए देश के अंदर एक प्रीमियम रेंज कभी वर्गीकरण को पार नहीं कर पाती। वास्तव में अनुपलब्ध नंबर भी वही कोड रिपोर्ट करता है, इसलिए टिकट खोलने से पहले डायल किए गए नंबर का प्रकार जाँचें।
मेरे अनुमत देश के अंदर किसी हमले को क्या सीमित करता है?
तीन सीमाएँ, जिनमें से हर एक अपने आप कॉल को अस्वीकार करती है।
| अस्वीकृति कारण | कौन सी सीमा लगी |
|---|---|
daily_spend_exceeded | आपके संगठन की दैनिक वॉइस खर्च सीमा |
concurrent_calls_exceeded | खाते द्वारा अनुमत जितनी समवर्ती कॉल चल रही हैं |
calls_per_second_exceeded | खाते द्वारा अनुमत दर से तेज़ नई कॉल की गईं |
insufficient_balance | वॉलेट में कॉल के लिए पर्याप्त राशि नहीं थी, इसलिए इसे पहले ही अस्वीकार कर दिया गया |
खर्च सीमा सबसे अधिक फ्रॉड नियंत्रण की तरह व्यवहार करती है, क्योंकि यह उसी चीज़ में मापी जाती है जो हमलावर वास्तव में ले रहा है। यह अन्य दो से अलग पथ पर लागू भी होती है। यह अगले UTC दिन की शुरुआत में रीसेट होती है, इसलिए इसे हिट करने वाला बर्स्ट तब तक सीमित रहता है, न कि केवल धीमा होता है। और यही वह सीमा है जो तब तक अस्तित्व में नहीं आती जब तक आप इसे सेट न करें: बिना दैनिक वॉइस सीमा कॉन्फ़िगर किए संगठन पर कोई खर्च सीमा लागू नहीं होती।
बाकी दो ऐसे दो तरीकों से व्यवहार करती हैं जो बदलते हैं कि आप उन पर कैसे निर्भर रहते हैं।
इन्हें क्रम में जाँचा जाता है, एक साथ नहीं। समवर्ती-कॉल सीमा पहले जाँची जाती है और तुरंत जवाब देती है, इसलिए दोनों सीमाओं से ऊपर की कॉल concurrent_calls_exceeded रिपोर्ट करती है और डायल दर का कभी ज़िक्र नहीं करती। यह निदान के लिए मायने रखता है, सुरक्षा के लिए नहीं। एक कैंपेन डायलर calls_per_second_exceeded को हिट कर सकता है जबकि समवर्ती सीमा के आस-पास भी न हो। सेटिंग बदलने से पहले जाँचें कि आपको वास्तव में कौन सा कारण मिला, क्योंकि दोनों के समाधान अलग हैं और गलत सीमा बढ़ाना बेकार है।
जिस सीमा की अपनी जाँच पूरी नहीं हो पाती, वह कॉल को गुज़रने देती है। अगर समवर्ती गणना या रेट लिमिटर का मूल्यांकन नहीं हो पाता, तो कॉल अस्वीकार होने के बजाय गुज़र जाती है। इसलिए ये सीमाएँ सामान्य संचालन को विश्वसनीय रूप से सीमित करती हैं लेकिन हर स्थिति में गारंटी नहीं हैं। यही एक और कारण है कि गंतव्य सूची मायने रखती है: यह वह परत है जो लाइव लुकअप पर निर्भर नहीं करती।
insufficient_balance बिना नियंत्रण के रूप में डिज़ाइन किए एक नियंत्रण की तरह काम करता है। वॉलेट सीमित करता है कि कंप्रोमाइज़ से कितना फ्रॉड हो सकता है। बड़ा ऑटोमैटिक टॉप-अप उस सीमा को हटा देता है, जिससे टॉप-अप राशि सुविधा के साथ-साथ एक फ्रॉड निर्णय भी बन जाती है।
मेरे ट्रंक पर सबसे पहले कॉल कौन भेज सकता है?
केवल ट्रंक की IP allow list पर मौजूद पते, इसके अनुमत API कीज़ और इसके द्वारा जारी किए गए सेशन क्रेडेंशियल ही इसे कॉल भेज सकते हैं।
एक SIP ट्रंक तय करता है कि कौन इसे कॉल भेज सकता है, और किसी भी अन्य स्थान से आने वाली कॉल किसी भी गंतव्य लॉजिक से पहले source_not_allowed के साथ रिजेक्ट हो जाती है। आउटबाउंड कॉल आपके सत्यापित कॉलर ID के विरुद्ध भी जाँची जाती हैं, इसलिए वर्कस्पेस के लिए सत्यापित न किया गया नंबर प्रस्तुत करने वाली कॉल प्लेस होने के बजाय caller_id_not_verified के साथ रिजेक्ट होती है।
इन दोनों का ऑडिट आपकी गंतव्य सूची के साथ ही करना चाहिए, क्योंकि एक उदार allow list बाकी सब को निष्प्रभावी कर देती है। SIP ट्रंक में IP allow list, API कुंजी प्रमाणीकरण और सेशन क्रेडेंशियल शामिल हैं, और कॉलर ID में सत्यापन शामिल है।
मुझे वास्तव में क्या करना चाहिए?
- केवल उन्हीं देशों को सक्षम करें जिन्हें आप कॉल करते हैं, और सूची को एक बार सेट करने की चीज़ नहीं बल्कि समीक्षा करने की चीज़ मानें। दो साल पहले एक कैंपेन के लिए सक्षम किया गया देश एक स्थायी जोखिम है।
- अपने वर्कस्पेस की दैनिक खर्च सीमा सेट करें, और इसे इतना रखें कि हिट होने पर आपको पता चले, न कि इतना कि यह कभी ट्रिगर ही न हो। हर वर्कस्पेस एक डिफ़ॉल्ट सीमा के साथ शुरू होता है; इसे Voice → Spend limit में अपने संगठन की अधिकतम सीमा तक बदलें। जो सीमा कभी सक्रिय ही न हो, वह कोई नियंत्रण नहीं है।
- ट्रंक की allow list को सख्त करें, क्योंकि ऊपर की हर चीज़ केवल उन कॉल के लिए मायने रखती है जो वहाँ तक पहुँचीं।
- अस्वीकृति कारणों पर नज़र रखें।
destination_not_enabledयाcalls_per_second_exceededका अचानक बढ़ना वही है जो नियंत्रण काम करते समय हमला दिखता है। ये आपके लॉग से फ़िल्टर करने का शोर नहीं हैं; ये अलर्ट हैं।
वॉइस गंतव्य में देशों को सक्षम और अक्षम करना शामिल है, और कॉल लॉग में हर अस्वीकृति कारण उसके समाधान सहित सूचीबद्ध है।
संक्षेप में
हमलावर को गंतव्य से भुगतान मिलता है, आपसे नहीं।
वे किसी फ़ोन सिस्टम को कंप्रोमाइज़ करते हैं और ऐसे नंबर डायल करते हैं जिनसे उन्हें आय होती है, इसलिए खर्च आपके खाते पर आता है जबकि मुनाफ़ा उनके पास जाता है।
देश तब तक बंद रहते हैं जब तक आप उन्हें चालू नहीं करते।
कॉल पहुँचने से पहले गंतव्य को सक्षम करना ज़रूरी है, इसलिए किसी कंप्रोमाइज़ का प्रभाव क्षेत्र पूरी दुनिया नहीं बल्कि आपकी सक्षम की गई सूची तक सीमित रहता है।
उपलब्धता और आपका टॉगल अलग-अलग चीज़ें हैं।
उपलब्धता बताती है कि क्या कोई देश आपके लिए सक्षम करने योग्य है। आपका टॉगल बताता है कि वह चालू है या नहीं। कोई देश उपलब्ध हो सकता है और बंद भी।
हर सीलिंग अपने आप एक कॉल को अस्वीकार करती है।
दैनिक खर्च, समवर्ती कॉल और प्रति सेकंड कॉल, हर एक अकेले कॉल रोक सकता है। हर वर्कस्पेस की एक दैनिक खर्च सीमा होती है, जिसे आप Voice → Spend limit में बदल सकते हैं। यह अगले UTC दिन की शुरुआत में रीसेट होती है।