OneAgent безопасность в Linux: различия между версиями

Материал из Dynatrace
(Новая страница: «Чтобы полностью автоматизировать мониторинг ваших операционных систем, процессов и сет...»)
 
 
(не показаны 4 промежуточные версии этого же участника)
Строка 1: Строка 1:
Чтобы полностью автоматизировать мониторинг ваших операционных систем, процессов и сетевых интерфейсов, ЕдиныйАгентвносит в вашу систему следующие изменения.
Чтобы полностью автоматизировать мониторинг ваших операционных систем, процессов и сетевых интерфейсов, OneAgent вносит в вашу систему следующие изменения.
  Примечание: ЕдиныйАгент тщательно тестируется, чтобы убедиться, что он оказывает минимальное влияние на производительность вашей системы и соответствует самым высоким стандартам безопасности.
  Примечание: OneAgent тщательно тестируется, чтобы убедиться, что он оказывает минимальное влияние на производительность вашей системы и соответствует самым высоким стандартам безопасности.


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


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


*    Доступ к списку открытых сокетов для каждого процесса.
*    Доступ к списку открытых сокетов для каждого процесса.
Строка 24: Строка 24:


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


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


Строка 36: Строка 36:


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


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


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


*    Оболочка ЕдиныйАгент перезаписывает файл /var/vcap/packages/runc/bin/runc (Garden runc), чтобы разрешить внедрение. Это происходит периодически во время выполнения. Исходный файл сохраняется как runc-original и восстанавливается сценарием удаления.
*    Оболочка 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/. Хук удаляется сценарием удаления.
*    На хостах 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/. Хук удаляется сценарием удаления.


Строка 50: Строка 50:


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


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


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


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


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


==== '''Системные журналы, загруженные ЕдинымАгентом''' ====
==== '''Системные журналы, загруженные OneAgent''' ====
ЕдиныйАгент загружает определенные системные журналы, чтобы Ключ-Астром мог диагностировать проблемы, которые могут быть вызваны условиями i.
OneAgent загружает определенные системные журналы, чтобы Dynatrace мог диагностировать проблемы, которые могут быть вызваны условиями в вашей среде. Чаще всего такие проблемы связаны с глубоким мониторингом или автоматическими обновлениями.
 
* <code>/var/log/boot.log</code>
* <code>/var/log/dmesg</code>
* <code>/var/log/dpkg.log</code>
* <code>/var/log/kern.log</code>
* <code>/var/log/messages</code>
* <code>/var/log/syslog</code>
* <code>/var/log/yum.log</code>
* <code>/var/log/audit/audit.log</code>
* <code>/var/log/zypper.log</code>
* <code>/etc/nsswitch.conf</code>
* Output of <code>/usr/sbin/apparmor_status</code> command
* Output of <code>/bin/journalctl --utc -a -n 10000</code> commandЗапрет доступа к системным журналам
 
Чтобы отозвать доступ к системным журналам, используйте интерфейс командной строки oneagentctl с параметром --set-system-logs-access-enabled, установленным в false.
 
Дополнительные сведения см. в разделе Настройка OneAgent через интерфейс командной строки.
 
==== '''Глобально перезаписываемые каталоги''' ====
Структура каталогов OneAgent содержит глобально доступные для записи каталоги (разрешения <code>1777</code> ). Изменение этих разрешений пользователями не поддерживается.
 
===== '''Механизм внедрения OneAgent''' =====
Такие разрешения на выбранный набор каталогов необходимы для успешного внедрения OneAgent в процессы на наблюдаемых хостах. Когда OneAgent внедряет в процесс, модуль кода, ответственный за внедрение, запускается в контексте исходного внедренного процесса. Следовательно, пользователям, от имени которых запускаются эти процессы, необходимо разрешить запись в структуру каталогов OneAgent, что является причиной глобальных разрешений на запись, которые разрешают это. Точно так же для некоторых файлов журналов требуются глобальные права на запись (<code>666</code>), чтобы приложения, работающие под разными пользователями, могли записывать в них.
 
===== '''Безопасность системы''' =====
Нам известно, что глобальные разрешения на чтение и запись в каталогах OneAgentпомечаются эвристиками проверки безопасности, но мы можем заверить вас, что они полностью безопасны. Мы максимально ограничиваем количество глобально доступных для записи каталогов. Все эти каталоги имеют установленный липкий бит (фактические права доступа <code>1777</code>). Только владелец файла, владелец каталога или пользователь root могут изменять файлы в каталоге. Это стандартная практика, которая делает разрешения более надежными. Он также используется для каталога Linux /tmp, чтобы обычные пользователи не могли удалять или перемещать файлы других пользователей.

Текущая версия на 10:52, 22 января 2023

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