टैपजैकिंग

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

खास जानकारी

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

असर

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

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

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

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

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

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


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

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

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

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

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

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


खास जोखिम

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

जोखिम: 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) से, बैकग्राउंड में दिखने वाले सूचना मैसेज और एक साथ कई सूचना मैसेज दिखाने की समस्या को पूरी तरह से ठीक कर दिया गया है.


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

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

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

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


संसाधन