OWASP বিভাগ: MASVS-CODE: কোড গুণমান
ওভারভিউ
HostnameVerifier
বাস্তবায়ন সার্ভারের সার্টিফিকেটের হোস্টনামটি ক্লায়েন্ট যে সার্ভারের সাথে সংযোগ করার চেষ্টা করছে তার হোস্টনামের সাথে মেলে তা যাচাই করার জন্য দায়ী৷
একটি Android অ্যাপ্লিকেশনে একটি অনিরাপদ HostnameVerifier
বাস্তবায়ন হল একটি বাস্তবায়ন যা অ্যাপ্লিকেশনটি যে সার্ভারের সাথে যোগাযোগ করছে তার হোস্টনাম সঠিকভাবে যাচাই করে না। এটি একজন আক্রমণকারীকে একটি বৈধ সার্ভারের ছদ্মবেশ ধারণ করতে এবং আক্রমণকারীকে সংবেদনশীল ডেটা পাঠানোর জন্য অ্যাপ্লিকেশনটিকে প্রতারণা করতে পারে৷
এই দুর্বলতা বিদ্যমান কারণ HostnameVerifier
ক্লাসে ফাংশন কল রয়েছে যা X.509 সার্টিফিকেট হোস্টনাম যাচাইকরণ এড়িয়ে যেতে পারে এবং পরিবর্তে, শুধুমাত্র শংসাপত্রের হ্যাশ যাচাই করতে পারে। একটি সাধারণ ভুল ধারণা হল যে SSLSession#isValid
ফাংশন একটি নিরাপত্তা-সম্পর্কিত ক্রিয়াকলাপ সম্পাদন করে, যখন বাস্তবে এর উদ্দেশ্য শুধুমাত্র একটি সেশন বৈধ এবং পুনরায় শুরু বা যোগদানের জন্য উপলব্ধ কিনা তা পরীক্ষা করা; যার কোনটিই সেশনের নিরাপত্তাকে বৈধ করে না। HostnameVerifier
ক্লাসটি NetworkSecurityConfig দ্বারা স্থগিত করা হয়েছে।
প্রভাব
অনিরাপদ HostnameVerifier
বাস্তবায়ন দুর্বলতার দিকে নিয়ে যেতে পারে যা শিকার অ্যাপ্লিকেশন থেকে নেটওয়ার্ক ট্র্যাফিকের উপর MiTM (ম্যান-ইন-দ্য-মিডল) আক্রমণ করতে ব্যবহার করা যেতে পারে। এই অনিরাপদ কোডটি ব্যবহার করার প্রভাব হল যে এই কোডটি ট্রিগার করা হলে একজন ব্যবহারকারীর অ্যাপ্লিকেশন নেটওয়ার্ক ডেটা নেটওয়ার্ক আক্রমণকারীদের (দূরবর্তী বা স্থানীয়ভাবে) দ্বারা আপস করা যেতে পারে। প্রভাবটি নেটওয়ার্ক ট্র্যাফিকের বিষয়বস্তুর উপর নির্ভর করে যা অসাবধানতাবশত প্রকাশিত হয় (PII, ব্যক্তিগত তথ্য, সংবেদনশীল সেশনের মান, পরিষেবার প্রমাণপত্র ইত্যাদি)।
প্রশমন
কাস্টম TLS/SSL শংসাপত্র বৈধতা কোড ব্যবহার বা প্রয়োগ করার পরিবর্তে সমস্ত উত্পাদন, পরীক্ষা, ডিবাগিং এবং ডেভ স্টেজ সংযোগগুলি সঠিকভাবে পরিচালনা করা হয়েছে তা নিশ্চিত করতে NetworkSecurityConfig.xml কার্যকারিতা ব্যবহার করুন৷