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

Ключ

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

Оглавление

Информация
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.
  • Запрещено , , /разрешается использование kexec-tools — лету на другое ядро (также можно указать ядро, в которое будет автоматически загружаться в случае сбоя (kernel panic) на текущем ядре);
  • разрешается использование kdump-tools
  • Запрещает Блокирует

    При kernel.kexec_load_disabled=1

  • Перестанет работать kdump, Makedumpfile, kexectools
  • Перестанут работать Перестанет работать Разрешена , что атаки пространстванарушается может нарушаться работа сетевых Разрешен .
    Используется именно этот вариант, а не более безопасный, так как могут перестать работать инструменты мониторинга
  • запрещается любое принудительное изменение параметров памяти
  • может быть нарушена работа docker$
  • может быть нарушена работа tuned
  • запрещается работа приложений, использующих vm.dirty_ratio для управления кешем

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

    Профиль 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 не может разрешать адреса

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

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

    Работа непривилегированных пользователей ограничена:

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

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

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

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

    • BPF программы работают медленнее;
    • приложений, использующие BPF, требуют больше процессорных ресурсов;
    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)