Ядро hardened astra linux что это

Обновлено: 05.07.2024

Ядро Linux — ядро операционной системы, соответствующее стандартам POSIX, составляющее основу операционных систем семейства Linux.

Дистрибутив Arch Linux основан на ядре Linux. Помимо основной стабильной (stable) версии в Arch Linux можно использовать некоторые альтернативные ядра. В статье описываются доступные в официальных репозиториях версии ядер, возможные патчи, а также способы, которыми пользователи могут скомпилировать собственное ядро.

Пакет ядра устанавливается в файловую систему в каталоге /boot/ . Для загрузки нужного ядра при запуске системы необходимо соответствующим образом настроить загрузчик.

Contents

Официальные ядра

Помощь при работе с официальными ядрами можно найти на форуме и в баг-трекере.

Компиляция

Скомпилировать собственное ядро можно двумя способами:

/Arch Build System Преимущества — наличие готового PKGBUILD для пакета linux и удобство системы управления пакетами. /Традиционная компиляция Ручная загрузка архива файлов с исходными кодами ядра и их компиляция.

  • Лучший способ повысить производительность — адаптировать ядро под свою систему, в первую очередь под архитектуру и тип процессора.
  • Если оставить в ядре только действительно нужные вам функции, то удастся уменьшить его размер и, следовательно, время сборки. Например, удалите из него Bluetooth, Video4Linux, 1000Mbit Ethernet и прочие вещи, которые на вашей машине точно не понадобятся.

Файлы конфигурации пакетов с ядрами Arch можно найти в исходниках (например, файл [1] из linux ). Если включена опция ядра CONFIG_IKCONFIG_PROC , то файл /proc/config.gz содержит настройки ядра, которое работает на вашей машине в данный момент.

Некоторые из перечисленных пакетов могут быть также доступны в двоичном виде в неофициальных репозиториях.

Неофициальные ядра

Отладка регрессий

Прежде всего проверьте ядро linux-mainline AUR на предмет того, не была ли проблема уже решена. В прикреплённом комментарии указан репозиторий с уже собранными ядрами, так что собирать ядро вручную не придётся.

Если проблема проявляется не слишком часто, то имеет смысл попробовать LTS-ядро ( linux-lts ). Старые версии LTS-ядер можно найти в архиве Arch Linux.

Если избавиться от проблемы не удалось, попробуйте локализовать баг в linux-git AUR , после чего сообщите о нём в баг-трекер ядра. Важно проверять ванильное непропатченное ядро, чтобы убедиться, что причиной ошибки является не патч. Если проблемы вызывает патч, то сообщите об этом его автору.

Как защититься от ядерных эксплоитов эксплуатирующих уязвимости ядра Linux? Рассмотрим как это реализовано в отечественной ОС Astra Linux SE 1.6.


Многие из Вас слышали, а кто-то давно уже использует ОС Astra Linux SE 1.6 — отечественную операционную систему, сертифицированную по ФСБ, Минобороны и ФСТЭК России. На платформе Astra Linux развернуты и функционируют десятки информационных систем — как в государственных, так и в коммерческих структурах. На фоне определенного ажиотажа вокруг отечественных ОС и темы импортозамещения становится особенно актуально применение Astra Linux SE. Много слов сказано о безопасности этой операционной системы и большинство пользователей считают, что достаточно просто установить ОС Astra Linux и они получат безопасную среду для работы автоматически, ничего не настраивая. Конечно это не так. И в этой статье я расскажу об одном из основных компонентов комплекса средств защиты (КСЗ) — ядре hardened и покажу как нужно его использовать.

Ядро hardened в Astra Linux SE 1.6

Ядро hardened — это несколько изменений в компиляторе и ядре, которые увеличивают общую защищенность системы от взлома. Ядро hardened умеет блокировать массу потенциально опасных операций. В ОС Astra Linux SE 1.6 поставляется две версии ядра — это hardened и generic. Ядро hardened более компактное по размеру. Из него убраны многие компоненты, которые не используются для обычной работы, но могут использоваться для отладки. Так же в этом ядре присутствуют технологии, которые обеспечивают очистку информации стека ядра после системных вызовов. Это позволяет защититься от некоторых эксплоитов, которые нацелены на считывание неочищенной информации после системных вызовов.

На практике hardened ядро на несколько (2-3%) медленнее, чем ядро generic, но оно обеспечивает эффективную защиту от эксплоитов, которые нацелены на эксплуатацию уязвимостей ядра (ядерных эксплоитов).

Ограничения по работе с памятью в ядре hardened:

  • запрет записи в область памяти, помеченную как исполняемая;
  • запрет создания исполняемых областей памяти;
  • запрет перемещения сегмента кода;
  • запрет создания исполняемого стека;
  • случайное распределение адресного пространства процесса;
  • очистка остаточной информации из стека ядра после системных вызовов.

Включаем использование ядра hardened в Astra Linux SE 1.6

Включить использование ядра hardened можно во время установки Astra Linux SE 1.6 и позже, уже непосредственно в установленной ОС.

Во время установки Astra Linux SE 1.6 эта настройка делается в разделе «Дополнительные настройки ОС».


Для того, чтобы ОС по умолчанию загружала ядро hardened необходимо отметить параметр «Использовать по умолчанию ядро Hardened».

Так же, чтобы исключить возможность выбора пользователем варианта загрузки незащищенного ядра generic, необходимо в этом же разделе установить параметр «Запретить вывод меню загрузчика».

Если Вы не установите параметры описанные выше, и продолжите установку Astra Linux SE 1.6, то после установки ОС, во время загрузки, по умолчанию будет загружаться незащищенное ядро generic, а не hardened. Так же, с такими настройками, у пользователя будет возможность выбора ядра generic для загрузки.


Скорее всего, такая ситуация с загрузкой по умолчанию незащищенного ядра generic встретится у многих администраторов. Для того, чтобы настроить загрузку защищенного ядра hardened в уже установленной ОС, необходимо администратором (высокоцелостным root) в графическом интерфейсе открыть — «Панель управления — Система — Загрузчик GRUB2» и сделать следующие настройки:

  • «Запись по умолчанию» — ядро hardened
  • «Следующая запись станет загружаемой по умолчанию» — выбрать
  • «Автоматически загружать запись по умолчанию после показа меню» — немедленно

После этих настроек, ОС будет сразу загружаться с защищенным ядром hardened, а возможность у пользователя выбрать для загрузки незащищенное ядро generic будет отсутствовать.

Что такое ядро ОС? Типы ядер

Как правило, большинство ядер ОС делятся на три типа:

Микроядро

Микроядро — это ядро, состоящее из нескольких подгружаемых в память по мере надобности независимых модулей, выполняющихся в отдельных адресных пространствах. По сути, в таком варианте исполнения оно не сильно отличается от обычных прикладных программ. К достоинствам данного ядра можно отнести теоретически большую надежность в сравнении с другими архитектурами (в действительности же не всё так радужно и гладко) и его модульность (легкость в подключении дополнительных частей ядра). К минусам микроядерной архитектуры относится то, что ядро, построенное по такой схеме, получается очень медленным (ведь ему нужно постоянно переключаться между отдельными частями).

небольшие требования к используемой памяти;

аппаратное обеспечение сильнее абстрагировано от системы;

аппаратное обеспечение может медленнее реагировать, поскольку драйверы находятся в пользовательском пространстве;

процессы не могут получить доступ к другим процессам без ожидания.

Монолитное ядро

Монолитное ядро — это полная противоположность микроядра, т.к. в памяти компьютера всегда находится весь (или почти весь) код ядра, вследствие чего скорость его работы выше в сравнении с микроядром. Монолитные ядра, как правило, лучше справляются с операциями доступа к оборудованию и многозадачностью, потому что, если программе нужно получить информацию из памяти или другого запущенного процесса, у нее есть прямая линия для доступа к ней, и программе не нужно ждать в очереди, чтобы сделать что-то. Однако такой подход может вызвать серьезные проблемы, потому что, чем больше процессов выполняется на уровне ядра, тем больше вероятность, что в случае непредвиденного поведения они создадут общий сбой вашей системы.

практически прямой доступ программ к оборудованию;

процессам проще взаимодействовать друг с другом;

если ваше устройство поддерживается ядром, никаких дополнительных установок ПО не потребуется;

процессы реагируют быстрее, потому что не требуется ожидания в очереди за процессорным временем.

большой размер ядра;

больший размер занимаемой памяти;

проблемы с безопасностью, т.к. все части работают в пространстве ядра.

Гибридное ядро

Гибридное ядро — это ядро, сочетающее в себе элементы как монолитной, так и микроядерной архитектур. У таких ядер есть возможность выбирать, какие части будут работать в пользовательском пространстве (например, драйверы устройств и система ввода-вывода файловой системы), а какие — в пространстве ядра (вызовы межпроцессного (IPC) и серверного взаимодействий). Но этот подход имеет и некоторые проблемы, унаследованные от микроядерной архитектуры (особенно, по части быстродействия).

разработчик может выбрать, какие программы будут работать в пользовательском пространстве, а какие — в пространстве ядра;

меньший размер в сравнении с монолитным ядром;

гибче в отличие от других ядер.

может страдать от пониженной производительности (как и микроядро);

работа драйверов устройств, как правило, сильнее зависит от производителей оборудования.

Ядро Linux хоть и относится к монолитным ядрам, но оно также заимствует и некоторые идеи из микроядерной архитектуры, что означает, что вся операционная система работает в пространстве ядра, а драйверы устройств (в виде модулей) могут быть легко загружены (или выгружены) прямо во время работы операционной системы.

Где находится ядро Linux?

Каждый раз во время запуска (или перезапуска) системы первым компонентом, который загружается в память компьютера, является ядро Linux.

В системах Debian/Ubuntu файлы присутствующих в системе ядер расположены в каталоге /boot и именуются в виде vmlinuz-[версия_ядра] (выполнив в терминале команду uname-r , мы получим информацию о текущей версии установленного ядра):


В папке /boot вы также найдете и другие очень важные файлы:

img-[версия_ядра] — используется в качестве RAM-диска, в который распаковывается и с которого загружается ядро;

map-[версия_ядра] — используется для управления памятью до полной загрузки ядра;

config-[версия_ядра] — сообщает ядру, какие параметры и модули следует загрузить в образ ядра при его компиляции.

Примечание: Также для сжатия ядра часто применяются алгоритмы LZMA или bzip2, а сами ядра именуются zImage.

Модули ядра Linux

Модули обычно расширяют базовые возможности ядра, связанные с различной работой устройств, файловых систем и системных вызовов. Они, как правило, имеют расширение .ko и обычно хранятся в каталоге /lib/modules:


Версии ядра дистрибутивов Linux

Stable

Stable — это последняя доступная стабильная версия ядра Linux, предназначенная для широкого круга использования. По умолчанию, в большинстве дистрибутивов Linux применяется именно stable-версия ядра. Она регулярно обновляется, и к ней довольно часто выпускаются новые патчи.

Несмотря на то, что исправления безопасности внедряются в LTS-версию так же часто, как и в обычную, она, тем не менее, не дает 100% гарантии отсутствия каких-либо ошибок. Правда, шанс того, что с LTS-версией ядра Linux возникнут какие-то проблемы, немного меньше по сравнению с обычной версией ядра Linux, и поэтому многие предприятия отдают предпочтение именно LTS-релизам.

Примечание: По данным компании Canonical, примерно 95% всех установок Ubuntu являются LTS-релизами.

Hardened

Hardened — это усиленная различными обновлениями безопасности stable-версия ядра Linux. Она умеет блокировать потенциально опасные операции, обеспечивая тем самым эффективную защиту от эксплойтов, нацеленных на использование уязвимостей ядра. Данная версия ядра не так популярна, как другие, из-за того, что несколько медленнее их. Hardened-ядро убивает любой процесс, который покажется ему потенциально опасным. Кроме этого, он не отображает PID процессов, и, следовательно, вы не сможете напрямую обратиться к запущенному исполняемому файлу. Также некоторые программы и функции могут не работать с hardened-ядром.

Zen — версия ядра Linux, ориентированная на повышение производительности и отзывчивости системы. Также говорят, что это лучшее ядро Linux для игр. Zen имеет низкую задержку и высокочастотный планировщик.

Установка/Обновление ядра Linux

Соответственно, из этого можно сделать следующие выводы:

Если вам нужно ядро Linux с правками под какой-то конкретный дистрибутив (например, Debian или Manjaro), то вам нужно скачать ядро из репозитория конкретного дистрибутива с помощью менеджера пакетов.

Есть 2 способа установки/обновления ядра Linux:

Обновление ядра Linux через менеджер пакетов.

На этом уроке мы рассмотрим обновление ядра Linux через менеджер пакетов, а на следующем — самостоятельную установку и конфигурирование ядра Linux.

Обновление ядра Linux через менеджер пакетов

Обычно, вместе с обновлением системы происходит и обновление ядра. Но если вы по каким-либо причинам хотите произвести установку/обновление непосредственно только ядра Linux, то ниже мы рассмотрим данный процесс для нескольких дистрибутивов Linux.

Linux Mint (Debian/Ubuntu)

Для начала сверим текущую установленную версию ядра:


Далее выполним поиск доступных для установки ядер (сгенерированный список может быть очень длинным, поэтому, чтобы хоть как-то ограничить вывод и сделать его постраничным, применим фильтр | more ):

$ sudo apt-cache search linux-image | more


Мой выбор пал на ядро linux-image-4.15.0-1004-oem. Чтобы его установить, нужно выполнить команду:

$ sudo apt-get install linux-image-4.15.0-1004-oem


Останется только перезагрузить систему и убедиться, что новое ядро успешно установилось:


Manjaro (Arch Linux)

В Manjaro используется свой менеджер пакетов — pacman, поэтому его команды будут немного отличаться от команд в других дистрибутивах. Чтобы вывести список доступных для установки ядер, необходимо выполнить:

$ sudo pacman –S linux


В рамке обведен список ядер, которые мы можем установить. Я выбрал пункт №5 (linux510), нажав соответствующую кнопку на цифровой клавиатуре. После этого запустился процесс скачивания необходимых пакетов. Когда всё будет готово, перезагружаем систему и радуемся новому ядру:



Установка ядра Zen (Liquorix)

Liquorix — это отдельный проект ядра, собранный из исходников zen-ядра, но с использованием лучшей конфигурации для повышения производительности системы.

Debian

Скачиваем скрипт, который добавит в систему нужные репозитории:


После чего выполняем всего одну команду, устанавливающую пакеты с новым ядром:

$ sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64



Ubuntu

Установка в Ubuntu происходит практически аналогичным образом. Сначала добавляем репозитории zen-ядра (liquorix):

sudo add-apt-repository ppa:damentz/liquorix && sudo apt-get update

После чего выполняем уже знакомую по прошлому разу команду:

sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64

И теперь перезагружаем систему. Готово!

Manjaro


Далее установим необходимые утилиты:

$ sudo pacman –S base-devel


Заходим в каталог yay и производим сборку пакета:

$ cd yay
$ makepkg -si


После этого переходим непосредственно к установке zen-ядра:

$ yay -S linux-zen-git


Стоит отметить, что этот процесс может занять довольно большой отрезок времени. По его окончанию, перезагружаем систему и радуемся новому ядру.

В состав дистрибутива и репозитория Astra Linux Common Edition 2.12.43 включено ядро версии 5.10.0-1038.40. Установка комплекта пакетов для использования этого ядра возможна с помощью одного из метапакетов:

  • linux-5.10 - установка ядра версии 5.10.0-1038.40 (варианты ядра generic и hardened);
  • linux-5.10-generic - установка ядра версии 5.10.0-1038.40 (вариант ядра generic);
  • linux-5.10-hardened - установка ядра версии 5.10.0-1038.40 (варианта ядра hardened).

При установке любого из этих метапакетов будут установлены указанные варианты ядра и соответствующие им пакеты, необходимые для автоматической интеграции нового ядра с пакетами Astra Linux.

Для установки ядра 5.10 не следует использовать пакеты linux-image-5.10*, так как нужные зависимости автоматически устанавливаются только при установке пакетов linux-5.10-*

Метапакеты могут быть установлены с помощью графического менеджера пакетов или из командной строки командой apt с указанием названия устанавливаемого метапакета:

sudo apt install linux-5.10
sudo apt install linux-5.10-generic
sudo apt install linux-5.10-hardened

В дистрибутиве и репозитории Astra Linux Common Edition 2.12.43 доступны следующие версии ядер:

  • linux-image-5.10.0-1038.40-generic /linux-image-5.10.0-1038.40-hardened;
  • linux-image-unsigned-5.10.0-1038.40-hardened / linux-image-unsigned-5.10.0-1038.40-generic;
  • linux-image-5.4.0-71-generic /linux-image-5.4.0-71-hardened;
  • linux-image-4.15.3-141-generic / linux-image-4.15.3-141-hardened;

Получить список установленных ядер можно командой:

Получить версию и вариант ядра, используемого в системе можно командой:

После загрузки с использованием нового ядра для удаления неиспользуемых ядер можно использовать следующий сценарий:

pkgs=`dpkg -l \
linux-image-5.10.0-1038.40-generic linux-image-5.10.0-1038.40-hardened \
linux-image-unsigned-5.10.0-1038.40-hardened linux-image-unsigned-5.10.0-1038.40-generic \
linux-image-5.4.0-71-generic linux-image-5.4.0-71-hardened \
linux-image-4.15.3-141-generic linux-image-4.15.3-141-hardened \
2> /dev/null | grep "^ii" | cut -d " " -f3 | \
grep -v ^linux-image-$(uname -r | cut -d '-' -f1-2)`

[ -n "$pkgs" ] && apt remove $pkgs
rm -f /boot/old-*

Вышла новая версия операционной системы специального назначения Astra Linux Special Edition.

Новый релиз подготовлен на базе Astra Linux Common Edition 2.12, используется ядро Линукс версии 4.15.

Для пользователей

Рабочий стол. Существенно переработано рабочее окружение Fly. Fly — собственная разработка РусБИТеха на базе библиотеки Qt. Имеет в своем составе стандартный набор средств. Освежена стандартная тема оформления в соответствии с современными тенденциями. В новой версии пользователь может адаптировать цветовую палитру по своему желанию. Из любопытных особенностей следует отметить изменение оформления рабочего стола в зависимости от прав пользователя.

KDE Frameworks. В отличие от предыдущих версий Astra Linux, в новой версии за основу рабочей среды взято свободное ПО «KDE Framework». KDE Framewor — это программный инструментарий, лежащий в основе популярной рабочей среды KDE. Тем самым разработчики повысили качество и функциональность Fly, попутно улучшив совместимость с приложениями, разработанными для среды KDE.

Офисный пакет. Добавлен новейший комплект офисных программ LibreOffice 6.0. Данное нововведение предлагает лучшую функциональность, но обратной стороной является стабильность — версия 6.0 достаточно «сырая» и ее нельзя рекомендовать для повседневной работы.

Blender. Включен Blender — профессиональное свободное программное обеспечение для создания трёхмерной компьютерной графики, включающее в себя средства моделирования, анимации, рендеринга, постобработки и монтажа видео.

Приложения KDE. Включены в состав многие приложения KDE: запись компакт-дисков (k3b), редактор Kate, терминал Konsole и д.р.

Шрифты. Удалены многие наборы шрифтов (да, стало еще меньше).

Сканирование и распознавание. Система распознавания текста Tesseract.









Сервер

FreeIPA. В дополнение к традиционным средствам построения сетевых доменов Astra Linux Directory добавлена домен FreeIPA. FreeIPA — открытый проект для создания централизованной системы управления пользователями, компьютерами с интеграцией зон DNS, доменами Samba и системой Kerberos 5. FreeIPA дает возможность централизации многих функциональных аспектов инфраструктуры.

Управление. Для удобства администрирования добавлены графические утилиты для работы с доменами. Включен графический интерфейс к брандмауэру UFW.

HAProxy. Добавлен прокси-сервер HAProxy в дистрибутив ОС.

Настройка сети. iproute2 вместо iproute.

СУБД. PostgreSQL обновлен до версии 9.6.

Веб-приложения. Включены многие дополнительные пакеты Ruby, а сам Ruby обновлен до версии 2.3.




Виртуализация

QEMU. Дистрибутив пополнился средой виртуализации и кластеризации с возможностью построения высоконадежных отказоустойчивых систем.

Ceph. В состав вошла кластерная распределенная файловая система Ceph.

Средства защиты

Ядро Hardened. Дистрибутив пополнился ядром с усиленной самозащитой. Hardened Linux — это несколько изменений в компиляторе и ядре, которые увеличивают общую защищенность системы от взлома. Hardened-ядро умеет блокировать массу потенциально опасных операций. Hardened ядро пришло на замену защите PaX.

Мандатный контроль целостности. Расширены возможности мандатного контроля целостности (МКЦ). Вместо двух уровней целостности (версия 1.5) теперь доступно 8 уровней. Некоторые уровни распределены между системными средствами. Контроль целостности влияет на возможность изменения объектов операционной системы пользователем.

Блокировка скриптов. Расширены механизмы блокировки выполнения недоверенного кода, в том числе и на интерпретируемых языках программирования (python, perl, ruby,.);

Шифрование. Данные на дисках и компьютерной сети теперь могут быть защищены маскирующим преобразованием. Не является СКЗИ.

Обновление микрокода. В состав дистрибутива включены утилиты обновления микрокода процессоров Intel и AMD.

Многочисленные изменения. Подверглись изменениям функции подсистемы мандатной защиты данных (PARSEC). Сервер графического интерфейса теперь работает под пользовательской учетной записью. Протокол SSH переведен на использование российских алгоритмов ГОСТ. Отключение входа через консоль и многое другое.





К сожалению, разработчики не уделяют внимания сохранению обратной совместимости между версиями.

  1. Установленную Astra Linux Special Edition 1.5 нельзя обновить до версии 1.6, только переустановка.
  2. Многие программы, написанные для Astra Linux Special Edition с высокой вероятностьюпотеряют совместимость и перестанутработать.
Выбор компонентов при установке Astra Linux Special Edition 1.6 Настройка средств защиты информации при установке Astra Linux Special Edition 1.6

Надежная версия LibreOffice с проверкой русского для SE: LibreOffice 6.2.

В состав заказа на обновление должен входить минимум 1 дистрибутив формата поставки BOX.

  • Лицензия на обновление Astra Linux Special Edition «Смоленск» 1.6 ФСТЭК (формат поставки BOX) — 12 900 руб/шт;
  • Лицензия на обновление Astra Linux Special Edition «Смоленск» 1.6 ФСТЭК (формат поставки OEM) — 7 900 руб/шт;
  • Лицензия на обновление Astra Linux Special Edition «Смоленск» 1.6 ФСТЭК (дополнительная лицензия, без формуляра и дистрибутива) — 6 950 руб/шт.

Стоимость поставки новых дистрибутивов Astra Linux Special Edition «Смоленск» 1.6 ФСТЭК (НДС не облагается), базовая:

  • формат поставки BOX — 24 900 руб/шт;
  • формат поставки OEM — 14 900 руб/шт;
  • дополнительная лицензия, без формуляра и дистрибутива — 13 900 руб/шт.

В дальнейшем мы планируем сделать обзор новой версии Astra Linux Special Edition 1.6:

  • для разработчиков;
  • новаций в системе защиты информации.

Похожие статьи

Astra Linux Special Edition 1.7: цены

Astra Linux Special Edition 1.7: цены

22 октября вышла новая версия 1.7 ОС СН Astra Linux Special Edition. Сейчас рассмотрим цены и условия лицензирования. (далее…)

Astra Linux Special Edition 1.7: лицензирование и сертификация, защита

Astra Linux Special Edition 1.7: лицензирование и сертификация, защита

22 октября вышла версия 1.7 отечественной операционной системы Astra Linux Special Edition. В этой статье рассмотрим изменения в схеме лицензирования, сертификации и сделаем обзор новинок защиты. Обзор состава новой версии.

Astra Linux Special Edition 1.7: состав

Astra Linux Special Edition 1.7: состав

Astra Linux Special Edition 1.7 22 октября 2021 года вышла новая версия дистрибутива Astra Linux Special Edition 1.7. Основные новинки сосредоточены вокруг нового уровня сертификации, новой схемы лицензирования и расширения.

Читайте также: