Безопасность ядра Linux — очень сложная предметная область.
Он включает в себя большое количество сложных взаимосвязанных понятий, и было бы полезно иметь его графическое представление.
Поэтому я разработал Карта безопасности ядра Linux .
Вот легенда:
Итак, на карте присутствуют следующие объекты:
- классы уязвимости;
- методы их использования для проведения атак;
- механизмы обнаружения ошибок;
- технологии защиты.
Некоторые из них включены в стандартное ядро Linux, другие по разным причинам поставляются отдельно (например, существуют коммерческие инструменты безопасности).
Существуют механизмы защиты ядра, требующие аппаратной поддержки.
Таким образом, тема безопасности ядра Linux достаточно обширна, и разработанная карта помогает в ее изучении и анализе.
Каждая линия, соединяющая объекты на карте, указывает на их взаимное влияние, суть которого следует уточнить в документации.
Этот принцип можно проиллюстрировать на фрагменте общей карты.
На рисунке 1 показаны свойства безопасности технологии STACKLEAK.
Диаграмма 1. Защитные свойства технологии STACKLEAK
PAX_MEMORY_STACKLEAK — это коммерческая технология безопасности ядра Linux, которая предотвращает эксплуатацию следующих типов уязвимостей: переполнение глубины стека, использование неинициализированных переменных и утечку информации в пользовательском пространстве.
Карта содержит идентификаторы этих классов уязвимостей (CWE, Common Weakness Enumeration).
Технологии СТЕКЛИК был введен в ядро ванильного Linux, что отражено на диаграмме.
Также имеется механизм отладки KMSAN, позволяющий обнаружить использование неинициализированных переменных и утечку информации в пользовательское пространство при тестировании ядра.
Стоит отметить, что данная карта не решает вопрос уменьшения периметра атаки ядра.
По сути, отключение практически любого функционала, уменьшающего размер исполняемого файла, также уменьшает периметр атаки.
И в этом проекте основное внимание уделяется функциям безопасности, обеспечивающим самозащиту ядра Linux от эксплуатации уязвимостей.
На диаграмме 2 показана полная карта для ядра версии 5.1 (нажмите на изображение, чтобы открыть его в полном размере).
Диаграмма 2. Карта безопасности ядра Linux v5.1
Карта постоянно развивается и требует обновления как минимум в каждом выпуске ядра.
Поэтому удобно иметь исходный код в текстовом виде и хранить его в системе контроля версий.
Кроме того, чтобы избежать необходимости вручную расставлять объекты с минимальным количеством пересечений, для создания карты был выбран язык DOT, а диаграмма автоматически генерируется пакетом GraphViz с помощью следующей команды:
Карта безопасности ядра Linux — это проект с открытым исходным кодом, лицензированный по лицензии GPL v3.0. Репозиторий находится на GitHub .dot -Tsvg linux-kernel-defence-map.dot -o linux-kernel-defence-map.svg
Этот проект чрезвычайно полезен для:
- мониторинг текущего состояния безопасности ядра,
- разработка моделей IP-угроз на базе GNU/Linux,
- выбор соответствующих средств защиты.
- Свойства безопасности grsecurity
- Документация по безопасности исходного кода ядра Linux
- Документация проекта самозащиты ядра
- Текущий статус переноса функций grsecurity в проект Android с открытым исходным кодом
- Обзор тенденций безопасности ОС Исследовательского центра Microsoft (MSRC)
- Модель угроз Linux Kernel Runtime Guard (LKRG)
Утилита поддерживает архитектуры x86_64, Arm64, x86_32 и Arm. Приглашаю вас принять участие в разработке Карты безопасности ядра Linux и коммунальные услуги kconfig-hardened-check .
Теги: #информационная безопасность #разработка Linux #безопасность #ядро Linux #Системное программирование #ядро Linux #взлом
-
Защитите Свой Телефон Самостоятельно
19 Oct, 24 -
Матич: Все Об Оценке Эффективности!
19 Oct, 24