SUID эксплойт и патч - PullRequest
       12

SUID эксплойт и патч

0 голосов
/ 12 мая 2018

Я работаю над корневым двоичным файлом 'app' SUID, который запускает системную команду ("ls -la / dir") и сумел ее использовать, написав вредоносный ls для получения root и изменив путь среды моего пользователя для его установки с более высоким приоритетом, чем у ядра.

Я заметил, что выполнение его, когда пользователь возвращает мне оболочку root, при выполнении с помощью sudo "./example" использует путь root и просто перечисляет файлы в dir. Насколько я знаю, setuid наследует привилегии владельца (в данном случае root) пользователю, а sudo выполняется как root.

Как называются такие уязвимости? Как разработчик приложения исправит это? Есть ли способ заставить пользователя использовать sudo ./app для выполнения программы?

1 Ответ

0 голосов
/ 12 мая 2018

Я рекомендую вам изменить приложение, чтобы использовать абсолютный путь для команд, которые оно выполняет. Например:

system("/bin/ls -la /dir");

Даже если пользователи используют команду sudo для ее выполнения, существуют аргументы sudo, которые они могут использовать (--preserve-env) для сохранения своего собственного PATH.

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

...