Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Добро пожаловать в топ-10 новых методов веб-взлома 2021 года. Это заключительный этап ежегодной работы нашего сообщества. Цель работы — выявить самые значимые в области веб-безопасности, опубликованные в 2021 году.
PortSwigger — разработчик инструментов для этичного хакинга, работа с которыми — часть нашего курса по этичному взлому.
Отбор стартовал в январе. Сообществом инфобеза было представлено 40 исследовательских работ, из которых после голосования осталось 15 кандидатов на попадание в финальный раунд. Чтобы определить официальный топ-10, экспертная группа, состоящая из известных исследователей Николя Грегуара, Соруша Далили, Filedescriptor и вашего покорного слуги, голосовала за 15 финалистов. Как обычно, мы не исключили исследование PortSwigger, но экспертная группа не может голосовать за работу, к которой имеет отношение.
Качество исследований в этом году было, прямо скажем, исключительным, то есть самым высоким с 2015 года, когда я начал участвовать. Это привело к жёсткой конкуренции за попадание в топ-10, из-за чего многих исследовательских работ высокого качества там не оказалось.
Обычно я называю нескольких фаворитов, но в этом году их слишком много, поэтому рекомендую вам изучить полный список номинантов. Огромное спасибо всем, кто внёс свой вклад в эту волну исследований!
В этом году — как среди всех участников, так и в финальной десятке — преобладала одна конкретная тема: HTTP Request Smuggling (далее — несанкционированные HTTP-запросы) и в целом атаки, направленные на несоответствия в работе синтаксического анализа.
По мере того как системы становятся всё более сложными и взаимосвязанными, эти угрозы растут. Интересно посмотреть, куда переместится поле битвы синтаксических анализаторов через несколько десятилетий, когда HTTP/1.1 станут использовать меньше. Начинаем обратный отсчёт!
10. Fuzzing for XSS via nested parsers («Автоматизированное тестирование с различными входными данными (фаззинг) для XSS с помощью вложенных парсеров»)
С такой древней темой, как XSS, легко решить, что уже всё знаешь, и сразу отвергнуть новое исследование. Но, натолкнувшись на эту жемчужину, убеждаешься, что это риск.
Автор Psych0tr1a показывает, как противопоставить друг другу правила очистки HTML с зеркальными результатами. В этом посте нет ничего лишнего, а впечатляющие примеры и чёткая практичная методология превращают его в высококлассное исследование.
9. HTTP Smuggling via Higher HTTP Versions («Несанкционированные HTTP-запросы через более поздние версии HTTP»)
В начале 2021 года считалось, что у HTTP/2, по большому счёту, нет проблем с безопасностью, кроме атак по времени и небольших DDOS-атак. Эмиль Лернер разрушил этот миф и, используя специальные инструменты и инновационные методы, выявил многочисленные дыры при переходе от HTTP/2 к HTTP/1.1. В его работе HTTP Smuggling via Higher HTTP Versions («Несанкционированные HTTP-запросы через более поздние версии HTTP») представлено много новых видов атак. И обязательно ознакомьтесь с презентацией [на русском языке]. Кроме того, недавно Эмиль написал статью об ужасающих находках в HTTP/3.
8. Practical HTTP Header Smuggling («Несанкционированные HTTP-заголовки на практике»)
Уязвимость может быть распространённой, хорошо изученной и иметь сильное влияние, но если никто не знает, как её обнаружить, то может возникнуть соблазн просто… переориентироваться на что-то более прибыльное. Несанкционированные запросы с двойной длиной содержимого уже давно тихо скрывалась в этой скрытой нише.
В работе Practical HTTP Header Smuggling Дэниел Тэтчер выделяет основной компонент несанкционированных запросов HTTP и элегантно преобразует его в стратегию, позволяющую выявлять уязвимости с двойной длиной содержимого и типичные атаки со скрытыми заголовками. И всё это интегрировано в Param Miner.
Если у вас есть сомнения относительно ценности этой методологии, они развеиваются примерами для AWS. Вы ещё узнаете об этом методе.
7. JSON Interoperability Vulnerabilities («Уязвимости межъязыкового взаимодействия в JSON»)
JSON давно известен своими странностями, но ему в основном удалось избегать шквала эксплойтов, влияющих на синтаксический анализ XML. Однако, каким бы ни был формат, если анализировать что-то дважды, что-нибудь пойдёт не так.
Джейк Миллер, автор работы JSON Interoperability Vulnerabilities подробно рассматривает, как вызвать несоответствия в работе синтаксического анализатора JSON и где этими обычно безобидными странностями могут воспользоваться как уязвимостями. С помощью специальных лабораторий на основе Docker эти уязвимости легко воспроизводить и применять на практике.
6. Cache Poisoning at Scale («Масштабное отравление кеша»)
Примеры определяют успех исследования, и в Cache Poisoning at Scale («Масштабное отравление кеша») их очень много. Youstin доказывает, что отравление веб-кеша по-прежнему носит массовый характер, однако легко остаётся незамеченным.
Исследователи часто обходят вниманием DDOS-уязвимости, но постоянные атаки по одному запросу, происходящие при отравлении веб-кеша, многими компаниями воспринимаются всерьёз.
В этой работе показано, как крошечные несоответствия, скрытые заголовки и неправильные настройки можно искусно объединить, чтобы создать серьёзную уязвимость.
5. Hidden OAuth attack vectors («Скрытые векторы атаки через OAuth»)
Хакеры обычно нацеливаются на конечные точки — они либо видны сразу, либо обнаруживаются при разведке. В работе Hidden OAuth attack vectors автор Михаил Степанкин (@Artsploit на Хабре) использует альтернативный подход и подробно рассматривает спецификации OAuth и OpenID, чтобы выявить скрытые конечные точки и недостатки дизайна, — основу для атак перечислением, отравления сеанса и подделки запросов на стороне сервера. Михаил Степанкин также обновил ActiveScan++ и Burp (файлы с наборами значений для проверки корректности учётных данных), чтобы автоматически отслеживать такие атаки и не дать им проскользнуть незамеченным.
4. Exploiting Client-Side Prototype Pollution in the wild («Использование загрязнения прототипа на стороне клиента на практике»)
Охарактеризованное Filedescriptor как «пожалуй, не самый популярный класс ошибок, так как используется лишь изредка», загрязнение прототипа было, строго говоря, методом для энтузиастов, пока не появилась A tale of making internet pollution free — Exploiting Client-Side Prototype Pollution in the wild («История о том, как освободить интернет от загрязнения. Практическое использование загрязнения прототипа на стороне клиента»).
В этом феноменальном исследовании определяется чёткая, продуманная методология идентификации и эксплуатации уязвимости. Кроме того, работа выделяется звёздным коллективом авторов под руководством s1r1us. По меткому замечанию Soroush, «это как смотреть "Мстителей"!»
3. A New Attack Surface on MS Exchange («Новая поверхность атаки на MS Exchange»)
Орандж Цай с серией статей из 3 частей A New Attack Surface on MS Exchange в топ-10 уже 5-й год подряд. В большинстве исследований акцент делается на выявлении общих для многочисленных веб-сайтов классов уязвимостей. В этой же работе поразительно глубоко рассматривается одна цель с катастрофическими результатами атаки.
Эта работа очень понравилась всем экспертам. Они охарактеризовали её как «безупречное введение в архитектуру Exchange и поверхность атаки с надёжными эксплойтами и огромным влиянием», «вдохновляющее чтение, если вы хотите начать серьёзные исследования», и «осиное гнездо» для специалистов по безопасности, после которого «многие по-иному взглянут на это популярное почтовое решение и поймут, что даже самые безопасные на вид приложения могут быть легко взломаны, если быть настойчивым и обращать внимание на все детали».
2. HTTP/2: The Sequel is Always Worse («HTTP/2: Продолжение всегда хуже»)
Девять месяцев я готовил собственную работу HTTP/2: The Sequel is Always Worse, и оказалось, что её тема совпадает с темой работы Эмиля выше, но в последний момент положение спасли прорывные результаты.
Вот что сказали другие эксперты: «Всегда было интересно, что может пойти не так при преобразовании между бинарными и ASCII-протоколами <…> В этом исследовании есть всё, что нужно читателю. Кроме самого исследования и результата совершенно особенной эту работу делают качественный материал, инструментарий и презентация». «Это хорошее исследование о том, как сильно HTTP/2 осложняет всю ситуацию. Переход на HTTP/2 продолжается, поэтому несанкционированные запросы станут ещё актуальнее благодаря бесконечным повышениям/понижениям версий HTTP».
Если вам понравилась эта презентация, очень рекомендую ознакомиться и с другими высококачественными исследовательскими работами по HTTP Request Smuggling в полном списке номинантов — просто нажмите «CTRL+F» и введите «smuggling»!
1. Dependency Confusion («Путаница зависимостей»)
Некоторые (лучшие) исследования отличаются элегантной простотой, которая обманывает очевидностью. В работе «Путаница зависимостей» [ссылка на наш перевод] Алекс Бирсан раскрывает критические недостатки дизайна и конфигурации основных пакетных менеджеров, используя неоднозначность имён пакетов, чтобы удалённо выполнить код и получить вознаграждение более 100 тысяч долларов за один баг от многих крупных компаний. Кроме сумасшедших результатов в работе на протяжении всего исследования читателю даётся исключительно хорошее объяснение.
Обсуждения этой атаки и мер по смягчению её последствий ещё продолжаются. Очень любопытно увидеть, куда повернёт это направление исследований. Неужели атака настолько элегантна, что её нельзя усовершенствовать? Или это лишь скромное начало нового постоянного класса атак? В одном мы уверены: если выбирать для чтения только одно из этих исследований, выберите Dependency Confusion. Поздравляем Алекса с заслуженной победой!
Заключение
2021 год был действительно хорош для исследований в области веб-безопасности.
Топ-10 этого года — только вершина айсберга, и мы рекомендуем ознакомиться с полным списком номинантов. Топ-10 2020 года тоже стоит посмотреть. Вы также можете знакомиться с лучшими исследованиями этого года в момент их выхода, подписавшись на r/websecurityresearch и @PortSwiggerRes.
Кроме того, если вы сами хотите провести такого рода исследование, я написал несколько рекомендаций. И в заключение нужно упомянуть неоднократно номинированную ультрамодную технику взлома, известную как «F12». К сожалению, она не прошла отбор.
Ещё раз спасибо всем, кто принял участие! Без вашего участия, ваших голосов и, самое главное, исследований это было бы невозможно. До следующего раза!
Продолжить изучение информационной безопасности и веб-разработки вы сможете на наших курсах:
Профессия Этичный хакер (12 месяцев)
Профессия Fullstack-разработчик на Python (15 месяцев)
Выбрать другую востребованную профессию.
Сокращённый каталог курсов и профессий
Data Science и Machine Learning
Профессия Data Scientist
Профессия Data Analyst
Курс «Математика для Data Science»
Курс «Математика и Machine Learning для Data Science»
Курс по Data Engineering
Курс «Machine Learning и Deep Learning»
Курс по Machine Learning
Python, веб-разработка
Профессия Fullstack-разработчик на Python
Курс «Python для веб-разработки»
Профессия Frontend-разработчик
Профессия Веб-разработчик
Мобильная разработка
Профессия iOS-разработчик
Профессия Android-разработчик
Java и C#
Профессия Java-разработчик
Профессия QA-инженер на JAVA
Профессия C#-разработчик
Профессия Разработчик игр на Unity
От основ — в глубину
Курс «Алгоритмы и структуры данных»
Профессия C++ разработчик
Профессия Этичный хакер
А также
Курс по DevOps
Все курсы