id: Гость   вход   регистрация
текущее время 19:27 02/08/2021
создать
просмотр
редакции
ссылки

Концепция эшелонированной обороны


Успешная организация эшелонированной (=многоуровневой) обороны подразумевает проведение анализа угроз, в ходе которого определяются:

  • ресурсы и значение этих ресурсов
  • опасности, которым подвергаются ресурсы, и вероятность каждой угрозы
  • векторы угрозы, которые могут быть использованы для атаки

Далее для каждого вектора угрозы предусматривается несколько уровней (способов) защиты.

Ресурсы и их значение


  • Структура файловой системы:
    • /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 или 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