MemorySanitizer (MSAN), когда он нужен и как внедрять
По разным оценкам, до 10% уязвимостей в коде на C и C++ являются следствием использования неинициализированной памяти (источники: 1, 2). Задача MemorySanitizer (далее, MSAN) - выявлять использование неинициализированной памяти в коде, то есть мусора, например в блоке кода типа if (uninit_var) {...}. Кроме уязвимостей, неинициализированная память даёт о себе знать при портировании приложения на другую платформу, смене компилятора (или поднятии версии используемого), изменении уровня оптимизации или изменении кода таким образом, что то, что раньше "случайно" инициализировалось нулями, стало инициализироваться мусором.
MSAN не является статическим анализатором, то есть для его работы требуется выполнение кода (нужны тесты/fuzzing/реальная нагрузка). Прежде чем переходить к самому MSAN, сначала разберемся почему недостаточно (или достаточно?) статического анализа, ведь даже компиляторы умеют предупреждать об использовании неинициализированных данных.
Читать далееИсточник: Хабрахабр
Похожие новости
- Будущее архитектуры безопасности: Сетчатая архитектура кибербезопасности
- Аэрофлот и их ПДны
- Как внедрить культуру кибербезопасности “с нуля” в небольшой компании?
- Kaisen Linux официально закрыт: что теряют сисадмины и какие есть альтернативы
- Wunder Digital: TikTok — 95% охвата, Youtube — №1 среди видеоресурсов. Мультиканальность как норма: тенденции в digital в Беларуси в 2025
- Подломить и закрепиться: как злоумышленники используют IoT в кибератаках и при чем здесь DNS-туннелирование
- Почему алгоритм плохо защищает от социальной инженерии: мысленный эксперимент в мире кантианцев-манипуляторов
- МТС Твой бизнес: Telegram первым из мессенджеров в России вышел на охват в 100 млн пользователей
- Spark_news: Спрос на книги вырос на 16% - исследование
- Raketa: Спрос на бизнес-поездки в страны Персидского залива увеличился вдвое