В 2021 году группа исследователей, состоящая из ИБ-специалистов и ученых, обнраужила в «Великом китайском файрволе» уязвимость, получившую название Wallbleed (в честь нашумевшей проблемы Heartbleed в OpenSSL). Уязвимость, связанная с утечкой данных, использовалась для изучения внутренней работы файрвола.
Невзирая на название, эксперты Great Firewall Report подчеркивают, что проблема не имеет никакого отношения к оригинальной Heartbleed. Просто уязвимость тоже связана с out-of-bounds чтением, но с ее помощью исследователям удавалось раскрывать только по 125 байт за раз.
Напомним, что «Великий китайский файрвол» появился еще в конце 90-х годов и со временем становился все более сложным. Его основная цель — блокировать посещение китайскими гражданами определенных иностранных сайтов и замедлять разрешенный интернет-трафик, передаваемый между Китаем и иностранными государствами.
Обычно роль «Великого китайского файрвола» заключается в фильтрации и блокировке контента путем перехвата DNS-запросов и предоставлении недействительных ответов, перенаправляющих пользователей с определенных сайтов.
Уязвимость Wallbleed была найдена в подсистеме DNS-инъекций, которая отвечает за генерацию подложных DNS-ответов, когда пользователь из Китая пытается посетить запрещенные ресурсы.
Когда человек пытается зайти на запрещенный сайт, его устройство запрашивает IP-адрес домена через DNS, чтобы установить с ним соединение. Система обнаруживает и перехватывает этот DNS-запрос, после чего отправляет пользователю DNS-ответ с фальшивым IP-адресом, ведущим в никуда.
Уязвимость Wallbleed вызвана ошибкой в парсере DNS-запросов, который при определенных условиях непреднамеренно возвращал клиенту до 125 байт дополнительных данных из памяти вместе с ответом. То есть данные утекали с машин, проверяющих DNS-запросы, которые, вероятно, нужно было заблокировать. Тщательно подготавливая свои DNS-запросы, исследователи получали по 125 байт памяти от серверов «Великого китайского файрвола», проверяющих эти запросы.
Отмечается, что «Великий китайский файрвол» уже много лет использует DNS-инъекции для осуществления фильтрации, и по меньшей мере три таких системы работают одновременно. Однако существуют и другие подсистемы. В результате, даже если пользователю удается получить правильный DNS-ответ, срабатывают другие механизмы, и доступ все равно блокируется.
В своем докладе исследователи подчеркивают, что уязвимость Wallbleed «дала беспрецедентный взгляд на "Великий китайский файрвол"» и очень помогла в его изучении.
В частности, с помощью Wallbleed удалось извлечь данные о сетевом трафике в открытом виде, понять, как долго байты остаются в памяти (обычно от нуля до пяти секунд), и сделать выводы об архитектуре процессора (это x86_64).
Также удалось узнать, что уязвимые промежуточные устройства способны перехватывать трафик с сотен миллионов IP-адресов в Китае. То есть они, как и ожидалось, обрабатывают трафик со всей страны.
Стоит отметить, что в прошлом проводились различные исследования, но специалисты Great Firewall Report утверждают, что ранее о промежуточных устройствах и внутреннем устройстве файрвола было известно не так уж много.
К примеру, еще в 2010 году в Twitter был опубликован однострочный скрипт, который позволял видеть 122 байта памяти «Великого китайского файрвола» из-за дефекта DNS. Эту проблему исправили лишь в ноябре 2014 года.
Теперь специалисты использовали машину в Массачусетском университете в Амхерсте, чтобы непрерывно эксплуатировать Wallbleed для мониторинга инфраструктуры файрвола в период с октября 2021 года по март 2024 года. За счет этого удалось узнать, как осуществляется поддержка «Великого китайского файрвола», а также зафиксировать две попытки пропатчить уязвимость Wallbleed: в сентябре-октябре 2023 года и в марте 2024 года.
В итоге в докладе фигурирует уязвимость Wallbleed v1, существовавшая до появления первого патча, а также Wallbleed v2 — новая итерация той же ошибки, которая позволяла экспертам изучать файрвол вплоть до марта 2024 года, после чего ошибка была устранена окончательно.