LIDS система обнаружения и защиты от вторжения

         

Способности


Способности (capabilities) - это привилегии программ совершать какие-либо действия. LIDS позволяет устанавливать и отменять большое количество способностей. LIDS поддерживает способность перезагружать компьютер (CAP_SYS_BOOT), изменять владельца файла (CAP_CHOWN), загружать/выгружать модули ядра (CAP_SYS_MODULE) и многие другие.

Текущие установки способностей хранятся в файле /etc/LIDS/LIDS.cap в формате: [+|-] Номер:Способность. + включает способность, - - отключает, например +22:CAP_SYS_BOOT разрешает перезагрузку, -22:CAP_SYS_BOOT - запрещает. Изменять его можно (да и нужно) с помощью любого текстового редактора. Выключение способности влияет на все программы, кроме тех, которым напрямую указана данная способность с помощью правил доступа LIDSadm. Включение способности влияет на все программы без исключения. Нельзя включить способность у всех программ, а у нескольких выключить. Первоначальное содержимое файла такое:

+0:CAP_CHOWN +1:CAP_DAC_OVERRIDE +2:CAP_DAC_READ_SEARCH +3:CAP_FOWNER +4:CAP_FSETID +5:CAP_KILL +6:CAP_SETGID +7:CAP_SETUID +8:CAP_SETPCAP -9:CAP_LINUX_IMMUTABLE -10:CAP_NET_BIND_SERVICE +11:CAP_NET_BROADCAST -12:CAP_NET_ADMIN -13:CAP_NET_RAW +14:CAP_IPC_LOCK +15:CAP_IPC_OWNER -16:CAP_SYS_MODULE -17:CAP_SYS_RAWIO -18:CAP_SYS_CHROOT +19:CAP_SYS_PTRACE +20:CAP_SYS_PACCT -21:CAP_SYS_ADMIN +22:CAP_SYS_BOOT +23:CAP_SYS_NICE +24:CAP_SYS_RESOURCE +25:CAP_SYS_TIME +26:CAP_SYS_TTY_CONFIG +27:CAP_HIDDEN +28:CAP_INIT_KILL

Остановлюсь поподробней на каждой из них:

CAP_CHOWN

    С помощью этого параметра устанавливается способность программ изменять владельца и группу владельца файла.

CAP_DAC_OVERRIDE

    Включает/отключает способность программ, запускаемых под root'ом, не принимать во внимание режимы доступа к файлам. Например, при включенной данной способности root может открыть и изменить файл, который принадлежит dh и имеет режим доступа 0600, при отключенной данной опции, root не в состоянии будет даже открыть данный файл. Короче говоря, root при отключении данной способности приравнивается к обыкновенному пользователю при доступе к файлам.:)


CAP_DAC_READ_SEARCH

    Включает/ отключает способность программ, запускаемых под root'ом, не принимать во внимание режимы доступа к каталогам (чтение и поиск).


CAP_FOWNER

    Запрещает/разрешает операции с файлами, когда владелец файла должен совпадать с пользователем, совершающим операцию. Например, изменение режима доступа к файлу (chmod). Режим доступа может изменять либо владелец файла, либо root. При отключении этой способности, root уже будет не в состоянии изменить режим доступа.:) То же относится к изменению атрибутов файлов (chattr).




CAP_FSETID

    Запрещает/разрешает установку SUID'ного или SGID'ного бита на чужих файлах (не принадлежащих root'у).


CAP_KILL

Включает/отключает способность root'овых процессов убивать чужие процессы.

CAP_SETGID

Управляет способностью root'овых программ сменять группу, под которой работает программа. Так работает, например, httpd, sendmail, postfix, ftpd, safe_finger и т.д.

CAP_SETUID

    Управляет способностью root'овых программ сменять пользователя, под которым работает программа.


CAP_SETPCAP

    Включает/отключает способность программ менять способности.


CAP_LINUX_IMMUTABLE

    Управляет способностью снимать атрибуты S_IMMUTABLE (chattr -i) и S_APPEND (chattr -a) с файлов. Рекомендуется отключить данную способность.


CAP_NET_BIND_SERVICE

    Включает/отключает способность программ привязываться к порту с номером <1024.


CAP_NET_BROADCAST

    Управляет способностью программ рассылать широковещательные пакеты.


CAP_NET_ADMIN

    Этот параметр управляет большим количеством различных способностей: конфигурирование сетевых интерфейсов, изменение правил firewall'а, изменение таблиц routing'а и многих других, связанных с сетевыми настройками Linux. Рекомендуется отключить данную способность.


CAP_NET_RAW

    Управляет способностью программ использовать сокет-соединения.


CAP_IPC_LOCK

    Управляет способностью root'овых процессов блокировать сегменты разделяемой памяти.


CAP_IPC_OWNER

    Управляет доступом root'овых программ к ресурсам межпроцессорного взаимодействия чужих процессов.




CAP_SYS_MODULE

    Управляет способностью загружать/ выгружать модули ядра. Рекомендуется отключить данную способность.


CAP_SYS_RAWIO

    Управляет доступом на чтение-запись к таким устройствам, как /dev/mem,/dev/kmem,/dev/port, /dev/hd??, /dev/sd??. Рекомендуется отключить данную способность.


CAP_SYS_CHROOT

    Управляет способностью устанавливать корневой каталог для текущего shell'а. Рекомендуется отключить данную способность.


CAP_SYS_PTRACE

    Данный параметр включает/отключает способность программ использовать вызов функции ptrace(), которая позволяет управлять выполнением процессов-потомков процессу-родителю. Для более подробной информации смотри man ptrace.


CAP_SYS_PACCT

    Управляет способностью конфигурировать учет процессов. Для более подробной информации смотри man ac, man lastcomm, man accton, man sa. Рекомендуется отключить данную способность.


CAP_SYS_ADMIN

    Управляет множеством способностей: управление /dev/random, создание новых устройств, конфигурирование дисковых квот, настройка работы klogd, установка имени домена, установка имени хоста, сброс кэша, монтирование/размонтирование дисков, включение/отключение swap-партиции, установка параметров последовательных портов и др. Рекомендуется отключить данную способность.


CAP_SYS_BOOT

    Данный параметр управляет способностью перегружать систему.


CAP_SYS_NICE

    Управляет способностью изменять приоритет чужих процессов. Рекомендуется выключить данную способность.


CAP_SYS_RESOURCE

    Способность изменять лимиты использования ресурсов системы: дисковые квоты, зарезервированное пространство на ext2-партициях, максимальное количество консолей и т.д. Рекомендуется выключить данную способность.


CAP_SYS_TIME

    Управляет способностью изменять системное время. Рекомендуется выключить данную способность.


CAP_SYS_TTY_CONFIG

    Способность изменять настройки tty-устройств.


CAP_HIDDEN

    Способность программ делаться невидимыми в списке процессов. Не влияет на все программы. Рекомендуется включить данную опцию.


CAP_INIT_KILL

    Способность убивать процессы-потомки процесса init.


    К таким процессам относятся практически все демоны.


Первоначально можно установить следующие настройки:

+0:CAP_CHOWN +1:CAP_DAC_OVERRIDE +2:CAP_DAC_READ_SEARCH +3:CAP_FOWNER +4:CAP_FSETID +5:CAP_KILL +6:CAP_SETGID +7:CAP_SETUID +8:CAP_SETPCAP +9:CAP_LINUX_IMMUTABLE +10:CAP_NET_BIND_SERVICE +11:CAP_NET_BROADCAST +12:CAP_NET_ADMIN +13:CAP_NET_RAW +14:CAP_IPC_LOCK +15:CAP_IPC_OWNER -16:CAP_SYS_MODULE -17:CAP_SYS_RAWIO +18:CAP_SYS_CHROOT +19:CAP_SYS_PTRACE +20:CAP_SYS_PACCT -21:CAP_SYS_ADMIN +22:CAP_SYS_BOOT +23:CAP_SYS_NICE +24:CAP_SYS_RESOURCE +25:CAP_SYS_TIME +26:CAP_SYS_TTY_CONFIG +27:CAP_HIDDEN +28:CAP_INIT_KILL

Это защитит систему от простейших атак, а остальное меняй на свое усмотрение.

Для первоначальной (в процессе загрузки) инициализации параметров способностей используется команда LIDSadm -I. Обычно ее ставят в какой-нибудь rc-скрипт, после запуска всех демонов. Можно поставить ее в конце /etc/rc.d/rc.local. Таким образом, отключение способностей сработает только после запуска всех необходимых для работы сервера программ. Например, если ты отключил CAP_NET_ADMIN - это никак не повлияет на инициализацию твоих сетевых интерфейсов lo, ethX, pppX и т.д. при начальной загрузке.


Содержание раздела