Skip to main content

Практические кейсы и задания по работе с MAC

8.1. Кейс: Защита веб-сервера с помощью AppArmor

Сценарий: Школьный сервер с веб-приложением для образовательной платформы подвергся атаке, в результате которой злоумышленник получил возможность выполнять произвольный PHP-код через уязвимость в веб-приложении.

Задание:

  1. Разработать профиль AppArmor для PHP-интерпретатора, ограничивающий его доступ только к необходимым ресурсам
  2. Настроить профиль для предотвращения доступа к системным файлам и каталогам
  3. Разрешить доступ только к каталогу веб-приложения и временным файлам
  4. Ограничить сетевые возможности PHP-интерпретатора

Решение: Профиль AppArmor для PHP-интерпретатора:

/usr/bin/php {
  #include <abstractions/base>
  #include <abstractions/nameservice>
  
  # Каталог веб-приложения
  /var/www/html/** r,
  /var/www/html/uploads/** rw,
  
  # Временные файлы
  /tmp/php* rw,
  
  # Журналы
  /var/log/apache2/error.log w,
  
  # Запрет доступа к критическим файлам
  deny /etc/** r,
  deny /root/** rwx,
  deny /home/** rwx,
  
  # Ограничение сетевых возможностей
  network inet tcp,
}

8.2. Кейс: Настройка SELinux для защиты научного приложения

Сценарий: В школьной лаборатории запущено научное приложение для моделирования физических процессов, которое работает с конфиденциальными данными исследований.

Задание:

  1. Создать специальный SELinux домен для научного приложения
  2. Настроить контекст безопасности для данных и конфигурационных файлов
  3. Настроить политику, позволяющую приложению работать с ограниченными привилегиями
  4. Обеспечить изоляцию от других процессов в системе

Этапы решения:

  1. Создание пользовательского модуля политики SELinux
  2. Определение типов и доменов для приложения и его файлов
  3. Настройка переходов между доменами при запуске приложения
  4. Определение разрешений для доступа к необходимым ресурсам

8.3. Задача: Анализ защищенности системы с MAC

Задание: Проанализировать защищенность системы с включенным AppArmor:

  1. Выявить все профили AppArmor, находящиеся в режиме complain
  2. Проанализировать логи нарушений и выявить потенциальные уязвимости
  3. Определить неконтролируемые приложения, требующие создания профилей
  4. Предложить улучшения для существующих профилей

Вопросы для анализа:

  1. Какие приложения имеют избыточные привилегии?
  2. Какие пути доступа к файлам можно ограничить?
  3. Как изменится безопасность системы при переводе всех профилей в режим enforce?