टैपजैकिंग

OWASP कैटगरी: MASVS-PLATFORM: Platform Interaction

खास जानकारी

टैपजैकिंग, Android ऐप्लिकेशन में क्लिकजैकिंग की वेब से जुड़ी कमज़ोरी के बराबर है: इसमें कोई नुकसान पहुंचाने वाला ऐप्लिकेशन, उपयोगकर्ता को सुरक्षा से जुड़े कंट्रोल (पुष्टि करने वाला बटन वगैरह) पर क्लिक करने के लिए गुमराह करता है. इसके लिए, वह यूज़र इंटरफ़ेस (यूआई) को ओवरले से छिपा देता है या किसी अन्य तरीके का इस्तेमाल करता है. इस पेज पर, हम हमले के दो वैरिएंट के बीच अंतर करते हैं: पूरी तरह से और आंशिक रूप से छिपाना. पूरी तरह से ढकने की स्थिति में, हमलावर टच एरिया को ओवरले करता है. वहीं, आंशिक रूप से ढकने की स्थिति में, टच एरिया खुला रहता है.

असर

टैपजैकिंग हमलों का इस्तेमाल, लोगों को कुछ कार्रवाइयां करने के लिए गुमराह करने के लिए किया जाता है. इसका असर इस बात पर निर्भर करता है कि हमलावर किस कार्रवाई को टारगेट कर रहा है.

जोखिम: पूरी तरह से ढका हुआ

पूरी तरह से छिपाने की तकनीक में, हमलावर टच इवेंट को हाइजैक करने के लिए, टच एरिया को ओवरले करता है:

पूरी तरह से ढकी हुई इमेज

जोखिम कम करने के तरीके

कोड में View.setFilterTouchesWhenObscured(true) सेट करके, पूरी तरह से दिखने में रुकावट आने से रोका जाता है. इससे ओवरले से मिले टच इवेंट ब्लॉक हो जाते हैं. अगर आपको डिक्लेरेटिव अप्रोच का इस्तेमाल करना है, तो आपको जिस View ऑब्जेक्ट को सुरक्षित रखना है उसके लिए, लेआउट फ़ाइल में android:filterTouchesWhenObscured="true" भी जोड़ा जा सकता है.


जोखिम: कुछ हिस्सा ढका हुआ है

स्क्रीन के कुछ हिस्से को ढंककर किए जाने वाले हमलों में, टच एरिया खुला रहता है:

कुछ हिस्से के दिखने की इमेज

जोखिम कम करने के तरीके

FLAG_WINDOW_IS_PARTIALLY_OBSCURED फ़्लैग वाले टच इवेंट को मैन्युअल तरीके से अनदेखा करके, कुछ हद तक स्क्रीन के ढकने की समस्या को कम किया जा सकता है. इस स्थिति से बचने के लिए, कोई डिफ़ॉल्ट सुरक्षा सुविधा उपलब्ध नहीं है.

Android 16 और accessibilityDataSensitive: Android 16 (एपीआई लेवल 16) और इसके बाद के वर्शन से, डेवलपर accessibilityDataSensitive फ़्लैग का इस्तेमाल कर सकते हैं. इससे, वे संवेदनशील डेटा को ऐसी नुकसान पहुंचाने वाली सुलभता सेवाओं से ज़्यादा सुरक्षित रख सकते हैं जो सुलभता के लिए बने असली टूल नहीं हैं. जब इस फ़्लैग को संवेदनशील व्यू (जैसे, लॉगिन स्क्रीन, लेन-देन की पुष्टि करने वाली स्क्रीन) पर सेट किया जाता है, तो यह ऐक्सेसिबिलिटी की अनुमति वाले ऐप्लिकेशन को संवेदनशील डेटा को पढ़ने या उससे इंटरैक्ट करने से रोकता है. ऐसा तब तक होता है, जब तक उन्हें मेनिफ़ेस्ट में isA11yTool=true के तौर पर घोषित नहीं किया जाता. इससे सिस्टम लेवल पर, बातचीत सुनने और क्लिक इंजेक्शन के हमलों से ज़्यादा मज़बूत सुरक्षा मिलती है. ये हमले, आंशिक रूप से ढके हुए ऑब्जेक्ट के मामलों में होते हैं. डेवलपर अक्सर लेआउट फ़ाइलों में accessibilityDataSensitive को शामिल करके, accessibilityDataSensitive को डिफ़ॉल्ट रूप से चालू कर सकते हैं.android:filterTouchesWhenObscured="true"


खास जोखिम

इस सेक्शन में उन जोखिमों के बारे में जानकारी दी जाती है जिनके लिए, जोखिम कम करने की सामान्य रणनीतियों के अलावा अन्य रणनीतियों की ज़रूरत होती है. इसके अलावा, इसमें उन जोखिमों के बारे में भी जानकारी दी जाती है जिन्हें एसडीके के किसी लेवल पर कम किया गया था और यहां पूरी जानकारी देने के लिए मौजूद हैं.

जोखिम: android.Manifest.permission.SYSTEM_ALERT_WINDOW

SYSTEM_ALERT_WINDOW अनुमति की मदद से, कोई ऐप्लिकेशन ऐसी विंडो बना सकता है जो सभी ऐप्लिकेशन के ऊपर दिखती है.

जोखिम कम करने के तरीके

Android के नए वर्शन में, कई तरह की सुरक्षा से जुड़ी सुविधाएं जोड़ी गई हैं. इनमें ये शामिल हैं:

  • Android 6 (एपीआई लेवल 23) और इसके बाद के वर्शन पर, उपयोगकर्ताओं को ऐप्लिकेशन को ओवरले विंडो बनाने की अनुमति साफ़ तौर पर देनी होती है.
  • Android 12 (एपीआई लेवल 31) और इसके बाद के वर्शन पर, ऐप्लिकेशन true को Window.setHideOverlayWindows() में पास कर सकते हैं.

जोखिम: कस्टम टोस्ट

हमलावर, Toast.setView() का इस्तेमाल करके सूचना मैसेज की स्टाइल को पसंद के मुताबिक बना सकता है. Android 10 (एपीआई लेवल 29) और इससे पहले के वर्शन पर, नुकसान पहुंचाने वाले ऐप्लिकेशन बैकग्राउंड से इस तरह के सूचना वाले मैसेज लॉन्च कर सकते हैं.

जोखिम कम करने के तरीके

अगर कोई ऐप्लिकेशन, Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करता है, तो सिस्टम बैकग्राउंड में कस्टम टोस्ट को ब्लॉक कर देता है. हालांकि, कुछ मामलों में इस सुरक्षा को एक साथ कई सूचनाएं भेजकर बाईपास किया जा सकता है. इसमें हमलावर, ऐप्लिकेशन के फ़ोरग्राउंड में होने के दौरान कई सूचनाएं भेजता है. इसके बाद, ऐप्लिकेशन के बैकग्राउंड में चले जाने पर भी सूचनाएं मिलती रहती हैं.

Android 12 (एपीआई लेवल 31) से, बैकग्राउंड में दिखने वाले सूचना मैसेज और सूचना मैसेज की बाढ़ से होने वाले हमलों को पूरी तरह से कम कर दिया गया है.


जोखिम: एक साथ कई गतिविधियां करना

अगर कोई नुकसान पहुंचाने वाला ऐप्लिकेशन, किसी उपयोगकर्ता को उसे खोलने के लिए मना लेता है, तो वह अब भी पीड़ित ऐप्लिकेशन से कोई गतिविधि लॉन्च कर सकता है. इसके बाद, वह अपनी गतिविधि को उस पर ओवरले कर सकता है. इससे ऐक्टिविटी सैंडविच बन जाता है और कुछ हद तक ओक्लूज़न अटैक हो जाता है.

जोखिम कम करने के तरीके

आंशिक रूप से ढके हुए ऑब्जेक्ट के लिए, सामान्य तौर पर किए जाने वाले सुधार देखें. डिफ़ेंस इन-डेप्थ के लिए, पक्का करें कि आपने उन गतिविधियों को एक्सपोर्ट न किया हो जिन्हें एक्सपोर्ट करने की ज़रूरत नहीं है. इससे हमलावर को उन्हें सैंडविच करने से रोका जा सकेगा.


संसाधन