Еще в феврале 2016 года исследователь Флориан Богнер (Florian Bogner) нашел уязвимость в менеджере паролей KeePass. Баг позволяет осуществить MitM-атаку на приложение, пока оно обновляется. Однако глава проекта KeePass отказался устранять баг, потому что тогда KeePass лишится доходов от рекламы, которые, видимо, важнее безопасности пользователей.
В начале текущего года Богнер обнаружил, что KeePass версий 2.x содержит неприятный баг: механизм обновления программы устроен таким образом, что обращение за апдейтами к серверам KeePass осуществляется посредством HTTP. Благодаря этой особенности на KeePass можно осуществить man-in-the-middle атаку, подменив легитимный апдейт вредоносным файлом. К тому же менеджер паролей никак не верифицирует скачиваемые пакеты обновлений, что дополнительно упрощает работу злоумышленнику. Демонстрацию атаки можно увидеть в ролике ниже.
Исследователь уведомил разработчиков KeePass о проблеме еще феврале 2016 года, однако лично глава проекта Доминик Рейчл (Dominik Reichl) сообщил исследователю в письме, что уязвимость устранена не будет.
«Эта уязвимость исправлена не будет. Косвенные расходы, которые повлечет за собой переход на HTTPS (к примеру, потерю доходов от рекламы), делают это решение нежизнеспособным», — писал Рейчл.
Получив от компании столь неожиданный отказ, Богнер рассказал о проблеме открыто, и уязвимости был присвоен идентификатор CVE-2016-5119. Вскоре эту тему уже обсуждали ИБ-эксперты всего мира, и не из-за того что эксплоит оказался очень прост, но из-за категоричного ответа главы KeePass.
Рейчл на удивление спокойно воспринял обрушившийся на него шквал критики. Он заявил, что не собирается менять свое решение относительно поддержки HTTPS, но сообщил, что для борьбы с проблемой в KeePass были добавлены цифровые подписи для пакетов обновлений, которые менеджер будет проверять прежде, чем приступить к работе с апдейтом.
«Это правда, сейчас сайт KeePass не поддерживает HTTPS. Перемещать файлы с информацией об обновлениях на сайт с поддержкой HTTPS бесполезно, если сайт самого KeePass по-прежнему работает на HTTP. Использовать HTTPS имеет смысл только в обоих случаях. К сожалению, использование HTTPS сейчас по ряду причин невозможно, но я слежу за этой проблемой, и мы, конечно же, перейдем на HTTPS, когда это станет возможно. Гораздо важнее верифицировать то, что вы скачиваете (я бы рекомендовал делать это вне зависимости от того, откуда вы скачиваете KeePass). Бинарники имеют цифровую подпись (Authenticode), их можно проверить через Windows Explorer, зайдя в Properties и открыв вкладку Digital Signatures», — пишет Рейчл на Sourceforge.
Хотя глава KeePass и пообещал миграцию на HTTPS в будущем, пока эксперты рекомендуют пользоваться верификацией пакетов обновлений, а еще лучше — скачивать обновления для менеджера паролей вручную, с официального сайта.