Специалисты из компании SEC Consult обнаружили в программе Outlook от компании Microsoft замечательную уязвимость, которую можно считать глупейшим багом недели или месяца, как угодно. Они случайно заметили, что к каждому зашифрованному письму S/MIME программа прикладывает содержание письма указано в открытом виде. Вероятно, для более удобного предпросмотра.
Комментария от Microsoft пока не последовало, компания только подтвердила наличие уязвимости в Microsoft Outlook 2016. Уязвимости присвоен классификационный номер CVE-2017-11776.
S/MIME (Secure/Multipurpose Internet Mail Extensions) — стандарт для шифрования и подписи в электронной почте с помощью открытого ключа. Этот стандарт похож на PGP/GPG, его поддерживают все популярные почтовые клиенты, в том числе Microsoft Outlook, Mozilla Thunderbird, Apple Mail и почтовые клиенты на устройствах iOS и Samsung Knox. Для использования S/MIME нужно сконфигурировать почтовый клиент, установить персональный сертификат и обменяться сертификатами с партнёрами по переписке.
S/MIME принципиально несовместим с веб-почтой. Конфиденциальность и целостность сообщений недостижимы при традиционном использовании веб-почты, потому что секретный ключ не должен быть доступен серверу веб-почты. Следовательно, он не может показать содержимое сообщения.
Так вот, исследователи из SEC Consult изначально не занимались поиском уязвимостей в схеме шифрования Outlook. Но они поняли, что ситуация очень нездоровая, когда обнаружили, что содержимое зашифрованных писем отображается в Outlook Web Access (OWA). Это веб-клиент для доступа к серверу совместной работы Microsoft Exchange. Согласно нормальной практике использования S/MIME, веб-клиент вроде бы не может показать текст письма, потому что у него нет секретного ключа для расшифровки.
Оказалось, что при использовании шифрования S/MIME почтовый клиент Outlook отправляет сообщение в зашифрованнном и незашифрованном виде одновременно (в одном письме). То есть прочитать содержимое письма может кто угодно, не имея секретных ключей получателя. Ему для этого не придётся предпринимать никаких активных действий. Атака возможна полностью в пассивном режиме. Другими словами, все криптографические свойства протокола S/MIME полностью компрометируются. Специалисты SEC Consult называют это «фальшивой криптографией».
При этом в папке «Отправленные» у отправителя нет никаких признаков наличия проблемы. Письма отображаются как будто они корректно зашифрованы. Отображаются значки о корректной подписи и шифровании письма.
Уязвимости CVE-2017-11776 присвоен не критический, а средний уровень опасности, в том числе потому, что баг проявляется только если шифруется письмо, отформатированное как “Plain Text”. По умолчанию этот формат не используется, но Outlook автоматически активирует его, если вы отвечаете на письмо, отформатированное как “Plain Text”.
Если же создавать новое письмо со стандартным форматированием HTML, то баг найти не удалось.
Есть ещё одно ограничение, которое снижает опасность бага. Судя по всему, сервер Exchange удаляет открытую часть зашифрованного письма, и в этом случае шифровка с открытом текстом дойдёт только до сервера Exchange, а дальше пойдёт в нормальном виде. А вот если отправлять через SMTP-сервер, то открытая часть письма сохранится на всём маршруте, вплоть до почтового ящика получателя.
Наличие уязвимости стало понятным, когда содержимое письма отобразилось Outlook Web Access (OWA), хотя это не должно быть возможно. По идее, OWA должна сообщать, что предварительный просмотр сообщения невозможен. Но здесь спокойно демонстрируются первые 255 символов. А если злоумышленник получит доступ к почтовому серверу или перехватит трафик иным способом — то может прочитать целиком это якобы «зашифрованное» письмо.
Эксплуатация уязвимости возможна, если злоумышленник способен перехватить трафик, не защищённый TLS, или имеет доступ к какому-нибудь почтовому серверу по пути следования письма, или имеет доступ к почтовому ящику отправителя или получателя.
Уязвимость CVE-2017-11776 вместе с 60 другими уязвимостями в программах Microsoft исправлена в последнем ежемесячном обновлении безопасности, которое вышло 10 октября 2017 года.
Microsoft пока не сообщила, в какой именно версии Microsoft Outlook появился баг. В бюллетене безопасности указана версия Microsoft Outlook 2016. Эта программа вышла 22 сентября 2015 года в составе Office 2016.
Автор: Анатолий Ализар