OWASP বিভাগ: MASVS-CODE: কোড গুণমান
ওভারভিউ
টেস্টিং বা ডিবাগ বৈশিষ্ট্যগুলি অন্তর্ভুক্ত প্রোডাকশন বিল্ডগুলি প্রকাশ করা অ্যাপ্লিকেশনটির সুরক্ষা ভঙ্গিতে নেতিবাচকভাবে প্রভাব ফেলতে পারে। এই কার্যকারিতাগুলি বিকাশকারীদের নতুন সংস্করণ প্রকাশের আগে বা পরে উদ্দিষ্ট অ্যাপ্লিকেশন ব্যবহারের ক্ষেত্রে বাগগুলি সনাক্ত করতে এবং সনাক্ত করতে সহায়তা করার জন্য ব্যবহৃত হয় এবং সর্বজনীনভাবে অ্যাক্সেসযোগ্য হওয়া উচিত নয়।
টেস্টিং/ডিবাগ বৈশিষ্ট্যের উদাহরণ হল:
- লুকানো মেনু
- ডিবাগ লগ সক্রিয় করার বিকল্প
- অ্যাপ্লিকেশন প্রবাহ পরিবর্তন করার বিকল্প
- অর্থপ্রদান বা সাবস্ক্রিপশন প্রক্রিয়াগুলিকে বাধা দেওয়ার বিকল্পগুলি
- প্রমাণীকরণ রোধ করার বিকল্প
- অ্যাপ্লিকেশন-নির্দিষ্ট কার্যকলাপের জন্য পরীক্ষা
অ্যাপ্লিকেশানের উদ্দেশ্যপ্রণোদিত প্রবাহ পরিবর্তন করতে বা আরও আক্রমণের জন্য সিস্টেমের তথ্য পুনরুদ্ধার করার জন্য একটি দূষিত ব্যবহারকারীর দ্বারা সমস্ত পূর্ববর্তী ব্যবহার করা যেতে পারে।
এক্সপোজড টেস্টিং বা ডিবাগ বৈশিষ্ট্যগুলি রেখে প্রবর্তিত ঝুঁকি ডিবাগ ক্ষমতাগুলির সাথে সম্পর্কিত ক্রিয়া অনুসারে পরিবর্তিত হতে পারে।
অ্যাপ্লিকেশনের জন্য ঝুঁকির আরেকটি ক্ষেত্র হল অ্যাট্রিবিউট android:debuggable সেট AndroidManifest.xml উপাদান <application>
এর মধ্যে। android:debuggable নিবন্ধে রিপোর্ট করা হয়েছে, উপরে উল্লিখিত মান সেটের সাথে একটি উত্পাদন অ্যাপ্লিকেশন স্থাপন করা, ক্ষতিকারক ব্যবহারকারীদের প্রশাসনিক সংস্থানগুলি অ্যাক্সেস করতে দেয় যা অন্যথায় অ্যাক্সেসযোগ্য নয়।
প্রভাব
একটি দূষিত ব্যবহারকারী একটি প্রোডাকশন বিল্ডে টেস্টিং বা ডিবাগ বৈশিষ্ট্যের সাথে ইন্টারঅ্যাক্ট করলে অপ্রত্যাশিত ফলাফল হতে পারে। যে কোনো ক্রিয়াকলাপের প্রভাব সরাসরি বৈশিষ্ট্যটির জন্য নির্ধারিত অনুমতিগুলির সাথে সংযুক্ত। অনুমতি যত বেশি, সক্রিয় শোষণের প্রভাব তত বেশি। একটি অ্যাপ্লিকেশনের মধ্যে এই ধরনের কার্যকারিতাগুলি বেশ কয়েকটি সুরক্ষা, পেওয়াল বাইপাস, সিস্টেম বা ব্যবহারকারী সম্পর্কিত তথ্য পুনরুদ্ধার করতে, বা পরীক্ষার কার্যক্রম ট্রিগার করতে ব্যবহার করা যেতে পারে।
প্রশমন
ডিবাগ উপাদান ব্যবহার এড়িয়ে চলুন
ক্রিয়াকলাপ, ব্রডকাস্ট রিসিভার, পরিষেবা বা বিষয়বস্তু সরবরাহকারীর মতো উত্পাদন অ্যাপ্লিকেশন উপাদানগুলির মধ্যে পরীক্ষা বা ডিবাগ কার্যকারিতাগুলি কখনই প্রয়োগ করা উচিত নয় কারণ, যদি রপ্তানি করা হয় তবে ডিভাইসে অন্য কোনও প্রক্রিয়া দ্বারা চালানো যেতে পারে। ডিবাগ উপাদানটিকে রপ্তানি হয়নি হিসাবে সেট করা ( android:exported="false" ) ক্ষমতাগুলির জন্য একটি বৈধ সুরক্ষা গঠন করে না কারণ ডিবাগ বিকল্পটি সক্ষম থাকলে যেকোনো রুট করা ডিভাইস এখনও Android ডিবাগ ব্রিজ (ADB) টুলের মাধ্যমে এটি কার্যকর করতে পারে৷
বিল্ড স্টেজিং করার জন্য ডিবাগ বা পরীক্ষা বৈশিষ্ট্য সীমিত করুন
অ্যাপ্লিকেশনগুলির মধ্যে যেকোন পরীক্ষা বা ডিবাগ ফাংশন সম্পাদন শুধুমাত্র স্টেজিং বিল্ডগুলির একটি সীমাবদ্ধ সেটের মধ্যে সীমাবদ্ধ হওয়া উচিত যাতে শুধুমাত্র বিকাশকারীদের একটি নিয়ন্ত্রিত পরিবেশে অ্যাপ্লিকেশনের বৈশিষ্ট্যগুলি ডিবাগ বা পরীক্ষা করার অনুমতি দেওয়া হয়। কোনো পরীক্ষা বা ডিবাগ বৈশিষ্ট্য একটি বিচ্ছিন্ন সংস্করণে চালানো হয় কিনা তা নিশ্চিত করার জন্য এটি একটি ডেডিকেটেড পরীক্ষা বা অ্যাপ্লিকেশনটির ডিবাগ বিল্ড এবং এটির জন্য উন্নত যন্ত্রযুক্ত পরীক্ষা তৈরি করে প্রাপ্ত করা যেতে পারে।
স্বয়ংক্রিয় UI পরীক্ষা বাস্তবায়ন করুন
একটি অ্যাপ্লিকেশনে পরীক্ষা চালানোর সময়, স্বয়ংক্রিয় UI পরীক্ষাগুলি বেছে নিন যেহেতু সেগুলি পুনরাবৃত্তিযোগ্য, একটি পৃথক পরিবেশে কার্যকর করা যেতে পারে এবং মানুষের ত্রুটির প্রবণতা নেই৷
সম্পদ
- উন্নত টেস্টিং সেটআপের বিষয়ে দেব নির্দেশিকা
- স্বয়ংক্রিয় UI পরীক্ষা সম্পর্কে দেব নির্দেশিকা
- অ্যান্ড্রয়েড: ডিবাগযোগ্য
- অ্যান্ড্রয়েড: রপ্তানি করা হয়েছে
- অ্যান্ড্রয়েড মার্কেটে ডিবাগযোগ্য অ্যাপস
- ডিবাগ কোড নিরাপত্তা দুর্বলতা হতে পারে?