Bộ khử trùng là một nhóm các công cụ phân tích động giúp tìm ra lỗi trong các chương trình trong thời gian chạy thông qua công cụ bổ sung được trình biên dịch chèn vào. Điều này bao gồm việc phát hiện các vấn đề về an toàn bộ nhớ . Android hỗ trợ và đặc biệt khuyến nghị sử dụng các chất khử trùng sau:
Chất khử trùng HWAddress (HWASan)
HWASan là công cụ khử trùng chính giúp phát hiện các vấn đề về an toàn bộ nhớ. Nó yêu cầu ARM64 và có thể phát hiện:
- Tràn hoặc tràn bộ đệm đống và ngăn xếp
- Sử dụng heap sau khi miễn phí
- Sử dụng ngăn xếp sau phạm vi
- Sử dụng ngăn xếp sau khi trở về
- Miễn phí gấp đôi hoặc miễn phí hoang dã
Địa chỉ khử trùng (ASan)
ASan là một công cụ tương tự như HWASan. Nó hoạt động trên nhiều nền tảng hơn, nhưng không được hỗ trợ trên Android.
Bộ khử trùng địa chỉ hạt nhân
KASan là bản sao kernel của các công cụ không gian người dùng ở trên. Nó chia sẻ việc thực hiện trình biên dịch tương tự. KASAN và ASan/HWASan bổ sung cho nhau vì một công cụ áp dụng cho kernel và công cụ khác áp dụng cho không gian người dùng. Chúng tôi khuyên bạn nên bật cả hai cùng lúc để giảm số lượng cấu hình bản dựng và giảm ma trận thử nghiệm.
Công cụ vệ sinh hành vi không xác định (UBSan)
UBSan thực hiện công cụ đo lường thời gian biên dịch để kiểm tra các loại hành vi không xác định (không an toàn bộ nhớ) khác nhau. Điều này bao gồm kiểm tra tràn số nguyên có dấu và không dấu (IntSan), kiểm tra giới hạn cho các mảng có kích thước tĩnh (BoundsSan) và nhiều loại hành vi không xác định khác. IntSan và BoundsSan cũng phù hợp để kích hoạt sản xuất như một biện pháp giảm thiểu bảo mật.