স্যানিটাইজারগুলি হল গতিশীল বিশ্লেষণ সরঞ্জামগুলির একটি গ্রুপ যা কম্পাইলার দ্বারা ঢোকানো অতিরিক্ত যন্ত্রের মাধ্যমে রানটাইমে প্রোগ্রামগুলিতে ভুল খুঁজে পায়। এর মধ্যে রয়েছে মেমরি নিরাপত্তা সংক্রান্ত সমস্যা সনাক্ত করা। অ্যান্ড্রয়েড সমর্থন করে এবং দৃঢ়ভাবে নিম্নলিখিত স্যানিটাইজারগুলির ব্যবহারের সুপারিশ করে:
হার্ডওয়্যার-সহায়তা অ্যাড্রেস স্যানিটাইজার (HWASan)
HWASan হল প্রধান স্যানিটাইজার যা মেমরি নিরাপত্তা সমস্যার জন্য সনাক্তকরণ প্রদান করে। এটির জন্য ARM64 প্রয়োজন এবং সনাক্ত করতে পারে:
- স্ট্যাক এবং হিপ বাফার ওভারফ্লো বা আন্ডারফ্লো
- বিনামূল্যে পরে গাদা ব্যবহার
- সুযোগ পরে ব্যবহার স্ট্যাক
- ফিরে আসার পরে স্ট্যাক ব্যবহার করুন
- ডাবল ফ্রি বা ওয়াইল্ড ফ্রি
ঠিকানা স্যানিটাইজার (আসান)
ASan হল HWASan-এর অনুরূপ একটি টুল। এটি আরও প্ল্যাটফর্মে কাজ করে, কিন্তু অ্যান্ড্রয়েডে অসমর্থিত।
কার্নেল অ্যাড্রেস স্যানিটাইজার (KASan)
KASan হল উপরের ইউজারস্পেস টুলের কার্নেল কাউন্টারপার্ট। এটি একই কম্পাইলার বাস্তবায়ন শেয়ার করে। KASan এবং ASan/HWASan পরিপূরক কারণ একটি টুল কার্নেলের ক্ষেত্রে প্রযোজ্য এবং অন্যটি ইউজারস্পেসে প্রযোজ্য। আমরা বিল্ড কনফিগারেশনের সংখ্যা কমাতে এবং টেস্টিং ম্যাট্রিক্স কমাতে উভয়কেই একই সময়ে সক্ষম করার পরামর্শ দিই।
অনির্ধারিত আচরণ স্যানিটাইজার (UBSan)
UBSan বিভিন্ন ধরনের (অ-মেমরি-নিরাপত্তা) অনির্ধারিত আচরণ পরীক্ষা করার জন্য কম্পাইল-টাইম ইন্সট্রুমেন্টেশন করে। এর মধ্যে রয়েছে স্বাক্ষরিত এবং স্বাক্ষরবিহীন পূর্ণসংখ্যা ওভারফ্লো চেকিং (IntSan), স্ট্যাটিকালি-আকারের অ্যারেগুলির জন্য বাউন্ডস চেক (BoundsSan), এবং অন্যান্য অনেক ধরনের অনির্ধারিত আচরণ। IntSan এবং BoundSan নিরাপত্তা প্রশমন হিসাবে উৎপাদনে সক্ষম করার জন্যও উপযুক্ত।