Если заголовок вызывает у кого-то легкое ощущение дежавю, совсем неудивительно. В марте 2016 года израильская компания StartCom, которой принадлежит сервис StartSSL и проект по выдаче бесплатных SSL-сертификатов всем желающим StartEncrypt, уже страдала от аналогичной проблемы.
Теперь ситуация повторяется: эксперты датской фирмы CompuTest сообщили, что StartEncrypt содержит ряд уязвимостей, эксплуатируя которые, злоумышленники могут получить сертификат для любого домена, который им не принадлежит.
Инициатива StartEncrypt была запущена в начале июня текущего года, разработчики вдохновились примером коллег, создавших Let’s Encrypt. Проект предоставил всем желающим возможность получить бесплатный SSL-сертификат, для применения которого понадобится только скачать и установить собственный Linux-клиент компании. Посредством клиента осуществляется процесс валидации домена: данные передаются StartSSL, после чего создается сертификат для домена, который работает на только что проверенном сервере,
Казалось бы, система продумана неплохо, однако специалисты CompuTest утверждают, что процесс валидации небезопасен. Злоумышленники могут получить сертификаты для чужих доменов, в том числе для доменов крупных компаний, таких как Facebook, Google, Dropbox и так далее. Затем эти сертификаты могут быть перепроданы на черном рынке или использованы для man-in-the-middle атак.
Первая проблема заключается в том, что клиент StartEncrypt позволяет пользователю вручную изменить конфигурацию и задать директорию, из которой будет подгружена сигнатура сервера. Атакующие могут обмануть систему, подменив сигнатуру на сигнатуру другого домена. Атаковать таким способом можно любой сайт, который разрешает пользователям загружать контент: GitHub, Dropbox и так далее.
Вторая проблема еще серьезнее, так как с ее помощью злоумышленники могут получить сертификат практически для любого домена. Когда API производит верификацию, он работает с параметром «verifyRes», то есть воспринимает редиректы. Если URL снабжен параметром «verifyRes» и ведет на другой URL, API проследует по ссылке, пока не получит то, что ищет. Это означает, что клиент открыт для уязвимостей Open Redirect. Проще говоря, атакующие могут подделать запрос и провести процедуру валидации для любого сервера вообще.
Исследователи пишут, что эту брешь не так-то легко эксплуатировать. URL домена, который использует атакующий, должен отвечать одному из условий. По ссылке либо должна присутствовать возможность загружать файлы и возможность скачивать их. Либо здесь тоже понадобится собственная уязвимость Open Redirect. Впрочем, второе условие соблюсти проще: фактически все сайты с поддержкой OAuth 2.0 должны поддерживать открытые редиректы, чтобы протокол функционировал нормально. Используя эту особенность OAuth 2.0 и клиент StartEncrypt, атакующие могут обмануть сервис StartSSL, заставив его выдать бесплатный сертификат для любого сайта, поддерживающего OAuth 2.0.
Помимо двух вышеописанных проблем, специалисты также обнаружили ряд багов калибром поменьше. Исследователи пришли к выводу, что клиент StartEncrypt не проверяет даже сертификат собственного сервера, когда соединяется с API. Также API не проводит проверку типа содержимого для файлов, которые скачивает во время верификации. Это позволяет злоумышленникам получить сертификат от имени любого сайта, который разрешает пользователям загрузку аватаров. Кроме того приватный ключ сертификата хранится с правами доступа 0666 в публичной директории, где достать его может кто угодно. Разработчики StartEncrypt, к тому же, не учли опыт коллег из Let’s Encrypt, так что сервис уязвим для атак типа Duplicate-Signature Key Selection.
«Мы считаем, что StartCom совершила ошибку, представив StartEncrypt в текущем виде, — пишут исследователи. — Хотя они оценили проблемы по степени их серьезности и отреагировали [на наши сообщения] быстро, очевидно, что безопасности уделялось очень мало внимания, как в ходе разработки (пользователь может подменить путь вручную), так и в конечной реализации. Более того, они не учли даже те проблемы, с которыми LetsEncrypt столкнулся еще на стадии бета-теста».
Компания StartCom уже представила новую версию Linux-клиента StartEncrypt, где описанные исследователями проблемы были устранены. Номер версии остался прежним: 1.0.0.1. Специалисты CompuTest подчеркивают, что это далеко не все найденные ими баги, — компания еще работает над устранением других уязвимостей, которые закроют в следующих обновлениях.
У пользователей Windows 11 выдалась непростая неделя. На фоне череды проблем, которые принес последние (январские) патчи, всплыл ещё ряд ошибок, теперь уже приводящих к сбою в работе «родных» приложений.
В списке пострадавших — Блокнот, «Ножницы», Alienware Command Center, а также фирменные утилиты для игровых устройств вроде Xbox Ally и Armoury Crate для ROG Ally.
При попытке открыть приложение пользователи видят ошибку 0x803F8001. Система сообщает, что приложение «недоступно для вашей учётной записи» и предлагает проверить вход в Microsoft Account.
На практике это ни к чему не приводит — приложения просто отказываются запускаться, что особенно раздражает, когда под удар попадает тот же Блокнот.
В одной из тем на форуме сотрудник Microsoft пояснил, что такой код ошибки обычно появляется, когда Microsoft Store не может проверить лицензию приложения — например, из-за повреждённого кеша. В теории проблему должны решать стандартные меры вроде сброса кеша магазина или переустановки приложения. Но, как отмечает Windows Central, в реальности это не помогло.
В ходе собственных тестов изданию удалось избавиться от сбоя после установки свежего обновления — KB5074109. Однако гарантировать, что этот способ сработает у всех, пока нельзя.
Масштаб проблемы остаётся неясным: воспроизвести баг удаётся не всем, а причина сбоя не очень понятна. Не исключено, что дело либо в одном из обновлений Windows, либо в сбое на стороне серверов Microsoft.
Хорошая новость в том, что компания, по имеющимся данным, уже в курсе проблемы. Так что, скорее всего, исправление появится в одном из ближайших обновлений.
Свидетельство о регистрации СМИ ЭЛ № ФС 77 - 68398, выдано федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор) 27.01.2017 Разрешается частичное использование материалов на других сайтах при наличии ссылки на источник. Использование материалов сайта с полной копией оригинала допускается только с письменного разрешения администрации.