Блог

Безопасность мобильного приложения маркетплейса

Безопасность мобильного приложения маркетплейса — это не опция «на потом», а базовое условие работы. Утечка данных карт, взлом аккаунтов продавцов или подмена платёжных реквизитов способны уничтожить репутацию продукта за один день. В этой статье — структурированный чеклист: что именно защищать, как это делается технически и на каком этапе разработки это нужно закладывать.

Почему маркетплейсы — приоритетная цель для атак

Маркетплейс агрегирует сразу три типа чувствительных данных: платёжные реквизиты покупателей, персональные данные продавцов и транзакционную историю. По данным Verizon Data Breach Investigations Report, e-commerce-приложения входят в топ-3 отраслей по числу инцидентов с утечками. Причины типичны:

  • Большая поверхность атаки: мобильный клиент, веб-версия, API, панель администратора, кабинет продавца.
  • Высокая ценность данных — карточные данные и персональные сведения продаются на чёрном рынке.
  • Сложная ролевая модель: покупатель, продавец, модератор, оператор — каждая роль с разными правами.
  • Интеграции с внешними сервисами (эквайринг, логистика, CRM) расширяют периметр уязвимостей.

Понимание этих факторов помогает расставить приоритеты в защите ещё до написания первой строки кода.

Чеклист безопасности мобильного приложения маркетплейса

Ниже — 6 ключевых направлений. Каждое содержит конкретные меры, а не абстрактные советы.

1. Защита передачи данных

  • TLS 1.2+ обязателен для всех соединений. TLS 1.0 и 1.1 — устаревшие, уязвимые к POODLE и BEAST.
  • Certificate Pinning — приложение принимает только заранее прописанный сертификат сервера. Это блокирует атаки типа man-in-the-middle даже при компрометации корневого CA.
  • Запретить HTTP-трафик через NSAppTransportSecurity (iOS) и network_security_config (Android).
  • Не передавать чувствительные данные в URL-параметрах — они оседают в логах и истории браузера.

2. Аутентификация и управление сессиями

  • Многофакторная аутентификация (MFA) для продавцов и администраторов — не рекомендация, а требование.
  • JWT-токены с коротким TTL (15–30 минут) + refresh-токены с ротацией. Хранить refresh-токен в Keychain (iOS) или EncryptedSharedPreferences (Android), но не в AsyncStorage или обычных SharedPreferences.
  • Инвалидация всех сессий при смене пароля или подозрительной активности.
  • Rate limiting на эндпоинт логина: не более 5–10 попыток в минуту с одного IP.
  • Биометрическая аутентификация через Face ID / Touch ID — удобно для пользователя и снижает риск кражи пароля.

3. Защита платёжного контура

Это самый критичный блок. Главное правило: приложение никогда не должно видеть полные данные карты.

  • Использовать сертифицированные PCI DSS платёжные SDK (Stripe, CloudPayments, ЮKassa). Токенизация происходит на стороне провайдера.
  • Антифрод на серверной стороне: анализ поведенческих паттернов, velocity-checks (слишком много покупок за короткое время), геолокационные аномалии.
  • 3D Secure 2.0 для всех карточных транзакций — снижает чарджбэки и перекладывает ответственность на банк.
  • Логировать все платёжные события с временными метками для последующего аудита.

4. Безопасность API

API — главная точка входа для атак на маркетплейс. Типичные уязвимости по OWASP API Security Top 10:

Уязвимость Что делать
Broken Object Level Authorization Проверять права доступа к каждому объекту на сервере, не доверять ID из запроса
Excessive Data Exposure Возвращать только те поля, которые нужны клиенту (GraphQL-маски или DTO-фильтрация)
Injection (SQL, NoSQL) Параметризованные запросы, ORM, валидация входных данных
Security Misconfiguration Отключить дефолтные учётки, скрыть stack trace в ответах, настроить CORS
Mass Assignment Явно указывать разрешённые поля при биндинге данных из запроса

Дополнительно: API Gateway с WAF (Web Application Firewall), мониторинг аномального числа запросов, версионирование API для плавного вывода устаревших эндпоинтов.

5. Защита данных на устройстве

  • Не хранить чувствительные данные в открытом виде: использовать Keychain (iOS) и Android Keystore.
  • Шифровать локальную базу данных (SQLCipher для SQLite).
  • Очищать буфер обмена после копирования паролей или реквизитов (через 30–60 секунд).
  • Блокировать скриншоты на экранах с платёжными данными (FLAG_SECURE на Android, .allowsScreenRecording = false на iOS).
  • Обнаружение root/jailbreak: не блокировать работу приложения, но ограничивать доступ к платёжным функциям и предупреждать пользователя.

6. Защита контента и борьба с мошенничеством

Маркетплейс страдает не только от технических атак. Бизнес-угрозы не менее опасны:

  • Верификация продавцов: проверка ИНН, паспортных данных, банковских реквизитов перед активацией.
  • Автоматическая модерация объявлений: фильтрация запрещённых товаров, дублей, спама.
  • Защита от накрутки рейтингов: анализ поведения при оставлении отзывов, CAPTCHA, ограничение частоты.
  • Мониторинг подозрительных транзакций: возвраты, отмены, аномальные суммы — всё должно триггерить алерты.

Когда и как внедрять безопасность в процесс разработки

Безопасность дешевле закладывать на этапе проектирования, чем исправлять после релиза. Подход называется Security by Design, и он предполагает:

  1. Threat Modeling на старте — команда описывает возможные угрозы ещё до написания кода. Инструменты: STRIDE, OWASP Threat Dragon.
  2. Secure Code Review — проверка кода с фокусом на уязвимости, а не только на логику. Минимум один раз перед каждым крупным релизом.
  3. SAST/DAST — статический и динамический анализ кода в CI/CD пайплайне. Инструменты: SonarQube, MobSF, OWASP ZAP.
  4. Пентест перед запуском — внешняя команда проверяет приложение как реальный злоумышленник. Обязателен для продуктов с платёжным контуром.
  5. Bug Bounty после запуска — программа вознаграждений за найденные уязвимости. Эффективно для зрелых продуктов с аудиторией.

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

Часто задаваемые вопросы

Обязательно ли проходить сертификацию PCI DSS для маркетплейса?

Если вы принимаете карточные платежи напрямую — да, PCI DSS обязателен. Но большинство маркетплейсов работают через сертифицированных платёжных провайдеров (Stripe, ЮKassa и др.), что позволяет существенно сократить область соответствия. В этом случае вы отвечаете только за безопасную интеграцию SDK и не храните карточные данные на своих серверах — это называется SAQ A или SAQ A-EP в зависимости от схемы интеграции.

Что важнее — безопасность iOS или Android версии приложения?

Обе платформы требуют одинакового внимания, но имеют разные риски. Android более уязвим к установке из сторонних источников и root-атакам — здесь важна защита на уровне APK (обфускация, ProGuard/R8). iOS закрытее, но уязвим к атакам через Keychain при jailbreak. Правильный ответ — единые стандарты безопасности для обеих платформ с учётом их специфики.

Сколько стоит обеспечить безопасность мобильного приложения маркетплейса?

Затраты зависят от масштаба продукта и выбранного подхода. Базовый уровень — правильная архитектура, шифрование, MFA и использование сертифицированных платёжных SDK — закладывается в стоимость разработки и не требует отдельного бюджета. Пентест перед запуском стоит от 150 000 до 500 000 рублей в зависимости от объёма. Пренебрежение безопасностью обходится дороже: средний ущерб от утечки данных для малого и среднего бизнеса — от 3 до 15 млн рублей с учётом штрафов Роскомнадзора, репутационных потерь и компенсаций пользователям.

Итог

Безопасность мобильного приложения маркетплейса строится на шести столпах: защищённый транспорт, надёжная аутентификация, изолированный платёжный контур, безопасный API, зашифрованное хранилище на устройстве и антифрод-логика. Всё это закладывается на этапе проектирования — переделывать готовый продукт в 3–5 раз дороже.

Если вы сейчас выбираете команду для создания маркетплейса, обсудите с подрядчиком security-практики ещё на пресейле — это сразу покажет уровень экспертизы. Команда Aris.Web включает security-требования в стандартный процесс разработки мобильного приложения и готова проконсультировать по вашему проекту. Свяжитесь с нами по телефону +7 (977) 326-69-09 или оставьте заявку на странице arisweb.ru/kontakty — разберём архитектуру и риски конкретно под вашу задачу.

ARISWEB · ПОД КЛЮЧ ЗА 2 НЕДЕЛИ
Нужно такое решение? Сделаем и опубликуем за 2 недели
Фиксированная цена, оплата онлайн, гарантия публикации в срок.
author-avatar

О Роман Воронов

Роман Воронов — менеджер продаж Aris.Web. Более 15 лет в IT: запуск цифровых платформ, мобильных приложений и маркетплейсов для e-commerce, логистики, промышленности, образования и бизнес-автоматизации. Помогает заказчикам подобрать решение и рассчитать проект.