OneAgent безопасность в Linux: различия между версиями
Lobanov (обсуждение | вклад) (Новая страница: «Чтобы полностью автоматизировать мониторинг ваших операционных систем, процессов и сет...») |
Lobanov (обсуждение | вклад) м (Lobanov переименовал страницу ЕдиныйАгент безопасность в Linux в OneAgent безопасность в Linux) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
Чтобы полностью автоматизировать мониторинг ваших операционных систем, процессов и сетевых интерфейсов, | Чтобы полностью автоматизировать мониторинг ваших операционных систем, процессов и сетевых интерфейсов, OneAgent вносит в вашу систему следующие изменения. | ||
Примечание: | Примечание: OneAgent тщательно тестируется, чтобы убедиться, что он оказывает минимальное влияние на производительность вашей системы и соответствует самым высоким стандартам безопасности. | ||
===== '''Разрешения''' ===== | ===== '''Разрешения''' ===== | ||
По умолчанию | По умолчанию OneAgent устанавливается в непривилегированном режиме, в котором привилегии суперпользователя используются один раз для запуска процесса установки. Затем OneAgent запускается под непривилегированным пользователем, сохраняя при этом полный набор функций. Дополнительные сведения и системные требования см. в статье Непривилегированный режим OneAgent в 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 устанавливается в системах с включенным SELinux. | ||
* Устанавливает компоненты | * Устанавливает компоненты OneAgent в каталоги системной библиотеки. | ||
* Настраивает /etc/ld.so.preload для автоматического мониторинга процессов. | * Настраивает /etc/ld.so.preload для автоматического мониторинга процессов. | ||
Строка 36: | Строка 36: | ||
===== '''Установка''' ===== | ===== '''Установка''' ===== | ||
Программа установки | Программа установки OneAgent изменяет следующие системные файлы: | ||
* /proc/sys/kernel/core_pattern и /etc/sysctl.conf изменены, чтобы включить обработку дампа ядра с помощью oneagentdumpproc. Первоначальная конфигурация core_pattern по-прежнему будет работать после установки и будет сохранена в | * /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 изменяет следующие файлы во время своей работы: | |||
* Оболочка | * Оболочка 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 добавляет в вашу систему следующие файлы: | ||
* Двоичные файлы и файлы конфигурации | * Двоичные файлы и файлы конфигурации 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: | ||
===== '''Операции''' ===== | ===== '''Операции''' ===== | ||
Временные файлы | Временные файлы OneAgent и конфигурация среды выполнения сохраняются в /var/lib/<name>/oneagent/runtime. | ||
Постоянная конфигурация | Постоянная конфигурация OneAgent сохраняется в /var/lib/<name>/oneagent/config. | ||
Большие данные времени выполнения, такие как дампы памяти, сохраняются в /var/lib/ | Большие данные времени выполнения, такие как дампы памяти, сохраняются в /var/lib/<name>/oneagent/datastorage. Обратите внимание, что вы можете изменить расположение больших данных времени выполнения, используя параметр DATA_STORAGE. | ||
==== '''Системные журналы, загруженные | ==== '''Системные журналы, загруженные OneAgent''' ==== | ||
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, чтобы обычные пользователи не могли удалять или перемещать файлы других пользователей.