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

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

जोखिम कम करने की प्रोसेस
FLAG_WINDOW_IS_PARTIALLY_OBSCURED फ़्लैग वाले टच इवेंट को मैन्युअल तरीके से अनदेखा करके, पार्शियल ऑक्लूज़न को कम किया जा सकता है. इस स्थिति से बचने के लिए, डिफ़ॉल्ट रूप से कोई सुरक्षा उपलब्ध नहीं है.
Android 14 और accessibilityDataSensitive: Android 14 (एपीआई लेवल 34) और इसके बाद के वर्शन पर, accessibilityDataSensitive फ़्लैग का इस्तेमाल करके, संवेदनशील डेटा को नुकसान पहुंचाने वाली सुलभता सेवाओं से सुरक्षित रखा जा सकता है. जब इस फ़्लैग को संवेदनशील व्यू पर सेट किया जाता है, जैसे कि लॉगिन या लेन-देन की पुष्टि करने वाली स्क्रीन, तो सिर्फ़ वे सेवाएं व्यू का डेटा पढ़ सकती हैं या उस पर सुलभता से जुड़ी कार्रवाइयां कर सकती हैं जो android:isAccessibilityTool="true" का एलान करती हैं. Android 16 (एपीआई लेवल 36) और इसके बाद के वर्शन पर, accessibilityDataSensitive उन सेवाओं के ज़रिए AccessibilityService.dispatchGesture से इंजेक्ट किए गए सिम्युलेटेड टच जेस्चर को भी ब्लॉक करता है जो android:isAccessibilityTool="true" का एलान नहीं करती हैं. इससे सिस्टम-लेवल पर, छिपकर सुनने और क्लिक इंजेक्शन अटैक से सुरक्षा मिलती है. ये हमले, आंशिक रूप से छिपने की स्थितियों में होते हैं. अपनी लेआउट फ़ाइलों में android:filterTouchesWhenObscured="true" की जानकारी देकर, accessibilityDataSensitive को इंप्लिसिट तरीके से चालू किया जा सकता है.
खास जोखिम
इस सेक्शन में, उन जोखिमों को इकट्ठा किया जाता है जिन्हें कम करने के लिए, स्टैंडर्ड रणनीतियों के बजाय अन्य रणनीतियों की ज़रूरत होती है या जिन्हें एसडीके के किसी लेवल पर कम किया गया है. इन्हें यहां इसलिए शामिल किया गया है, ताकि आपको पूरी जानकारी मिल सके.
जोखिम: 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) के बाद से, बैकग्राउंड में दिखने वाले टोस्ट और टोस्ट बर्स्ट अटैक को पूरी तरह से कम कर दिया गया है.
जोखिम: गतिविधि सैंडविच
अगर नुकसान पहुंचाने वाला कोई ऐप्लिकेशन, किसी उपयोगकर्ता को उसे खोलने के लिए मना लेता है, तो वह अब भी नुकसान पहुंचाने वाले ऐप्लिकेशन से कोई गतिविधि लॉन्च कर सकता है. इसके बाद, वह उसे अपनी गतिविधि से ओवरले कर सकता है. इससे गतिविधि सैंडविच बनता है और आंशिक रूप से रुकावट डालने वाला हमला होता है.
जोखिम कम करने की प्रोसेस
आंशिक रूप से ढके हुए चेहरे की पहचान करने से जुड़ी समस्याओं को कम करने के सामान्य तरीके देखें. मज़बूत सुरक्षा के लिए, पक्का करें कि ऐसी गतिविधियों को एक्सपोर्ट न किया जाए जिन्हें एक्सपोर्ट करने की ज़रूरत नहीं है. इससे, हमलावर को उन्हें सैंडविच करने से रोका जा सकता है.
संसाधन
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर, लिंक टेक्स्ट दिखता है
- android:exported
- # कुंजी प्रबंधन {:#key-management}
- APK से सीधे तौर पर एम्बेड किया गया DEX कोड चलाना