Контрольный список по обеспечению безопасности при использовании Firebase AI Logic

Если вы вызываете Gemini API напрямую из мобильных и веб-приложений, для защиты внутренней инфраструктуры, квот и собственных запросов требуется многоуровневый подход. Используйте этот контрольный список, чтобы реализовать рекомендуемые меры безопасности для Firebase AI Logic.

Проверка приложений, устройств и пользователей

Проверять, что входящие запросы поступают от подлинных пользователей, а также от легитимных и неизмененных экземпляров вашего приложения, запущенных на подлинных устройствах.

Применить Firebase App Check

Принудительно используйте Firebase App Check, чтобы защитить Gemini API от злоупотреблений, когда он вызывается непосредственно из вашего приложения. Если App Check используется принудительно, он проверяет, исходят ли входящие запросы из вашего подлинного приложения и/или с немодифицированного устройства.

App Check поддерживает поставщиков подтверждения для платформ Apple (DeviceCheck, App Attest или reCAPTCHA Enterprise), Android (Play Integrity или reCAPTCHA Enterprise) и веб-сайтов (reCAPTCHA Enterprise). Все эти поставщики поддерживаются также в приложениях Flutter и Unity.

С начала июля 2026 года Firebase будет автоматически применять App Check для Firebase AI Logic во время пошаговой настройки в консоли Firebase. Если вы настроили Firebase AI Logic ранее, убедитесь, что принудительно применяется App Check. Для локальной разработки можно настроить App Check поставщика отладочной информации, а затем зарегистрировать приложение у поставщика информации для рабочей среды перед выпуском для конечных пользователей.

Как включить защиту от повторного воспроизведения с помощью токенов ограниченного использования

При настройке App Check рекомендуем включить защиту от повторного воспроизведения, чтобы токены App Check можно было использовать только один раз. Этот вариант обеспечивает более надежную защиту, чем базовый, и позволяет задать подходящий уровень защиты для вашего приложения и вариантов его использования.

Как настроить ограничения для ключей API Firebase

Ключи API Firebase идентифицируют ваш проект и приложение Firebase при отправке запросов. Чтобы предотвратить несанкционированное использование ключей API:

  • В консоли Google Cloud задайте ограничения для приложений, чтобы разрешить использование ключа только для запросов с определенным идентификатором пакета (Apple), именем пакета и цифровым отпечатком SHA-1 (Android) или HTTP-реферером (веб-сайт).

  • Проверьте список разрешенных API в разделе Ограничения API для каждого ключа:

Обратите внимание, что API, связанные с Firebase, используют ключи API только для идентификации проекта или приложения Firebase, а не для авторизации при вызове API.

Ограничить запросы только для аутентифицированных пользователей

Рекомендуем включить режим аутентифицированных пользователей, чтобы все запросы через Firebase AI Logic должны были включать действительные учетные данные из Firebase Authentication. Если запрос поступает от конечного пользователя, не прошедшего аутентификацию, он отклоняется с ошибкой 401: unauthenticated.

Защита запросов и их усиление

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

Используйте шаблоны запросов на сервере

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

Приложение ссылается только на идентификатор шаблона и передает динамические входные переменные. Шаблоны запросов к серверу также позволяют обновлять запросы или переключать модели по запросу, не выпуская новую версию приложения.

Проверка и очистка переменных шаблона, предоставленных клиентом

Шаблоны запросов на сервере защищают дизайн запроса, но шаблоны, которые принимают динамические переменные, могут быть уязвимы для внедрения запросов. Поскольку шаблоны объединяют переменные, введенные пользователем, в окончательный запрос, убедитесь, что вы выполнили следующие действия:

  • Проверяйте и очищайте все данные, введенные пользователем на стороне клиента, прежде чем передавать переменные в шаблон (например, применяйте ограничения на количество символов и ожидаемые форматы).
  • Включите в шаблоны понятные инструкции для системы, которые определяют, как обрабатывать пользовательский ввод.

Принудительное использование режима только шаблонов

Когда все функции приложения будут использовать шаблоны запросов на сервере, можно включить режим только шаблонов. Принудительное применение Firebase AI Logic блокирует все прямые запросы без шаблона к Gemini API (403: unauthorized), не позволяя злоумышленникам отправлять произвольные запросы или злоупотреблять квотой.

Мониторинг, лимиты и оплата

Отслеживайте входящий трафик и аномалии безопасности, а также защищайте проект от неожиданных скачков использования и неконтролируемых расходов.

Как настроить мониторинг ИИ в консоли Firebase

Настройте мониторинг ИИ в консоли Firebase, чтобы отслеживать ключевые показатели, такие как количество запросов, задержка, использование токенов и частота ошибок (включая сбои аутентификации 401 и блокировки только шаблонов 403). Вы также можете изучать отдельные трассировки в консоли Google Cloud.

Как задавать ограничения частоты запросов и управлять квотами

Чтобы защитить проект от неожиданных скачков использования и атак на кошелек, выполните следующие действия:

Избегайте неожиданных счетов с помощью оповещений и пределов расходов

Если в вашем проекте Firebase используется тарифный план Blaze с оплатой по мере использования:

Дальнейшие действия