T1548.001: Setuid и Setgid

Злоумышленник может использовать конфигурации, в которых для приложения установлены биты setuid или setgid, чтобы заставить код работать в контексте другого пользователя (возможно, с более высокими привилегиями). Если в Linux или macOS для бинарного файла приложения установлены биты setuid или setgid, то приложение будет запускаться с привилегиями его владельца — пользователя или группы соответственно. Обычно приложение запускается в контексте текущего пользователя, независимо от того, какой пользователь или какая группа владеет приложением. Однако бывают случаи, когда для нормальной работы программы должны выполняться в контексте с повышенными привилегиями, но пользователь, запускающий их, может не обладать необходимыми привилегиями.

Для создания записи в файле sudoers требуются права root; в качестве альтернативы любой пользователь может установить флаг setuid или setgid в собственных приложениях (пример применения техники Изменение разрешений для файлов и каталогов (Linux и Mac)). Команда chmod устанавливает эти биты с помощью битовой маски, chmod 4777 [file], или символического представления, chmod u+s [file]. Эти команды устанавливают бит setuid. Для установки бита setgid можно использовать команды chmod 2775 и chmod g+s.

Злоумышленники могут использовать этот механизм в собственном вредоносном ПО, чтобы в дальнейшем запускать его с повышенными привилегиями. Такое поведение часто наблюдается при попытках обхода ограничений командной оболочки (shell escape) или выхода из иной среды выполнения с ограниченными правами.

В качестве альтернативы злоумышленники могут воспользоваться уязвимостями бинарных файлов с установленными битами setuid или setgid, используя технику Изучение файлов и каталогов. При просмотре атрибутов файла с помощью команды ls -l биты setuid и setgid обозначаются символом s вместо x. Для поиска таких файлов может использоваться команда find. Например, find / -perm +4000 2>/dev/null найдет файлы с битом setuid, а find / -perm +2000 2>/dev/null — файлы с битом setgid. Бинарные файлы с этими битами могут использоваться злоумышленниками для проведения атак.

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

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

unix_mitre_attck_privilege_escalation: PT-CR-1663: Unix_Privilege_Escalation_Via_GTFOBINS: Запуск терминала с повышенными привилегиями с помощью утилиты группы GTFOBins. GTFOBins - двоичные файлы Unix, которые можно использовать для обхода локальных ограничений безопасности в неправильно настроенных системах unix_mitre_attck_privilege_escalation: PT-CR-1667: Unix_PrivEsc_Via_PKexec: Повышение привилегий с помощью команды pkexec. Возможная эксплуатация уязвимости PwnKit (CVE-2021-4034) vulnerabilities: PT-CR-2078: CVE_2023_4911_GLIBC_Buffer_Overflow: Правило обнаруживает локальное повышение привилегий через переполнение буфера. Атакующие, используя уязвимость CVE-2023-4911, могут запустить SUID-программы для выполнения кода с повышенными привилегиями vulnerabilities: PT-CR-2074: Subrule_CVE_2023_4911_GLIBC_Buffer_Overflow: Сабруль к правилу CVE_2023_4911_GLIBC_Buffer_Overflow. Правило обнаруживает локальное повышение привилегий через переполнение буфера. Атакующие, используя уязвимость CVE-2023-4911, могут запустить SUID-программы для выполнения кода с повышенными привилегиями

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

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

Отслеживайте запуск таких утилит, как chmod, и их аргументы, чтобы обнаружить установленные биты setuid и setguid.

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

Отслеживайте в файловой системе те файлы, для которых установлены биты setuid или setgid.

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

Отслеживайте изменения в файлах, с помощью которых злоумышленники могут обойти ограничения командной оболочки (shell escape) или эксплуатировать уязвимости в приложении с установленными битами setuid или setgid, чтобы заставить код работать в контексте другого пользователя.

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

IDM1028НазваниеИзменение конфигурации ОСОписание

Чтобы уменьшить потенциальный ущерб при компрометации, в приложениях с известными уязвимостями или способами выхода за пределы оболочки не должны быть установлены биты setuid или setgid. В целом, количество программ с установленными битами setuid или setgid в системе должно быть минимальным.