Сетевик Джонни // Network Admin
6.19K subscribers
515 photos
57 videos
380 links
Я Сетевик Джонни, моя цель в телеграме рассказать все о сетях в доступной форме!

Владелец: @williamacy

Сотрудничество: @stein_media

Купить рекламу: https://telega.in/c/iscode
加入频道
🥷 Дыра в щите Cloudflare: как атака на Jabber.ru вскрыла проблему, о которой молчат c 2023

Думаю, многие помнят позапрошлогодний инцидент с Man-in-the-Middle атакой на XMPP-сервис jabber.ru. Эта история наделала много шума, но, как мне кажется, главный вывод из неё так и не был усвоен широкой аудиторией. А зря. Потому что эта атака вскрыла системную уязвимость в процессе выдачи TLS сертификатов, которая напрямую касается миллионов сайтов, особенно тех, кто доверяет свою безопасность Cloudflare.

Разбор полетов: инцидент с jabber.ru

Для тех, кто пропустил или забыл, краткий пересказ:

Что произошло? В течение нескольких месяцев (как минимум с июля по октябрь 2023 года) весь трафик крупнейшего российского XMPP-сервиса jabber.ru перехватывался и расшифровывался. Атакующие смогли получить полностью валидные TLS сертификаты от Let's Encrypt для доменов jabber.ru и xmpp.ru.

Как это сделали? Это не был взлом серверов. Атака была реализована на уровне сети хостинг-провайдеров — Hetzner и Linode. Злоумышленники (предположительно, это была операция в рамках "законного перехвата" государственными акторами) перенастроили маршрутизацию так, что весь трафик, предназначенный серверам jabber.ru, включая запросы на валидацию домена от Let's Encrypt, шёл через их инфраструктуру.

🕹 Перехватив запросы валидации (вероятнее всего, http-01 или tls-alpn-01), они успешно доказали удостоверяющему центру (УЦ) LE, что контролируют домен, и получили легитимные сертификаты. Обнаружили атаку случайно, когда один из мошеннических сертификатов истёк и не был вовремя продлён, что вызвало у пользователей ошибки подключения.

Имхо, ключевой момент здесь — уязвимость не в протоколе XMPP и не в самом УЦ Let's Encrypt. Уязвимость кроется в базовом механизме подтверждения владения доменом (Domain Validation, DV).


В следующем посту начнём с техликбеза по CAA, RFC 8657, накидайте 🔥

#Cloudflare #DNS #MITM | 😊 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11🤨2
Сетевик Джонни // Network Admin
🥷 Дыра в щите Cloudflare: как атака на Jabber.ru вскрыла проблему, о которой молчат c 2023 Думаю, многие помнят позапрошлогодний инцидент с Man-in-the-Middle атакой на XMPP-сервис jabber.ru. Эта история наделала много шума, но, как мне кажется, главный вывод…
🌐 Технический ликбез: CAA, RFC 8657 и как это должно нас спасать

Казалось бы, если твой трафик могут перехватить на уровне провайдера, то ты беззащитен. Но это не так. Для защиты от подобных сценариев существует механизм Certification Authority Authorization (CAA), описанный в RFC 8659.

Это простая DNS запись, которая говорит: "Для моего домена сертификаты может выпускать только вот этот УЦ".

# Разрешаем только Let's Encrypt
example.com. IN CAA 0 issue "letsencrypt.org"


Но, как показал случай с jabber.ru, этого недостаточно. Атакующие ведь и использовали разрешённый УЦ, который им и выдал сертификат.

Постфактум, благодаря анализу инцидента инженером по имени Хьюго Ландау (Hugo Landau), он пришёл к выводу, что предложенный им стандарт ещё в далеком 2019 году под номером RFC 8657 мог бы предотвратить подобный инцидент. Этот стандарт расширяет CAA двумя критически важными параметрами:

1. accounturi: Это «второй фактор» для выдачи сертификата. Этот параметр привязывает выдачу сертификатов к конкретному аккаунту в УЦ. URI вашего аккаунта в Let's Encrypt — это уникальный идентификатор.

# Разрешаем Let's Encrypt, но ТОЛЬКО с аккаунта с ID 12345678

example.com. IN CAA 0 issue "letsencrypt.org; accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/12345678"

Даже если злоумышленник перехватит ваш трафик, он не сможет получить сертификат, потому что его запрос придёт с другого аккаунта Let's Encrypt, а LE поддерживает этот стандарт ещё с января 2021 года. УЦ сверит accounturi из запроса с тем, что указан в вашей CAA-записи, увидит несоответствие и откажет в выпуске.

2. validationmethods: Этот параметр позволяет ограничить методы, которыми УЦ может проверять владение доменом.

# Разрешаем Let's Encrypt, но только через DNS-валидацию

example.com. IN CAA 0 issue "letsencrypt.org; validationmethods=dns-01"

Поскольку атака на jabber.ru была возможна из-за перехвата сетевого трафика, ограничение валидации методом dns-01 (который требует внесения изменений в DNS-зону, а не контроля над трафиком) сделало бы атаку значительно сложнее, а использование DNSSEC доменом могло бы сделать её вовсе невозможной.

3. Комбо

# Максимальная защита

example.com. IN CAA 0 issue "letsencrypt.org; validationmethods=dns-01;
accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/12345678"

Хьюго Ландау, автор RFC 8657, заявлял в своём анализе инцидента, что основываясь на том, что мы знаем об этой атаке, она была бы предотвращена развёртыванием этого расширения.

#Cloudflare #DNS #MITM #CAA #RFC | 😊 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍2