Открыть меню
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Как включить глубокий мониторинг приложений, ограниченных AppArmor

Материал из Документация АппОптима

AppArmor — это обязательная система контроля доступа, которая ограничивает приложения ограниченным набором ресурсов. Для каждого ограниченного приложения существует профиль, определяющий, какие операции разрешено выполнять приложению, а также пути в файловой системе, к которым приложению разрешен доступ. Чтобы включить глубокий мониторинг приложений, ограниченных AppArmor, в профили этих приложений необходимо включить настраиваемый набор правил для ЕдиногоАгента.

Определение набора правил, а также пошаговое руководство по добавлению набора правил в существующий профиль представлены в примере ниже. В этом примере мы включаем глубокий мониторинг веб-сервера Apache Tomcat, для которого скрипт начальной загрузки находится в папке /usr/sbin/tomcat-sysd.

Мы предполагаем, что структура каталогов для AppArmor следующая:

/etc/apparmor.d/
|--- usr.sbin.tomcat-sysd

Где usr.sbin.tomcat-sysd — это файл, определяющий профиль AppArmor для Tomcat.

1. Создайте новый каталог и новый набор правил для ЕдиногоАгента в этом каталоге с именем 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. Убедитесь, что заданный профиль работает правильно:

  1. Перезагрузите службу AppArmor.
  2. Перезапустите Tomcat.
  3. Убедитесь в веб-интерфейсе, что глубокий мониторинг работает для процесса Tomcat.
  4. Проверьте журналы аудита, чтобы убедиться в отсутствии отказов AppArmor.

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

Предупреждения об отказе в доступе в журналах аудита

Если вы сталкиваетесь с отказами, связанными с ЕдинымАгентом, для других процессов в системе, добавьте следующий набор правил в профили этих процессов.

# Process injection
  /etc/ld.so.preload r,
  /etc/oneagentproc/ld.so.preload r,
  /var/log/<name>/oneagent/process/* rkw,

Хотя этот шаг является необязательным, поскольку неудачные внедрения ЕдиногоАгента в другие процессы не повлияют на функциональность ваших приложений. Тем не менее, это может потребоваться, если вы используете IDS или другую автоматизированную систему, которая сообщает о предупреждениях об отказах в доступе, обнаруженных в журналах аудита.