Перейти к содержанию

Безопасность OneAgent в Linux

Для полной автоматизации мониторинга ваших операционных систем, процессов и сетевых интерфейсов OneAgent вносит следующие изменения в вашу систему.

OneAgent проходит тщательное тестирование, чтобы гарантировать минимальное влияние на производительность вашей системы и соответствие самым высоким стандартам безопасности.

Разрешения

По умолчанию OneAgent устанавливается в непривилегированном режиме, в котором привилегии суперпользователя используются однократно для запуска процесса установки. Затем OneAgent работает под непривилегированным пользователем, сохраняя полный набор функциональности. Подробности и системные требования см. в разделе Непривилегированный режим OneAgent в Linux

Работа

OneAgent выполняет следующие привилегированные операции. В зависимости от того, работает ли OneAgent в непривилегированном или привилегированном режиме, набор операций одинаков, различается только механизм. В привилегированном режиме OneAgent работает от имени root, тогда как непривилегированный режим использует Linux System Capabilities.

  • Доступ к списку открытых сокетов для каждого процесса.
  • Доступ к списку загруженных библиотек для каждого процесса.
  • Доступ к имени и пути исполняемого файла для каждого процесса.
  • Доступ к параметрам командной строки для каждого процесса.
  • Мониторинг сетевого трафика.
  • Разбор исполняемых файлов для Go Discovery.
  • Сбор данных мониторинга, связанных с контейнерами Docker.

Если у вас включён Log Monitoring, привилегии root также требуются для:

  • Доступа к системным логам: /var/log/syslog и /var/log/messages.
  • Доступа к списку открытых файловых дескрипторов для каждого процесса (файловая система /proc).
  • Доступа к файлу логов для каждого процесса.

Изменения операционной системы

Установщик OneAgent вносит следующие изменения в вашу систему:

  • Создаётся пользователь dtuser. Вы можете изменить имя по умолчанию, используя параметр установки USER.
  • Служба oneagent регистрируется в системе инициализации.
  • Службы ABRT (Red Hat) и Apport (Debian) останавливаются и отключаются.
  • На системах с включённым SELinux устанавливается пользовательский модуль SELinux. Исходные файлы модуля SELinux, установленного установщиком OneAgent, доступны в {install-dir}/agent/SELinuxPolicy, по умолчанию /opt/dynatrace/oneagent/agent/SELinuxPolicy.
  • Компоненты OneAgent устанавливаются в системные каталоги библиотек.
  • Настраивается /etc/ld.so.preload для автоматического мониторинга процессов.

Изменённые файлы

Установка

Установщик OneAgent изменяет следующие системные файлы:

  • /proc/sys/kernel/core_pattern и /etc/sysctl.conf изменяются для включения обработки дампов ядра с помощью oneagentdumpproc. Исходная конфигурация core_pattern продолжит работать после установки и будет сохранена в /opt/dynatrace/oneagent/agent/conf/original_core_pattern, где вы можете определить собственные настройки ядра в формате, указанном в Linux Programmer's Manual. Дополнительную информацию см. в разделе Обработка дампов ядра Linux.
  • /etc/ld.so.preload изменяется для включения автоматического внедрения в процессы.

Работа

OneAgent изменяет следующие файлы во время работы:

  • Обёртка OneAgent перезаписывает файл /var/vcap/packages/runc/bin/runc (Garden runc) для обеспечения внедрения. Это происходит периодически во время работы. Исходный файл сохраняется как runc-original и восстанавливается скриптом удаления.
  • На хостах CRI-O (реализация Kubernetes Container Runtime Interface на основе OCI) хук crio (oneagent_crio_injection-0.1.0.json) копируется по пути, указанному в параметре hooks_dir конфигурационного файла CRI-O (/etc/crio/crio.conf). Если параметр hooks_dir не задан, используется один из путей по умолчанию: /etc/containers/oci/hooks.d/ или /usr/share/containers/oci/hooks.d/. Хук удаляется скриптом удаления.

Добавленные файлы

Установка

Установщик OneAgent добавляет следующие файлы в вашу систему:

  • Бинарные и конфигурационные файлы OneAgent сохраняются в /opt/dynatrace/oneagent. Обратите внимание, что вы можете изменить расположение с помощью параметра INSTALL_PATH.
  • Скрипты запуска копируются в /etc/init.d на системах с SystemV и в /etc/systemd/system на системах с systemd.
  • liboneagentproc.so размещается в системных каталогах библиотек, которые зависят от дистрибутива. Например,

  • Ubuntu 14.04 (с установленными 32-битными библиотеками): /lib32 и /lib/x86_64-linux-gnu

  • Fedora 25: /lib64
  • OpenSUSE 42.2: /lib и /lib64
  • CentOS 7.3 и Red Hat Enterprise Linux 6: /lib и /lib64

Работа

  • Временные файлы и конфигурация времени выполнения OneAgent сохраняются в /var/lib/dynatrace/oneagent/runtime.
  • Постоянная конфигурация OneAgent сохраняется в /var/lib/dynatrace/oneagent/agent/config.
  • Большие данные времени выполнения, такие как дампы памяти, сохраняются в /var/lib/dynatrace/oneagent/datastorage. Обратите внимание, что вы можете изменить расположение больших данных времени выполнения с помощью параметра DATA_STORAGE.

Системные логи, загружаемые OneAgent

OneAgent загружает определённые системные логи, чтобы Dynatrace мог диагностировать проблемы, которые могут быть вызваны условиями в вашей среде. Чаще всего такие проблемы связаны с глубоким мониторингом или автоматическими обновлениями.

  • /var/log/boot.log
  • /var/log/dmesg
  • /var/log/dpkg.log
  • /var/log/kern.log
  • /var/log/messages
  • /var/log/syslog
  • /var/log/yum.log
  • /var/log/audit/audit.log
  • /var/log/zypper.log
  • /etc/nsswitch.conf
  • Вывод команды /usr/sbin/apparmor_status
  • Вывод команды /bin/journalctl --utc -a -n 10000

Отзыв доступа к системным логам

Чтобы отозвать доступ к системным логам, используйте команду oneagentctl с параметром --set-system-logs-access-enabled, установленным в false. Дополнительную информацию см. в разделе Настройка OneAgent через интерфейс командной строки

Глобально записываемые каталоги

Структура каталогов OneAgent содержит глобально записываемые каталоги (разрешения 1777). Изменение этих разрешений пользователями не поддерживается.

Механизм внедрения OneAgent

Такие разрешения на выбранном наборе каталогов необходимы для успешного внедрения OneAgent в процессы на отслеживаемых хостах. Когда OneAgent внедряется в процесс, модуль кода, ответственный за внедрение, работает в контексте исходного процесса, в который он внедряется. Следовательно, пользователи, от имени которых запускаются эти процессы, должны иметь право записи в структуру каталогов OneAgent, что и является причиной глобальных разрешений на запись.

Аналогично, определённые файлы логов требуют глобальных разрешений на запись (666), чтобы приложения, работающие от имени различных пользователей, могли в них записывать.

Безопасность системы

Мы осведомлены о том, что глобальные разрешения на чтение и запись каталогов OneAgent выявляются эвристиками сканирования безопасности, но можем заверить, что они полностью безопасны.

  • Мы поддерживаем количество глобально записываемых каталогов минимально возможным.
  • Все эти каталоги имеют установленный sticky bit (фактические разрешения 1777). Только владелец файла, владелец каталога или пользователь root могут изменять файлы в каталоге. Это стандартная практика, которая делает разрешения более надёжными. Она также используется для каталога Linux /tmp, чтобы предотвратить удаление или перемещение файлов других пользователей обычными пользователями.