Управление доступом.
Рубрика: Безопасность -> Управление доступом
Метки: ACL | DAC | DTE | MAC | RBAC
Хотя многопользовательская природа Linux и оставшихся Unix-систем рассматривается как изрядно сильная, она все еще далека от совершенства. Самая эффективная концепция в мире компьютерной безопасности заключается в предоставлении пользователю минимальных привилегий.
Unix же не соответствует этому правилу, потому что предоставляет максимальный контроль над системой одному пользователю (root) или процессу с полномочиями root. Во многих случаях даже обычным пользователям часто предоставляются чрезмерные полномочия. Например, зачем пользователю, который зарегистрировался в системе только для чтения почты, возможность компиляции исходного кода или запуска фоновых демонов?
В некоторой степени данная проблема решается употреблением групп и SUDO. В этом случае администратор может определить для каждого пользователя действия, которые он может реализовывать с полномочиями root.
Создание файла политик Systrace.
Несмотря на то, что синтаксис файла политики простой, внесение в него любого системного вызова дело довольно непростое. Кроме знания, что делает некоторый системный вызов, нужно описать каждый системный вызов, используемый приложением.
Чтобы не забыть какой-нибудь вызов, нужно провести трассировку системных вызовов с помощью ранее рассмотренной программы systrace. Когда будет создан базовый файл политик, разрешающий все необходимые приложению системные вызовы, нужно приступить к ужесточению правил - к исследованию различных системных вызовов, которые могут быть использованы для атаки.
Создание файла политики - занятие изрядно утомительное. Systrace предоставляет альтернативный способ.
Компоненты файла политики.
Как уже было сказано, ядром Systrace являются файлы политики, в которых описаны разрешенные системные вызовы и их параметры для конкретных приложений. Файлы политик должны быть помещены в каталог /etc/systrace. Если в этом каталоге файлы политик не найдены, Systrace будет искать их в каталоге ~/.systrace.
Имя файла политик зависит от приложения, для которого надо эту политику применить, например, если нам надо применить политику для /bin/login, файл политики будет называться bin_login, то есть все слэши в полном имени файла заменяются знаками подчеркивания, а первый слэш - удаляется.
Исследование системных вызовов.
Словосочетание «системный вызов» часто применяется администраторами без полного понимания его сути. Представим, что системный вызов - это запрос (на получение ресурсов или выполнение действий) пользовательским приложением ядра, например запрос на создание каталога (системный вызов sys_mkdir), или запрос на установку системных часов (sys_stime), или запрос на монтирование файловой системы (sys_mount).
В Linux обусловлено почти 200 системных вызовов, которые используются для разных действий. Полный список системных вызовов доступен на сайте: http://linuxassembly.org/syscall.html.
Обнаружение переполнения буфера.
Рубрика: Безопасность -> Укрепляем Linux
Метки: ASLR | buffer overflow | PaX | Segvguard
Функции ASLR очень полезны, но они не гарантируют 100% защиты - несмотря на то, что применяется рандомизация, теоретически существует вероятность переполнения буфера.
Так как некорректное изменение памяти, сделанное хакером, приводит к краху приложения, сведения о частых перезапусках сервисов (которые после краха автоматически перезапускаются) говорят о том, что хакер пытается переполнить буфер.
Для предотвращения возможности изменения хакером размещения памяти в ASLR-защищенном процессе надо задать ограничение на количество перезапусков демона за определенный период времени.
Для данного может употребляться утилита Segvguard, доступная по адресу: ftp://ftp.pl.openwall.com/misc/segvguard/. Segvguard состоит из двух частей: