RSS Google Online Security Blog

Address Sanitizer для прошивки на голом железе

Follow
Программное обеспечение Android фирмы все чаще подвергается атакам из-за меньшего внимания, чем пользовательское пространство Android и ядро. Kernel Address Sanitizer (KASan) - это инструмент, который может заранее обнаруживать уязвимости в фирменном ПО, выявляя недопустимые операции доступа к памяти во время работы. KASan может быть использован для широкого спектра целей фирменного ПО и применим как к куче, так и к стековой памяти. Чтобы включить KASan для фирменного ПО для bare-metal, необходимо реализовать пользовательский runtime, чтобы проверять операции доступа к памяти и управлять теневой памятью, которая отслеживает состояние областей памяти, охваченных KASan. Теневая память - это выделенная память, где каждый байт соответствует 8-байтовой области памяти и кодирует ее состояние. Runtime KASan включает функции для выполнения проверок доступа к памяти, управления теневой памятью и хуки для аллокации памяти в куче. Инструментируя операции доступа к памяти этими функциями, KASan может обнаруживать уязвимости повреждения памяти, включая доступ за пределы памяти, использование памяти после освобождения, двойное/недопустимое освобождение и использование памяти после возвращения. Чтобы избежать ложных срабатываний для функций, не возвращающих значения, используется рутин __asan_handle_no_return, чтобы удалить красные зоны вокруг переменных стека. KASan может быть включен для кучи, стека и глобальных переменных с помощью соответствующих опций компилятора во время компиляции. Маленький проект предоставлен в качестве примера реализации KASan для bare-metal целей с использованием эмулятора системы QEMU. Это реализация может быть использована в качестве справочного материала для технических деталей. KASan уже использовался для обнаружения и исправления более 40 ошибок безопасности памяти и уязвимостей в целях фирменного ПО, включая некоторые из них критического уровня. Используя KASan в разработке фирменного ПО, безопасность устройств может быть значительно улучшена.
favicon
security.googleblog.com
Address Sanitizer for Bare-metal Firmware
Create attached notes ...