Skip to content

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


https://www.altlinux.org/AltHa

AltHa — это модуль безопасности Linux, который в настоящее время имеет три варианта защиты пользовательского пространства:

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

Для включения модуля AltHa необходимо передать ядру параметр altha=1. Для этого в файле /etc/sysconfig/grub2 в строке GRUB_CMDLINE_LINUX_DEFAULT следует добавить опцию: altha=1.

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

bash
update-grub

Перезагрузить систему.

Модуль альтератора:

bash
alterator-secsetup

После перезагрузки модуль будет доступен через Центр управления системой - Система - Настройки безопасности

Отключение влияния бита SUID на привилегии порождаемого процесса в графическом интерфейсе

В открывшемся окне следует отметить пункт Отключить влияние suid бита на привилегии порождаемого процесса и нажать кнопку Применить Исключения это список включенных двоичных файлов SUID, разделённых двоеточиями.

Переменные модуля AltHa

Переменные модуля AltHa со значениями по умолчанию:

bash
sysctl -a | grep altha

![[sysctl altha.png]]

При необходимости устанавливать эти переменные автоматически при каждой загрузке ОС, необходимо добавить их в файл /etc/sysctl.conf.

После редактирования sysctl.conf применить изменения, без перезагрузки ОС, можно выполнив команду:

bash
sysctl -p

Примечание: Для изменения значений переменных модуля AltHa можно также воспользоваться модулем ЦУС Настройки безопасности.

Запрет бита исполнения (SUID)

![]('/public/img/Pasted image 20250602125016.png')

При включенном подмодуле altha.nosuid, биты SUID во всех двоичных файлах, кроме явно перечисленных, игнорируются в масштабе всей системы.

Для включения запрета бита исполнения следует установить параметр kernel.altha.nosuid.enabled в 1:

bash
sysctl -w kernel.altha.nosuid.enabled=1

И добавить, если это необходимо, исключения (список включенных двоичных файлов SUID, разделенных двоеточиями), например:

bash
sysctl -w kernel.altha.nosuid.exceptions="/bin/su:/usr/libexec/hasher-priv/hasher-priv"

Проверка состояния режима запрета бита исполнения выполняется командой:

bash
sysctl -n kernel.altha.nosuid.enabled

Результат выполнения команды:

  • 1 — режим включен;
  • 0 — режим выключен.

Блокировка интерпретаторов (запрет запуска скриптов)

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

Для включения режима блокировки интерпретаторов следует установить значение переменной kernel.altha.rstrscript.enabled равным 1:

bash
sysctl -w kernel.altha.rstrscript.enabled=1

Переменная kernel.altha.rstrscript.interpreters должна содержать разделенный двоеточиями список ограниченных интерпретаторов. Для изменения значения переменной kernel.altha.rstrscript.interpreters выполнить команду:

bash
sysctl -w kernel.altha.rstrscript.interpreters="/lib64/ld-linux-x86-64.so.2:/usr/bin/python:/usr/bin/python3:/usr/bin/perl:/usr/bin/tclsh"

Примечание: В этой конфигурации все скрипты, начинающиеся с #!/usr/bin/env python, будут заблокированы.

Предлагается вносить ld-linux в этот список, чтобы через него нельзя было запустить заблокированный интерпретатор, тем самым обойдя блокировку.

Проверка состояния режима запрета бита исполнения выполняется командой:

bash
sysctl -n kernel.altha.rstrscript.enabled

Результат выполнения команды:

  • 1 — режим включен;
  • 0 — режим выключен.

Список заблокированных интерпретаторов:

bash
sysctl -n kernel.altha.rstrscript.interpreters
/usr/bin/python:/usr/bin/python3:/usr/bin/perl:/usr/bin/tclsh

Отключение возможности удаления открытых файлов

Примечание: Использовать этот механизм не рекомендуется.

Для отключения возможности удаления открытых файлов следует установить значение переменной kernel.altha.olock.enabled равным 1:

bash
sysctl -w kernel.altha.olock.enabled=1

Переменная kernel.altha.olock.dirs должна содержать разделенный двоеточиями список каталогов, например: /var/lib/something:/tmp/something. Для изменения значения переменной kernel.altha.olock.dirs следует выполнить команду:

bash
sysctl -w kernel.altha.olock.dirs="/var/lib/something:/tmp/something"

Контакты: bystrovno@basealt.ru