Хотели добавить карту на сайт, а оплатили доступ к ИИ для половины интернета. Так работает новая уязвимость Google

Google признала ошибку в системе безопасности API после обнаружения утечек в собственных продуктах.


05eclzr12l3lczyqfw79c4csmywfe35n.jpg

Google много лет убеждал разработчиков, что ключи Google API можно спокойно оставлять на виду, прямо в исходном коде сайта. Такие ключи легко узнать по началу «AIza», их вставляют в страницы для Карт Google, Firebase и других сервисов. Теперь выяснилось, что привычное правило перестало работать.

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

Авторы расследования из The Dig пишут , что проблема в архитектуре. В Google Cloud один и тот же формат ключа используют для двух разных задач. Исторически ключ служил скорее «ярлыком проекта» для учёта и оплаты, а не секретом. Поэтому Google прямо говорил, что ключи API не относятся к секретам, и даже в документации по Картам Google предлагал вставлять ключ в код страницы. Для таких ключей существуют ограничения по источнику запроса, например по списку разрешённых адресов страниц, но подобные ограничения обходят, а сами ключи изначально не проектировали как полноценные учётные данные.

Ситуация меняется, когда в том же проекте включают API Gemini, в тексте он называется Generative Language API. После включения у уже существующих ключей в проекте может появиться доступ к «чувствительным» точкам Gemini. Предупреждения в интерфейсе, письма или отдельного подтверждения авторы не увидели. Вчерашний ключ для виджета карты, который годами лежал в публичном JavaScript, внезапно начинает работать как ключ к Gemini. Достаточно, чтобы кто-то в команде включил Gemini для внутреннего прототипа, а старый ключ остался прежним и продолжил жить в исходниках сайта.