OWASP বিভাগ: MASVS-PLATFORM: প্ল্যাটফর্ম ইন্টার্যাকশন
এক নজরে
ট্যাপজ্যাকিং হল Android অ্যাপের ক্ষেত্রে ক্লিকজ্যাকিং ওয়েব দুর্বলতা: কোনও ক্ষতিকর অ্যাপ ব্যবহারকারীকে নিরাপত্তা-সম্পর্কিত কন্ট্রোলে (কনফার্মেশন বোতাম ইত্যাদি) ক্লিক করার জন্য প্রতারণা করে, এটি করার জন্য UI-কে ওভারলে বা অন্য কোনও উপায়ে অস্পষ্ট করে দেওয়া হয়। এই পৃষ্ঠায়, আমরা দুই ধরনের অ্যাটাক ভ্যারিয়েন্টকে আলাদা করি: সম্পূর্ণ ও আংশিক অক্লুশন। সম্পূর্ণ অক্লুশনের ক্ষেত্রে, আক্রমণকারী টাচ এরিয়া ওভারলে করে, যেখানে আংশিক অক্লুশনের ক্ষেত্রে, টাচ এরিয়া অস্পষ্ট থাকে না।
প্রভাব
ট্যাপজ্যাকিং অ্যাটাকের মাধ্যমে ব্যবহারকারীদের নির্দিষ্ট কিছু অ্যাকশন করতে বাধ্য করা হয়। আক্রমণকারী কোন অ্যাকশনকে টার্গেট করেছে তার উপর প্রভাব নির্ভর করে।
ঝুঁকি: সম্পূর্ণ অক্লুশন
সম্পূর্ণ অক্লুশনের ক্ষেত্রে, আক্রমণকারী টাচ ইভেন্ট হাইজ্যাক করার জন্য টাচ এরিয়া ওভারলে করে:

মিটিগেশন
কোডে View.setFilterTouchesWhenObscured(true) সেট করে সম্পূর্ণ অক্লুশন প্রতিরোধ করা হয়। এটি ওভারলে দ্বারা পাস করা টাচ ব্লক করে। আপনি যদি ডিক্লারেটিভ অ্যাপ্রোচ পছন্দ করেন, তাহলে আপনি যে View অবজেক্টকে সুরক্ষিত করতে চান তার জন্য লেআউট ফাইলে android:filterTouchesWhenObscured="true" যোগ করতে পারেন।
ঝুঁকি: আংশিক অক্লুশন
আংশিক অক্লুশন অ্যাটাকের ক্ষেত্রে, টাচ এরিয়া অস্পষ্ট থাকে না:

মিটিগেশন
আপনি FLAG_WINDOW_IS_PARTIALLY_OBSCURED ফ্ল্যাগ আছে এমন টাচ ইভেন্ট ম্যানুয়ালি উপেক্ষা করে আংশিক অক্লুশন কমাতে পারেন। এই পরিস্থিতির জন্য কোনও ডিফল্ট সুরক্ষা
নেই।
Android 14 এবং accessibilityDataSensitive: Android 14 (API লেভেল 34)
এবং তার পরবর্তী যেকোনও ভার্সনে, ক্ষতিকর অ্যাক্সেসিবিলিটি পরিষেবা থেকে
সংবেদনশীল ডেটা সুরক্ষিত রাখতে আপনি
accessibilityDataSensitive ফ্ল্যাগ ব্যবহার করতে পারবেন। আপনি যখন এই ফ্ল্যাগটি
সংবেদনশীল ভিউতে সেট করেন, যেমন লগইন বা ট্রানজ্যাকশন কনফার্মেশন স্ক্রিন, শুধুমাত্র
যেসব পরিষেবা
android:isAccessibilityTool="true" ঘোষণা করে সেগুলি
ভিউয়ের ডেটা পড়তে বা এতে অ্যাক্সেসিবিলিটি অ্যাকশন পারফর্ম করতে পারে। Android 16 (API লেভেল 36)
ও তার পরবর্তী ভার্সনে, accessibilityDataSensitive সেইসব পরিষেবার মাধ্যমে AccessibilityService.dispatchGesture-এর সাথে ইনজেক্ট করা
সিমুলেটেড টাচ জেসচারও ব্লক করে
যেগুলি android:isAccessibilityTool="true" ঘোষণা করে না। এটি
আংশিক আড়াল করার পরিস্থিতিতে ইভসড্রপিং ও ক্লিক ইনজেকশন অ্যাটাকের বিরুদ্ধে
সিস্টেম-লেভেল সুরক্ষা প্রদান করে। আপনার লেআউট ফাইলে android:filterTouchesWhenObscured="true"
নির্দিষ্ট করে আপনি অন্তর্নিহিতভাবে
accessibilityDataSensitive চালু করতে পারবেন।
নির্দিষ্ট ঝুঁকি
এই বিভাগে এমন ঝুঁকিগুলি একত্রিত করা হয়েছে যেগুলির জন্য নন-স্ট্যান্ডার্ড প্রশমন কৌশল প্রয়োজন বা নির্দিষ্ট SDK লেভেলে প্রশমিত করা হয়েছে এবং সম্পূর্ণতার জন্য এখানে রয়েছে।
ঝুঁকি: android.Manifest.permission.SYSTEM_ALERT_WINDOW
SYSTEM_ALERT_WINDOW অনুমতি কোনও অ্যাপকে সব অ্যাপের উপরে দেখানো উইন্ডো তৈরি করার অনুমতি দেয়।
মিটিগেশন
Android-এর নতুন ভার্সনে বেশ কিছু প্রশমন ব্যবস্থা চালু করা হয়েছে, যার মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত:
- Android 6 (API লেভেল 23) এবং তার পরবর্তী ভার্সনে, অ্যাপকে ওভারলে উইন্ডো তৈরি করার অনুমতি ব্যবহারকারীকে স্পষ্টভাবে দিতে হবে।
- Android 12 (API লেভেল 31) এবং তার পরবর্তী যেকোনও ভার্সনে, অ্যাপ
true-কেWindow.setHideOverlayWindows()-এ পাস করতে পারে।
ঝুঁকি: কাস্টম টোস্ট
কোনও আক্রমণকারী টোস্ট মেসেজের চেহারা কাস্টমাইজ করতে Toast.setView() ব্যবহার করতে পারে। Android 10 (API লেভেল ২৯) এবং তার আগের ভার্সনে, ক্ষতিকর অ্যাপ ব্যাকগ্রাউন্ড থেকে এই ধরনের টোস্ট লঞ্চ করতে পারে।
মিটিগেশন
কোনও অ্যাপ Android 11 (API লেভেল 30) বা তার পরবর্তী ভার্সনকে টার্গেট করলে, সিস্টেম ব্যাকগ্রাউন্ড কাস্টম টোস্ট ব্লক করে দেয়। তবে, কিছু পরিস্থিতিতে টোস্ট বার্স্ট ব্যবহার করে এই প্রশমন এড়ানো যেতে পারে, যেখানে আক্রমণকারী ফোরগ্রাউন্ডে থাকাকালীন একাধিক টোস্ট সারিবদ্ধ করে এবং কোনও অ্যাপ ব্যাকগ্রাউন্ডে চলে যাওয়ার পরেও সেগুলি চালু হতে থাকে।
Android 12 (API লেভেল 31) থেকে ব্যাকগ্রাউন্ড টোস্ট এবং টোস্ট বার্স্ট অ্যাটাক পুরোপুরি প্রশমিত করা হয়েছে।
ঝুঁকি: অ্যাক্টিভিটি স্যান্ডউইচ
কোনও ক্ষতিকর অ্যাপ যদি কোনও ব্যবহারকারীকে সেটি খুলতে রাজি করাতে পারে, তাহলে সেটি এখনও ভিকটিম অ্যাপ থেকে একটি অ্যাক্টিভিটি চালু করতে পারে এবং পরবর্তীতে এটিকে নিজস্ব অ্যাক্টিভিটির সাথে ওভারলে করতে পারে, একটি অ্যাক্টিভিটি স্যান্ডউইচ তৈরি করে এবং একটি আংশিক অক্লুশন অ্যাটাক তৈরি করে।
মিটিগেশন
আংশিক আড়াল হওয়ার ক্ষেত্রে সাধারণ প্রশমন দেখুন। বিবিধ প্রতিরোধ ব্যবস্থার জন্য, নিশ্চিত করুন যে আপনি এমন অ্যাক্টিভিটি এক্সপোর্ট করছেন না যা এক্সপোর্ট করার প্রয়োজন নেই, যাতে আক্রমণকারী সেগুলিকে স্যান্ডউইচ করতে না পারে।
রিসোর্স
আপনার জন্য সাজেস্ট করা হয়েছে
- মনে রাখবেন: জাভাস্ক্রিপ্ট বন্ধ থাকলে লিঙ্ক টেক্সট দেখানো হয়
- android:exported
- # কী ম্যানেজমেন্ট {:#key-management}
- APK থেকে সরাসরি এম্বেড করা DEX কোড রান করা