Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #95, НОЯБРЬ 2006 г.

Личная неприкосновенность для тукса

Денис «dhsilabs» Колисниченко

Хакер, номер #095, стр. 095-114-4


-L, --list - вывести все записи;

Выведи все записи и обрати внимание на правила для каталога /etc:

# lidsconf -L

Any file READONLY: 0 /etc

Any file DENY: 0 /etc/lids

Any file DENY: 0 /etc/shadow

…

/bin/login READONLY: 0 /etc/shadow

Сначала /etc объявляется как READONLY (только чтение), затем объекты /etc/lids и /etc/shadow делаются невидимыми (DENY). Поскольку субъект не указан (Any file - любой файл), то ограничение применяется к любому процессу. Из последней строки видно, что субъекту /bin/login предоставляется доступ только для чтения к файлу /etc/shadow.

Для добавления новых записей используется опция -A программы lidsconf:

# lidsconf -A [тип ACL] [-s субъект] -o объект [-t с-по] \

[-i уровень] -j действие

К примеру:

# lidsconf -A -o /etc/hosts.conf -j READ

Опция [-t с-по] позволяет установить время действия правила. Время указывается в формате ЧЧММ-ЧЧММ.

Для удаления записи используется синтаксис:

# lidsconf -D [тип ACL] [-s субъект] [-o объект]

Здесь можно указать субъект, объект, либо тип ACL - будут удалены все совпадающие правила.

Особые возможности LIDS

Помимо всего прочего, LIDS предоставляет две интересные возможности:

* CAP_HIDDEN: процессы с установленной возможностью CAP_HIDDEN не отображаются в /proc, что позволяет скрыть их от таких программ, как ps, top и lsof;

* CAP_INIT_KILL: если эта возможность для демона выключена, то он может игнорировать сигнал SIGKILL.

CAP_HIDDEN не гарантирует, что процесс будет полностью невидим. Например, сетевой демон можно обнаружить с помощью netstat или с помощью сканера портов, а также по наличию файла /var/run/название.pid.

LIDS немного модифицирует возможность CAP_BIND_NET_SERVICE. Обычно эта возможность включается для процесса, которому нужно «привязаться» к привилегированному порту (с номером 0-1024). Но LIDS расширяет синтаксис этой возможности, позволяя указывать порт или диапазон портов, к которым разрешена «привязка» процесса.

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

Ограниченный набор возможностей - это список возможностей, которые доступны процессу в системе (но необязательно установлены). Если какая-то возможность не указана в этом списке, ее нельзя назначить процессу. Соответственно, для каждого процесса можно определить свои списки возможностей. Конфигурация LIDS по умолчанию (/etc/lids.cap) разрешает все возможности, кроме следующих:

* CAP_SETPCAP: возможность устанавливать возможности другого процесса (масло масляное, но это так);

* CAP_SYS_MODULE: возможность загружать и выгружать модули ядра;

* CAP_SYS_RAWIO: возможность прямого ввода/вывода, то есть доступа к файлам /dev/port, /dev/mem, /dev/kmem, а также прямого доступа к дискам;

* CAP_KILL_PROTECTED: возможность «убивать» защищенные процессы.

Например, система X.Org требует возможность CAP_SYS_RAWIO, поэтому если ты используешь графический сервер, установи ее для исполняемого файла X.

Установка и модификация возможностей

Установка возможностей производится с помощью все той же утилиты lidsconf. Добавить новую возможность можно точно так же, как новое правило для файла. Синтаксис аналогичен, единственное отличие - используется действие GRANT. Добавим возможность запуска X.Org:

Назад на стр. 095-114-3  Содержание  Вперед на стр. 095-114-5