Политика безопасности
Последнее обновление: 03.10.2026
1. Общие положения
Настоящая политика безопасности описывает технические и организационные меры, применяемые MidasDev для защиты данных пользователей и обеспечения безопасности платформы.
2. Шифрование и защита соединений
- HTTPS/TLS 1.3: Все соединения шифруются через SSL/TLS
- Хеширование паролей: ASP.NET Identity использует bcrypt с адаптивной стоимостью
- Data Protection: Ключи шифрования для antiforgery, OAuth cookies, Identity auth хранятся в защищённом хранилище (файловая система / Redis)
3. Защита платёжных данных
- ЮKassa: Платёжные данные (номера карт) вводятся исключительно на защищённой странице ЮKassa и никогда не передаются серверу MidasDev
- HMAC-SHA256: Подпись webhook-уведомлений ЮKassa для проверки подлинности
- Fail-closed: При отсутствии секретного ключа webhook отклоняется
4. Защита от атак
4.1. Rate Limiting
- Авторизация: 20 запросов в минуту на IP
- MCP API: 30 запросов в минуту на IP
- Тяжёлые MCP-инструменты: 10 запросов в минуту на пользователя
- Публичные API: 60 запросов в минуту на IP
- Webhook ЮKassa: 30 запросов в минуту на IP
- Глобальный лимит: 100 запросов в минуту на IP
4.2. CSRF защита
- Anti-Forgery Token на всех формах с изменениями состояния
- Имя cookie:
.MidasDev.Antiforgery(отдельное от OAuth) - Token валидируется на всех POST-запросах
4.3. XSS защита
- Автоматическая экранирование вывода в Razor
- Content-Security-Policy заголовки (через IIS/Nginx)
- X-Content-Type-Options: nosniff
4.4. Clickjacking защита
- X-Frame-Options: DENY
- Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()
4.5. HSTS
- Strict-Transport-Security: max-age=31536000; includeSubDomains; preload (production)
5. Защита персональных данных (ФЗ-152)
- Согласие: Фиксация согласия с IP, User-Agent, timestamp (ConsentRecord)
- Минимизация: Собираются только необходимые данные
- Право на удаление: Удаление аккаунта + анонимизация (отзыв согласия)
- Хранение: Данные хранятся бессрочно до удаления аккаунта
6. Защита от DOS
- Лимит pending-блоков: 3 pending-блока на пользователя (App:MaxPendingBlocks)
- Истечение: Pending-блоки истекают через 15 минут (ExpiresAt)
- ExpiredBlockCleanupService: Автоматическая очистка истёкших блоков каждые 5 минут (batch 50)
7. Аутентификация и авторизация
- OAuth 2.0: Яндекс OAuth с PKCE (code_verifier в сессии)
- JWT Bearer: Токены для API/MCP с таймаутом 60 минут
- OpenIddict: OAuth 2.1 Authorization Server для MCP клиентов
- Refresh tokens: Удаляются при logout
- Account lockout: 5 попыток, блокировка на 15 минут
8. Безопасность MCP-интерфейса
- Registry Auth: Ed25519 keypair для domain-based аутентификации
- Governance: MCP Governance Toolkit с YAML-политиками
- Аудит: GovernanceAuditService логирует все вызовы
- Authorization: MCP-инструменты требуют авторизации ([Authorize])
9. Бэкапы и восстановление
- Ежедневные бэкапы: PostgreSQL база данных
- Хранение: 30 дней (retainedFileCountLimit для логов)
- Восстановление: По запросу support@midasdev.ru
10. Мониторинг и логирование
- Serilog: Структурированное логирование (console + file)
- Health checks: /healthz (живость), /readyz (готовность с БД)
- SLA мониторинг: ModerationSLAMonitorService отслеживает сроки модерации
- Reconciliation: PaymentReconciliationService восстанавливает потерянные webhook
11. Инциденты безопасности
В случае обнаружения уязвимости или инцидента безопасности:
- Сообщите на security@midasdev.ru
- Не разглашайте детали публично до исправления
- Мы ответим в течение 48 часов
- Исправление будет опубликовано в changelog
12. Контакты
- Общие вопросы: support@midasdev.ru
- Безопасность: security@midasdev.ru
- Юридические: legal@midasdev.ru