ডিপ লিঙ্কের অনিরাপদ ব্যবহার

OWASP বিভাগ: MASVS-PLATFORM: প্ল্যাটফর্ম ইন্টার‍্যাকশন

এক নজরে

ডিপ লিঙ্কের সাথে সম্পর্কিত নিরাপত্তা সংক্রান্ত ঝুঁকি, মোবাইল অ্যাপ্লিকেশনের মধ্যে নির্বিঘ্ন নেভিগেশন এবং ইন্টার‍্যাকশন সক্ষম করার মূল ক্ষমতা থেকে উদ্ভূত হয়। ডিপ লিঙ্ক সংক্রান্ত দুর্বলতা, ডিপ লিঙ্ক প্রয়োগ বা ম্যানেজ করার সময় দুর্বলতা থেকে তৈরি হয়। এইসব ত্রুটি ক্ষতিকর ব্যক্তিরা বিশেষ ফাংশন বা ডেটাতে অ্যাক্সেস পেতে ব্যবহার করতে পারে, যার ফলে ডেটার নিরাপত্তা লঙ্ঘন, গোপনীয়তা লঙ্ঘন এবং অননুমোদিত অ্যাকশন হতে পারে। আক্রমণকারীরা বিভিন্ন কৌশলের মাধ্যমে এই দুর্বলতাগুলির সুযোগ নিতে পারে, যেমন ডিপ লিঙ্ক হাইজ্যাকিং এবং ডেটা যাচাইকরণ আক্রমণ।

প্রভাব

ডিপ লিঙ্ক যাচাইকরণের সঠিক মেকানিজম না থাকলে অথবা ডিপ লিঙ্কের অসুরক্ষিত ব্যবহার হলে, ক্ষতিকর ব্যবহারকারীরা হোস্ট যাচাইকরণ বাইপাস, ক্রস-অ্যাপ স্ক্রিপ্টিং এবং দুর্বল অ্যাপ্লিকেশনের অনুমতি প্রসঙ্গে রিমোট কোড এক্সিকিউশনের মতো আক্রমণ করতে পারে। অ্যাপ্লিকেশনের প্রকৃতির উপর নির্ভর করে, এর ফলে সংবেদনশীল ডেটা বা ফাংশনে অননুমোদিত অ্যাক্সেস হতে পারে।

ডিজাইন অনুযায়ী, Android একাধিক অ্যাপকে একই ডিপ লিঙ্ক URI-এর জন্য ইনটেন্ট ফিল্টার রেজিস্টার করার অনুমতি দেয়। আপনার অ্যাপের জন্য নির্দিষ্ট ডিপ লিঙ্ক যাতে ক্ষতিকর অ্যাপ ইন্টারসেপ্ট করতে না পারে, তার জন্য অ্যাপ্লিকেশনের AndroidManifest-এর মধ্যে intent-filter-এ android:autoVerify অ্যাট্রিবিউট প্রয়োগ করুন। এটি ব্যবহারকারীদের ডিপ লিঙ্ক ম্যানেজ করার জন্য তাদের পছন্দের অ্যাপ বেছে নিতে দেয়, যাতে তারা যে অপারেশন করতে চান তা নিশ্চিত করা যায় এবং ক্ষতিকর অ্যাপ্লিকেশনগুলি যাতে অটোমেটিক সেগুলি ব্যাখ্যা করতে না পারে তা প্রতিরোধ করা যায়।

Android 12-এ নিরাপত্তা উন্নত করার জন্য ওয়েব ইনটেন্ট আরও কঠোরভাবে ম্যানেজ করার সুবিধা চালু করা হয়েছে। নির্দিষ্ট ডোমেন থেকে লিঙ্ক ম্যানেজ করার জন্য অ্যাপ এখন অবশ্যই যাচাই করতে হবে, হয় Android অ্যাপ লিঙ্কের মাধ্যমে অথবা সিস্টেম সেটিংসে ব্যবহারকারীর বেছে নেওয়ার মাধ্যমে। এটি অ্যাপকে এমন লিঙ্ক হাইজ্যাক করা থেকে আটকায় যা তার হ্যান্ডেল করা উচিত নয়।

আপনার অ্যাপের জন্য লিঙ্ক হ্যান্ডলিং যাচাইকরণ চালু করতে, নিম্নলিখিত ফর্ম্যাটের সাথে মেলে এমন ইনটেন্ট ফিল্টার যোগ করুন (এই উদাহরণটি Android অ্যাপ লিঙ্ক যাচাই করুন ডকুমেন্টেশন থেকে নেওয়া হয়েছে):

  <!-- Make sure you explicitly set android:autoVerify to "true". -->
  <intent-filter android:autoVerify="true">
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
  
      <!-- If a user clicks on a shared link that uses the "http" scheme, your
           app should be able to delegate that traffic to "https". -->
      <data android:scheme="http" />
      <data android:scheme="https" />
  
      <!-- Include one or more domains that should be verified. -->
      <data android:host="..." />
  </intent-filter>

ডিপ লিঙ্কে অতিরিক্ত প্যারামিটার অন্তর্ভুক্ত থাকতে পারে যা টার্গেট ইনটেন্টে পরিবেশন করা হয়, যেমন, আরও অ্যাকশন পারফর্ম করার জন্য। নিরাপদ ডিপ লিঙ্ক হ্যান্ডলিংয়ের ভিত্তি হল কঠোর ডেটা যাচাইকরণ। ডিপ লিঙ্ক থেকে আসা সমস্ত ডেটা ডেভেলপারদের দ্বারা সতর্কতার সাথে যাচাই এবং স্যানিটাইজ করা উচিত যাতে বৈধ অ্যাপ্লিকেশনের মধ্যে ক্ষতিকারক কোড বা মান ইনজেক্ট করা থেকে আটকানো যায়। এটি করার জন্য, প্রত্যাশিত ভ্যালুর পূর্বনির্ধারিত অনুমোদিত তালিকার সাথে যেকোনও ডিপ লিঙ্ক প্যারামিটারের ভ্যালু চেক করতে হবে।

সংবেদনশীল তথ্য প্রকাশ করার আগে অ্যাপের উচিত যাচাইকরণ বা অনুমোদনের মতো অন্যান্য প্রাসঙ্গিক অভ্যন্তরীণ অবস্থা চেক করা। উদাহরণ হিসেবে, গেমের কোনও লেভেল সম্পূর্ণ করার জন্য পুরস্কার দেওয়া হতে পারে। এক্ষেত্রে, লেভেল সম্পূর্ণ করার পূর্বশর্ত যাচাই করা এবং তা না হলে মূল স্ক্রিনে রিডাইরেক্ট করা উচিত।

রিসোর্স