Политика безопасности
Последнее обновление: 07.07.2026Если вы нашли уязвимость в OmniSolver Models — расскажите нам, а не публикуйте сразу. Ниже описано, как сообщить, что мы считаем допустимым исследованием и какие защиты уже работают на стороне сервиса.
1. Как сообщить об уязвимости
Нашли уязвимость? Напишите на security@omnisolver.app. Мы отвечаем в течение 72 часов в рабочие дни. Критические находки (RCE, доступ к чужим данным, обход авторизации) обрабатываем вне очереди.
В отчёте укажите: краткое описание, шаги для воспроизведения, ожидаемое и фактическое поведение, оценку влияния (например по шкале CVSS) и, если возможно, минимальный PoC. Скриншоты, HAR-файлы и логи приветствуются. Пожалуйста, не раскрывайте детали публично до того, как мы согласуем сроки.
2. Что мы считаем допустимым исследованием
Можно:
- Тестировать сервис от имени собственного аккаунта и на своих моделях и данных.
- Использовать собственные тестовые запросы, черновики и опубликованные карточки.
- Анализировать публичные страницы, статические файлы и открытые эндпоинты (например
/official,/sitemap.xml). - Сообщать о найденном через контакт из раздела 1.
Что строго запрещено: доступ к данным, моделям или сессиям других пользователей; DoS / DDoS, brute-force, сканирование быстрее 1 запроса в секунду; социальная инженерия против поддержки; злонамеренные промпт-инъекции в генератор или контент-сканер; загрузка вредоносного контента «ради теста»; эксплуатация находки дальше минимального PoC; атаки на сторонние сервисы (Telegram, платёжные и провайдеры генерации 3D).
3. Какие уязвимости нам важны (приоритет)
- Critical: RCE на сервере, SQL-инъекция с доступом к чужим данным, обход авторизации, чтение чужих моделей или истории, эскалация до администратора.
- High: XSS с доступом к сессии, CSRF на мутирующих эндпоинтах, утечка персональных данных, обход списания или возврата кредитов, SSRF через ссылку на референс-картинку или скачивание ассета, обход контент-сканера.
- Medium: ограниченный self-XSS, недостатки rate-limit, чувствительная информация в текстах ошибок, проблемы CSP, открытые редиректы.
- Low: отсутствие best-practice заголовков, минорные баги с security-привкусом.
- Вне области: отсутствие SPF/DMARC на доменах, теоретические timing-атаки без PoC, отчёты автоматических сканеров без воспроизводимого PoC, DDoS, missing security headers без эксплуатируемого пути, clickjacking на страницах без чувствительных действий.
4. Что уже сделано на стороне сервиса
Коротко: HTTPS + HSTS · CSP · PBKDF2 для паролей · подписанные HMAC-сессии (HttpOnly, Secure), привязанные к паролю · CSRF-защита по origin · rate-limit на вход и восстановление · контент-сканер запросов и публикаций · защита от SSRF при работе с провайдерами · атомарное списание и возврат кредитов.
- Транспорт: HTTPS с HSTS (
max-age1 год,includeSubDomains), редирект HTTP → HTTPS и www → apex. - Заголовки: Content-Security-Policy (
default-src 'self',frame-ancestors 'self',base-uri 'self',form-action 'self'), а такжеX-Content-Type-Options: nosniff,X-Frame-Options: SAMEORIGINиReferrer-Policy: no-referrer. - Пароли: хранятся как хеш PBKDF2-HMAC-SHA256 с солью и высоким числом итераций;
сравнение — в постоянное время (
compare_digest). Пароль в открытом виде не хранится. - Сессии: stateless-cookie, подписанный HMAC, с флагами HttpOnly, Secure и SameSite=Lax. Токен привязан к текущему хешу пароля — смена или сброс пароля мгновенно обесценивает все ранее выданные сессии.
- Сброс пароля: по сути одноразовый токен, подписанный HMAC в отдельном крипто-контексте от сессий, самоинвалидируется после смены пароля — без серверной таблицы токенов.
- CSRF: все мутирующие запросы с cookie проверяются по allowlist источника (Origin / Referer), fail-closed — запрос без валидного источника отклоняется.
- Ограничение частоты: скользящее окно на вход, регистрацию, восстановление и сброс пароля, а также на вход через Telegram — защита от перебора и злоупотреблений.
- Вход через Telegram: payload Login Widget проверяется по HMAC согласно официальной спецификации; подделанные данные отклоняются.
- Контент-сканер: тексты запросов на генерацию, имена загружаемых файлов и поля публикуемых карточек проходят проверку на запрещённый контент до выполнения.
- Защита от SSRF: при обращении к провайдерам генерации скачивание ассетов разрешено только по HTTPS и только с хостов из allowlist; каждый редирект перепроверяется по тому же списку; пользовательская ссылка на референс-картинку обязана быть HTTPS, на разрешённом хосте и без встроенных учётных данных в URL.
- Кредиты: списание — атомарной условной операцией (нельзя уйти в минус при параллельных запросах), возврат за неуспешную задачу гарантированно происходит не более одного раза даже при одновременной отмене и сбое.
- SQL: только параметризованные запросы.
- Права пользователя: удаление своих моделей в библиотеке в любой момент и удаление аккаунта по запросу (см. Политику конфиденциальности).
5. Раскрытие после исправления
После выпуска фикса мы согласуем с вами текст публичной благодарности (по желанию — с указанием имени или ника). Принудительной публикации мы не делаем: приватность исследователя для нас важнее публичности.
Если уязвимость затронула данные пользователей, мы информируем затронутых в разумный срок и фиксируем инцидент во внутреннем журнале.
6. О чём этот документ не говорит
Это не программа bug bounty — фиксированных выплат нет. В исключительных случаях за критические находки мы можем поблагодарить репортёра подпиской или разовой компенсацией; решение принимается индивидуально и не является публичной офертой.
7. Контакты
Безопасность: security@omnisolver.app
Приватность и данные: privacy@omnisolver.app