На Хабре вышла статья «Путешествие туда и обратно за безопасным ELF-парсером» нашего коллеги Максима Жукова, старшего разработчика группы разработки тулчейнов для KasperskyOS. В ней он поднимает важную и часто недооцененную проблему — надежность и безопасность системных компонентов, которые лежат в основе любой операционной системы, но редко попадают в фокус внимания. Один из таких компонентов — парсер ELF-файлов, то есть программа, которая обрабатывает исполняемые файлы в формате ELF (Executable and Linkable Format), используемые во многих UNIX-подобных системах.
Что делает парсер ELF? Он принимает бинарный файл и распаковывает его, чтобы система могла его исполнять, поняв, какие сегменты кода куда загружать, какие библиотеки подключать, какие права задать процессу и т. д. То есть это точка входа для любых исполняемых компонентов в систему.
Если в этой точке что-то пойдет не так — например, парсер будет некорректно интерпретировать структуру ELF-файла или упустит вредоносную вставку — злоумышленник может получить доступ к системе или обойти защиту. А теперь представьте, что вы используете эту систему в промышленности, транспорте или критической инфраструктуре. Уязвимость в парсере — это не просто ошибка, а дверь в вашу систему.
В KasperskyOS такая потенциальная брешь в безопасности неприемлема. Мы создаем системы, которым должны доверять по определению — в том числе и в ситуациях, когда обновление невозможно или непрактично. Это основа нашего кибериммунного подхода, где безопасность зашита в архитектуру.
Максим Жуков рассказывает в статье, как он искал способы сделать парсер ELF-файлов в KasperskyOS максимально надежным и проверяемым.
Спойлер: его проверки были дополнены новыми этапами:
- фаззингом через libFuzzer;
- статическим анализом с PVS-Studio и Svace;
- динамическим анализом с clang-стеком и санитайзерами;
- пентестами;
- продвинутым фаззингом с Melkor;
- unit-тестами с CBMC.
Хоть существующий парсер и остался без радикальных изменений, в основном был добавлен харденинг, в процессе поиска решения мы изучили и проанализировали множество инструментов и подходов.
Если вам интересна безопасная разработка и системное программирование — обязательно загляните в статью «Путешествие туда и обратно за безопасным ELF-парсером»
➡️ https://kas.pr/h3y9