• Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8) с установленным оперативным обновлением 1.8.2


Общая информация

Начиная с обновления Astra Linux Special Edition 1.8.2 в состав репозитория включен пакет kernel-profiles-manager, предоставляющий инструмент командной строки для управления параметрами ядра — kernel-profiles-manager. Инструмент предоставляет администратору системы, не обладающему специальными техническими знаниями:

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

Инструмент поддерживает работу с наборами параметров — шаблонами и наборами шаблонов — профилями.

Термины



Параметр ядраАтрибут настройки ядра, значение которого определяет какой-либо аспект поведения ядра
ПрофильНабор шаблонов и параметров с указанием их значений. Предназначены для упрощения настройки. Предустановлены два профиля:
ШаблонНабор параметров ядра с указанием их значений, логически сгруппированный по тематикам. Шаблоны группируются в профили. Предназначены для упрощения настройки
Непривилегированный пользовательПользователь, по умолчанию не имеющий всех полномочий администратора ОС. Может иметь отдельные явно предоставленные полномочия — привилегии PARSEC – разрешающие такому пользователю выполнять определенные действия

Установка пакета

Пакет kernel-profiles-manager может быть установлен с помощью графического менеджера пакетов или из командной строки командой:

sudo apt install kernel-profiles-manager

Использование инструмента

Общий синтаксис использования инструмента:

kernel_profiles_manager [<действие>] <опция>...

Действия

ДействиеОписание действия
-l, --profiles-listВывести список названий всех профилей
-t, --templates-list <имя_профиля>Вывести список названий всех шаблонов, содержащихся в указанном профиле
-n, --profile-name <имя_профиля>Вывести список параметров ядра, содержащихся в указанном профиля
-c, --currentВывести название активного профиля
-m, --template <имя_шаблона>Вывести список параметров ядра, содержащихся в указанном шаблоне
-p, --change-profile <имя_профиля>Сменить активный профиль ядра на указанный
-d, --default-profileСменить активный профиль ядра на профиль, принятый по умолчанию (generic)
-v, --verify <имя_профиля>Проверить, совпадают ли параметры ядра активного профиля с указанным профилем

Профили и их влияние на работу ОС

Профиль Generic

Профиль Hardened

Возможно использование инструментов отладки:

  • профилирование и трассировка perf;
  • трассировка c использованием инструментов BPF;
  • отладчик gdb;
  • инструмент crash.

Непривилегированные пользователи с привилегией PARSEC_PERF_OWNER и администратор с высоким уровнем целостности могут использовать:

  • точки трассировки ядра;
  • BPF программы;
  • perf

Для всех непривилегированных пользователей разрешается hardening JIT компиляция BPF.
Непривилегированные пользователи с привилегией PARSEC_CAP_BPF_OWNER или администратор с высокой целостностью могут запускать BPF программы

Использование инструментов отладки невозможно:

  • адреса ядра полностью скрыты, что делает perf бесполезным для анализа ядра;
  • инструменты зависящие от символов ядра (например, декодирование трассировок) не могут интерпретировать данные;
  • невозможно использование perf annotate для функций ядра;
  • загрузка символов ядра (vmlinux) заблокирована;
  • инструменты BPF trace и funccount не могут работать;
  • инструмент crash не может разрешать адреса

Использование инструментов отладки непривилегированными пользователями ограничено:

  • не работают инструменты perf stat, perf record;
  • нельзя использовать kprobes;
  • не работают инструменты htop, systemtap;
  • контейнеры docker не могут собирать метрики производительности


Защита оперативной памяти:

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

Запрещает загрузку нового ядра через kexec_load()

Блокирует инициализацию механизма kexec на уровне ядра:

  • перестанет работать kdump, Makedumpfile, kexectools
  • перестанут работать инструменты для восстановления системы (например, crash)
  • перестанет работать live-патчинг ядра
  • Разрешена работа с контейнерами и песочницами (sandbox).
  • Разрешен доступ к /proc/<pid>/mem — интерфейсу доступа к правам отображения памяти (memory mapping) процесса.
    Используется именно этот вариант, а не более безопасный, так как могут перестать работать инструменты мониторинга

Влияние на приложения:

  • может нарушаться работа контейнерной виртуализации и песочниц (sandboxing-инструментов), в том числе работа docker;
  • может нарушаться работа служб systemd с включенным DynamicUser;
  • может нарушаться работа tuned;
  • запрещается работа приложений, использующих vm.dirty_ratio для управления кешем;
  • запрещается работа приложений, использующих любое принудительное изменение параметров памяти;
  • запрещается создание новых пространств имен (namespaces);
  • для непривилегированных пользователей может нарушаться работа сетевых инструментов, использующих сетевые пространства имен (network namespaces);
  • для непривилегированных пользователей может нарушаться работа сетевых инструментов, использующих сетевые пространства имен (network namespaces);
  • старые версии bpftrace и bcc-tools, BPF программы, зависящие от фиксированных адресов, перестают работать.

 

Влияние на производительность:

  • BPF программы работают медленнее;
  • приложений, использующие BPF, требуют больше процессорных ресурсов;
  • могут замедлиться операции ввода-вывода;
  • в высоконагруженных средах виртуализации может в возникать нехватка оперативной памяти из-за невозможности настройки выделения виртуальных ресурсов (overcommit)