Защита приложений с помощью AppArmor

AppArmor — это система принудительного контроля доступа (Mandatory Access Control, MAC), которая позволяет ограничивать возможности приложений, минимизируя риски эксплуатации уязвимостей. В отличие от SELinux, AppArmor работает на основе путей к файлам, что упрощает его настройку и внедрение.

В этой статье мы рассмотрим, как использовать AppArmor для защиты приложений, с учетом последних обновлений ПО, современных практик и особенностей российского ИТ-ландшафта.




Введение в AppArmor: зачем он нужен?

AppArmor позволяет:

  • Ограничивать доступ приложений к файлам, сетям, библиотекам и системным вызовам.
  • Предотвращать атаки, такие как RCE (Remote Code Execution) и LPE (Local Privilege Escalation).
  • Логировать попытки несанкционированного доступа.
AppArmor действует как фильтр между приложением и ядром Linux, блокируя запрещенные действия

Установка и активация AppArmor

В большинстве современных дистрибутивов Linux AppArmor включен по умолчанию. Проверить его статус можно командой:

Bash
sudo systemctl status apparmor

Если AppArmor не активен, его можно запустить и добавить в автозагрузку:

Bash
sudo systemctl enable --now apparmor

⚠️Важно: В некоторых российских сборках (например, на базе Astra Linux или ROSA) AppArmor может быть заменен на аналогичные решения (например, Security-Enhanced Linux). Уточните документацию вашего дистрибутива.


Работа с профилями AppArmor

Просмотр активных профилей

Текущие профили можно проверить командой:

Bash
sudo apparmor_status

Вывод:

  • enforce — профиль активно блокирует нарушения.
  • complain — нарушения только логируются.

Создание нового профиля

Для генерации профиля используется утилита aa-easyprof:

Bash
sudo aa-easyprof /usr/bin/firefox > /etc/apparmor.d/usr.bin.firefox

После запуска приложения и выполнения типичных действий профиль автоматически дополняется правилами.

💡Замечание. Эта утилита не всегда установлена по умолчанию. Установить ее можно следующей командой:

Bash
sudo apt install apparmor-easyprof
Интерактивный режим aa-easyprof помогает создать базовый профиль безопасности.

Ручное редактирование профилей

Профили хранятся в /etc/apparmor.d/ и имеют синтаксис, похожий на:

INI
/usr/bin/myapp {
  /etc/config.conf r,
  /var/log/myapp.log rw,
  network tcp,
}

Современные практики:

  • Используйте include <abstractions/base> для базовых правил.
  • Минимизируйте права (принцип наименьших привилегий).

Режимы работы: enforce vs. complain

  • Enforce — блокирует нарушения.
  • Complain — только логирует (полезно для тестирования).

Переключение режимов:

Bash
sudo aa-enforce /etc/apparmor.d/usr.bin.myapp  # Включение блокировки
sudo aa-complain /etc/apparmor.d/usr.bin.myapp  # Только логирование

💡Рекомендация: Перед переходом в enforce протестируйте профиль в complain-режиме, чтобы избежать ложных срабатываний.


Аудит и мониторинг нарушений

AppArmor пишет логи в:

  • /var/log/syslog
  • journalctl (в systemd-системах)

Пример фильтрации логов:

Bash
sudo journalctl -u apparmor --since "1 hour ago" | grep DENIED

Лог AppArmor с указанием процесса

AppArmor в российских реалиях

Поддержка в отечественных ОС

  • Astra Linux, ROSA, Alt Linux — поддерживают AppArmor, но могут использовать дополнительные механизмы (например, МСВС).
  • РедОС, Альт Сервер — рекомендуют AppArmor для сертификации ФСТЭК.

Интеграция с российскими СЗИ

Некоторые системы (например, «Континент») могут работать совместно с AppArmor, но требуют дополнительной настройки.

КритерийAppArmorSELinux
ПодходПутевой (path-based)Метаданные (label-based)
СложностьНизкаяВысокая
ГибкостьОграниченнаяМаксимальная
Логирование/var/log/syslogaudit.log
Поддержка в РФAstra Linux, Ред ОСРед ОС, Альт
AppArmor проще в настройке, но SELinux обеспечивает более детальный контроль.

Заключение

AppArmor — мощный инструмент для защиты приложений, особенно в средах, где важна простота настройки. Он остается актуальным, в том числе в российских ИТ-системах, благодаря:

  • Поддержке в большинстве дистрибутивов.
  • Возможности тонкой настройки без глубоких знаний MAC.
  • Хорошей интеграции с современными средствами мониторинга.

Где использовать:

  • Защита веб-серверов (Nginx/Apache).
  • Ограничение контейнеров (Docker/LXC).
  • Изоляция пользовательских приложений.

AppArmor — это не панацея, но важный элемент многослойной защиты. Внедряйте его осознанно, и ваша система станет значительно устойчивее к атакам.

Дополнительные материалы:

Was this helpful?

0 / 0

Добавить комментарий 0