গভীর লিঙ্কের অনিরাপদ ব্যবহার

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

ওভারভিউ

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

প্রভাব

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

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

অ্যান্ড্রয়েড 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>

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

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

সম্পদ