О [корпоративных] менеджерах паролей
Написать свой поток сознания на тему менеджеров паролей меня побудила статья на хабре "Пассворк для сисадмина: как организовать работу со всеми паролями". Внимательно прочитал все комментарии, "много думал". Планировал написать комментарий к статье, но что-то не сложилось, пишу сюда (в первый раз, если что).
*любой* [корпоративный] менеджер паролей - это костыль, который создаёт ложную иллюзию "безопасности" и (самое главное) "контролируемости ситуации".
Проблема 1: пользователь 1 имеет доступ к логину, паролю, url/другому адресу для ввода пароля. Пароль - в пассворк или другом менеджере, всё остальное - неважно где, главное, что он это знает/имеет доступ. Он создаёт на рабочем столе текстовый файлик и туда всё это записывает (ну лень ему каждый раз авторизовываться в менеджере паролей и пароль не каждый день меняют). И работает с этим файликом по необходимости.
Пользователи 2 и 3, как последние идиоты, каждый раз заходят в менеджер паролей, и используют пароли оттуда.
Проходит время, пользователь 1 либо видит сообщение о необходимости изменить пароль, (либо по злому умыслу) самостоятельно его изменяет и не заносит в менеджер паролей.
Проблема 1.1: Начинаются разборки "Кто менял пароль?", все (1,2,3) говорят "не я". Кого будем наказывать? (это конкретнейший пистон авторам статьи за фразу "можно выяснить кто сменил пароль").
Проблема 1.2: "Авторизованный" пользователь (владелец) перед увольнением (например) удалил "свою" учётку на внешнем ресурсе. Получил уведомление на корпоративную почту, подтвердил. Поскольку последние полгода-год заходил по паролю из блокнотика - подставил 2 и 3.
Проблема 1.3: Если а) хранение не облачное, а корпоративное и б) работник работает из дома/в командировке, то вероятность такого сценария ненамного (!) ниже 100%. Ибо чтобы зарегистрироваться на нужном ресурсе работнику надо поднимать VPN до работы, авторизоваться в менеджере паролей, идти на нужный ресурс (ладно если со своей машины, а не через VPN). Или "пойти куда надо (на ресурс), скопировать/вставить имя/пароль, работать" - 3 копи-пасты. А если запомнено в браузере - вообще два клика мышкой (ярлык на рабочем столе и "ОК/submit" на уже введённом логине/пароле).
Проблема 2: 2FA/Одноразовые пароли по SMS/Push (по номеру телефона).
Проблема 3: Пользователь на ресурсе нажал кнопку "забыл пароль", получил одноразовую ссылку (на корпоративную почту), сменил пароль, не внёс в менеджер паролей. Выясниться может через полгода, когда уйдёт в отпуск. Ибо до этого никто кроме него ресурс не использовал (не надо было), а у него "всё работало". Получение доступа к ресурсу - пляски с бубном с привлечением админа для просмотра почты работника.
Проблема 4: нужен root-доступ к серверу (не надо мне рассказывать про sudo, а то я вам расскажу что в случае сбоя и невозможности смонтировать корневую файловую систему в у вас-таки будут спрашивать пароль рута. в single-user. и без сети.). Затем пользователь "для удобства, однозначно" кладёт свой ssh public-key "куда следует" (необязательно руту). И/или копирует в /sbin статический bash с новым именем и ставит на него suid. Или ... Да собственно всё - контроля над системой у вас (повелителей менеджеров паролей) уже нет. Можете менять пароль рута ежеминутно. Варианты решения - полнейший security-аудит. Но я бы предложил переустановку системы.
Выше я перечислил какие-то проблемы. С точно такими же (или очень сильно похожими) в сталкивался и сталкиваюсь "в реале" когда работал(ю) безопасником. Это то, что лежит на поверхности.
Можно сейчас устроить пляски с воплями - "запретить", "заставить", "обязать", "наказать" и т.д., но "люди есть люди". И если есть возможность сделать проще и удобнее - они сделают проще и удобнее. Есть возможность ошибиться - они ошибутся (часто не по злобе). И рассчитывать на вечную лояльность работников не стоит - она может измениться одномоментно.
Вывод я написал в первых строках:
*любой* [корпоративный] менеджер паролей - это костыль, который создаёт ложную иллюзию "безопасности" и (самое главное) "контролируемости ситуации".
На мой взгляд решение [корпоративное] - оно сильно в другой области. Это решения класса PAM - Privilege Access Management (тоже не без проблем). "Но это уже совсем другая история".
P.S. это я ещё не сел на своего любимого конька "внедрение системы" - про обучение пользователей/владельцев (создание контейнеров, предоставление прав/...), отслеживание скомпроментированных учётных записей, периодическая смена, ...
Банальное создание учётных записей на сторонних ресурсах. Это либо форма на сайте, либо сообщение по e-mail с корпоративной почты "прошу меня зарегистрировать". У некоторых (в том числе ИБ-) вендоров - с корпоративного e-mail + s/n оборудования (или номер сертификата тех. поддержки).
И после этих пары пунктов задача перестаёт быть технической.
Просто поверьте опыту - банальный совместный доступ к почтовому ящику info@ или sales@ на решениях MS Exchange/Outlook становится сильно нетривиальной организационной и технической задачей.
P.P.S. я не против менеджеров паролей как таковых, я против их использования в корпоративной среде - ибо это 1) вопрос доверия, 2) ответственности, 3) [разгильдяйства, оно же доверия и ответственности]. Дома/лично менеджерами паролей пользуюсь - я себе 1) доверяю (не всегда) и 2) "виноват только я". Если что - в менеджер паролей дополнительно вношу логины, url, "секретные вопросы для восстановления пароля", номера телефонов, которые указывал при регистрации. Иногда - пароли шифрования больших/критичных архивов. Сейчас записей 100500+ 1700+ по группам.