Обновить
0
Максим Изотов@bjarm

Аналитик киберугроз

Отправить сообщение

С помощью команды capsh можно проверить привилегии контейнера и назначить привилегии файлу или процессу с помощью утилиты setcap.

Все-таки setcap используется для установки привилегий именно файлам, а не процессам.

Использование команды setcap может быть обнаружено благодаря четырём последовательным системным вызовам: capset, capset, capget, capget. Примечательно то, что сначала привилегии с помощью системного вызова capset назначаются, а потом с помощью capget запрашиваются у целевого объекта.

Setcap действительно использует capget() и capset(), но для получения версии используемых в системе привилегий и проверки наличия у своего процесса привилегии CAP_SETFCAP (и ее установки, если она сейчас не в Effective наборе).

Проверил strace-ом — порядок их запуска: capget, capget, capget, capset. Да и если смотреть на код setcap-а, то они в таком порядке и вызываются (в рамках функций cap_get_proc(), cap_get_file() и cap_set_proc()).

Ну и для полноты картины уточню, что установка привилегий на файл в этой утилите выполняется функцией cap_set_file(), которая использует системный вызов setxattr(), т. к. capabilities файла хранятся в атрибуте security.capability.

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность

Специализация

Аналитик SOC, Специалист по информационной безопасности
Средний
SIEM
Мониторинг
Linux
Python
Анализ угроз