The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Уязвимость в sudo, позволяющая повысить привилегии при использовании специфичных правил

15.10.2019 08:43

В утилите Sudo, используемой для организации выполнения команд от имени других пользователей, выявлена уязвимость (CVE-2019-14287), которая позволяет добиться выполнения команд с правами root, при наличии в настройках sudoers правил, в которых в секции проверки идентификатора пользователя после разрешающего ключевого слова "ALL" следует явный запрет запуска с правами root ("... (ALL, !root) ..."). В конфигурациях по умолчанию в дистрибутивах уязвимость не проявляется.

При наличии в sudoers допустимых, но крайне редко встречающихся на практике правил, разрешающих выполнение определённой команды под UID-идентификатором любого пользователя, кроме root, атакующий, имеющий полномочия выполнения данной команды, может обойти установленное ограничение и выполнить команду с правами root. Для обхода ограничения достаточно попытаться выполнить указанную в настройках команду с UID "-1" или "4294967295", что приведёт к её выполнению с UID 0.

Например, если в настройках имеется правило, дающее любому пользователю право на выполнение программы /usr/bin/id под любым UID:


   myhost ALL = (ALL, !root) /usr/bin/id
или вариант, разрешающий выполнение только конкретному пользователю bob:

   myhost bob = (ALL, !root) /usr/bin/id

Пользователь может выполнить "sudo -u '#-1' id" и утилита /usr/bin/id будет запущена с правами root, несмотря на явный запрет в настройках. Проблема вызвана упущением из внимания спецзначений "-1" или "4294967295", которые не приводят к смене UID, но так как сам sudo уже выполняется под root, то без смены UID и целевая команда также запускается с правами root.

В дистрибутивах SUSE и openSUSE без указания в правиле "NOPASSWD" уязвимость не эксплуатируема, так как в sudoers по умолчанию включён режим "Defaults targetpw" при котором выполняется проверка UID по базе паролей с выводом запроса ввода пароля целевого пользователя. Для подобных систем атака может быть совершена только при наличии правил вида:


   myhost ALL = (ALL, !root) NOPASSWD:  /usr/bin/id

Проблема устранена в выпуске Sudo 1.8.28. Исправление также доступно в форме патча. В дистрибутивах уязвимость уже устранена в Debian, Arch Linux, SUSE/openSUSE, Ubuntu, Gentoo и FreeBSD. На момент написания новости проблема остаётся неисправленной в RHEL и Fedora. Уязвимость выявлена исследователями безопасности из компании Apple.

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: В sudo устранена уязвимость, позволяющая переписать файл на системах с SELinux
  3. OpenNews: При портировании во FreeBSD утилиты doas, аналога sudo от OpenBSD, возникла опасная уязвимость
  4. OpenNews: В дерево исходных текстов OpenBSD принят код замены sudo
  5. OpenNews: В sudo найдена уязвимость, потенциально позволяющая получить root-доступ
  6. OpenNews: В Sudo 1.6.9p20 исправлена уязвимость
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/51675-sudo
Ключевые слова: sudo
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (89) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, ryoken (ok), 09:10, 15/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +15 +/
    Вот уже несколько раз лет за 5 примерно в sudo уязвимости. В su такого не встречал. Потому и не пользуюсь sudo, выделенный root-юзер везде :D.
     
     
  • 2.3, Zenitur (ok), 09:15, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сейчас тебе кое-кто накрутит отрицательный рейтинг, и напишет тебе эмоциональное сообщение о том, что при помощи su нельзя делать базовых вещей (которые, разумеется, делать можно). Ждём-с
     
     
  • 3.5, Аноним (5), 09:27, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +8 +/
    На это денег сегодня не выделяли.
     
  • 3.6, имя (ok), 09:33, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Куда интереснее ждать доводы фанатов OpenBSD в пользу doas.
     
     
  • 4.8, Аноним (8), 09:37, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Один разработчик опенбсд он же по совпадению разработчик sudo уже наломал дров. И в новости только те дрова которые нашли.
     
  • 4.50, OpenBSD (?), 12:55, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    doas действительно хорош, там даже не сконфигурируешь как в этой статье
     
  • 4.65, OpenBSD guy (?), 15:37, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –7 +/
    уже 5 лет на OpenBSD здесь не бывает проблем. код чистый и минимальный. так что остается ржать над пингвинятами
     
     
  • 5.66, Аноним (66), 15:47, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ага, нет кода - нет проблем. Сферическая OpenBSD в вакууме, вроде и есть, но не нужна никому...
     
     
  • 6.92, Stoned Jesus (?), 23:35, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –6 +/
    >Сферическая OpenBSD в вакууме, вроде и есть, но не нужна никому

    Если выкинуть из линукса все разработки OpenBSD, то останется в нём только системд.

     
  • 2.9, Аноним (9), 09:39, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не пользуюсь судо уже лет 15, фигня это всё, убунтятам промыли мозги эффективные апологеты бэкдоров. Уровнями доступа должны заниматься всякие памы с полисикитами, а не эти костыли. Единственное применение судо, что я могу придумать, это там, где мне надо анально ограничить пользователя, но при этом дать тому права на операции, к которым у него в норме не должно быть доступа (но которые хочется на него повесить).
     
     
  • 3.19, Zenitur (ok), 10:12, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Честно говоря, я так и не осилил PolicyKit Сейчас объясню Когда я обновил SU... большой текст свёрнут, показать
     
     
  • 4.20, Аноним (20), 10:15, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > …то я по руководству поменял конфиг PolicyKit, и оказалось, что там... XML. Ааафигенно

    Синьор таки разучился читать и писать текст в файл? Всё-то бы вам, хипстерам, json какой или ini-файлы.

     
     
  • 5.21, Zenitur (ok), 10:32, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    "Офигенно" это сарказм был
     
  • 5.25, Аноним (25), 10:45, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ты отстал от жизни, теперь там интерпретатор javascript.
     
     
  • 6.39, Аноним (9), 11:23, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    jit немного напрягает, я его всегда отключаю
     
  • 6.78, Аноним (78), 19:02, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > теперь там интерпретатор javascript.

    В PolicyKit — нет. Только в polkit.

     
  • 4.91, Аноним (91), 23:19, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > без тех. поддержки Ред Хата никто свои хотелки сделать не сможет.

    Так в этом же и смысл.

     
  • 3.55, Аноним (55), 13:23, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ...например, дать возможность обычному юзеру вызывать poweroff и reboot из командной строки
     
     
  • 4.82, Archevod (?), 19:10, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    $ systemctl poweroff
    $ systemctl reboot
    не благодари...
     
     
  • 5.95, Аноним (95), 23:41, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А как запретить?
     
  • 2.27, freehck (ok), 10:45, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +14 +/
    > Вот уже несколько раз лет за 5 примерно в sudo уязвимости. В su такого не встречал. Потому и не пользуюсь sudo, выделенный root-юзер везде :D

    Так ведь это просто утилиты разного класса. Да, обе используются для эскалации привилегий, но есть много нюансов: в sudo можно выбрать список команд, которые доступны пользователю -- а в su предоставяются полные права доступа от имени другого пользователя; доступ к этим командам через sudo управляется паролем текущего пользователя, а в su -- паролем целевого; sudo имеет гибкие настройки проброса переменных окружения при эскалации привилегий, su -- нет. Этот список можно вообще долго продолжать.

    В общем, sudo -- это вполне естественное развитие su. su прост и само собой не имеет проблем. sudo же может больше, он гораздо гибче. Разумеется, с таким подходом встречаются косяки. И заметьте, косяков-то там не так уж много, и не такие уж они критические.

    Я не вижу особого смысла холиворить на тему su vs sudo. Это просто разные тулзы. Если Вам надо не заморачиваться -- можете использовать su, а можете юзера добавить в группу sudo/wheel... Какая собственно разница. А если надо чего посложнее -- sudo как правило более полезен.

     
     
  • 3.37, Аноним (9), 11:22, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    su кстати не работает без добавления в группу wheel (что за группа sudo такая я не знаю)
     
     
  • 4.42, Stax (ok), 11:39, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    .. что, серьезно??

    Вы что, только со слаквари перешли на нормальный дистрибутив и еще не догадываетесь о существовании PAM и взаимодействия его настроек со всеми этими утилитами?

     
     
  • 5.44, Аноним (9), 12:00, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я тоже удивился, не для того я себе логинд ставил (как кстати сделать чтобы сессия не зависала на минуту с включенным dbus?).
     
  • 4.47, Michael Shigorin (ok), 12:27, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > su кстати не работает без добавления в группу wheel

    Зависит от прав на бинарник -- в альте так из коробки, что обеспечивается установками в пакете и подсистемой control(8): http://altlinux.org/control

    PS: Доступ: (4710/-rws--x---)  Uid: (    0/    root)   Gid: (   10/   wheel)

     
     
  • 5.48, Аноним (9), 12:38, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Интересно. Такие права не пойдут?

    >> -rws--x--x 1 root root

     
     
  • 6.49, Michael Shigorin (ok), 12:43, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Интересно. Такие права не пойдут?
    >>> -rws--x--x 1 root root

    Перевожу: "права на запуск данного suid-ного бинарника есть у всех".

     
     
  • 7.51, Аноним (9), 12:58, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Рута то этот su всё равно не даёт, если пользователь не в wheel.
     
     
  • 8.79, Аноним (78), 19:05, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Даёт, если только у тебя не какой-то экзотический su ... текст свёрнут, показать
     
  • 4.53, freehck (ok), 13:20, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > su кстати не работает без добавления в группу wheel

    Проверьте права доступа на бинарь su в вашем дистре.

    > (что за группа sudo такая я не знаю)

    Если говорить простым языком: общей практикой использования sudo является выделение некой группы, пользователи которой имеют право выполнять любые команды с повышением привилегий. В некоторых дистрибутивах эта группа называется sudo, в некоторых -- wheel.

     
     
  • 5.70, Аноним (70), 16:46, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >В некоторых дистрибутивах эта группа называется sudo, в некоторых -- wheel.

    Я даже знаю дисрибутив FreeBSD.

     
     
  • 6.80, Аноним (78), 19:06, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это не «дисрибутив», это ОС.
     
     
  • 7.83, Аноним (83), 19:25, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ОС

    Ок. Казалось бы, причём тут Berkley software distribution

     
  • 3.67, ievoochielaPh5Ph (ok), 15:53, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > через sudo управляется паролем текущего пользователя, а в su -- паролем целевого

    rootpw            If set, sudo will prompt for the root password instead of the password of the invoking user when running a command or editing a file. This flag is off by default.

    runaspw           If set, sudo will prompt for the password of the user defined by the runas_default option (defaults to root) instead of the password of the invoking user when running a command or editing a file.  This flag is off by default.

    А вот это мне в man sudoers приснилось только что. Ясно-понятно.

    > Это просто разные тулзы.

    Вот тут поддерживаю.

    > если надо чего посложнее -- sudo как правило более полезен

    И тут тоже

     
     
  • 4.72, freehck (ok), 16:48, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >  rootpw          
    >  runaspw          
    > А вот это мне в man sudoers приснилось только что. Ясно-понятно.

    Ммм, век живи, век учись. Не был в курсе про эти опции. Впрочем, я слабо представляю use case оных. Тем не менее суть та же: sudo -- крайне гибкий и хорошо настраиваемый под нужды пользователя инструмент.

     
     
  • 5.74, ievoochielaPh5Ph (ok), 17:02, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вот буквально недавно один знакомый интересовался в ФБ а можно ли так, у него use-case простой: жена иногда сидит под его юзером за его ноутом, не доверять ей пароль он не может принципиально, а обезопасить sudo от ее случайных действий хочется.

    А я помню rootpw со времен когда в каком-то из дистров оно по дефолту было включено :) Смог и ему подсказать тогда, и тебе сейчас процитировать :)

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

    Да, sudo очень гибок, просто нужно не лениться и читать маны.

     
  • 5.81, Аноним (78), 19:08, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Впрочем, я слабо представляю use case оных.

    Включить по умолчанию в своём нескучном дистрибутиве, чтобы юзеры бдительность не теряли и читали внимательнее, чей пароль у них спрашивают. Привет SUSE.

     
     
  • 6.88, ievoochielaPh5Ph (ok), 20:08, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вот! Я помню, что в каком-то дистре было :)
    Спасибо тебе, добрый аноним.
     
  • 2.34, Ilya Indigo (ok), 11:04, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >(ALL, !root)

    Чтобы написать такую конструкцию, нужно быть упоротым на всю голову! ИМХО!
    Неоднократно говорилось, да и то ли в доках то ли прямо в мане говорится, не создавать правил, аля всем кроме, это я ещё с универа помню, а закончил уже давно.

    разрешать нужно или явно какому-то пользователю, выполнять от какого-то пользователя
    user ALL=(mpd)NOPASSWD:/usr/bin/alsamixer
    А если их несколько, то всех перечислить через запятую.
    user ALL=(git,nginx)NOPASSWD:/bin/bash
    А если их очень много, то создать список или alias и подставлять в эти правила его, но не городить таких вот костылей.

     
     
  • 3.41, InuYasha (?), 11:36, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    да это, по сути своей, и есть костыли. когда в системе добавляется/удаляется юзер - править 500 конфигов. по-хорошему, это должна быть централизованная БД юзеров, где у каждого описаны права. хз, может, это лдап умеет.
     
     
  • 4.43, Ilya Indigo (ok), 11:48, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > когда в системе добавляется/удаляется юзер - править 500 конфигов...

    Мне такое неведомо. Могу понять что на говнохостингах чтобы добавлялся, но чтобы удалялся.
    И то, там используют напрямую id-ники, диапазон которых можно сразу вписать в правила.
    Если речь идёт о реальных юзерах, которые подключаются через терминал или тонкий клиент к серверу и работают, то городить правило чтобы какие-то команды могли выполнять любой от любого, но кроме... тем более не вариант.

     
  • 3.61, Аноним (61), 14:56, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я вообще не вижу смысла в подобной команде. Зачем что-то запрещать руту? Он и без sudo все может.
     
     
  • 4.63, Ilya Indigo (ok), 15:00, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Я вообще не вижу смысла в подобной команде. Зачем что-то запрещать руту?
    > Он и без sudo все может.

    В том-то и дело, что sudo ничего не запрещает, тем более руту!
    Она наоборот, разрешает одному пользователю делать что-то от другого (не обязательно root).
    Например запустить настройку эквалайзера mpd текущему пользователю, причём ТОЛЬКО запуск эквалайзера и ничего более, даже без лишних параметров.

    В данном контексте (!root) имелось ввиду что он разрешат выполнять от любого пользователя, кроме рута.
    Сразу косяк, если пользователь входит в группу wheel, то он в некоторых случаях может сделать то же что и root.

     
  • 3.69, Аноним (69), 16:38, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    упртый на всю голову написал эту конструкцию (возможность ее создания) в код sudo - и без того представляющий собой невменяемую блоатварь.

    оттуда бы надо наоборот, выбросить процентов 90 ненужного, вернув набор возможностей примерно на уровень 2002го года, когда основные дырки были уже залатаны, и заморозить в этом состоянии.

    но менеджеры не поймут-с

     
     
  • 4.71, Ilya Indigo (ok), 16:47, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > упртый на всю голову написал эту конструкцию (возможность ее создания) в код
    > sudo - и без того представляющий собой невменяемую блоатварь.
    > оттуда бы надо наоборот, выбросить процентов 90 ненужного, вернув набор возможностей примерно
    > на уровень 2002го года, когда основные дырки были уже залатаны, и
    > заморозить в этом состоянии.
    > но менеджеры не поймут-с

    Я с Вами полностью согласен!
    Я даже, до сегодняшнего дня, не знал что так вообще можно написать.

    P.S. Вот чем занят Лёня, когда он реально давно тут нужен.

     
  • 2.56, Аноним (56), 14:22, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не фанат sudo, но suid бит не всегда работает корректно.
     
  • 2.60, Аноним (61), 14:53, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Как без sudo разрешить выполнить определенную команду определенным пользователем без ввода пароля?

    Такое часто нужно для скриптов автодеплоя.

     
     
  • 3.99, Павел Отредиез (?), 18:48, 16/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Разрешить выполнять группе. chmod 750 program, chgrp mygroup program. Если нужно chmod u+s program.
     

  • 1.2, Аноним (2), 09:13, 15/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В гентушечке тоже уже 1.8.28
     
     
  • 2.23, nm0i (ok), 10:42, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В гентушечке есть doas
     
     
  • 3.33, Владимир Романов (?), 10:57, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Нету. Только что проверил :).
     
     
  • 4.35, Аноним (35), 11:14, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://packages.gentoo.org/packages/app-admin/doas
    Там нет персиста (возможно к лучшему)
     
     
  • 5.38, nm0i (ok), 11:23, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Персист в openbsd сделан ч/з timeout(9). В обоих портируемых форках doas он есть, но ч/з костыли. В апстриме doas что в гентушечке его можно включить через --with-timestamp
     
     
  • 6.40, Аноним (25), 11:30, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Все чуть интереснее:


            if (persist)
                    fd = open("/dev/tty", O_RDWR);
            if (fd != -1) {
                    if (ioctl(fd, TIOCCHKVERAUTH) == 0)
                            goto good;
            }

    Вот этот ioctl() проверяет закешированные в ядре креды для конкретного юзера с конкретным tty. То есть весь persist по сути реализован в kernel space.

     
     
  • 7.57, abi (?), 14:31, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Да, из-за этого doas портирован не полностью, этот вызов есть только в OpenBSD.
     

  • 1.4, Аноним (4), 09:25, 15/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    > упущением из внимания спецзначени

    Любые спец. значения  и остроумная магия - это всегда будущие проблемы.

     
     
  • 2.7, Аноним (8), 09:36, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Учитывая что по официальной легенде программу разрабатывает один человек там еще много таких пасхалок.
     

  • 1.10, Аноним (10), 09:40, 15/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    не зря Поттеринг 'machinectl shell' запилил :)
     
  • 1.13, Аноним (20), 09:49, 15/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сито же.

    Кстати говоря, если в Debian-based вы не можете удалить sudo, потому что используете кеды, а кедомейнтейнер решил, что обязательная установка sudo это security issue, то можно выпилить x из файла, чтобы оно не запускалось. Но чтобы после апдейтов этот флаг не вернулся, лучше так:

    dpkg-statoverride --update --add root root 644 /usr/bin/sudo

     
     
  • 2.14, Аноним (20), 09:50, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    *решилЮ что это не security issue
     

  • 1.15, Anonymoustus (ok), 09:52, 15/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > с UID "-1" или "4294967295", что приведёт к её выполнению с UID 0.

    Ох уж эти коварные типы данных.

     
     
  • 2.96, Аноним (95), 23:58, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    По моему типы данных тут ни при чём, просто упустили момент что setreuid использует аргумент -1 как "не изменять".
     

  • 1.18, Аноним (18), 10:08, 15/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Во фре еще вчера обновили:

    14 Oct 2019 16:46:28
    Original commit files touched by this commit  1.8.28
    Revision:514465
    garga search for other commits by this committer

    security/sudo: Update to 1.8.28

    Sponsored by: Rubicon Communications, LLC (Netgate)

     
  • 1.22, Аноним (22), 10:36, 15/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    По-моему, sudo - это одна сплошная уязвимость.
    Объясните дураку - как с помощью sudo дать человеку все права root за одним исключением - не дать ему сменить пароль root.
     
     
  • 2.24, Роман (??), 10:42, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    SELINUX
     
     
  • 3.28, Аноним (22), 10:46, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И?
    sudo -> turn off selinux -> ... profit!
     
     
  • 4.104, Hedd_ (?), 22:03, 18/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    SELINUX RBAC
     
  • 2.26, aa (?), 10:45, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    включая возможность рута расковырять хекс едитором файловую систему и поправить хеш в passwd?
     
     
  • 3.29, Аноним (22), 10:47, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    естессно...
     
  • 2.30, ыы (?), 10:51, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >все права root

    для начала надо понять что у рута нет прав.

     
     
  • 3.31, Аноним (22), 10:54, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ... ога. Одни обязанности.

    От игры словами суть вопроса не меняется.
    Пока что правильный ответ один - "никак". Если ты на это намекаешь.

     
     
  • 4.36, Аноним (9), 11:19, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я думаю можно мандатным контролем доступа ограничить много чего, или там сделать всяких toorов опять же, но это наверно не селинух или не только он один. Ещё были патчи ядра, исправляющие абсолютные возможности рута, если хочется прям чтобы рут (там же был hardened chroot и остальное). Но это будет уже не тот рут (хотя всё равно шерето). Ща пошла такая практика сажать рута в клетку, типа он тут не господин и повелитель, мне она немного не нравится, да и не работает это. Лучше не давать рута, если он не нужен.

    А вообще селинух же вроде без перезагрузки не отключить? Ну можете попробовать запретить перезагрузку. Я не осиливаю селинух нормально настроить.

     
  • 2.46, ананимус (?), 12:20, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    7 CVE за сорок лет.
     
  • 2.62, Аноним (61), 14:59, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Никак, имея "все кроме", можно придумать миллион способов достичь желаемого.
    Подход с черным списком нежизнеспособен.
    Единственное вменяемое решение - белый список.
     
     
  • 3.85, Crazy Alex (ok), 19:31, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Борцы за идеальную безопасность забывают, что бывают другие задачи. От защиты от дурака до борьбы с совершенно конкретной проблемой с минимальным влиянием на всё остальное.

    Ключик --[no]preserve-root у rm, например.

     
  • 2.89, Михрютка (ok), 20:40, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>>Объясните дураку - как с помощью sudo дать человеку все права root за одним исключением - не дать ему сменить пароль root.

    хранить хеш рута за пределами системы. реализация этого на практике предоставляется в качестве домашнего упражнения.

     
     
  • 3.98, Аноним (22), 13:18, 16/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    В качестве домашнего упражнения - осмысли процесс отделения котлеты хеша рута от остальных мух в master.passwd
    Осмысленное осознай. Затем выпий йаду.
     
  • 2.97, Аноним (95), 00:01, 16/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Так вот для кого google рута ограничивает... нашёлся!
     

  • 1.32, Аноним (32), 10:54, 15/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > не приводят к смене UID, но так как сам sudo уже выполняется под root, то без смены UID и целевая команда также запускается с правами root.

    ыыыы... какая прелесть!

     
  • 1.45, анонн (ok), 12:00, 15/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > На момент написания новости проблема остаётся неисправленной в ... и FreeBSD.

    Еще вчера:
    https://www.freshports.org/security/sudo/
    > 14 Oct 2019 16:46:28
    > Original commit files touched by this commit  1.8.28
    > Revision:514465

     
  • 1.54, Аноним (54), 13:21, 15/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не думаю, что такие странные правила много где использовались.
     
  • 1.58, rihad (ok), 14:47, 15/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чего-то не понял что такого особенного в !root. А если просто перечислить целевых юзеров кроме рута, то все равно эта уязвимость возможна, или обязытельно должно присутствовать !root?
     
     
  • 2.101, Ordu (ok), 01:03, 17/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Обязательно должно присутствовать ALL. Просто если там нет !root, то это notabag.
     

  • 1.59, rihad (ok), 14:51, 15/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Большое упущение sudo что невозможно в пути, которые даются аргументами командам включить wildcard - он будет матчить слеши тоже и можно будет работать с любым файлом. Только для sudoedit эту возможность добавили, но не в общем случае.
     
  • 1.68, ievoochielaPh5Ph (ok), 16:00, 15/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Описание самой «уязвимости» мне напоминает анекдот про «а вы на шкаф залезьте». При чем что бы ее использовать нужно предварительно получить право на правку sudoers, то есть сначала получить рута… Получить рута, что бы получить рута… Что-то странное вижу я.
     
  • 1.73, Аноним (70), 16:54, 15/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В каких дистрах не используется sudo?
     
     
  • 2.75, ievoochielaPh5Ph (ok), 17:03, 15/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    В любом можешь не использовать. Вот просто в любом.
     

  • 1.90, анонимммнн (?), 22:46, 15/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    sudu su наше все!
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру