Перейти к содержанию
Версия: 3.3.51 Обновлено: 2026-01-23

Модель угроз


1. Контекст системы

1.1 Активы

Актив Описание Ценность
Средства пользователей Криптовалютные балансы КРИТИЧЕСКАЯ
Данные пользователей Email, история транзакций ВЫСОКАЯ
JWT секреты Ключи подписи токенов КРИТИЧЕСКАЯ
API ключи Fordefi, Crypto2B, Supabase КРИТИЧЕСКАЯ
Админ доступ Возможность одобрения выводов КРИТИЧЕСКАЯ
Доступность системы Uptime платформы ВЫСОКАЯ

1.2 Акторы

Актор Описание Уровень доверия
Анонимный пользователь Посетитель из интернета НЕДОВЕРЕННЫЙ
Аутентифицированный пользователь Авторизованный пользователь платформы НИЗКИЙ
Администратор Администратор платформы ВЫСОКИЙ
Внешние сервисы Fordefi, Crypto2B, Supabase ДОВЕРЕННЫЕ
Злоумышленник Вредоносный актор ВРАЖДЕБНЫЙ

2. STRIDE анализ

2.1 Spoofing (Подделка идентичности)

Угроза: Подделка JWT токена

Описание: Злоумышленник создаёт поддельные JWT токены для выдачи себя за пользователей.

Атрибут Значение
Вероятность НИЗКАЯ
Воздействие КРИТИЧЕСКОЕ
Риск ВЫСОКИЙ

Вектор атаки:

  1. Получение JWT_SECRET через breach
  2. Генерация токенов с произвольными claims
  3. Доступ к любому аккаунту

Существующие меры:

  • ✅ Верификация подписи HS256
  • ✅ Секрет хранится в env (не в коде)
  • ✅ Expiration токена (24ч)
  • ✅ Валидация issuer

Рекомендации:

  • Рассмотреть RS256 для асимметричной подписи
  • Реализовать blacklist токенов для logout
  • Добавить JTI (JWT ID) для защиты от replay

Угроза: Перехват сессии

Описание: Злоумышленник крадёт валидный JWT у пользователя.

Атрибут Значение
Вероятность СРЕДНЯЯ
Воздействие ВЫСОКОЕ
Риск ВЫСОКИЙ

Вектор атаки:

  1. XSS для кражи токена из localStorage
  2. Перехват сети (при обходе HTTPS)
  3. Malware на устройстве пользователя

Существующие меры:

  • ✅ Content Security Policy
  • ✅ HTTPS принудительно (HSTS)
  • ✅ HttpOnly не используется (localStorage) — компромисс для SPA

Рекомендации:

  • Рассмотреть HttpOnly cookies для хранения токенов
  • Реализовать привязку токена к IP/device fingerprint

Угроза: Выдача себя за администратора

Описание: Злоумышленник получает привилегии администратора.

Атрибут Значение
Вероятность НИЗКАЯ
Воздействие КРИТИЧЕСКОЕ
Риск ВЫСОКИЙ

Вектор атаки:

  1. Компрометация email аккаунта админа
  2. Социальная инженерия
  3. Манипуляция конфиг-файлом

Существующие меры:

  • ✅ Админы определены в конфиге (не в БД)
  • ✅ Отдельный тип токена AdminClaims
  • ✅ Fordefi multi-sig для выводов

Рекомендации:

  • MFA для аутентификации админов
  • Аудит-логирование действий админов

2.2 Tampering (Подмена данных)

Угроза: Манипуляция транзакциями

Описание: Злоумышленник изменяет суммы или получателей транзакций.

Атрибут Значение
Вероятность НИЗКАЯ
Воздействие КРИТИЧЕСКОЕ
Риск СРЕДНИЙ

Вектор атаки:

  1. MITM атака на API запросы
  2. Эксплуатация пробелов в валидации
  3. Прямой доступ к БД

Существующие меры:

  • ✅ HTTPS для всех коммуникаций
  • ✅ Валидация входных данных (go-playground/validator)
  • ✅ SafeDecimal для финансовых вычислений
  • ✅ Таблица transactions — append-only

Рекомендации:

  • Подпись запросов для финансовых операций
  • Двойное подтверждение для крупных выводов

Угроза: Манипуляция балансом

Описание: Злоумышленник искусственно завышает свой баланс.

Атрибут Значение
Вероятность НИЗКАЯ
Воздействие КРИТИЧЕСКОЕ
Риск СРЕДНИЙ

Вектор атаки:

  1. Race condition в депозите/выводе
  2. Overflow в вычислении баланса
  3. Прямая манипуляция БД

Существующие меры:

  • ✅ SafeDecimal (без overflow)
  • ✅ Append-only архитектура (баланс = SUM транзакций, нет UPDATE)
  • ✅ Единый сервис расчёта баланса (canonical)

Рекомендации:

  • Периодическая сверка балансов
  • Алерты на необычные изменения баланса

2.3 Repudiation (Отказ от действий)

Угроза: Отрицание транзакции

Описание: Пользователь отрицает, что делал запрос на вывод.

Атрибут Значение
Вероятность СРЕДНЯЯ
Воздействие СРЕДНЕЕ
Риск СРЕДНИЙ

Вектор атаки:

  1. Заявление о взломе аккаунта
  2. Оспаривание легитимных транзакций

Существующие меры:

  • ✅ Immutable лог транзакций
  • ✅ Записи с timestamps
  • ✅ Атрибуция user ID
  • ✅ Записи одобрений администратора

Рекомендации:

  • Логирование IP адресов для транзакций
  • Email подтверждение для выводов

2.4 Information Disclosure (Утечка информации)

Угроза: Раскрытие данных пользователей

Описание: Злоумышленник получает доступ к данным других пользователей.

Атрибут Значение
Вероятность НИЗКАЯ
Воздействие ВЫСОКОЕ
Риск СРЕДНИЙ

Вектор атаки:

  1. IDOR (Insecure Direct Object Reference)
  2. SQL injection
  3. Перебор API

Существующие меры:

  • ✅ Скоупинг пользователя через JWT
  • ✅ Параметризованные SQL запросы (sqlx)
  • ✅ Rate limiting на API

Рекомендации:

  • UUID для идентификаторов ресурсов (не sequential)
  • Логирование доступа к чувствительным endpoints

Угроза: Утечка API ключей

Описание: Раскрытие API ключей внешних сервисов.

Атрибут Значение
Вероятность НИЗКАЯ
Воздействие КРИТИЧЕСКОЕ
Риск ВЫСОКИЙ

Вектор атаки:

  1. Коммит в git
  2. Раскрытие в сообщениях об ошибках
  3. Случайное логирование

Существующие меры:

  • ✅ .env файл (не коммитится)
  • ✅ .gitignore включает чувствительные файлы
  • ✅ Структурированное логирование (без секретов)

Рекомендации:

  • Сканирование секретов в CI/CD
  • Vault для production секретов

2.5 Denial of Service (Отказ в обслуживании)

Угроза: DoS на API

Описание: Злоумышленник перегружает API запросами.

Атрибут Значение
Вероятность ВЫСОКАЯ
Воздействие ВЫСОКОЕ
Риск ВЫСОКИЙ

Вектор атаки:

  1. Credential stuffing
  2. Флуд endpoints
  3. Исчерпание ресурсов

Существующие меры:

  • ✅ Rate limiting (token bucket)
  • ✅ Финансовые: 5 req/мин
  • ✅ Auth: 20 req/мин
  • ✅ Общие: 100 req/мин

Рекомендации:

  • WAF с защитой от DDoS
  • Cloudflare или аналог

Угроза: Спам выводов

Описание: Злоумышленник переполняет очередь выводов.

Атрибут Значение
Вероятность СРЕДНЯЯ
Воздействие СРЕДНЕЕ
Риск СРЕДНИЙ

Вектор атаки:

  1. Создание множества мелких запросов на вывод
  2. Исчерпание capacity ревью администраторов

Существующие меры:

  • ✅ Rate limiting на endpoint вывода (5/мин)
  • ✅ Минимальная сумма вывода
  • ✅ Валидация баланса

Рекомендации:

  • Лимиты выводов на пользователя
  • Авто-отклонение подозрительных паттернов

2.6 Elevation of Privilege (Повышение привилегий)

Угроза: Эскалация User → Admin

Описание: Обычный пользователь получает доступ администратора.

Атрибут Значение
Вероятность НИЗКАЯ
Воздействие КРИТИЧЕСКОЕ
Риск СРЕДНИЙ

Вектор атаки:

  1. Эксплуатация обхода middleware
  2. Манипуляция токеном
  3. Доступ на запись к конфиг-файлу

Существующие меры:

  • ✅ Отдельные типы токенов (JWTClaims vs AdminClaims)
  • ✅ Список админов в конфиге (не в БД)
  • ✅ Middleware на всех admin маршрутах

Рекомендации:

  • Unit тесты на обход auth
  • Security-focused code review

Угроза: Вывод без одобрения

Описание: Обход одобрения администратора для выводов.

Атрибут Значение
Вероятность НИЗКАЯ
Воздействие КРИТИЧЕСКОЕ
Риск СРЕДНИЙ

Вектор атаки:

  1. Прямой вызов API выполнения
  2. Манипуляция state machine
  3. Прямой доступ к Fordefi API

Существующие меры:

  • ✅ Многоэтапный workflow (request → admin → fordefi → complete)
  • ✅ Fordefi multi-sig (внешний контроль)
  • ✅ Валидация статуса на каждом этапе

Рекомендации:

  • Валидация state machine в workflow
  • Внешнее одобрение через Fordefi обеспечивает defense-in-depth

3. Сводка поверхности атаки

3.1 Внешняя поверхность атаки

Компонент Экспозиция Риск
NGINX (443) Интернет СРЕДНИЙ
API (/api/*) Аутентифицированные СРЕДНИЙ
Admin API (/api/admin/*) Только админы ВЫСОКИЙ
Webhooks Fordefi, Crypto2B СРЕДНИЙ

3.2 Внутренняя поверхность атаки

Компонент Доступ Риск
PostgreSQL localhost:5432 НИЗКИЙ
Docker Socket Только хост НИЗКИЙ
.env файл Файловая система сервера ВЫСОКИЙ

4. Матрица рисков

Угроза Вероятность Воздействие Уровень риска Статус
Подделка JWT НИЗКАЯ КРИТИЧЕСКОЕ ВЫСОКИЙ Смягчено
Перехват сессии СРЕДНЯЯ ВЫСОКОЕ ВЫСОКИЙ Частично смягчено
Выдача за админа НИЗКАЯ КРИТИЧЕСКОЕ ВЫСОКИЙ Смягчено
Манипуляция транзакциями НИЗКАЯ КРИТИЧЕСКОЕ СРЕДНИЙ Смягчено
Манипуляция балансом НИЗКАЯ КРИТИЧЕСКОЕ СРЕДНИЙ Смягчено
Раскрытие данных НИЗКАЯ ВЫСОКОЕ СРЕДНИЙ Смягчено
Утечка API ключей НИЗКАЯ КРИТИЧЕСКОЕ ВЫСОКИЙ Смягчено
DoS на API ВЫСОКАЯ ВЫСОКОЕ ВЫСОКИЙ Смягчено
Эскалация привилегий НИЗКАЯ КРИТИЧЕСКОЕ СРЕДНИЙ Смягчено

5. Рекомендуемые улучшения

Приоритет 1 (Критический)

  1. Реализовать blacklist токенов/logout
  2. Добавить MFA для аккаунтов админов
  3. Процедура ротации секретов

Приоритет 2 (Высокий)

  1. WAF с защитой от DDoS
  2. Подпись запросов для финансовых операций
  3. Сканирование секретов в CI/CD

Приоритет 3 (Средний)

  1. Рассмотреть HttpOnly cookies
  2. Логирование IP для транзакций
  3. Job сверки балансов

Связанные документы