ضد عفونی کننده ها

ضدعفونی کننده ها گروهی از ابزارهای تحلیل پویا هستند که از طریق ابزار دقیق اضافی که توسط کامپایلر درج شده است، اشتباهات برنامه ها را در زمان اجرا پیدا می کنند. این شامل تشخیص مشکلات ایمنی حافظه است. Android از ضدعفونی‌کننده‌های زیر پشتیبانی می‌کند و قویاً توصیه می‌کند:

ضدعفونی کننده آدرس HWA (HWASan)

HWASan ضدعفونی کننده اصلی برای تشخیص مشکلات ایمنی حافظه است. به ARM64 نیاز دارد و می تواند تشخیص دهد:

  • سرریز یا زیر جریان بافر پشته و پشته
  • استفاده از پشته پس از رایگان
  • استفاده از پشته پس از محدوده
  • استفاده از پشته پس از بازگشت
  • دو برابر رایگان یا وحشی رایگان

آدرس ضد عفونی کننده (ASan)

ASan ابزاری شبیه به HWASan است. روی پلتفرم های بیشتری کار می کند، اما در اندروید پشتیبانی نمی شود.

ضد عفونی کننده آدرس Kernel

KASan همتای هسته ابزارهای userspace بالا است. اجرای کامپایلر یکسانی را به اشتراک می گذارد. KASAN و ASan/HWASan مکمل یکدیگر هستند زیرا یک ابزار برای هسته و ابزار دیگر برای فضای کاربر اعمال می شود. توصیه می کنیم هر دو را همزمان فعال کنید تا تعداد پیکربندی های ساخت را کاهش دهید و ماتریس تست را کاهش دهید.

ضدعفونی کننده رفتار نامشخص (UBSan)

UBSan ابزار دقیق زمان کامپایل را برای بررسی انواع رفتارهای تعریف نشده (غیر ایمنی حافظه) انجام می دهد. این شامل بررسی سرریز اعداد صحیح امضا شده و بدون علامت (IntSan)، بررسی کرانه‌ها برای آرایه‌های با اندازه استاتیک (BoundsSan) و بسیاری از انواع دیگر رفتارهای تعریف‌نشده است. IntSan و BoundsSan نیز برای فعال کردن در تولید به عنوان یک کاهش امنیتی مناسب هستند.