Безопасность 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, чтобы предотвратить удаление или перемещение файлов других пользователей обычными пользователями.