Контроль доступа procfs ubuntu 24

Вопрос или проблема

После обновления до Ubuntu 24 возникла проблема с доступом к файлам procfs.
Программа требует доступ к файлу карт процессов systemd.

mv 2572 0.0 0.2 20472 11520 ? Ss 00:22 0:00 /usr/lib/systemd/systemd --user
mv@mvcp:/proc/2572$ cat maps 
cat: maps: Доступ запрещен

mv@mvcp:/proc/2572$ ls -l | grep maps
-r--r--r--  1 mv mv  0 Nov 16 00:23 maps

strace cat maps
openat(AT_FDCWD, "maps", O_RDONLY)  = -1 EACCES (Доступ запрещен)

Попробуйте

sudo sysctl -w kernel.yama.ptrace_scope=0
sudo sysctl -w kernel.dmesg_restrict=0

Можно ли отключить защиту, несмотря на риски?

Ответ или решение

Контроль доступа к procfs в Ubuntu 24: Решение проблемы с правами доступа

После обновления до Ubuntu 24 у вас возникла проблема с доступом к файлам в procfs — файловой системе, которая предоставляется ядром Linux для предоставления информации о процессах и системе. Конкретно, ваша программа требует доступ к файлу maps процесса systemd, что вызывает ошибку "Permission denied" при попытке прочитать этот файл.

Причины проблемы

В современных версиях Ubuntu, включая 24, для улучшения безопасности системы были внедрены строгие правила доступа к информации о процессах. Это связано с изменением в политике безопасности, которое ограничивает доступ к файловой системе procfs, чтобы предотвратить несанкционированный доступ к конфиденциальной информации процессов.

  1. Yama Process Scope: В частности, параметр kernel.yama.ptrace_scope, который регулирует использование системного вызова ptrace, влияет на возможность доступа к информации о процессах других пользователей.
  2. Файловые права: Как видно из вывода команды ls -l, файл maps имеет разрешения -r--r--r--, что означает, что доступ разрешен только для чтения. Однако, безопасность контейнеров systemd, вероятнее всего, ограничивает доступ по умолчанию.

Решение проблемы

Для доступа к файлам в procfs, вам могут помочь следующие шаги:

  1. Проверка и исправление параметров Yama:
    Вы правильно попробовали установить значение kernel.yama.ptrace_scope на 0. Это может разрешить доступ к действиям, связанным с однопользовательскими процессами. Однако, это может создать риски, такие как повышенный доступ к информации между процессами:

    sudo sysctl -w kernel.yama.ptrace_scope=0
  2. Установка ограничений dmesg:
    Изменение параметра kernel.dmesg_restrict также может помочь в некоторых случаях, однако, для доступа к файлам процесса это менее актуально:

    sudo sysctl -w kernel.dmesg_restrict=0
  3. Изменение прав доступа к файлам:
    Если это не удастся, и если у вас есть контроль над процессом, вы могли бы запустить его от имени пользователя с более высокими правами (например, root), чтобы получить возможность читать этот файл:

    sudo cat /proc/<PID>/maps
  4. Безопасность при отключении защиты:
    Вы можете отключить эти уровни защиты, однако следует учитывать, что это подвергает систему рискам:

    • Увеличивается вероятность получения доступа к информации о других процессах.
    • Может привести к потенциальным уязвимостям, если зловредный код получит доступ к системе.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...