Политика информационной безопасности
Документ описывает, как TikShop Pro защищает данные продавцов TikTok Shop, покупателей подписки и партнёров. Он описывает действующие меры, а не намерения: каждое утверждение ниже соответствует тому, как система работает на момент публикации.
1. Область действия и ответственность
Политика распространяется на все компоненты сервиса: сайт tikshopro.com, серверную часть на Cloudflare Workers, базу данных, расширение для Chrome и интеграции со сторонними поставщиками.
TikShop Pro — небольшая команда. Ответственность за информационную безопасность несёт владелец продукта; она не делегирована и не распределена между несколькими лицами. Это означает единую точку принятия решений и отсутствие ситуаций, когда за меру никто не отвечает.
Мы не заявляем о наличии сертификаций SOC 2, ISO 27001 или PCI DSS. Данные банковских карт не проходят через нашу инфраструктуру вообще, поэтому область PCI DSS к нам не применяется — см. раздел 3.
2. Классификация данных
| Критично | Токены доступа и обновления TikTok Shop. Открывают доступ к магазину продавца. |
| Конфиденциально | Адреса электронной почты, хеши паролей партнёров, адреса для выплат, лицензионные ключи. |
| Внутреннее | Журналы событий безопасности, статистика переходов, IP-адреса (хранятся 90 дней). |
| Не храним | Данные банковских карт, пароли в открытом виде, содержимое заказов TikTok Shop. |
3. Шифрование
При передаче. Весь трафик идёт только по HTTPS с TLS 1.2 и выше; HTTP перенаправляется на HTTPS на уровне Cloudflare. Обращения к сторонним API (TikTok Shop, Stripe, Resend) выполняются по TLS.
При хранении. Токены TikTok Shop шифруются алгоритмом AES-256-GCM перед записью в базу; ключ шифрования хранится отдельно от данных, в защищённом хранилище секретов Cloudflare. Компрометация базы без доступа к ключу не раскрывает токены.
Пароли. Пароли партнёров не хранятся. Хранится результат PBKDF2-HMAC-SHA256 со 100 000 итераций и уникальной солью для каждой учётной записи. Число итераций записано внутри хеша, что позволяет повышать его без сброса действующих паролей.
Платёжные данные. Реквизиты карт вводятся на размещённой у Stripe странице оплаты и не проходят через нашу инфраструктуру. Мы не получаем, не обрабатываем и не храним номера карт.
4. Управление доступом
- Принцип наименьших привилегий: ключ Stripe ограничен четырьмя операциями, необходимыми для работы, и не даёт права выводить средства.
- Двухфакторная аутентификация обязательна для всех административных учётных записей: Cloudflare, Stripe, репозиторий кода, регистратор домена.
- Общие учётные записи не используются. Каждый доступ персонален и отзывается индивидуально.
- Сессии кабинета живут 30 дней, куки помечены Secure, HttpOnly и SameSite=Lax — они недоступны скриптам на странице и не отправляются при межсайтовых переходах.
- Вход по паролю блокируется на 15 минут после восьми неудачных попыток подряд.
- Ссылки для входа и смены пароля одноразовые, действуют один час и требуют подтверждения действием — предзагрузка ссылки почтовым сканером их не активирует.
- Права доступа пересматриваются ежеквартально и отзываются немедленно при изменении роли или уходе из проекта.
- Ключи и секреты ротируются не реже чем раз в 90 дней, а также немедленно при любом подозрении на компрометацию.
5. Архитектура и сегментация сети
Сервис построен на бессерверной архитектуре Cloudflare Workers. У нас нет виртуальных машин, контейнеров, открытых портов, SSH-доступа и административных панелей, доступных из интернета. Классической плоской сети, которую требовалось бы делить на сегменты, не существует.
Изоляция обеспечивается иначе, и строже:
- Изоляция исполнения. Каждый запрос выполняется в отдельном изоляте V8 без общей файловой системы и общей памяти между запросами и клиентами.
- Изоляция хранилища. База данных не имеет публичного сетевого адреса и недоступна из интернета. Обращение к ней возможно только через привязку из нашего кода — не по паролю, который можно подобрать или украсть.
- Разделение сред. Тестовый и боевой режимы платёжного провайдера используют независимые наборы ключей и данных; ключ одной среды не действует в другой.
- Разделение секретов. Ключи шифрования, ключи API и токены хранятся в зашифрованном хранилище секретов платформы и никогда не попадают в систему контроля версий. Автоматическая проверка при каждом изменении кода не пропускает случайно закоммиченный ключ.
- Граница расширения. Расширение для Chrome не содержит ключей приложения и не имеет доступа к базе. Оно обращается к серверу за результатом и не может обратиться ни к TikTok Shop от нашего имени, ни к данным других пользователей.
Периметр закрыт сетью Cloudflare: защита от DDoS и фильтрация вредоносного трафика применяются ко всем запросам до того, как они достигают приложения. Обращения к API дополнительно ограничены по частоте с одного адреса; уведомления платёжного провайдера из-под ограничения выведены, чтобы их повторная доставка не блокировалась и оплата не терялась.
6. Мониторинг угроз
Ведётся отдельный журнал событий безопасности. В него записываются события, которые по отдельности выглядят как шум, а вместе означают атаку:
- неудачные попытки входа и срабатывания блокировки за подбор пароля;
- запросы к платёжному вебхуку с неверной или просроченной подписью — признак попытки подделать уведомление об оплате;
- возвраты авторизации TikTok Shop с неизвестным или повторно использованным параметром state — признак попытки привязать чужой магазин.
События критического уровня немедленно доставляются ответственному лицу через отдельный канал уведомлений. Оповещения по одному типу события ограничены по частоте: поток однотипных сообщений скрывает следующую настоящую тревогу, поэтому вместо каждого события отправляется сводка с числом повторов.
Записи журнала хранятся 90 дней и удаляются автоматически по расписанию. Мы не храним IP-адреса дольше срока, необходимого для разбора инцидента.
Мы не заявляем о наличии круглосуточного центра мониторинга. Оповещения доставляются немедленно и в любое время суток, реакция человека — в сроки, указанные в разделе 10.
7. Защита рабочих устройств
На всех рабочих устройствах включены: полнодисковое шифрование (FileVault или BitLocker), встроенная защита от вредоносного ПО (Gatekeeper и XProtect на macOS, Microsoft Defender на Windows), автоматические обновления операционной системы и автоблокировка экрана не позднее пяти минут бездействия.
8. Управление уязвимостями
Зависимости сканируются автоматически при каждом изменении кода и еженедельно по расписанию: уязвимость появляется не в момент коммита, а в момент публикации. Отдельная проверка не пропускает случайно закоммиченный ключ или токен. Оповещения разбираются по мере поступления.
| Критичность | Срок устранения |
|---|---|
| Критическая | 7 дней |
| Высокая | 30 дней |
| Средняя | 90 дней |
Сообщения об уязвимостях извне принимаются на security@tikshopro.com.
9. Безопасная разработка
- Весь код хранится в системе контроля версий; история изменений полная и неизменяемая.
- Автоматические тесты покрывают проверку подписи вебхуков, хеширование и подбор паролей, одноразовость токенов авторизации и шифрование токенов продавцов. Тесты выполняются перед каждым развёртыванием.
- У серверной части нет сторонних зависимостей времени исполнения. Это устраняет целый класс рисков цепочки поставок: скомпрометированный пакет не может попасть в наш код, потому что пакетов нет.
- Секреты никогда не попадают в репозиторий — независимо от того, открыт он или закрыт. Закрытость кода не считается мерой защиты: ключ, однажды оказавшийся в истории коммитов, считается скомпрометированным и подлежит ротации.
- Внешние данные не исполняются как код. Расширение не загружает исполняемый код с сервера — только данные.
10. Реагирование на инциденты
Инцидентом считается любое событие, при котором данные могли быть раскрыты, изменены или утрачены, а также компрометация любого ключа или учётной записи.
- Локализация — в течение 24 часов с момента обнаружения. Отзыв скомпрометированных ключей и токенов, при необходимости — отключение затронутой функции.
- Оценка — в течение 72 часов. Определение состава затронутых данных и круга затронутых лиц по журналам событий.
- Уведомление — в течение 72 часов с момента подтверждения. Затронутые продавцы, пользователи и площадки, включая TikTok Shop, уведомляются напрямую. Мы не откладываем уведомление до завершения расследования.
- Устранение и разбор. Причина устраняется, а не маскируется; по итогам добавляется тест или мера, исключающая повторение.
Все ключи и секреты подлежат немедленной ротации при любом подозрении на компрометацию, без ожидания подтверждения.
11. Хранение и удаление данных
- Токены TikTok Shop хранятся, пока продавец не отзовёт доступ, и удаляются при отзыве.
- Журналы безопасности — 90 дней, затем автоматическое удаление.
- Данные подписки хранятся, пока действует учётная запись, и в течение срока, требуемого налоговым и бухгалтерским законодательством.
- Удаление данных по запросу выполняется в течение 30 дней. Запрос направляется на адрес в разделе 14.
12. Сторонние поставщики
Мы передаём данные только тем поставщикам, без которых сервис не работает, и только в необходимом объёме:
| Cloudflare | Размещение, база данных, защита периметра |
| Stripe | Приём платежей и хранение платёжных реквизитов |
| Resend | Доставка транзакционных писем |
Данные продавцов TikTok Shop не передаются третьим лицам, не продаются и не используются для обучения моделей.
13. Непрерывность работы
Инфраструктура распределена по сети Cloudflare; отказ отдельного узла не выводит сервис из строя. База данных поддерживает восстановление на момент времени средствами платформы. Исходный код и схема базы хранятся в системе контроля версий, что позволяет развернуть сервис заново.
14. Пересмотр политики и контакты
Политика пересматривается ежегодно, а также при каждом существенном изменении архитектуры или состава обрабатываемых данных. Версия и дата вступления в силу указаны в начале документа.
Сообщения об уязвимостях и вопросы по безопасности: security@tikshopro.com. Запросы по персональным данным и на их удаление: privacy@tikshopro.com. Остальное: support@tikshopro.com.
Сообщения об уязвимостях приветствуются. Мы не преследуем исследователей, которые действуют добросовестно: не извлекают чужие данные сверх необходимого для подтверждения находки, не нарушают работу сервиса и дают разумное время на исправление до публикации.