🔗 Старый добрый аппсек, часть 2
Продолжаем вспоминать ключевые вехи аппсека и смежных областей последних лет, не испоганенные агентами.
2️⃣ Протоколы и криптография
Когда в 2023 году Google раскрыл Rapid Reset, выяснилось, что мультиплексирование стримов в HTTP/2 можно обернуть против самого сервера: клиент открывает поток и тут же его отменяет, а весьма затратная по ресурсам обработка на стороне сервера всё ещё идёт. Дешёвый для атакующего усилитель, который в итоге и породил рекордные DDoS-волны. Два года спустя исследователи из Тель-Авивского университета развернули идею в обратную сторону: в MadeYouReset на отправку RST_STREAM провоцируется уже сам сервер. Лимит на клиентские сбросы, поставленный после Rapid Reset (пример самих авторов — сто RST_STREAM на соединение), здесь попросту не задействован, и на фронте поток считается закрытым, тогда как бэкенд продолжает его обрабатывать. Что любопытно, Cloudflare и защищаться от этого не пришлось: митигации, оставшиеся от Rapid Reset, прикрыли и преемника. Уязвимыми остались разве что непропатченные стеки вроде h2 старее 0.4.11.
Тот же протокол подарил атакующим и разведывательный примитив: метод CONNECT превращает прокси в сканер внутренних портов, где открытые и закрытые различаются по типу возвращаемых ошибок. Граница доверия при этом проходит между двумя машинами, по-разному понимающими состояние одного соединения.
В SSH снова прошлись по хэндшейку. Terrapin — атака усечения префикса: MitM удаляет начальные сообщения согласования; в затронутых режимах (ChaCha20-Poly1305, CBC-EtM) порядок и счётчики сообщений не аутентифицированы до завершения обмена ключами, поэтому атакующий может незаметно выбросить отдельные расширения и даунгрейдить соединение, вплоть до отключения в OpenSSH защит от timing-атак. Уязвимость была в самом протоколе, поэтому лечением стало расширение strict-kex: любое неожиданное сообщение посреди key exchange теперь рвёт соединение, а после NEWKEYS обе стороны обнуляют счётчики пакетов в OpenSSH 9.6p1 и выше.
Не обошли стороной и DNS: усилителем атаки там стала... защита. KeyTrap эксплуатирует рекомендации стандарта DNSSEC: один специально-сформированный пакет с записями, требующими валидации подписей под множеством ключей и алгоритмов, заставляет резолвер выполнить до двух миллионов раз больше работы, чем без «защиты». Резолвер в таких случаях висит часами: в замерах авторов до 16 часов (BIND 9). Уязвимыми оказались все популярные реализации. Сами авторы при этом сразу предупредили: заплатки на отдельные резолверы ломают рекомендации стандарта, чинить здесь надо сам DNSSEC. Вообще, вычислительная сложность механизмов защиты — тема отдельного поста, но тут получилось что-то вообще запредельное.
Была история и с VPN-клиентами: криптография тут даже не понадобилась, хватило таблицы маршрутизации. TunnelVision использует DHCP-опцию 121 (classless static routes): нелегитимный DHCP-сервер, внедренный в локальную сеть, отдаёт маршруты, уводящие трафик в обход туннельного интерфейса. VPN при этом честно показывает «подключено», kill-switch молчит, данные уходят в открытую. По оценке самих исследователей, эта ошибка дизайна прожила в сетевых стеках около двадцати лет, и полного фикса для всех ОС до сих пор нет.
С криптографией вышло похоже: KyberSlash показал, что в эталонной реализации Kyber, того самого, что недавно стал стандартом ML-KEM (на всякий случай: ML здесь — это Module-Lattice, а не то, что вы подумали), есть деление секретно-зависимого числителя на публичный знаменатель, а время аппаратного деления зависит от операндов. На Raspberry Pi 2 и Cortex-M4 этого хватает, чтобы восстановить секретный ключ за минуты. Авторы заодно прогнали через пропатченный Valgrind больше тысячи криптопримитивов из SUPERCOP и вытащили на свет ещё целую серию таких утечек. Слепая зона тут, судя по всему, системная. В обзорной работе о миграции ECDSA→ML-DSA утверждается, что смена алгоритма переносит с собой весь набор атак на реализацию, и привычные по ECDSA сценарии side-channel и fault-injection мутируют, находя новые мишени в решёточных подписях. Так что постквантовая миграция 2024–2026 в итоге превратилась в фабрику свежих уязвимостей, причём задолго до сколько-нибудь практичного квантового компьютера.
🙌 (продолжение всё ещё следует...)
#аппсек · #кибербез
Post #156
248
- ❤ 2
- 🔥 2
- 💯 1