Mozilla и Apple забанят удостоверяющие центры WoSign и StartCom

dartraiden 5 октября 2016 в 00:43 48,1k

Расследование, проведённое Mozilla, показало, что китайский удостоверяющий центр WoSign (о бесплатных сертификатах которого был ряд статей на Хабре) за последние пару лет допустил вопиющее количество нарушений.

2015


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

Казалось бы, ничего серьёзного. Но это уже само по себе — сигнал удостоверяющему центру обратить внимание на происходящее и наладить механизмы проверок. Однако политика выдачи сертификатов, применяемая WoSign, отстаёт от их же собственной практики. Изменения в политику вносились после инцидентов, чтобы задним числом сгладить и оправдать допущенные отклонения.

Кроме того, были обнаружены недочёты при проверке «является ли получатель сертификата владельцем домена, сертификат для которого он запрашивает». Сами по себе не критичные, они всё же могли упростить выдачу сертификата злоумышленникам. Например, подтверждение владения доменом можно было выполнить, используя динамические порты (выше 50000). В Mozilla же придерживаются мнения, что выдача сертификатов должна производится с использованием лишь привилегированных портов (1024 и ниже). При этом, WoSign не логгировала используемые номера портов, следовательно, масштаб проблемы невозможно оценить в полной мере.

Дальше последовали серьёзные уязвимости. Первая позволяла злоумышленнику, владеющему поддоменом, получить сертификат на весь домен. Обнаружившему это исследователю удалось получить фиктивные сертификаты GitHub (например, test.github.io), Microsoft и Alibaba. WoSign знала об уязвимости на протяжении 14 месяцев, но не исправила её, ограничившись отзывом сертификатов, содержащих «github» в имени домена. Выдача ошибочных сертификатов продолжалась. Оставшиеся проблемные сертификаты компания согласна отозвать лишь в случае обращений со стороны владельцев пострадавших доменов.

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

Словно этого было мало, WoSign втихомолку приобрела израильский удостоверяющий центр StartCom. Более того, когда ребята из Mozilla намекнули, что «так делать нехорошо» (и это мягко сказано, такое сокрытие нарушает политику Mozilla), WoSign принялась всё отрицать и пытаться предотвратить обнародование этих сведений.

Когда стало ясно, что шила в мешке не утаишь, компания выпустила пресс-релиз, признавшись в «осуществлении инвестиций в StartCom». При этом, единственным руководителем StartCom и, одновременно, CEO WoSign является один и тот же человек. Существуют и технические доказательства того, что StartCom (в настоящий момент) использует большую часть инфраструктуры WoSign. Многовато получается совпадений для компаний, которые, как гласит пресс-релиз WoSign, «действуют и управляются независимо друг от друга».

2016


Следующий год WoSign начала с того, что в середине января задним числом выпустила сертификаты SHA-1. Дату «отмотали» на месяц назад. Это позволило избежать блокировки сертификатов популярными браузерами, которые договорились с 2016 года принимать лишь сертификаты SHA-2, поскольку из-за роста вычислительных мощностей алгоритм SHA-1 уже сдаёт позиции и признан недостаточно стойким. В документации CAB Forum чётко регламентируется — с 2016 года удостоверяющие центры не должны выпускать сертификаты с использованием SHA-1:

Effective 1 January 2016, CAs MUST NOT issue any new Subscriber certificates or Subordinate CA certificates using the SHA‐1 hash algorithm.

Три сертификата удалось разоблачить из-за невнимательности WoSign: внедрённые в три из них STC-метки (signed certificate timestamp) указывали на середину января 2016, из чего явно следует, что сертификаты не могли быть созданы раньше этого срока.

Ещё 62 сертификата выявили благодаря тому, что они были выданы в воскресенье. Это совершенно нехарактерно для WoSign — в выходной день сотрудники в Китае не работают и сертификаты не выдаются. Были и другие косвенные свидетельства подлога даты.

В июле отличилась уже StartCom со своим сервисом StartEncrypt, запущенном в качестве ответа популярному Let's Encrypt. Просто поменяв один параметр POST-запроса в конце автоматической проверки, можно было добиться того, что сертификат имел подпись не от «StartCom Class 1 DV Server CA», а «WoSign CA Free SSL Certificate G2» или даже «CA 沃通根证书» (ещё один корневой сертификат WoSign). Некоторые из из этих сертификатов, выпущенные StartCom и подписанные «WoSign CA Free SSL Certificate G2», к тому же, датировались задним числом.

Формально, выпуск задним числом не запрещён, но это порочная практика. WoSign всячески отрицала, что подделала дату выпуска этих сертификатов. Её представители утверждали, что к этому времени уже убрали с «боевых» серверов соответствующий код, который фальсифицировал дату. Но как же тогда парни из StartCom смогли использовать код, который даже сама WoSign уже использовать перестала?

В целом, этот эпизод демонстрирует безалаберность программистов — если в столь важном процессе, как выпуск сертификатов, оставить опасный код, то он рано или поздно «выстрелит». Что и произошло.

Кроме того остаётся открытым вопрос, как вообще StartCom так свободно может выпустить сертификат от имени WoSign? Ведь CEO WoSign уверял всех, что компании работают совершенно независимо.

Дальше — больше: в StartEncrypt обнаружили критические уязвимости. Одна позволяла в качестве подтверждения контроля над доменом указать путь к любому существующему файлу. Например, загрузить файл в Dropbox и указать путь к нему. Результатом стал бы выпуск сертификата для dropbox.com. С помощью другой уязвимости злоумышленник мог получить сертификат для любого сайта, поддерживающего OAuth 2.0 (google.com, facebook.com, paypal.com, linkedin.com, login.live.com).

И наконец, в сентябре 2016 года кто-то из сообщества заметил, что на скриншоте, приложенном к одному из отчётов WoSign, засветился вывод утилиты dig из пакета bind-utils. Версия этой утилиты — 9.7.3-8.P3.el6. «el6» означает «Red Hat Enterprise Linux 6». Конечно, поддержка RHEL6 оканчивается лишь в 2016 году, но вот актуальная версия bind-utils в ней — 9.8.2-0.47.rc1.el6. А «9.7.3-8.P3.el6» соответствует не обновлённому пакету прямиком из 2011 года. За эти пять лет в апстриме закрыли 19 уязвимостей. Пусть ни одна из них не была критической, невольно задаёшься вопросом — может, в WoSign за столько лет не удосужились обновить не только лишь один сервер, но и всю инфраструктуру?

И что в итоге?


Moziila решила на год перестать доверять новым сертификатам WoSign и StartCom. Выданные ранее, хорошо это или плохо, остаются в силе. За отпущенный год удостоверяющие центры должны исправить все недостатки, а потом пройти ряд проверок. Иначе, их сертификаты будут заблокированы навсегда.

Корпорация Apple, ознакомившись с отчётом, объявила что iOS и macOS на неопределённый срок прекращают доверять сертификатам, которые выпущены после 19 сентября 2016 года. Поскольку в продуктах Apple корневые сертификаты WoSign не предустановлены, забанят промежуточные сертификаты от StartCom и Comodo, используемые WoSign.

Реакция остальных крупнейших игроков на рынке браузеров (Google и Microsoft) пока неизвестна.

Дополнение от 11.10.2016: китайская компания Qihoo 360, владеющая обоими удостоверяющими центрами, согласилась полностью разделить WoSign и StartCom, после чего пройти все требуемые проверки. Кроме того, отстранён от должности глава WoSign.

Дополнение от 26.10.2016: Начиная с Firefox 51, сертификаты, выданные WoSign и StartCom после 21 октября 2016 года, будут считаться недействительными. Сертификаты, использующие SHA-1 и выданные задним числом, отзываются через CRL. Корневые сертификаты WoSign и StartCom, с помощью которых были осуществлены нарушения, удалят в будущем. Удостоверяющим центрам придётся выпустить новые корневые сертификаты. Если Mozilla согласится эти новые корневые сертификаты принять, то их включение как раз подгадают к удалению старых. А если не согласится, то старые сертификаты всё равно удалят после марта 2017 года. Что касается аудиторской конторы «Ernst & Young Hong Kong», прозевавшей нарушения у WoSign, то их аудитам отныне доверия нет.

Дополнение от 01.11.2016: Chrome 56 будет помечать сертификаты, выданные WoSign и StartCom после 21 октября 2016 года, как не заслуживающие доверия.

Дополнение от 08.07.2017: Начиная с Chrome 61, полностью прекращается доверие всем сертификатам WoSign и StartCom, даже тем, которые выпущены до 21 октября 2016 года.

Дополнение от 09.08.2017: Microsoft также прекращает доверие сертификатам этих удостоверяющих центров. Windows продолжит доверять лишь сертификатам, выпущенным ранее 26 сентября 2017 года.
Проголосовать:
+64
Сохранить: