12.07.2015 Views

img - Xakep Online

img - Xakep Online

img - Xakep Online

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

UNIXOIDПроекты LIDS, GRSecurity и RSBACКроме проектов, описанных в статье, в настоящее время развиваютсяи другие, позволяющие повысить защиту Linux-систем— LIDS (Linux Intrusion Detection System, lids.org), GRSecurity(grsecurity.org) и RSBAC (Rule Set Based Access Control, www.rsbac.org). Кратко о них.Проект LIDS реализует MAC, админ может четко указать разрешениядля файлов и каталогов. Помимо этого механизмы TPE (TrustedPath Execution) и TDE (Trusted Domain Enforcement) позволяютубедиться, что программа работает так, как предназначено. Сайтпроекта некоторое время был заброшен, хотя инструменты развиваются.Управление производится при помощи утилит и чем-то напоминаетнастройку правил файера.# lidsconf -A -o /sbin -j READONLYGRSecurity — разработка, охватывающая несколько технологийукрепления безопасности — MAC/ACL, улучшенный chroot,рандомизация TCP ISN и PID, ролевая система контроля доступаRBAC, функции аудита, защита адресного пространства и стекаPaX (доступен и отдельно). Большинство параметров указываетсяна этапе сборки ядра, затем при помощи утилиты gradm настраиваютсяACL.Проект RSBAC, реализующий мандатный и ролевой механизмыдоступа, уже в 2000 году вовсю использовался в защищенных дистрибутивах.По сути, это среда, позволяющая создать различныемодели доступа. Идея основана на публикации Маршала Абрамсаи Ла Падула «Обобщенная среда для управления доступом» (GFAC,Generalized Framework for Access Control). Кроме root в ОС появляетсяучетка администратора безопасности, который и управляетдоступом к информации.Реализовано много интересных функций: отключение LinuxDAC, сокрытие процессов, JAIL, поддержка PaX, антивирусныйинтерфейс Dazuko, контроль ресурсов Linux и многое другое.Например, можно организовать доступ к файлу в определенныечасы.Смотрим активные профили и параметры AppArmor# ps aux | grep syslogdroot 2729 0.0 0.0 5908 624 ? Ss 07:30 0:00 syslogd -m 0# cat /proc/2729/attr/currentsystem_u:system_r:syslogd_t:s0Предусмотрена работа SELinux в трех режимах — disable (отключен),enforcing (политики выполняются, все, что не соответствует — блокируется),permissive (политики анализируются, все нарушения заносятсяв журнал «avc: denied», но блокировки не производятся). Узнать текущийрежим просто, как, впрочем, и некоторые другие настройки, достаточнопрочитать данные из псевдофайловой системы /selinux:$ cat /selinux/enforceЕсли получим 1, значит, SELinux активирован. Чтобы изменить режимработы на лету, просто записываем в этот файл 0 или 1:# echo 0 > /selinux/enforcesu не меняет идентификатора SELinux. То есть root здесь не всевластен.Проверить это легко:$ id –Zuser_u:user_t:unconfined_tПолучаем привилегии суперпользователя и проверяем снова:Также можно воспользоваться утилитой «setenforce [ Enforcing |Permissive | 1 | 0 ]».Собственно настройки производятся в конфигурационных файлах, размещенныхв каталоге /etc. В дистрибутивах, базирующихся на RedHat,доступен графический SELinux Administration Tool (system-configselinux,пакет policycoreutils-gui). Так, режим работы устанавливается вфайле /etc/sysconfig/selinux (на самом деле это ссылка на /etc/selinux/config). В частности, режим работы определяет параметр SELINUX:$ su# id –Zuser_u:user_t:unconfined_tЕсли зайти сразу под рутом, то роль другая:# id -Zroot:system_r:unconfined_t:SystemLow-SystemHighИзменить роль можно при помощи команды newrole. При использованииSELinux штатные команды выводят и контекст. Чтобы просмотретьконтекст файлов и процессов, набираем:SELINUX=enforcing|permissive|disabledПо умолчанию в большинстве дистрибутивов SELinux защищает не вседемоны, а только строго определенные: dhcpd, httpd, named, nscd, ntpd,portmap, snmpd, squid и syslogd. Для остальных политика не определена— unconfined_t. Чтобы защитить всю систему, необходимо изменитьзначение SELINUXTYPE на strict:SELINUXTYPE=targeted|strictВ каталоге /etc/selinux/targeted/contexts находим описание контекстов.Например, для root контекст описывается так:# ls -l –context /# ps -ax -Z# cat /etc/selinux/targeted/contexts/users/rootsystem_r:unconfined_t:s0 system_r:unconfined_t:s0Кроме того, контекст можно считать прямо из /proc:090system_r:initrc_t:s0 system_r:unconfined_t:s0XÀÊÅÐ 08 /139/ 10

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!