T1543.002: Служба systemd

Злоумышленники могут создавать или изменять службы systemd для систематического выполнения полезной нагрузки с целью закрепления в системе. Диспетчер систем и служб systemd обычно используется для управления фоновыми процессами-демонами (также известными как службы) и другими системными ресурсами. Во многих дистрибутивах Linux служба systemd является системой инициализации (init) по умолчанию, заменяя устаревшие системы инициализации типа SysVinit и Upstart и сохраняя при этом обратную совместимость.

Диспетчер systemd использует конфигурационные файлы (юниты) с расширением .service для кодирования информации о процессе службы. По умолчанию юниты системного уровня хранятся в подкаталоге /systemd/system корневого каталога (/). Юниты пользовательского уровня хранятся в подкаталогах /systemd/user пользовательского каталога ($HOME).

Внутри юнитов с расширением .service для выполнения команд используются следующие директивы:

  • Директивы ExecStart, ExecStartPre и ExecStartPost выполняются при запуске службы вручную с помощью systemctl или при запуске системы, если служба настроена на автоматический запуск.
  • Директива ExecReload выполняется при перезапуске службы.
  • Директивы ExecStop, ExecStopPre и ExecStopPost выполняются при остановке службы.

Злоумышленники создавали новые файлы служб, изменяли команды, выполняемые директивами файла .service, а также изменяли директиву, указывающую пользователя, от имени которого выполняется файл .service, что могло привести к повышению привилегий. Злоумышленники также могут размещать символьные ссылки в этих каталогах, позволяя systemd находить соответствующие им полезные нагрузки независимо от того, где они реально находятся в файловой системе.

Директива User в файле .service может быть использована для запуска службы от имени определенного пользователя, что может привести к повышению привилегий в соответствии с правами соответствующих пользователя или группы.

Какие продукты Positive Technologies покрывают технику

Экспертиза MaxPatrol SIEM

unix_mitre_attck_persistence: PT-CR-1671: Unix_Systemd_Service_Modify: Закрепление на узле с помощью изменения файла системной службы. Атакующие могут создавать или изменять службы подсистемы systemd для многократного выполнения вредоносных полезных нагрузок

Способы обнаружения

IDDS0017Источник и компонент данныхКоманда: Выполнение командОписание

Подозрительные службы systemd также можно обнаружить, сравнив результаты с показателями доверенной системы. Вредоносные службы systemd можно обнаружить с помощью утилиты systemctl, предназначенной для проверки системных служб: systemctl list-units -–type=service –all. Аудит запуска утилиты systemctl и ее аргументов, а также связанных утилит, таких как /usr/sbin/service, позволит обнаружить вредоносное выполнение службы systemd.

IDDS0009Источник и компонент данныхПроцесс: Создание процессаОписание

Запускаемые таким образом подозрительные процессы и сценарии с PPID=1 порождаются родительским процессом systemd и, как правило, выполняются от имени пользователя root.

IDDS0022Источник и компонент данныхФайл: Изменение файлаОписание

Для обнаружения файлов юнитов службы systemd можно использовать аудит событий создания и изменения файлов в категориях /etc/systemd/system, /usr/lib/systemd/system/ и /home//.config/systemd/user/, а также связанных с этими файлами символьных ссылок.

IDDS0019Источник и компонент данныхСлужба: Создание службыОписание

Отслеживайте недавно созданные службы systemd, которые могут использоваться для систематического выполнения полезной нагрузки с целью закрепления в системе.

IDDS0019Источник и компонент данныхСлужба: Изменения в службеОписание

Анализируйте содержимое файлов .service, присутствующих в файловой системе, и проследите, чтобы они были связаны с легитимными и типичными исполняемыми файлами.

IDDS0022Источник и компонент данныхФайл: Создание файлаОписание

Для обнаружения файлов юнитов службы systemd можно использовать аудит событий создания и изменения файлов в категориях /etc/systemd/system, /usr/lib/systemd/system/ и /home//.config/systemd/user/, а также связанных с этими файлами символьных ссылок.

Меры противодействия

IDM1018НазваниеУправление учетными записямиОписание

Ограничьте доступ пользователей к системным утилитам, таким как systemctl, оставив его только для тех пользователей, которым он действительно необходим.

IDM1022НазваниеОграничение разрешений для файлов и каталоговОписание

Оставьте доступ на чтение и запись к файлам модулей службы systemd только избранным привилегированным пользователям, которым необходимо управлять системными службами.

IDM1026НазваниеУправление привилегированными учетными записямиОписание

Создание и изменение файлов модулей службы systemd обычно разрешено администраторам, таким как пользователь root в Linux и другие пользователи с привилегиями суперпользователя.

IDM1033НазваниеОграничение установки программного обеспеченияОписание

Настройте установку ПО только из доверенных репозиториев и отслеживайте появление неиспользуемых пакетов.