Какая-либо программа как 'sudo' для получения корня при наличии двух пользователей вводит пароль?

Более традиционная версия грязной шутки echox отправленный:

СЕНСОРНЫЕ GREP РАЗАРХИВИРОВАЛИ, МОНТИРУЮТ FSCK FSCK FSCK UMOUNT

6
25.06.2011, 01:46
7 ответов

Единственным путем я могу думать о выполнении такой вещи, должен был бы создать учетную запись в /etc/passwd/etc/shadow ) с uid 0 (для полного доступа) или который принадлежит группе (группам), которые обеспечивают надлежащий доступ.

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

Конечно, однажды в учетной записи, они могли просто изменить пароль к чему-то, что любой из них мог использовать (в случае uid = 0). Таким образом, если Вы действительно доверяете проблемы как это, затем у Вас есть большие проблемы на Вашей руке, чем это.

1
27.01.2020, 20:24
  • 1
    , В конце концов, я должен сказать, что не не доверяю другим. Это просто, что люди доверяют мне для управления их почтовыми ящиками, и я не могу предоставить корневой доступ кому-то еще без мер безопасности. Я доверяю им, они доверяют мне, но не все пользователи доверяют друг другу. –  Daniel Böhmer 24.06.2011, 17:46
  • 2
    Логика не является проблемой. Предоставление частей пароля root людям не работает, когда различные комбинации пользователей должны смочь войти в систему как корень. Любой мог a sudo- как программа просят некоторые пароли и обеспечивают оболочку непосредственно. Или программа пространства пользователя могла собрать различные секреты для раскрытия маркера, который позволяет корневой вход в систему (маркер, не распечатанный пользователям, например, ключу SSH для входа в систему как корень на localhost). Существуют алгоритмы, которые работают с любой группой пользователей из группы, видят, что WP:Secret совместно использует; –  Daniel Böhmer 24.06.2011, 17:50

Требование двойного одобрения для определенных действий является частью некоторой политики безопасности; например:

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

Вы отметите, что это не об аутентификации (например, ввод пароля, чтобы показать, что Вы - то, кем Вы симулируете быть), но об авторизации, т.е. решающий, разрешены ли определенные действия.

Для дополнительного чтения я рекомендую Разработку безопасности Ross Anderson. Купите последний выпуск, если Вы можете, но иначе первый выпуск доступен онлайн. Самой соответствующей главой является “Управление доступом”; существуют примеры в главах по банковской и ядерной команде.

Unix предлагает простую модель обеспечения безопасности только с двумя уровнями: пользователь и суперпользователь. Это - оба сила (простой, означает, что меньше места для ошибок в разработке и реализации самой системы и политики безопасности) и слабость (сложной политики безопасности нельзя выразить исходно). Если Вы волнуетесь по поводу пользователя жулика, получающего корень, не давайте ему корневые полномочия. Существуют, очень немногие проверяют то, что делает корень; единственное ограничение состояло бы в том, что действие получения корня может быть зарегистрировано удаленно, как может определенные внешние действия (сетевой трафик). Пользователь жулика мог симулировать хотеть получить корень, чтобы сделать определенную вещь и на самом деле сделать другого при сокрытии его действий от другого пользователя. Таким образом, Вы не получили бы много безопасности, требуя, чтобы корневой доступ исследовался другим пользователем. С другой стороны Вы потеряли бы безопасность путем сокращения доступности корневого доступа (я заключаю, что Вы хотите предоставить меньше корневого доступа доверяемых пользователей для служения в качестве резервных копий, если что-то идет не так, как надо; двойное одобрение увеличило бы нагрузку много).

Двойное одобрение полезно для определенных действий: Alice говорит, “авторизуйте меня, действительно делают X”, Bob говорит, что “Я разрешаю Alice делать X”, и система работает X (X, может быть, например, передача 1 000 000 000$ от одного банковского счета до другого, или уничтожения Москвы или отклонения редактирования). Если Alice говорит, “разрешите меня делать что-либо, что я хочу”, и Bob соглашается, весь Bob делает, повторяет то, что Вы (политик) уже сказали, а именно, что Alice может быть разрешена сделать что-либо. Вы могли бы также сделать Alice sudoer.

Я не знаю ни о какой существующей системе на Unix, чтобы сделать, чтобы многочисленные пользователи утвердили определенные команды в подобной sudo платформе.

6
27.01.2020, 20:24

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

Довольно простой пример этого состоит в том, чтобы сказать: "Ключ является суммой этих двух чисел, по модулю 10". Затем каждый человек получает число между 0 и 9, но то число отдельно не дает им информации. Если Alice имеет 3, то ключ мог все еще быть абсолютно чем-либо между 0 и 9, таким образом, она все еще имеет преимущество во взламывании кода. Это только, когда Bob появляется и имеет 9, что вместе они могут получить доступ к системе с ключевыми 2.

Конечно, в практической ситуации Вы хотели бы способ гарантировать, что Alice и Bob могли ввести их ключи без другого наблюдения их.

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

1
27.01.2020, 20:24

У Вас мог быть процесс, который работает в фоновом режиме как корень, который проверяет на определенные условия, что оба пользователя должны выполнить, и затем копируют в/etc/sudoers и удаляют его снова после нескольких минут. Обоим пользователям придется коснуться файла с с сегодняшней датой как имя файла в их корневом каталоге, например. Фоновый процесс мог удалить этот файл или игнорировать его после того, как он использовался однажды.

Я также думаю, что PAM имеет поддержку экзотических типов аутентификации (как цифровые отпечатки и карты), таким образом, PAM могло бы стоить изучить.

1
27.01.2020, 20:24

Я не знаю ни о какой подобной программе.

Я думаю в целом, это испорчено и не дает Вам больше безопасности, чем разрешение доверительного доступа отдельного пользователя к ограниченным командам.

Лично, я не дал бы никому, кого я не знал лично sudo доступа, даже к подмножеству команд, потому что слишком легко пропустить что-то и предоставить им доступ, который Вы не ожидаете.

Доверяйте им или не доверяйте им, создавание слоев не совсем доверчивых их не помогает.

0
27.01.2020, 20:24
  • 1
    Ну, я понимаю Ваше мнение, но для меня единственный человек менее защищен, чем два человека, сотрудничающие. Если вероятность человека угона сервера 0 <p <1, можно было бы даже математически проверить ту привязку полной вероятности налета уменьшений двух учетных записей;-) В крайнем случае 5 паролей, необходимых для сервера с 5 пользователями (k=n) никто, мог получить доступ к корневой оболочке без всех других замечающих. Немного непрактичный, уверенный... ;-) –  Daniel Böhmer 24.06.2011, 17:20
  • 2
    Один человек должен убедить одного человека, что они защищены, и они могут злоупотребить доступом. Они любой должен убедить Вас (Вы даете им корень) или они должны убедить другого человека, у которого есть другая половина ключа. В обоих случаях Вы завинчены, в обоих случаях, они убедили одного человека доверять им. –  EightBitTony 24.06.2011, 18:48

Это, вероятно, легко реализовать, создав суперпользователя, почему у него длинный пароль, первая половина от первого авторизованного пользователя, вторая от другого (что-то вроде paul_john, где paul и john - обычные пользователи).

Недостатком является то, что вам потребуется такая учетная запись для каждой пары пользователей, но это не потребует каких-либо изменений в программном обеспечении. Эти учетные записи могут быть перечислены в / etc / sudoers, авторизуя их для необходимых действий.

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

0
27.01.2020, 20:24

Esto puede ser lo que estás buscando:

https://github.com/square/sudo_pair

sudo_pair is a plugin for sudo that requires another human to approve and monitor privileged sudo sessions.

2
27.01.2020, 20:24

Теги

Похожие вопросы