Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление

Информация
titleДанная статья применима к:


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

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

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

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

Термины



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

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

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

Command
sudo apt install kernel-profiles-manager

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

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

Command
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 <имя_профиля>Проверить, совпадают ли параметры ядра активного профиля с указанным профилем

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

Возможно
  • отладчик gdb;
  • инструмент crash.
  • Непривилегированные пользователи с привилегией PARSEC_PERF_OWNER и администратор с высоким уровнем целостности могут использовать:

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

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

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

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

    • не работают инструменты perf stat, perf record;
    • нельзя использовать kprobes;
    • не работают инструменты htop, systemtap;
    • контейнеры docker не могут собирать метрики производительности
    разрешается использование kexec-tools — разрешается использование Запрещает Блокирует , , перестанут работать перестанет работать Разрешена

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

    может нарушаться работа
  • Разрешен доступ к /proc/<pid>/mem — интерфейсу доступа к правам отображения памяти (memory mapping) процесса.
    Используется именно этот вариант, а не более безопасный, так как могут перестать работать инструменты мониторинга
  • может нарушаться работа запрещается работа ,
  • запрещается создание новых пространств имен (namespaces);
  • для непривилегированных пользователей может нарушаться работа сетевых инструментов, использующих сетевые пространства имен (network namespaces);
  • для непривилегированных пользователей может нарушаться работа сетевых инструментов, использующих сетевые пространства имен (network namespaces);
  • старые версии bpftrace и bcc-tools, BPF программы, зависящие от фиксированных адресов, перестают работать.
  • Влияние на производительность

    Параметр ядра

    Профиль Generic

    Профиль Hardened

    kernel.kptr_restrict

    kernel.kptr_restrict=0

    • разрешается использование инструментов отладки:
      • профилирование и трассировка perf;
      • трассировка c использованием инструментов BPF;

    kernel.kptr_restrict=2

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

    Влияние на работу ПО

    :

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

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

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

    kernel.kexec_load_disabled=0

    • разрешается использование инструментов kexec-tools и kdump-tools, в том числе
    • прямое использование kexec в пространстве пользователя, позволяющее переключиться на другое ядро без перезагрузки;

    kernel.kexec_load_disabled=1

    • запрещается использование инструментов kexec-tools и kdump-tools
    • .

    Влияние на работу ПО:

    • запрещает загрузку нового ядра через kexec_load();
    • блокирует инициализацию механизма kexec на уровне ядра:
    • перестанет работать:
      • kdump
      • ;
      • Makedumpfile
      • ;
      • kexectools;
      • инструменты для восстановления системы (например, crash);
      • live-патчинг ядра
    user.max_user_namespaces

    user.max_user_namespaces=<ненулевое значение, установленное по умолчанию при установке системы>

    • разрешена работа с контейнерами и песочницами (sandbox).

    user.max_user_namespaces=0

    • ограничена работа с контейнерами.
    • запрещается создание новых пространств имен (namespaces);

    Влияние на работу ПО:

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

      kernel.yama.ptrace_scope

      kernel.yama.ptrace_scope=1

      • ограниченные возможности трассировки, по умолчанию трассировка разрешена только дочерним процессам.

      kernel.yama.ptrace_scope=3

      • трассировка полностью запрещена.

      Влияние на работу ПО:

      • может нарушаться работа приложения tuned;
      • запрещается работа:
        • приложений, использующих vm.dirty_ratio для управления кешем;
        • приложений
        • использующих любое принудительное изменение параметров памяти;
        • полностью запрещается работа ptrace, блокируются атаки, связанные с внедрением в процессы;
      • перестает работать отладчик gdb;
      • блокируются инструменты strace, ltrace, perf;
      • нарушается работа инструментов мониторинга, использующих ptrace

      proc_mem.force_override

      proc_mem.force_override=always

      • разрешается доступ к /proc/<pid>/mem — интерфейсу доступа к правам отображения памяти (memory mapping) процесса

      proc_mem.force_override=never

      • запрещается доступ к /proc/<pid>/mem — интерфейсу доступа к правам отображения памяти (memory mapping) процесса.

      Влияние на работу ПО

       

      :

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