Менеджеры паролей

Менеджерыпаролей

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

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

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

Хорошо, давайте начнем.

Если вам просто нужен совет о том, что использовать, перейдите к заключение.

По идее, что может быть проще менеджера паролей? Это просто банальное хранилище ключей и значений. На самом деле, простейшие реализации обычно хороши. Хорошими примерами простых и безопасных менеджеров паролей являются keepass и keepassx или даже пройти , если ты ботаник.

Дела начинают идти не так, когда вам нужна интеграция с другими приложениями или когда вы хотите синхронизировать данные с помощью ненадежного посредника. Есть безопасные способы добиться этого, но привлекательность регулярных абонентских платежей привлекает в это пространство компании с разной степенью компетентности. Я вообще скептически отношусь к этим онлайн-менеджерам паролей подписки, и это будет предметом остальной части этой статьи.

Плохой совет

Я часто говорят, что «использовать менеджер паролей» – плохой совет. Потому что сложно отличить грамотную реализацию от наивной. Техническая пресса может анализировать удобство использования и опыт адаптации, но не может реально оценить какие-либо претензии по безопасности, так как вы предлагаете пользователям отличить их? По этой причине я думаю, что фраза «использовать менеджер паролей» настолько расплывчата, что это опасно.

Хорошая аналогия – сказать человеку, у которого болит голова, принимать любые таблетки, которые он найдет в аптечке. Может быть, им повезет и они найдут аспирин, а может, нет, и вы позвоните в службу борьбы с отравлениями.

Совет по этой теме должен быть конкретным. Лучше рекомендовать хорошо продуманные реализации, а не общие категории продуктов. Эта позиция на удивление спорна, многие люди утверждают, что любой менеджер паролей приемлем, и что я сею страх, фактически оценивая заявления поставщиков. Я по-прежнему не убежден.

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

Меня не интересуют такие вещи, как тестирование устойчивости зашифрованных BLOB-объектов к взлому в автономном режиме. Для некоторых это может быть серьезной проблемой, но в большинстве случаев, если злоумышленник имеет возможность получить доступ или вмешаться в зашифрованное состояние, тогда у вас будут проблемы, независимо от того, использовали ли вы диспетчер паролей или нет.

Есть две общие проблемы, с которыми я сталкиваюсь. Первая заключается в том, что доверенные элементы пользовательского интерфейса вводятся в потенциально враждебные сайты. Во-вторых, различные компоненты ipc по каналам, доступным через Интернет (например, WebSockets, postMessage и т. Д.) Без адекватной взаимной аутентификации.

Давайте сначала обсудим элементы пользовательского интерфейса.

Враждебные среды

Большинство онлайн-менеджеров паролей используют скрипты содержимого , javascript, который вставляется на каждый посещаемый вами веб-сайт. Очень легко писать сценарии контента, но очень сложно сделать их устойчивыми к взлому. Это своего рода проблема, потому что они будут размещаться во враждебной среде.

Хорошим примером тонких способов, которыми это может пойти не так, является ошибка вроде это. Как взаимодействуют изолированные миры, достаточно сложно, но менеджеры паролей усугубляют ситуацию, стирая различие между пользовательским интерфейсом и контентом.

Chrome против содержимого

Интерфейс вашего браузера состоит из двух основных компонентов: хром (что сбивает с толку, этот термин не имеет ничего общего с Google Chrome) и контент. область. Хром содержит такие вещи, как адресная строка, вкладки и кнопка возврата. Этим компонентам можно доверять, и веб-сайты не могут им мешать. И наоборот, все, что находится в области содержимого, может контролироваться веб-сайтом, и поэтому ему нельзя доверять.

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

Рамки

Хорошо, но нет ничего необычного в том, что разные части области содержимого имеют разные привилегии, в основном так и работают iframe. Это не делает его безопасным, и вы, вероятно, знакомы с X-Frame-Options , это способ для веб-сайтов отказаться от фрейма. Большинство веб-сайтов, заботящихся о безопасности, будут делать именно это, потому что злоумышленникам слишком легко обмануть вас, заставив взаимодействовать с фреймами непреднамеренным образом.

Иногда это называют атаками восстановления или кликджекингом (стон, я ненавижу этот термин) . В Руководство по безопасности браузера .

Если атаки восстановления достаточно проблематичны, чтобы заставить всех отключить кадрирование, если программное обеспечение, которому поручено защита ваших паролей также отказаться? Это был вопрос с подвохом, они не могут!

Краткая иллюстрация

Пока я писал это, я случайно увидел рекламу нового менеджера паролей под названием

Нордпасс . Давайте воспользуемся этим как тестовым примером и посмотрим. Все онлайн-менеджеры паролей работают одинаково, это не относится к какой-либо конкретной реализации.

Примечание: Я намеренно пытаюсь избежать обнаружения конкретных уязвимостей, чтобы мне не пришлось начинать утомительный формальный процесс раскрытия информации. Это просто общая иллюстрация недостатков, присущих этим конструкциям.

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

Nordpass User Interface Nordpass User Interface

Как правило, веб-сайты могут взаимодействовать с этим Пользовательский интерфейс и быстрое тестирование подтверждают, что здесь это правда. Похоже, я могу стилизовать и эти элементы, это означает, что возможно тривиальное исправление.

Nordpass User Interface

Эта проблема широко распространена среди онлайн-менеджеров паролей, вы никогда не сможете убедитесь, что вы взаимодействуете с веб-сайтом или вашим менеджером паролей. Давайте сделаем небольшую демонстрацию.

Вот быстрый пример, вы можете попробовать сам если у вас установлен Nordpass, прошу прощения за мои ужасные дизайнерские способности.

Nordpass User Interface Nordpass UI Redress Эта демонстрация показывает, как веб-сайты могут вмешиваться в пользовательский интерфейс вашего менеджера паролей.

Это фундаментальная и неустранимая проблема с подобными проектами.

Я обнаружил множество реальных уязвимостей в работе этих элементов пользовательского интерфейса. Такие банальные, как это или это. Иногда взаимодействие даже не требуется.

Мы уже установили, что один компонент онлайн-менеджеров паролей должен быть внедрен в потенциально опасные среды. . Как эти компоненты могут взаимодействовать с другими компонентами?

Одно наивное решение – просто использовать XHR или WebSockets для локальной конечной точки HTTP. Это звучит привлекательно для разработчиков, ведь это естественный способ общения в сети. Проблема с этим решением в том, что его очень сложно отличить. rentiate между вашим сценарием содержимого и враждебным сценарием, работающим на той же странице, но в другом мире.

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

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

Еще одна проблема, которую я испытываю в отношении онлайн-менеджеров паролей, заключается в том, что они делают песочницы браузера менее эффективными. Современные браузеры используют архитектуру песочницы для изоляции компонентов, которые могут выйти из строя.

Проблема в том, что онлайн-менеджеры паролей эффективно внедряют привилегированные компоненты в эти изолированные процессы с расширениями. Цель песочницы – изолировать потенциально скомпрометированные компоненты друг от друга, но если вы поместите все свои самые ценные секреты в песочницу – тогда в чем смысл?

Я беспокоюсь, что люди не понимают, какой компромисс они делаем здесь.

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

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

Реальность такова, что вы должны доверять своему поставщику, чтобы поддерживать его инфраструктуру и обеспечивать ее безопасность. Наличие шифрования («банковский класс» или нет) не меняет этого. Возможно, вы думаете, что это не имеет большого значения, вы уже доверяли им, когда устанавливали их программное обеспечение. Хорошо, но эти заявления занимают центральное место в маркетинге, поэтому продавцы должны верить, что их клиенты заботятся об этом. Я думаю, что эти утверждения искажают истину, чтобы развеять законные опасения.

Другие претензии Проделать дыры в маркетинговой ерунде легко, но вот еще несколько забавных моментов, которые я заметил у реальных поставщиков менеджеров паролей

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

Я использую Chrome, но другие основные браузеры, такие как Edge или Firefox, тоже подходят. Они могут изолировать свой доверенный пользовательский интерфейс от веб-сайтов, они не нарушают модель безопасности песочницы, у них есть команды безопасности мирового класса, и их очень легко использовать.

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

Leave a comment

Your email address will not be published. Required fields are marked *