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

Материал из Dynatrace

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

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

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

Операции

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

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

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

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

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

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

  •    Пользователь dtuser создан. Вы можете изменить имя по умолчанию, используя параметр установки USER.
  •    Служба oneagent зарегистрирована в системе init.
  •    Службы ABRT (Red Hat) и Apport (Debian) остановлены и отключены.
  •    Пользовательский модуль SELinux устанавливается в системах с включенным SELinux.
  •    Устанавливает компоненты OneAgent в каталоги системной библиотеки.
  •    Настраивает /etc/ld.so.preload для автоматического мониторинга процессов.

Изменение файлов

Установка

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

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

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

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

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

Установка

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

  •    Двоичные файлы и файлы конфигурации OneAgent сохраняются в /opt/<name>/oneagent. Обратите внимание, что вы можете изменить местоположение с помощью параметра INSTALL_PATH.
  •    Сценарии запуска копируются в /etc/init.d в системах с SystemV и в /etc/systemd/system в системах с systemd.
  •    liboneagentproc.so размещается в каталогах системных библиотек, которые различаются в зависимости от дистрибутива. Например,
    •        Ubuntu 14.04 (с установленными 32-битными библиотеками): /lib32 и /lib/x86_64-linux-gnu
    •        Федора 25: /lib64
    •        OpenSUSE 42.2: /lib и /lib64
    •        CentOS 7.3 и Red Hat Enterprise Linux 6: /lib и /lib64
Операции

   Временные файлы OneAgent и конфигурация среды выполнения сохраняются в /var/lib/<name>/oneagent/runtime.

   Постоянная конфигурация OneAgent сохраняется в /var/lib/<name>/oneagent/config.

   Большие данные времени выполнения, такие как дампы памяти, сохраняются в /var/lib/<name>/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
  • Output of /usr/sbin/apparmor_status command
  • Output of /bin/journalctl --utc -a -n 10000 commandЗапрет доступа к системным журналам

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

Дополнительные сведения см. в разделе Настройка OneAgent через интерфейс командной строки.

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

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

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

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

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

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