Ограничение отладки и снижение системной избыточности

Материал из Rosalab Wiki
Перейти к: навигация, поиск
Away.png
Это заготовка статьи!
Вы можете помочь проекту, дописав и дополнив данную статью.


Ограничение отладки и снижение системной избыточности. Свод требований.

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

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

Ограничения некоторых интерфейсов отладки уже описывалась в этой статье.

Сводная информация с рекомендуемыми настройками для ядра ОС и проекция к Методическому документу ФСТЭК «Рекомендации по обеспечению безопасной настройки операционных систем Linux» от 25 декабря 2022 г. — приведена в таблице ниже:

№ п/п Параметр и рекомендуемое значение Интерфейс См. документ ФСТЭК См. раздел Значение по умолчанию
1 kernel.dmesg_restrict=1 /etc/sysctl.conf 2.4.1 См. 0
2 kernel.kptr_restrict=2 /etc/sysctl.conf 2.4.2 См. 0
3 debugfs=no-mount /etc/default/grub 2.5.3 См. Неактивно
4 fs.protected_symlinks=1 /etc/sysctl.conf 2.6.2 -- 1
5 fs.protected_hardlinks=1 /etc/sysctl.conf 2.6.3 -- 1
6 fs.protected_fifos=2 /etc/sysctl.conf 2.6.4 -- 1
7 fs.protected_regular=1 /etc/sysctl.conf 2.6.5 -- 1
8 fs.suid_dumpable=0 /etc/sysctl.conf 2.6.3 -- 0
9 kernel.yama.ptrace_scope=3 /etc/sysctl.conf 2.6.1 См. 1

Ограничение отладки и снижение системной избыточности

В чем опасность?

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

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

Что можно сделать для повышения безопасности?

Можно следовать рекомендациям, изложенным в этом руководстве и описывающим различные способы ограничений для получения отладочной информации. Здесь также приведена справочная информация о поддержке операционной системой различных файловых систем, сетевых протоколов, технологий и устройств и даны рекомендации по снижению избыточности. То есть рекомендуется проанализировать, а нужно ли вам использовать ту или иную ФС, технологию или устройство. Если поддержка чего-либо вам не требуется, то здесь описаны способы отключения избыточной функциональности.

Отключение сброса страниц памяти с помощью SysRq

Для отладки любая ОС ROSA (и Linux вообще) поддерживает обработку т.н. «магических клавиш» SysRq — это сокращение от System Request (системный запрос).

Ниже описаны наиболее важные и популярные сочетания SysRq:

  • Alt+SysRq+B — Немедленно перезагрузить ОС (без синхронизации дисковых кешей и размонтирования ФС);
  • Alt+SysRq+C — Принудительный крах ОС со сбросом на диск состояния памяти;
  • Alt+SysRq+E — Послать сигнал SIGTERM всем процессам, кроме systemd;
  • Alt+SysRq+F — Запустить механизм oom_kill, который уничтожит процесс занимающий очень много памяти;
  • Alt+SysRq+I — Послать сигнал SIGKILL всем процессам, кроме systemd;
  • Alt+SysRq+K — Уничтожить все процессы в текущем терминале;
  • Alt+SysRq+L -- Послать сигнал SIGKILL всем процессам, включая systemd;
  • Alt+SysRq+N — Сбросить до нуля приоритет всех процессов с повышенным значением приоритета;
  • Alt+SysRq+O — Выключить компьютер (аналогично выключению электропитания);
  • Alt+SysRq+P — Выдать сброс текущего состояния регистров процессора в текущий терминал.
  • Alt+SysRq+R — Вернуть управление клавиатурой в случае сбоя X-сервера;
  • Alt+SysRq+S — Синхронизировать весь кеш оперативной памяти на диск;
  • Alt+SysRq+T — Вывести всю информацию о запущенных процессах на текущую консоль;
  • Alt+SysRq+U — Перемонтировать все файловые системы в режиме «только для чтения».