OWASP বিভাগ: MASVS-CODE: কোড গুণমান
ওভারভিউ
public abstract Context createPackageContext (String packageName, int flags)
createPackageContext
পদ্ধতিটি ব্যবহার করা হয় যখন একজন বিকাশকারী তাদের নিজস্ব অ্যাপ্লিকেশনে অন্য অ্যাপ্লিকেশনের জন্য একটি প্রসঙ্গ তৈরি করতে চায়।
উদাহরণস্বরূপ, যদি বিকাশকারীরা তৃতীয় পক্ষের অ্যাপ্লিকেশন থেকে সংস্থান পেতে চান বা এটি থেকে কল পদ্ধতিগুলি পেতে চান তবে তারা createPackageContext
ব্যবহার করবে।
যাইহোক, যদি একটি অ্যাপ্লিকেশন CONTEXT_IGNORE_SECURITY
এবং CONTEXT_INCLUDE_CODE
ফ্ল্যাগ সহ createPackageContext
কল করে এবং তারপর getClassLoader()
কল করে, তাহলে এটি একটি দূষিত অ্যাপ্লিকেশন দ্বারা কোড নির্বাহের জন্য অ্যাপ্লিকেশনটিকে দুর্বল করে তুলতে পারে৷ এটি ঘটতে পারে, উদাহরণস্বরূপ, যখন একজন আক্রমণকারী একটি দাবিহীন প্যাকেজ নাম (প্যাকেজ স্কোয়াটিং) ছদ্মবেশ ধারণ করে যা বিকাশকারী ব্যবহারকারীর ডিভাইসে উপস্থিত থাকবে বলে আশা করেছিল৷
এই ধরনের আক্রমণের জন্য একটি অ্যাপ্লিকেশনকে ঝুঁকিপূর্ণ করার জন্য যে মানদণ্ডগুলি পূরণ করতে হবে তার সংক্ষিপ্ত বিবরণ:
দুর্বল অ্যাপ:
-
CONTEXT_IGNORE_SECURITY
এবংCONTEXT_INCLUDE_CODE
এর সাথেcreatePackageContext
কল করে। - পুনরুদ্ধার করা প্রসঙ্গে
getClassLoader()
কল করে।
ক্ষতিকারক অ্যাপ:
- দুর্বল অ্যাপটি
createPackageContext
এ পাস করে প্যাকেজের নাম দাবি করতে সক্ষম। - অ্যান্ড্রয়েড রপ্তানি করে: অ্যাপ কম্পোনেন্ট ফ্যাক্টরি।
প্রভাব
যখন createPackageContext একটি অ্যাপ্লিকেশানের দ্বারা একটি অনিরাপদ উপায়ে ব্যবহার করা হয়, তখন এটি একটি দূষিত অ্যাপ্লিকেশনকে দুর্বল অ্যাপ্লিকেশনের প্রেক্ষাপটে নির্বিচারে কোড কার্যকর করতে সক্ষম হতে পারে।
প্রশমন
একেবারে প্রয়োজনীয় না হলে createPackageContext
CONTEXT_IGNORE_SECURITY
এবং CONTEXT_INCLUDE_CODE
সাথে কল করবেন না।
যে ক্ষেত্রে এটি অনিবার্য, আপনি যে প্যাকেজটিতে createPackageContext
এক্সিকিউট করছেন তার পরিচয় যাচাই করার জন্য একটি পদ্ধতি প্রয়োগ করা নিশ্চিত করুন (যেমন প্যাকেজের স্বাক্ষর যাচাই করে)।
সম্পদ
,OWASP বিভাগ: MASVS-CODE: কোড গুণমান
ওভারভিউ
public abstract Context createPackageContext (String packageName, int flags)
createPackageContext
পদ্ধতিটি ব্যবহার করা হয় যখন একজন বিকাশকারী তাদের নিজস্ব অ্যাপ্লিকেশনে অন্য অ্যাপ্লিকেশনের জন্য একটি প্রসঙ্গ তৈরি করতে চায়।
উদাহরণস্বরূপ, যদি বিকাশকারীরা তৃতীয় পক্ষের অ্যাপ্লিকেশন থেকে সংস্থান পেতে চান বা এটি থেকে কল পদ্ধতিগুলি পেতে চান তবে তারা createPackageContext
ব্যবহার করবে।
যাইহোক, যদি একটি অ্যাপ্লিকেশন CONTEXT_IGNORE_SECURITY
এবং CONTEXT_INCLUDE_CODE
ফ্ল্যাগ সহ createPackageContext
কল করে এবং তারপর getClassLoader()
কল করে, তাহলে এটি একটি দূষিত অ্যাপ্লিকেশন দ্বারা কোড নির্বাহের জন্য অ্যাপ্লিকেশনটিকে দুর্বল করে তুলতে পারে৷ এটি ঘটতে পারে, উদাহরণস্বরূপ, যখন একজন আক্রমণকারী একটি দাবিহীন প্যাকেজ নাম (প্যাকেজ স্কোয়াটিং) ছদ্মবেশ ধারণ করে যা বিকাশকারী ব্যবহারকারীর ডিভাইসে উপস্থিত থাকবে বলে আশা করেছিল৷
এই ধরনের আক্রমণের জন্য একটি অ্যাপ্লিকেশনকে ঝুঁকিপূর্ণ করার জন্য যে মানদণ্ডগুলি পূরণ করতে হবে তার সংক্ষিপ্ত বিবরণ:
দুর্বল অ্যাপ:
-
CONTEXT_IGNORE_SECURITY
এবংCONTEXT_INCLUDE_CODE
এর সাথেcreatePackageContext
কল করে। - পুনরুদ্ধার করা প্রসঙ্গে
getClassLoader()
কল করে।
ক্ষতিকারক অ্যাপ:
- দুর্বল অ্যাপটি
createPackageContext
এ পাস করে প্যাকেজের নাম দাবি করতে সক্ষম। - অ্যান্ড্রয়েড রপ্তানি করে: অ্যাপ কম্পোনেন্ট ফ্যাক্টরি।
প্রভাব
যখন createPackageContext একটি অ্যাপ্লিকেশানের দ্বারা একটি অনিরাপদ উপায়ে ব্যবহার করা হয়, তখন এটি একটি দূষিত অ্যাপ্লিকেশনকে দুর্বল অ্যাপ্লিকেশনের প্রেক্ষাপটে নির্বিচারে কোড কার্যকর করতে সক্ষম হতে পারে।
প্রশমন
একেবারে প্রয়োজনীয় না হলে createPackageContext
CONTEXT_IGNORE_SECURITY
এবং CONTEXT_INCLUDE_CODE
সাথে কল করবেন না।
যে ক্ষেত্রে এটি অনিবার্য, আপনি যে প্যাকেজটিতে createPackageContext
এক্সিকিউট করছেন তার পরিচয় যাচাই করার জন্য একটি পদ্ধতি প্রয়োগ করা নিশ্চিত করুন (যেমন প্যাকেজের স্বাক্ষর যাচাই করে)।