Grsecurity: Защита исполняемых файлов и сети.
Метки: Grsecurity | ISN | RPC
Понедельник, 29 июня 2009 г.
Просмотров: 2200
Подписаться на комментарии по RSS
Защита исполняемых файлов (Executable Protection).
Enforce RLIMIT_NPROC on exec (CONFIG_GRKERNSEC_EXECVE) -Проверка лимитов ресурсов во время вызова exec
RLIMITN_PROC (настраивается через /etc/limits) дает возможность ограничить ресурсы пользователя. По умолчанию ресурсы проверяются только во время fork(). Включение этой опции позволяет производить проверку ресурсов во время вызова execve().
Dmesg Restriction (CONFIG GRKERNSEC DMESG) - Ограничение dmesg
Команда dmesg дает возможность пользователю просматривать последние записанные сообщения ядра. Включение этой опции позволяет выполнять программу dmesg только пользователю root.
Randomized PIDs (CONFIG_GRKERNSEC_RANDPID) - Рандомизация PID
PID процессов будет назначаться не последовательно, а произвольно, что не позволит хакеру предсказать PID демонов и остальных процессов.
Trusted Path Execution (CONFIG_GRKERNSEC_TPE)
Эта опция не позволит пользователю случайно запустить исполнимый файл (возможно, троян), записанный другим пользователем. Как обычно, создается специальная группа (ее GID задается опцией GIB for Untrusted User), в нее помещаются пользователи, которым нет доверия.
Этим пользователям не разрешено запускать исполнимые файлы из каталогов, созданных другими пользователями, кроме root. To есть разрешается выполнение программ только из каталогов, владельцем которых является пользователь root.
Защита сети (Network Protection).
Larger Entropy Pools (CONFIGGRKERNSEC RANDNET)
Увеличивает в два раза размер пулов, используемых Grsecurity и многими другими приложениями. Эта опция должна быть включена.
Truly Random TCP ISN Selection (CONFIGGRKERSEC RANDISN)
После включения этой опции стандартный способ генерации ISN, используемый в Linux, будет заменен по-настоящему случайным способом генерации ISN, который применяется в OpenBSD.
Randomized IP IDs (CONFIG_GRKERSEC_RANDID)
Это воплощение в Linux еще одной идеи из мира OpenBSD: рандомизации подвергнутся ID пакетов, передаваемых системой. По умолчанию Linux просто увеличивает ID каждого следующего пакета.
Randomized TCP Source Port (CONFIG_GRKERSEC_RANDSRC)
Генерирование номеров портов исходящих TCP-соединений будет происходить случайным образом.
Randomized RPC XIDs (CONFIG GRKERSEC_RANDRPC)
Рандомизация идентификатора транзакций (XID), который применяется протоколом RPC. В Linux значение XID просто увеличивается, что делает предсказание следующего XID - простой задачей.
Sockets Restrictions (CONFIG_GRKERSEC_SOCKET)
С помощью трех подопций нужно задать разные ограничения сокетов:
- Deny Any Sockets to Group: пользователи указанной группы (вам надо указать ее GID) не смогут связаться с другими узлами.
- Deny Client Sockets to Group: пользователи этой группы не смогут выступать в роли клиентов, следовательно, они не смогут установить соединение с другими узлами.
- Deny Server Sockets to Group: наиболее полезно к данной группе отнести пользователей, от имени которых запускаются разные сетевые сервисы, например FTP-сервер или IRC-бот.
Последние две опции особенно явно отражаются на FTP: при запрещении клиентских сокетов для передачи может применяться только пассивный режим, а при запрещении серверных сокетов должен применяться только активный режим.
Sysctl Support (CONFIGGRKERNSEC SYS)
Если эта опция включена, большая часть ограничений Grsecurity может быть включено/выключено с помощью файловой системы /proс. Например, для запрета пользователям исполнять команду dmesg может быть использована команда:
$ dmesg
klogctl: operation not permitted
И никакой более перекомпиляции ядра! Но часто ли вы будете изменять опции Grsecurity? He думаю, может, разве что в первые два-три дня, пока будете экспериментировать с новой системой безопасности. А потом изменение параметров если и понадобится, то не менее чем через полгода. А за это время эта опция может стать вашей ахиллесовой пятой...
По умолчанию эта опция выключена, и рекомендуется ее не включать.
Опции протоколирования (Logging options).
В конкретном подменю есть две опции, позволяющие определить, как будут записываться сообщения Grsecurity:
- Seconds in Between Log Messages (Minimum) (CONFIGGRK-ERNSEC_FLOODTIME) — можно задать количество секунд простоя между записями новых сообщений.
- Number of Messages in a Burst (Maximum) (CONFIG GRKERN-SEC_FOODBURST) - максимальное число сообщений в пакете (группе сообщений). Значение по умолчанию для этих двух значений - 1 и 30 (соответственно), не рекомендуется изменять данные значения.