MitM и DOS атаки на домены с использованием дублирующих сертификатов

Из-за особенностей работы центров сертификации часто выходит так, что у кого-то еще есть действующий https-сертификат для вашего домена. Что может пойти не так?

HTTPS-сертификаты — одна из основ безопасности в Интернете. Однако с ними все не так гладко, как хотелось бы. Мы уже говорили о том, почему существующая система не всегда обеспечивает безопасность на стороне пользователей. Теперь обсудим, что может пойти не так на стороне владельцев сайтов.

Два действительных сертификата для одного и того же домена

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

Что тут может пойти не так, и насколько часто данная проблема встречается в реальной жизни? На конференции DEF CON 26 исследователи Иэн Фостер и Дилан Эйри представили доклад, посвященный данной проблеме. Из него следует, что а) неприятностей на самом деле даже больше, чем может показаться на первый взгляд, и б) встречается данная проблема на удивление часто.

Наиболее очевидная из неприятностей, которые могут случиться, когда у кого-то еще есть действующий сертификат на принадлежащий вам домен — это атака типа «человек посередине» на пользователей вашего сайта.

Используя базу сертификатов проекта Certificate Transparency, Фостер и Эйри провели анализ и обнаружили, что пересечение сертификатов встречается в 1,5 миллиона случаев — это, на секундочку, почти 0,5% всего Интернета. Причем для четверти из этих пересечений предыдущий сертификат все еще действует — то есть 375 тысяч доменов уязвимы для атаки «человек посередине».

Однако это еще не все. Достаточно распространенной практикой является получение одного сертификата для нескольких доменов. Причем счет легко может идти на десятки и даже сотни. К примеру, Фостер и Эйри смогли обнаружить сертификат, который выдан сразу для 700 доменов — по словам исследователей, среди этих доменов есть по-настоящему популярные.

Некоторые из этих 700 доменов в данный момент свободны — следовательно, любой желающий может зарегистрировать один из них и получить для него https-сертификат. Возникает вопрос: имеет ли новый владелец домена право отозвать предыдущий сертификат, чтобы его сайт не был уязвим для атаки «человек посередине»?

Можно ли отозвать сертификат?

Отозвать сертификат возможно. В регламенте работы центров сертификации предусмотрен отзыв сертификата в случае, «если любая информация в сертификате является или становится неверной или неточной». Причем отзыв должен быть произведен за 24 часа с момента получения уведомления.

Фостер и Эйри проверили, как это происходит на практике. Оказалось, что это сильно отличается для разных центров сертификации. Например, у Let’s encrypt для этого есть автоматизированные инструменты, которые позволяют отозвать сертификат очень быстро — практически в режиме реального времени. В других центрах сертификации потребуется общение с живыми людьми, так что придется подождать. Иногда необходимо проявлять настойчивость и ждать заметно дольше регламентированных 24 часов. В особо запущенных случаях отозвать сертификат может и вовсе не получиться — например, переписка исследователей с Comodo закончилась предложением «забыть про этот сертификат и заказать новый».

Так или иначе, отозвать дублирующий сертификат чаще возможно, чем нет. Это одновременно и хорошая, и плохая новость. С одной стороны, новый владелец домена в большинстве случаев может защититься от атаки «человек посередине», использующей ранее выданный сертификат. С другой стороны, это означает, что кто-то может приобрести свободный домен из числа тех, для которых был выдан «коллективный» сертификат, и отозвать его. И тем самым сильно затруднить посещение соответствующих сайтов.

Насколько распространена данная проблема? Оказывается, еще шире, чем предыдущая: 7 миллионов доменов — более 2% всего Интернета! — делят сертификат с доменами, регистрация которых уже истекла. 41% ранее полученных сертификатов все еще действует. Следовательно, несколько миллионов доменов уязвимы для DoS-атаки, использующей отзыв ранее выданного сертификата.

Вернемся к примеру с тем самым сертификатом на 700 доменов. Чтобы продемонстрировать насущность данной проблемы, исследователи приобрели один из свободных доменов, для которых выдан этот сертификат. Так что теперь теоретически у них есть возможность устроить DoS-атаку на сотни работающих сайтов.

Как защититься?

Итого: 375 тысяч доменов уязвимы к MiTM-атаке и несколько миллионов — к DoS-атаке с использованием двойного сертификата. Возможно, в этом списке есть и ваши домены. Поскольку доклад уже прозвучал на крупнейшей хакерской конференции, можете не сомневаться — прямо сейчас кто-то ищет домены, уязвимые к этим атакам. Как же от этого защититься владельцам сайтов? Фостер и Эйри предлагают следующие меры:

  • Использовать HTTP-заголовок Expect-CT с директивой enforce, чтобы быть уверенным в том, что для вашего домена доверенными являются только те сертификаты, которые записаны в базу Certificate Transparency.
  • Проверять в базе Certificate Transparency домены на наличие для них действующих сертификатов, выданных предыдущим владельцам. Это можно делать с помощью созданного Facebook инструмента Certificate Transparency Monitoring. Чтобы упростить задачу, исследователи предлагают всем желающим пользоваться созданным ими инструментом для поиска доменов, подверженных описанным уязвимостям.

К этому мы можем добавить еще несколько советов:

  • Проведите полную инвентаризацию сайтов, принадлежащих вашей компании, и проверьте, не существует ли для соответствующих доменов ранее выданных сертификатов. Если такие найдутся — постарайтесь связаться с выдавшими их сертификационными центрами и попросите их отозвать эти сертификаты.
  • Не стоит получать один сертификат для множества доменов. Особенно если в вашей компании принято создавать большое количество лендингов и доменов под них, за работоспособностью которых их создатели не очень-то следят. Если регистрация подобного «заброшенного» домена закончится и кто-то посторонний зарегистрирует его на себя, то ему останется лишь отозвать сертификат, чтобы «положить» ваш корпоративный сайт.
  • Следует заранее подумать о ситуации, когда сертификат окажется скомпрометирован — в этом случае придется срочно его отзывать. Как показывает исследование, некоторые центры сертификации реагируют слишком медленно — вероятно, лучше иметь дело с теми, кто обеспечивает большую оперативность.
Советы