Google заплатила студенту $36 337 за уязвимость в Google App Engine

Google заплатила студенту $36 337 за уязвимость в Google App Engine

Google заплатила студенту $36 337 за уязвимость в Google App Engine

Молодой исследователь в области безопасности получил от Google $36 337 за раскрытие информации о серьезной уязвимости в Google App Engine. Вознаграждение досталось 18-летнему студенту Республиканского университета в Уругвае.

Google App Engine представляет собой службу хостинга сайтов и web-приложений на серверах Google с бесплатным именем <имя_сайта>.appspot.com либо с собственным именем, задействованным с помощью служб Google.

По словам специалиста, в начале этого года ему удалось получить доступ к среде разработки Google App Engine, в которой была возможность использовать внутренние API.

Каждое приложение Google App Engine (GAE) отвечает на HTTP-запросы с заголовком «X-Cloud-Trace-Context». В процессе исследования эксперт понял, как приложения GAE выполняют внутренние действия, включая запись в журнал и извлечение токенов OAuth.

Внутренние действия выполнялись путем отправки сообщений Protocol Buffers (PB) на внутреннюю конечную точку HTTP. В ответ шло соответствующее сообщение PB (ответ от API), либо сообщение об ошибке.

Далее эксперт воспользовался Nmap, с помощью которой обнаружил, что порт 4 был открыт. Затем исследователь поднял клиент C++ и запустил его на GAE, что привело к обнаружению службы gRPC, которая запускала API «apphosting.APIHost».

Студент создал Java-библиотеку, которая считывала аргументы, благодаря этому ему удалось узнать имена API, например, «logservice» и «stubby».

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

Google посчитала этот недостаток очень серьезным, за что студент и получил щедрое вознаграждение.

Вышла утилита RKN Block Checker для диагностики блокировок

Разработчик Дмитрий Виноградов представил утилиту RKN Block Checker с открытым исходным кодом. Она помогает понять, почему конкретный сайт не открывается: это обычная сетевая проблема или блокировка на стороне провайдера / регуляторной инфраструктуры.

Проект написан на Python и опубликован под лицензией MIT. Утилита работает из командной строки и проверяет соединение по цепочке DNS → TCP → TLS → HTTP.

Идея простая: не просто выдать вердикт, что сайт недоступен, а показать, на каком именно уровне всё сломалось. Например, если системный DNS не даёт нормальный ответ, а Cloudflare DoH возвращает корректный адрес, это может указывать на DNS-подмену. Если TCP-соединение на 443-й порт сбрасывается, речь может идти о блокировке на уровне IP.

Если TCP проходит, но соединение рвётся на TLS-рукопожатии с SNI, это уже похоже на работу DPI / ТСПУ. А если сайт открывается, но вместо страницы приходит заглушка провайдера или код 451, утилита фиксирует и такой сценарий.

 

Автор отдельно подчёркивает, что смысл RKN Block Checker не в том, чтобы заменить браузер. Браузер и так сообщает, что сайт не открылся. Здесь задача другая — разложить проблему по слоям и дать пользователю более понятную картину, где именно произошёл сбой и на что это похоже.

Утилита сравнивает ответы системного DNS и DNS over HTTPS через Cloudflare, проверяет обычное TCP-подключение, запускает TLS-handshake с SNI целевого домена и затем делает HTTP-запрос. Вердикт выставляется по первому уровню, на котором возникла ошибка.

 

У проекта есть и ограничения. Пока поддерживается только IPv4. Списки целей жёстко заданы в коде и включают около 20 сайтов на категорию, поэтому инструмент не поймает все частные случаи. Кроме того, это разовая проверка без повторов и долгосрочного мониторинга, хотя JSON-вывод можно использовать в cron для регулярных запусков.

RSS: Новости на портале Anti-Malware.ru