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

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

Управление доступом

Подписаться на эту рубрику по RSS

Учитывая популярность вышеописанных систем, можно сказать, какая наиболее подходит для защиты конкретной системы. DTE является наименее распространенной, поэтому можно скон­центрировать все внимание на хорошо опробованных технологиях - SE­Linux, Grsecurity, LIDS и RSBAC.

     SELinux - самая сложная в настройке системы. Чтобы понять, как работа­ет SELinux, надо заново воспринять фундаментальные Unix-концепции пользователей, групп и прав доступа. Масла в огонь добавляет язык опи­сания правил - он очень сложен, хотя таким он кажется на первый взгляд, пока не разберешся с ним. Однако, несмотря на сложность настройки, SELinux - наверное, самая мощная и защищенная реализация МАС-модели.

     LIDS, RSBAC и Grsecurity основаны на ACL, благодаря чему данные системы заметно проще изучать, чем SELinux. Кроме данного, они содержат много дополнительных функций, к примеру определение сканирования портов (LIDS), защиту памяти РаХ (Grsecurity и RSBAC), и «укрепление» chroot (Grsecurity).

Далее...

Rule-Set Based Access Control (RSBAC).

     Rule-Set Based Access Control (RSBAC) - контроль доступа на основании набора правил - такое название еще у одной системы безопасности, доступной по адресу: http: //www.rsbac.org - которая появилась на свет в 1996 г. как несложной университетский проект. Как и другие проекты безо­пасности, со временем RSBAC набирала силу и становилась более гибкой и мощной.

     RSBAC использует общий интерфейс управления доступом (Generalized Framework for Access Control, GFAC), который позволяет употреблять много альтернативных методов управления доступом. Поддерживаются следующие методы:

Далее...

Security Enhanced Linux (SELinux) - это проект Агентства правительственной безопасности США (U.S. NSA). Репутация такого ведомс­тва говорит о серьезности проекта - там к безопасности относятся очень серьезно. Да и сам проект получился очень удачным - SELinux входит в со­став многих современных дистрибутивов и выясняется по умолчанию (правда, также по умолчанию не активизируется).

Далее...

Рассмотрим пример ACL, который позволяет работать DNS-серверу на машине. ACL будет состоять из двух частей. Первая часть будет содержать общий набор правил, предоставляющих базовый доступ. Эта часть универсальна - она подойдет не только для DNS-сервера, но и для разных остальных приложений, запущенных в Linux-системе.

     Во второй части будут описаны специфические для DNS-сервера правила, ограничивающие доступ к файлам, и определяющие возможности DNS-сервера. Как было написано ранее, набор правил будет представлен в виде shell-сценария, который содержит серию команд lidsconf.

     Сначала надо сделать системные исполнимые файлы и библиотеки доступными только для чтения. Обойти данное ограничение нужно только в LFS-оболочке. Итак, надо защитить каталоги /bin, /sbin, /usr и /opt:

Далее...

Теперь, когда известно, как работает LIDS, и знакомы ее основные опции, нужно приступить к практической реализации LIDS в системе.

     Нужно помнить, что написание ACL для всей системы - очень трудоемкая задача, поэтому, как и в случае с iptables, рекомендуется создать shell-сценарий, содержащий директивы lidsconf. Первой директивой будет lidsconf -Z - эта директива удаляет все ранее существующие ACL. Этот сценарий надо поместить в /etc/lids, что сделает его невидимым за пределами LFS-сессии.

Далее...

Возможности.

     В ACL из предыдущей статье описано действие GRANT, предостав­ляющее возможность CAP SETUID. А возможности до этого и не рассматривались, поэтому самое время их рассмотреть.

     LIDS предоставляет расширенное применение возможностей (однако, как было отмечено до этого, модуль возможностей (capability security module) нужно отключить в ядре). Кроме стандартных возможностей Linux, LIDS дает две собственные возможности:

  • CAP_HIDDEN — процессы с установленной возможностью CAPHIDDEN не будут отображаться в /рrос, что позволяет скрыть процесс от программы ps, lsof и top.
  • CAP_INIT_KILL — если эта возможность выключена для демона, то он не будет получать KILL-сигналы.

Далее...

В LIDS есть два типа ACL:

  • ACL файлов — контролирует доступ к файлам и каталогам.
  • ACL возможностей — регулирует возможности исполнимых файлов.

     ACL файлов.

     LIDS определяет четыре режима для объектов:

  • DENY - доступ к файлу запрещен. При обращении приложения (к примеру, Is или cat) к этому файлу, оно получит сообщение об ошибке "No such file or directory" (ENOET) - «Нет такого файла или каталога». Внешне будет выглядеть так, как будто файла не сущест­вует.
  • READ - объект может быть открыт исключительно в режиме «толь­ко чтение», запись запрещена.
  • WRITE — чтение и запись не ограничивается. LIDS не защищает этот файл.

Далее...