OneAgent безопасность в Linux: различия между версиями
Lobanov (обсуждение | вклад) |
Lobanov (обсуждение | вклад) |
||
Строка 29: | Строка 29: | ||
* Служба oneagent зарегистрирована в системе init. | * Служба oneagent зарегистрирована в системе init. | ||
* Службы ABRT (Red Hat) и Apport (Debian) остановлены и отключены. | * Службы ABRT (Red Hat) и Apport (Debian) остановлены и отключены. | ||
* Пользовательский модуль SELinux устанавливается в системах с включенным SELinux | * Пользовательский модуль SELinux устанавливается в системах с включенным SELinux. | ||
* Устанавливает компоненты ЕдиныйАгент в каталоги системной библиотеки. | * Устанавливает компоненты ЕдиныйАгент в каталоги системной библиотеки. | ||
* Настраивает /etc/ld.so.preload для автоматического мониторинга процессов. | * Настраивает /etc/ld.so.preload для автоматического мониторинга процессов. | ||
Строка 38: | Строка 38: | ||
Программа установки ЕдиныйАгент изменяет следующие системные файлы: | Программа установки ЕдиныйАгент изменяет следующие системные файлы: | ||
* /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 изменен, чтобы включить автоматическое внедрение в процессы. | ||
Строка 52: | Строка 52: | ||
Программа установки ЕдиныйАгент добавляет в вашу систему следующие файлы: | Программа установки ЕдиныйАгент добавляет в вашу систему следующие файлы: | ||
* Двоичные файлы и файлы конфигурации ЕдиныйАгент сохраняются в /opt/ | * Двоичные файлы и файлы конфигурации ЕдиныйАгент сохраняются в /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/ | Временные файлы ЕдиныйАгент и конфигурация среды выполнения сохраняются в /var/lib/<name>/oneagent/runtime. | ||
Постоянная конфигурация ЕдиныйАгент сохраняется в /var/lib/ | Постоянная конфигурация ЕдиныйАгент сохраняется в /var/lib/<name>/oneagent/config. | ||
Большие данные времени выполнения, такие как дампы памяти, сохраняются в /var/lib/ | Большие данные времени выполнения, такие как дампы памяти, сохраняются в /var/lib/<name>/oneagent/datastorage. Обратите внимание, что вы можете изменить расположение больших данных времени выполнения, используя параметр DATA_STORAGE. | ||
==== '''Системные журналы, загруженные ЕдинымАгентом''' ==== | ==== '''Системные журналы, загруженные ЕдинымАгентом''' ==== |
Версия 17:07, 15 марта 2022
Чтобы полностью автоматизировать мониторинг ваших операционных систем, процессов и сетевых интерфейсов, ЕдиныйАгент вносит в вашу систему следующие изменения.
Примечание: ЕдиныйАгент тщательно тестируется, чтобы убедиться, что он оказывает минимальное влияние на производительность вашей системы и соответствует самым высоким стандартам безопасности.
Разрешения
По умолчанию ЕдиныйАгент устанавливается в непривилегированном режиме, в котором привилегии суперпользователя используются один раз для запуска процесса установки. Затем ЕдиныйАгент запускается под непривилегированным пользователем, сохраняя при этом полный набор функций. Дополнительные сведения и системные требования см. в статье Непривилегированный режим ЕдиногоАгента в 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, чтобы обычные пользователи не могли удалять или перемещать файлы других пользователей.