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

Материал из Dynatrace

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

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

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

Операции

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

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

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

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

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

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

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

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

Установка

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

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

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

  •    Оболочка ЕдиныйАгент перезаписывает файл /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/. Хук удаляется сценарием удаления.

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

Установка

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

  •    Двоичные файлы и файлы конфигурации ЕдиныйАгент сохраняются в /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
Операции

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

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

   Большие данные времени выполнения, такие как дампы памяти, сохраняются в /var/lib/<name>/oneagent/datastorage. Обратите внимание, что вы можете изменить расположение больших данных времени выполнения, используя параметр DATA_STORAGE.

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

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

  • /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.

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

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

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

Механизм внедрения ЕдиногоАгента

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

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

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