Это старая редакция страницы Черновики / Статьи / Безопасность / Компьютеркакнеприступнаякрепость за 11/09/2007 12:23.
Концепция эшелонированной обороны
Успешная организация эшелонированной (=многоуровневой) обороны подразумевает проведение анализа угроз, в ходе которого определяются:
- ресурсы и значение этих ресурсов
- опасности, которым подвергаются ресурсы, и вероятность каждой угрозы
- векторы угрозы, которые могут быть использованы для атаки
Далее для каждого вектора угрозы предусматривается несколько уровней (способов) защиты.
Ресурсы и их значение
- Структура файловой системы:
- /bin, /usr/bin (?сполняемые файлы)
- /sbin, /usr/sbin (?сполняемые файлы, запускаемые только суперпользователем)
- /etc (Конфигурационные данные)
- /tmp (Каталог для хранения временных файлов)
- /var (?зменяемые данные, используемые сервисами и демонами)
- /home (Пользовательские данные, личные файлы пользователей)
- /lib, /usr/lib (Библиотеки, используемые программами)
- /proc, /sys (Специальные ФС)
- /boot, /lib/modules, /dev/kmem (Данные ядра и модули)
- /dev (Файлы устройств)
- Другое:
Опасности, которым могут подвергнуться ресурсы
- Данные, критичные для правильной работы системы:
- ?сполняемые файлы: могут быть заменены, инфицированы или уничтожены.
- Динамические библиотеки: также содержат выполняемый код и могут быть инфицированы, уничтожены и т.д. Многие программы загружают одни и те же библиотеки, поэтому получение контроля над одной библиотекой может дать контроль над несколькими программами.
- Конфигурационные файлы: Контролируют поведение программ. Также могут содержать чувствительную информацию. Доступ для чтения должны иметь только ассоциированные программы.
- Объекты ядра: Код ядра и загружаемые модули находятся на диске в виде файлов. ?х модификация может предоставить злоумышленнику полный и абсолютный контроль над системой.
- Файлы устройств: прямой доступ к носителям информации обходит контроль доступа к отдельным объектам ФС, чего допускать не следует.
- Аутентифицикационная информация: Данные, используемые для аутентификации, есть самый критичный элемент всей системы контроля доступа. Должны быть защищены от всех попыток доступа, не являющихся абсолютно необходимыми.
- Менее критичные данные:
- Сетевые ресурсы: Удаленные сервера и локальные сокеты.
- Файлы логов:
- Другие объекты:
Векторы угрозы
- Проникновение извне:
- Эксплуатация удаленной уязвимости в демоне или ядре
- Эксплуатация локальной уязвимости в демоне или ядре
- Взлом системы методом грубой силы (bruteforce)
- ?нфицирование вирусами, червями, троянскими конями
- Внутренние угрозы:
- Получение пользователем данных, для него не предназначенных, в случае неверной установки прав доступа
- Действия инсайдера
- Злоупотребление полномочиями администратора системы
- Ошибка администратора системы
Эшелоны защиты
Соответственно, средства защиты против удаленного атакующего можно разместить на трех этапах:
- Злоумышленник еще не проник в систему:
- Выключение ненужных сервисов.
- Защита сервисов и сетевых клиентов. Для программ, предоставляющих какой-либо сервис, предлагается применить инкапсуляцию. ?нкапсуляция означает предоставление минимального набора привилегий, а также защиту от всех остальных сервисов и клиентских программ. Полезно также разделить сервисы на две категории: локальные и сетевые (те, которые могут быть использованы для удаленного доступа). Сетевые сервисы принято считать более опасными.
- Профилактическая защита против вирусов и троянских коней.
- Злоумышленник проник в систему:
- Защита информации от нежелательных действий пользователей.
- Защита информации от выполнения нежелательного кода.
- Третий и последний эшелон. Обнаружение вторжения:
- Контроль целостности информации
Третий пункт выполняется с помощью средств типа Tripwire, AIDE и др.
Первые два пункта выполняются стандартными средствами Linux или же посредством систем принудительного контроля доступа.
Средства принудительного контроля доступа
Для ОС GNU/Linux в наличии имеются следующие системы:
- RSBAC (Rule Set Based Access Control)
- SELinux (Security-Enhanced Linux) от NSA
- GrSecurity
- AppArmor
RSBAC или SELinux
- RSBAC уникален. Уникален тем, что это фреймворк, который предоставляет возможность подключения модулей, реализующих любые модели контроля доступа, в любой комбинации. Все модули работают независимо друг от друга, а решение о разрешении или запрете доступа принимается на основании решений всех работающих в данный момент модулей. SELinux, напротив, система монолитная. Модульными могут быть только политики.
- Как следствие предыдущего пункта, RSBAC намного более прост в освоении и настройке, не уступая при этом SELinux в возможностях. Настройка же SELinux занятие не для слабонервных по причине исключительной сложности. А сложность, как мы знаем, враг безопасности.
- SELinux для работы нужна файловая система, поддерживающая т.н. "расширенные атрибуты". RSBAC не зависит от файловой системы.
- RSBAC предоставляет возможность наследования различных атрибутов файлами и процессами. В SELinux все атрибуты должны указываться явно.
С другой стороны:
- RSBAC не включен в основную ветку ядра, и, как следствие, менее активно разрабатывается и отлаживается.
- RSBAC представляет приоритет безопасности над скоростью
Стандартные модули RSBAC
Название модуля | Кодовое имя | Краткое описание |
---|---|---|
Authenticated User | AUTH | Аутентификация пользователей |
User Management | UM | Управление пользователями в пространстве ядра |
Role Compatibility | RC | Ролевая модель контроля доступа |
Access Control Lists | ACL | Подробнейшие списки контроля доступа |
Mandatory Access Control | MAC | Многоуровневый контроль доступа |
Pageexec | PAX | Предотвращение выполнения нежелательного кода |
Dazuko | DAZ | Сканирование на вирусы при доступе к файлам |
Linux Capability | CAP | Контроль Linux Capabilities |
Jail | JAIL | ?нкапсуляция отдельных процессов |
Linux Resources | RES | Контроль системных ресурсов |
File Flags | FF | Установка спецфлагов контроля доступа на файлы и каталоги |
Privacy Model | PM | Защита персональной информации |
Настройка RSBAC: конкретные примеры
- TODO
Ссылки
- TODO