Tapjacking
Basic Information
Tapjacking एक हमला है जहाँ एक दुष्ट एप्लिकेशन लॉन्च किया जाता है और यह एक पीड़ित एप्लिकेशन के ऊपर खुद को स्थिति में रखता है। जब यह पीड़ित ऐप को दृश्यमान रूप से अस्पष्ट करता है, तो इसका उपयोगकर्ता इंटरफ़ेस इस तरह से डिज़ाइन किया गया है कि उपयोगकर्ता को इसके साथ इंटरैक्ट करने के लिए धोखा दिया जा सके, जबकि यह इंटरैक्शन को पीड़ित ऐप के पास भेज रहा है। इसका प्रभाव यह है कि यह उपयोगकर्ता को यह जानने से अंधा कर देता है कि वे वास्तव में पीड़ित ऐप पर क्रियाएँ कर रहे हैं।
Detection
इस हमले के प्रति संवेदनशील ऐप्स का पता लगाने के लिए, आपको एंड्रॉइड मैनिफेस्ट में निर्यातित गतिविधियों की खोज करनी चाहिए (ध्यान दें कि एक इरादा-फिल्टर के साथ गतिविधि डिफ़ॉल्ट रूप से स्वचालित रूप से निर्यात की जाती है)। एक बार जब आप निर्यातित गतिविधियों को ढूंढ लेते हैं, तो जांचें कि क्या उन्हें कोई अनुमति की आवश्यकता है। इसका कारण यह है कि दुष्ट एप्लिकेशन को भी उस अनुमति की आवश्यकता होगी।
Protection
Android 12 (API 31,32) और उच्चतर
इस स्रोत के अनुसार, एंड्रॉइड 12 (API 31 & 30) और उच्चतर से एंड्रॉइड द्वारा स्वचालित रूप से टेपजैकिंग हमलों को रोका जाता है। इसलिए, भले ही एप्लिकेशन संवेदनशील हो, आप इसे शोषण नहीं कर पाएंगे।
filterTouchesWhenObscured
filterTouchesWhenObscured
यदि android:filterTouchesWhenObscured
को true
पर सेट किया गया है, तो View
को तब भी स्पर्श नहीं मिलेगा जब दृश्य की विंडो किसी अन्य दृश्यमान विंडो द्वारा अस्पष्ट हो।
setFilterTouchesWhenObscured
setFilterTouchesWhenObscured
गुण setFilterTouchesWhenObscured
को सत्य पर सेट करने से इस संवेदनशीलता के शोषण को भी रोका जा सकता है यदि एंड्रॉइड संस्करण कम है।
यदि इसे true
पर सेट किया गया है, तो उदाहरण के लिए, एक बटन को स्वचालित रूप से अक्षम किया जा सकता है यदि यह अस्पष्ट है:
शोषण
Tapjacking-ExportedActivity
सबसे हाल का Android एप्लिकेशन जो Tapjacking हमला करता है (+ हमले के एप्लिकेशन की निर्यातित गतिविधि से पहले सक्रिय करना) यहाँ पाया जा सकता है: https://github.com/carlospolop/Tapjacking-ExportedActivity.
इसे उपयोग करने के लिए README निर्देशों का पालन करें.
FloatingWindowApp
एक उदाहरण प्रोजेक्ट जो FloatingWindowApp को लागू करता है, जिसे अन्य गतिविधियों के ऊपर क्लिकजैकिंग हमले को करने के लिए रखा जा सकता है, यहाँ पाया जा सकता है FloatingWindowApp (थोड़ा पुराना, apk बनाने में शुभकामनाएँ).
Qark
ऐसा लगता है कि यह प्रोजेक्ट अब बनाए नहीं रखा गया है और यह कार्यक्षमता अब ठीक से काम नहीं कर रही है
आप qark का उपयोग --exploit-apk
--sdk-path /Users/username/Library/Android/sdk
पैरामीटर के साथ एक दुर्भावनापूर्ण एप्लिकेशन बनाने के लिए कर सकते हैं ताकि संभावित Tapjacking कमजोरियों का परीक्षण किया जा सके।\
निवारण अपेक्षाकृत सरल है क्योंकि डेवलपर यह चुन सकता है कि जब एक दृश्य दूसरे द्वारा ढका होता है तो स्पर्श घटनाएँ प्राप्त न करें। Android Developer’s Reference का उपयोग करते हुए:
कभी-कभी यह आवश्यक होता है कि एक एप्लिकेशन यह सत्यापित कर सके कि कोई क्रिया उपयोगकर्ता की पूरी जानकारी और सहमति के साथ की जा रही है, जैसे कि अनुमति अनुरोध को स्वीकार करना, खरीदारी करना या विज्ञापन पर क्लिक करना। दुर्भाग्यवश, एक दुर्भावनापूर्ण एप्लिकेशन उपयोगकर्ता को इन क्रियाओं को करने के लिए धोखा देने की कोशिश कर सकता है, बिना यह जाने कि दृश्य का उद्देश्य क्या है। एक उपाय के रूप में, ढांचा एक स्पर्श फ़िल्टरिंग तंत्र प्रदान करता है जिसका उपयोग संवेदनशील कार्यक्षमता तक पहुँच प्रदान करने वाले दृश्यों की सुरक्षा में सुधार के लिए किया जा सकता है।
स्पर्श फ़िल्टरिंग सक्षम करने के लिए,
setFilterTouchesWhenObscured(boolean)
को कॉल करें या android:filterTouchesWhenObscured लेआउट विशेषता को true पर सेट करें। जब सक्षम किया जाता है, तो ढांचा उन स्पर्शों को अस्वीकार कर देगा जो तब प्राप्त होते हैं जब दृश्य की विंडो किसी अन्य दृश्य विंडो द्वारा ढकी होती है। परिणामस्वरूप, दृश्य तब स्पर्श प्राप्त नहीं करेगा जब भी एक टोस्ट, संवाद या अन्य विंडो दृश्य की विंडो के ऊपर प्रकट होती है।
Last updated