Криптографический баг Windows продемонстрировали в симуляции атаки
На следующий день после того, как Microsoft обнаружила одну из самых серьёзных уязвимостей за всю историю Windows и выпустила исправление для неё, исследователь Салим Рашид опубликовал в твиттере скриншот с рикроллом. На скриншоте видно, что содержимое сайтов GitHub и Агентства национальной безопасности США заменено на клип Never Gonna Give You Up Рика Эстли. Исследователь сделал это, чтобы продемонстрировать атаку с использованием найденной уязвимости.
Уязвимость в криптографической библиотеке crypt32.dll в Windows, которую назвали CVE-2020–0601, заключается в том, что Windows CryptoAPI (Crypt32.dll) не полностью проверяет сертификаты ECC (криптографии эллиптической кривой). Как пишет ArsTechnica, уязвимые версии Windows проверяют три параметра ECC, пропуская при этом четвёртый, критический.
«Такое поведение равносильно тому, как если бы сотрудник правоохранительных органов проверял чьи-либо документы и убедился, что они правильно описывают рост владельца, его адрес и день рождения, но не замечает, что в документе указан вес в 100 кг, хотя человек весит вдвое меньше», — объясняет ArsTechnica.
Этот недостаток является результатом реализации Microsoft ECC, а не слабостью самих алгоритмов ECC. Злоумышленник может использовать эту уязвимость, чтобы подписать вредоносную программу так, чтобы система приняла файл за легитимный. Уязвимость распространяется на системы Windows 10, а также Windows Server 2016 и Windows Server 2019. Проблема была обнаружена специалистами Агентства национальной безопасности США, которые сообщили о ней Microsoft.
Рашид сообщил в комментарии ArsTechnica, что его эксплойт состоит из 100 строк кода, но его можно сократить до 10 строк, если убрать «несколько полезных трюков». И хотя для использования атаки в реальных условиях существуют ограничения, симуляция показала, что уязвимость действительно серьёзная. С её помощью Рашиду удалось осуществить спуфинг сайтов Github и АНБ США в браузерах Edge и Chrome. А вот браузер Firefox, как отметил исследователь, отказался принимать поддельный сертификат.
«Салим продемонстрировал, что с помощью скрипта вы можете создать сертификат для любого веб-сайта, используя только стандартные настройки для Windows, — заявил Кеннет Уайт, специалист по криптографии и руководитель отдела безопасности в MongoDB. — Это ужасно. Проблема затрагивает VPN-шлюзы, VoIP, то есть практически всё, что использует сетевые коммуникации».
Подробное техническое описание проблемы Кеннет Уайт опубликовал в своём блоге. Также обсуждение уязвимости можно найти в твиттере и на Y Combinator. Кроме того, подобные исследования провела компания Kudelski Security, которая предоставила множество деталей атаки, включая код, который могут использовать другие.
Как заявили в АНБ, «уязвимость ставит Windows под угрозу для широкого спектра атак».
«АНБ оценивает уязвимость как критическую и опасается, что злоумышленники очень быстро поймут, в чём состоит уязвимость и что её использование сделает систему фундаментально уязвимой, а последствия её применения будут серьёзными и широко распространятся. Вероятно, злоумышленники смогут быстро найти инструменты для удалённой эксплуатации найденной ошибки. Своевременная установка патча — единственное известное решение в настоящее время, и оно должно быть в центре внимания всех владельцев сетей».
Как пишет ArsTechnica, CVE-2020–0601, вероятно, не может представлять собой такую же серьёзную угрозу, как CVE-2014–0160, или Heartbleed — ошибка в криптографическом программном обеспечении OpenSSL, которая была выявлена в 2014 году. Эта уязвимость позволяла злоумышленникам красть личные ключи, пароли и другие конфиденциальные данные с сотен тысяч уязвимых сайтов. Также она позволяла несанкционированно читать память на сервере, в том числе для извлечения закрытого ключа сервера. Однако, отмечает издание, CVE-2020–0601 нарушает множество мер безопасности, что делает её одной из самых серьезных уязвимостей за последнее время.
Механизм автоматического обновления Windows, по всей вероятности, уже исправил уязвимость. Кроме того, патчи для различных уязвимых версий системы доступны на сайте Microsoft.