Личный блог Suvan`a.

Работая и играя с Linux... И что из этого иногда получается.

Grsecurity: Защита файловой системы.

Рубрика: Безопасность -> Управление доступом
Метки: | | |
Вторник, 23 июня 2009 г.
Просмотров: 6024
Подписаться на комментарии по RSS

Защита файловой системы (Filesystem Protection).

     Как говорилось ранее, псевдофайловая система /prос предоставляет информацию о процессах, которую может употреблять хакер в своих целях. Эта опция дает возможность ограничить доступ к /proc двумя способами:

  • Restrict /proc to User Only (CONFIG_GRKERNSEC_USER) - не root- пользователи не смогут просматривать /proc-информацию о процессах других пользователей, а также информацию о сети и информацию, относящуюся к ядру.
  • Allow Special Group (CONFIGGRKERNSEC USERGROUP)

    — создается специальная группа, которой можно просматривать /proc-информацию. GID этой группы должен быть указан в опции GID for Special Group (CONFIG_GRKERNSEC_PROC_GID).


     Additional Restrictions (CONFIG_GRKERNSEC_PROC ADD) - Дополнительные ограничения

     Эта опция добавляет дополнительные ограничения, которые запрещают поль­зователям читать информацию о процессоре и устройствах:

$ cat /proc/cpuinfo

cat: /proc/cpuinfo: Permission denied

$ cat /proc/devices

cat: /proc/devices: Permission denied

     Linking Restrictions (CONFIG_GRKERNSEC_LINK) - Ограничения ссылок

     При включении этой опции вступят в силу следующие ограничения:

  • Пользователь не сможет создавать жесткие ссылки на не принадлежащие ему файлы.
  • Пользователь не сможет использовать символическую ссылку, которая принадлежит другому пользователю.

     FIFO Restrictions (CONFIG_GRKERNSEC_FIFO) - Ограничения FIFO

     FIFO (First In, First Out) - специальный тип потока, который используется для обмена данными между процессами. Эти потоки реализованы и обслуживаются ядром и представляются в файловой системе в виде специ­ального файла - для адресации потока по имени (FIFO-файл никогда не содержит данных, так как информация передается непосредственно от одного процесса к другому).

     Включение данной опции запретит пользователям запись в FIFO, находящий­ся в не принадлежащих им каталогах.

     chroot Restrictions (CONFIGGRKERNSEC CHROOT) - Ограничение chroot

     Как было показано здесь, chroot-окружение применяется для организации «песочницы» - отдельной области файловой системы, к которой и толь­ко к которой процесс, запущенный в «песочнице», может получить доступ. По сравнению с OpenBSD/FreeBSD, «песочница» Linux изрядно слаба (процесс, получивший права root или запущенный с этими правами, может легко выйти за пределы «песочницы»), поэтому эта опция позволяет ее несколько укрепить.

     Следующие опции позволяют создать дополнительные ограничения для chroot-окружения. Рекомендуется включить все данные опции.

  • Deny Mounts (CONFIG_GKERNSEC_CHROOT_MOUNT) - запрещает процессу, запущенному в chroot-окружении, монтировать и размонтировать файловые системы.
  • Deny Double-chroots (CONFIG_GRKERNSEC_CHROOT_DOUBLE) - создание еще одного chroot-окружения в пределах уже существующего chroot-окружения является прекрасным способом «побега из песочницы». Данная опция запрещает создание двойного chroot-окружения.
  • Deny pivot_root in chroot (CONFIG_GRKERNSEC_CHROOT_PIVOT) — в ядре версии 2.3.41 появилась новая функция - pivot_root, которая подобна chroot - она изменяет корневой каталог. Вызов pivot_root внутри chroot-окружения также позволяет выйти за пределы «песочницы». Данная опция позволяет отключить функцию pivotroot.
  • Enforce chdir("/") on All chroots (CONFIG_GRKERNSEC_CHROOT_CHDIR) - функция chroot не изменяет автоматически текущий рабочий каталог на только что созданный корень. Поэтому "." может использоваться для выхода за пределы chroot-окружения. Данная опция выполняет chdir("\") сразу после вызова chroot().
  • Deny (f)chmod +s (CONFIG_GRKERNSEC_CHROOT_CHMOD) - запрещает процессу внутри chroot-окружения устанавливать биты SUID и SGID с помощью системных вызовов chmod и fchmod.
  • Deny mknod (CONFIG GRKERNSEC CHROOT MKNOD) - запрещает хакеру создавать иноды устройств с помощью системного вызова mknod (создав инод устройства, злоумышленник сможет получить прямой доступ к устройству, например к жес­ткому диску).
  • Deny shmat Out of chroot (CONFIG GRKERNSEC CHROOT SHMAT) — системный вызов shmat (Shared Memory Attach) позволяет процессу присоединяться к разделяемой памяти, что является потенциальным источником атаки. Эта опция запрещает использовать shmat() для присоединения к памяти за пределами chroot-окружения.
  • Deny Access to Abstract AFUNIX sockets Out of chroot (CON-FIG_ GRKERNSECCHROOT UNIX) - сокеты семейства AF_UNIX управляют IPC (Inter Process Communications). Эта опция запрещает использовать AF UNIX для межпроцессного взаимодействия за пределами chroot-окружения.
  • Protect Outside Processes (CONFIG GRKERNSECCHROOT

    FINDTASK) — запрещает процессам из chroot-окружения отправлять сигналы процессам, находящимся за пределами «песочницы» (также запрещается просматривать эти процессы).

  • Restrict Priority Changes (CONFIG_ GRKERNSEC_CHROOT_NICE) - запрещает изменять приоритет процесса (команда/системный вызов nice), находящегося в «песочнице».
  • Deny sysctl Writes (CONFIG_ GRKERNSEC CHROOT SYSCTL) — каталог /proc/sys используется для чтения и изменения параметров ядра. Данная опция запрещает процессам из chroot-окружения производить запись в каталог /proc/sys, а также использовать утилиту sysctl внутри окружения.
  • Capability Restrictions (CONFIG_ GRKERNSEC_CHROOT_CAPS) — понижает возможности (см. выше) root-процессов, запущенных внутри chroot-окружения, чтобы предотвратить перезагрузку компьютера, загрузку модуля и еще ряд потенциально опасных возможностей.

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена.

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



(обязательно)