Как включить глубокий мониторинг приложений, ограниченных AppArmor: различия между версиями
Lobanov (обсуждение | вклад) |
Lobanov (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
AppArmor — это обязательная система контроля доступа, которая ограничивает приложения ограниченным набором ресурсов. Для каждого ограниченного приложения существует профиль, определяющий, какие операции разрешено выполнять приложению, а также пути в файловой системе, к которым приложению разрешен доступ. Чтобы включить глубокий мониторинг приложений, ограниченных AppArmor, в профили этих приложений необходимо включить настраиваемый набор правил для | AppArmor — это обязательная система контроля доступа, которая ограничивает приложения ограниченным набором ресурсов. Для каждого ограниченного приложения существует профиль, определяющий, какие операции разрешено выполнять приложению, а также пути в файловой системе, к которым приложению разрешен доступ. Чтобы включить глубокий мониторинг приложений, ограниченных AppArmor, в профили этих приложений необходимо включить настраиваемый набор правил для OneAgent. | ||
Определение набора правил, а также пошаговое руководство по добавлению набора правил в существующий профиль представлены в примере ниже. В этом примере мы включаем глубокий мониторинг веб-сервера Apache Tomcat, для которого скрипт начальной загрузки находится в папке <code>/usr/sbin/tomcat-sysd</code>. | Определение набора правил, а также пошаговое руководство по добавлению набора правил в существующий профиль представлены в примере ниже. В этом примере мы включаем глубокий мониторинг веб-сервера Apache Tomcat, для которого скрипт начальной загрузки находится в папке <code>/usr/sbin/tomcat-sysd</code>. | ||
Строка 8: | Строка 8: | ||
Где <code>usr.sbin.tomcat-sysd</code> — это файл, определяющий профиль AppArmor для Tomcat. | Где <code>usr.sbin.tomcat-sysd</code> — это файл, определяющий профиль AppArmor для Tomcat. | ||
1. Создайте новый каталог и новый набор правил для | 1. Создайте новый каталог и новый набор правил для OneAgent в этом каталоге с именем <code>agentinjection</code>. | ||
/etc/apparmor.d/ | /etc/apparmor.d/ | ||
|--- usr.sbin.tomcat-sysd | |--- usr.sbin.tomcat-sysd | ||
Строка 68: | Строка 68: | ||
# Проверьте журналы аудита, чтобы убедиться в отсутствии отказов AppArmor. | # Проверьте журналы аудита, чтобы убедиться в отсутствии отказов AppArmor. | ||
Имейте в виду, что хотя набор правил, представленный в этом примере, был тщательно протестирован, его может потребоваться расширить или изменить из-за различий в среде, а пользовательский путь установки для | Имейте в виду, что хотя набор правил, представленный в этом примере, был тщательно протестирован, его может потребоваться расширить или изменить из-за различий в среде, а пользовательский путь установки для OneAgent не поддерживается. | ||
===== '''Предупреждения об отказе в доступе в журналах аудита''' ===== | ===== '''Предупреждения об отказе в доступе в журналах аудита''' ===== | ||
Если вы сталкиваетесь с отказами, связанными с | Если вы сталкиваетесь с отказами, связанными с OneAgent, для других процессов в системе, добавьте следующий набор правил в профили этих процессов. | ||
# Process injection | # Process injection | ||
/etc/ld.so.preload r, | /etc/ld.so.preload r, | ||
/etc/oneagentproc/ld.so.preload r, | /etc/oneagentproc/ld.so.preload r, | ||
/var/log/<name>/oneagent/process/* rkw, | /var/log/<name>/oneagent/process/* rkw, | ||
Хотя этот шаг является необязательным, поскольку неудачные внедрения | Хотя этот шаг является необязательным, поскольку неудачные внедрения OneAgent в другие процессы не повлияют на функциональность ваших приложений. Тем не менее, это может потребоваться, если вы используете IDS или другую автоматизированную систему, которая сообщает о предупреждениях об отказах в доступе, обнаруженных в журналах аудита. |
Текущая версия на 11:07, 22 января 2023
AppArmor — это обязательная система контроля доступа, которая ограничивает приложения ограниченным набором ресурсов. Для каждого ограниченного приложения существует профиль, определяющий, какие операции разрешено выполнять приложению, а также пути в файловой системе, к которым приложению разрешен доступ. Чтобы включить глубокий мониторинг приложений, ограниченных AppArmor, в профили этих приложений необходимо включить настраиваемый набор правил для OneAgent.
Определение набора правил, а также пошаговое руководство по добавлению набора правил в существующий профиль представлены в примере ниже. В этом примере мы включаем глубокий мониторинг веб-сервера Apache Tomcat, для которого скрипт начальной загрузки находится в папке /usr/sbin/tomcat-sysd
.
Мы предполагаем, что структура каталогов для AppArmor следующая:
/etc/apparmor.d/ |--- usr.sbin.tomcat-sysd
Где usr.sbin.tomcat-sysd
— это файл, определяющий профиль AppArmor для Tomcat.
1. Создайте новый каталог и новый набор правил для OneAgent в этом каталоге с именем agentinjection
.
/etc/apparmor.d/ |--- usr.sbin.tomcat-sysd |--- oneagent |--- agentinjection
2. Содержимое /etc/apparmor.d/oneagent/agentinjection
должно быть следующим:
#include <abstractions/base> #include <abstractions/nameservice> # Process Agent injection /etc/ld.so.preload r, # Host identifier calculation /sys/class/net/ r, /sys/devices/virtual/net/** r, /sys/devices/*/*{,/*}/net/** r, # OneAgent directories /opt/<name>/oneagent/agent/** mr, /var/lib/<name>/oneagent/** r, /var/lib/<name>/oneagent/agent/runtime/** w, /var/lib/<name>/oneagent/agent/config/{discovery_entry_point,ruxit_shm_v*} w, # This path must be adjusted if LOG_PATH installation parameter was used /var/log/<name>/oneagent/** rkw, # This path must be adjusted if DATA_STORAGE installation parameter was used /var/lib/<name>/oneagent/datastorage/** rkw, # Needed for Process Agent to determine whether specialized agent should be loaded and to calculate PGI ID /proc/[0-9]*/{cgroup,cmdline,environ,maps,mem,mountinfo,stat,statm,task/*/maps,task/*/mem} r, # Miscellaneous /dev/random rw, /etc/os-release r, /proc/sys/fs/file-nr r, /proc/sys/kernel/hostname r, /proc/{uptime,vmstat} r, /sys/devices/system/cpu/ r, /sys/fs/cgroup/** r, /tmp/** rw, /var/tmp/ r, /var/tmp/** rw, /{,var/}run/utmp rk,
Примечание: Если вы использовали параметр установки DATA_STORAGE для определения пользовательского каталога, предназначенного для хранения больших данных времени выполнения, отредактируйте следующую строку и добавьте свой пользовательский каталог.
# This path must be adjusted if DATA_STORAGE installation parameter was used /var/lib/<name>/oneagent/datastorage/** rkw,
3. Включите набор правил в профиль Tomcat (/etc/apparmor.d/usr.sbin.tomcat-sysd
).
/usr/sbin/tomcat-sysd { #include <oneagent/agentinjection> ... (rest of the rules that were already present in the profile) }
4. Убедитесь, что заданный профиль работает правильно:
- Перезагрузите службу AppArmor.
- Перезапустите Tomcat.
- Убедитесь в веб-интерфейсе, что глубокий мониторинг работает для процесса Tomcat.
- Проверьте журналы аудита, чтобы убедиться в отсутствии отказов AppArmor.
Имейте в виду, что хотя набор правил, представленный в этом примере, был тщательно протестирован, его может потребоваться расширить или изменить из-за различий в среде, а пользовательский путь установки для OneAgent не поддерживается.
Предупреждения об отказе в доступе в журналах аудита
Если вы сталкиваетесь с отказами, связанными с OneAgent, для других процессов в системе, добавьте следующий набор правил в профили этих процессов.
# Process injection /etc/ld.so.preload r, /etc/oneagentproc/ld.so.preload r, /var/log/<name>/oneagent/process/* rkw,
Хотя этот шаг является необязательным, поскольку неудачные внедрения OneAgent в другие процессы не повлияют на функциональность ваших приложений. Тем не менее, это может потребоваться, если вы используете IDS или другую автоматизированную систему, которая сообщает о предупреждениях об отказах в доступе, обнаруженных в журналах аудита.