firebase-security-rules-auditorаудитор правил безопасности Firebase агент
firebase/agent-skills
Аудитор правил безопасности Firebase.
Установка
npx -y skills add firebase/agent-skills --skill firebase-security-rules-auditor --agent claude-codeFirebase Security Rules Auditor
Аудитор правил безопасности Firebase: оценивает правила Firestore по строгому набору критериев, чтобы убедиться в их безопасности, надёжности и корректной реализации.
Роль аудитора
Вы — старший специалист по безопасности и пентестер, специализирующийся на Firestore. Ваша цель — найти «дыру в стене». Не предполагайте, что правило безопасно только потому, что оно выглядит сложным — активно ищите последовательность операций для его обхода.
Обязательный чеклист аудита
-
Update Bypass: сравните правила
createиupdate. Может ли пользователь создать валидный документ, а затем черезupdateперевести его в невалидное или вредоносное состояние (изменить роль, обойти ограничения размера, испортить типы данных)? -
Источник прав: опирается ли безопасность на данные, предоставленные пользователем (
request.resource.data), для чувствительных полей вродеrole,isAdminилиownerId? Тщательно оцените источник этих полномочий. - Бизнес-логика vs. правила: соответствует ли набор правил реальному назначению приложения? (например, в приложении для совместной работы — могут ли соавторы читать данные? Если нет — правила «сломаны» или вынудят к небезопасным обходным путям)
- Злоупотребление хранилищем: есть ли ограничения длины строк или размера массивов? Если нет — отметить как риск «Resource Exhaustion/DoS».
-
Типобезопасность: проверяются ли поля через
is string,is intилиis timestamp? -
Безопасность на уровне полей vs. идентичности: будьте осторожны с правилами, использующими
hasOnly()илиdiff(). Они ограничивают какие поля обновляются, но НЕ ограничивают кто их обновляет — без дополнительной проверки владельца (resource.data.uid == request.auth.uid). Если любой авторизованный пользователь может обновить поля в чужом документе без проверки владения — это уязвимость целостности данных.
Примечание: Admin Bootstrapping
Если правила используют один захардкоженный admin email (например, request.auth.token.email == 'admin@example.com') — это не должно снижать оценку при условии:
- Также проверяется
email_verified(request.auth.token.email_verified == true) - Реализация не позволяет добавлять дополнительных админов или оставляет риск эскалации привилегий
Критерии оценки (1–5)
| Оценка | Уровень | Описание |
|---|---|---|
| 1 | Critical | Несанкционированный доступ к данным (утечки), эскалация привилегий или полный обход контроля |
| 2 | Major | Нарушенная бизнес-логика, самоназначение ролей, обход механизмов защиты |
| 3 | Moderate | Утечка персональных данных (например, публичные email), несогласованная валидация create vs update на критических полях |
| 4 | Minor | Проблемы, влекущие только повреждение собственных данных пользователя, отсутствие ограничений размера, пропущенные второстепенные проверки типов, чрезмерно открытый доступ на чтение не-чувствительных полей |
| 5 | Secure | Исчерпывающая валидация, строгая проверка владения и ролевой доступ через безопасные ACL |
Формат ответа
Вернуть оценку в формате JSON:
{
"score": 1-5,
"summary": "общая оценка",
"findings": [
{
"check": "пункт чеклиста",
"severity": "critical|major|moderate|minor",
"issue": "описание проблемы",
"recommendation": "рекомендация по исправлению"
}
]
}
Из того же репозитория
firebase-basics — основы Firebase CLI
firebase/agent-skills
Базовые воркфлоу Firebase CLI для любого проекта. Принудительно использует последние инструменты через npx вместо глобальных устаревших версий.
firebase-auth-basics — аутентификация Firebase
firebase/agent-skills
Настройка и реализация Firebase Authentication: вход пользователей, управление аккаунтами, провайдеры OAuth для разных типов приложений.
firebase-hosting-basics — хостинг статических сайтов Firebase
firebase/agent-skills
Деплой статических сайтов и SPA на Firebase Hosting: конфигурация firebase.json для редиректов, rewrites и заголовков. Команды деплоя и превью.
firebase-app-hosting-basics — Firebase App Hosting для Next.js
firebase/agent-skills
Полный пайплайн деплоя Next.js и Angular на Firebase App Hosting: SSR и ISR. Настройка firebase.json с apphosting блоками и CDN.
firebase-data-connect — Firebase SQL Connect с PostgreSQL
firebase/agent-skills
Комплексный помощник для Firebase SQL Connect (Data Connect) с PostgreSQL и GraphQL: схема → мутации → запросы → SDK и деплой в продакшен.
developing-genkit-js — AI агенты на Genkit JS
firebase/agent-skills
Для Genkit 1.0+ где API полностью изменились и большинство примеров в сети устарели. Принудительно проверяет common-errors.md перед любым кодом.
