Перейти к контенту

Защищённая виртуальная комната данных для M&A-сделок

Разработка платформы виртуальной комнаты данных банковского класса. Реализация паттерна конвертного шифрования, динамических водяных знаков на Rust и неизменяемого аудита.

AES-256
GCM-шифрование каждого файла уникальным ключом
Нулевое доверие
Раздельное хранение данных и ключей
менее 150 мс
Рендеринг защищенного PDF с водяными знаками
WORM
Неизменность логов аудита

Резюме

Разработка Virtual Data Room (VDR) для инвестиционного бутика. Безопасный обмен конфиденциальными документами при M&A сделках с защитой от утечек.

Ключевые бизнес-результаты:

  • Безопасность: Envelope Encryption (AES-256-GCM) — компрометация хранилища не даёт доступа к данным
  • Anti-Leak: динамические водяные знаки позволяют идентифицировать источник утечки
  • Compliance: WORM-хранение логов обеспечивает юридическую значимость аудита
  • Performance: рендеринг PDF за 150мс (Rust) вместо 3-5 сек (Python)

1. Проблематика: Векторы угроз в M&A

1.1 Бизнес-контекст

Заказчик — инвестиционный бутик, сопровождающий сделки M&A среднего сегмента. При due diligence стороны обмениваются документами особой важности: финансовая отчётность, контракты, интеллектуальная собственность.

1.2 Требования заказчика к инфраструктуре

Заказчик сформулировал требования, которые исключали использование готовых SaaS-решений:

Таблица 1. Требования заказчика

ТребованиеОбоснование
Ключи шифрования в контуре заказчикаПолитика ИБ: данные сделок не должны зависеть от внешнего вендора
Логи аудита в собственном хранилищеЮридическая значимость логов для возможных споров
Данные в юрисдикции РФСоответствие 152-ФЗ, внутренние политики
Идентификация источника утечкиПерсонализированные водяные знаки для каждого просмотра

1.3 Модель угроз

Таблица 2. Матрица угроз и контрмер

Вектор атакиОписаниеКонтрмера
Storage BreachФизическая кража дисков из ЦОДEnvelope Encryption: данные бесполезны без ключей из Vault
Photo LeakФотографирование экранаDynamic Watermarks: ФИО + IP + Timestamp
Admin AbuseСисадмин удаляет логи доступаWORM Storage: Object Lock на 5 лет
Evil Admin (Key Access)Единоличный доступ к ключамQuorum Authorization (схема Шамира 3-из-5)
Session HijackПерехват токена авторизацииShort-lived JWT + Device Fingerprint
MitM AttackПерехват трафикаmTLS + Certificate Pinning

2. Архитектурные решения

2.1 Эшелонированная защита

UserAPICryptoStorageAudit
100%
Ctrl+Колесо или перетаскивание

Рис. 1. Архитектура Secure VDR. Plaintext DEK существует только в памяти Crypto Service. Документ никогда не передаётся клиенту целиком — Rust-ядро нарезает страницы на зашифрованные графические тайлы (Zero-Footprint Viewer). Все действия пользователей записываются в WORM-хранилище.

2.2 Обоснование технологического стека

2.2.1 Envelope Encryption vs Single Key

Таблица 3. Сравнение подходов к шифрованию

АспектSingle Master KeyEnvelope Encryption
Компрометация ключаВсе данные утекаютТолько 1 файл
Ротация ключейТребует перешифрования всегоТолько Master Key
ПроизводительностьОдин bottleneckПараллельное шифрование
AuditСложно отследить доступ к ключуДетальный лог на каждый DEK

Выбор модели шифрования

Архитектурное решение
Envelope Encryption

Каждый файл шифруется уникальным DEK. Компрометация одного ключа = утечка одного файла.

Изоляция blast radius
Параллельное шифрование
Детальный audit на каждый DEK
Отклонённый вариант
Transparent Data Encryption (TDE)

Защищает только от кражи дисков, но не от компрометации app-сервера.

При взломе app = доступ ко всем данным
Сложная ротация ключей
Нет гранулярного audit

2.2.2 Rust vs Python для Watermarking

Таблица 4. Сравнение производительности рендеринга

ОперацияPython (PyMuPDF)Rust (pdf-rs + image)Улучшение
Parse PDF (10 pages)450ms45ms10×
Rasterize page800ms80ms10×
Apply watermark200ms15ms13×
Total per page1450ms140ms10×

Выбор языка для Watermarking

Архитектурное решение
Rust (pdf-rs + image)

10× быстрее Python для latency-критичного рендеринга. Каждая страница = ожидание пользователя.

140ms на страницу вместо 1450ms
Zero-copy обработка
Memory safety без GC
Отклонённый вариант
Go

PDF библиотеки в Go менее зрелые и медленнее Rust.

Менее зрелые PDF библиотеки
Нет достаточной производительности
GC pause при рендеринге

2.2.3 HashiCorp Vault vs AWS KMS

Таблица 5. Сравнение KMS решений

КритерийAWS KMSHashiCorp Vault
Self-HostedТолько AWSOn-Premise
Transit EncryptionДаДа
Dynamic SecretsНетДа
PKI InfrastructureНетДа
Audit LoggingCloudTrailCustom
CostUsage-based billingSelf-hosted
Data SovereigntyДанные за рубежомМастер-ключи в юрисдикции заказчика

Выбор KMS

Архитектурное решение
HashiCorp Vault

Мастер-ключи физически в юрисдикции заказчика. On-premise + PKI интеграция.

Self-Hosted (On-Premise)
Dynamic Secrets + PKI
Полный контроль над инфраструктурой
Отклонённый вариант
AWS KMS

Данные хранятся за рубежом, ограниченный контроль.

Только AWS (нет self-hosted)
Данные вне юрисдикции заказчика
$3,000/1M операций

3. Механики безопасности

3.1 Envelope Encryption Implementation

FileGenDEKAES256StoreBlobMeta
100%
Ctrl+Колесо или перетаскивание

Рис. 2. Envelope Encryption. Plaintext DEK никогда не покидает RAM и не записывается на диск.

Ключевые аспекты реализации:

  1. DEK генерируется внутри Vault (Transit Secret Engine) — Vault возвращает plaintext (для шифрования) и ciphertext (для хранения)
  2. Потоковое шифрование — файл не загружается целиком в RAM
  3. Plaintext DEK безопасно уничтожается после использования (Secure Wipe + mlock)
  4. Метаданные (wrapped DEK, nonce) хранятся отдельно от зашифрованного blob

3.2 Dynamic Watermarking (Rust)

Производительность: Рендеринг страницы PDF с водяным знаком за ~140ms (vs 3-5 сек на Python):

  • Парсинг PDF: 45ms
  • Растеризация в изображение (150 DPI): 80ms
  • Наложение диагональной сетки водяных знаков (15% opacity): 15ms

Формат водяного знака: {ФИО} | {IP} | {Timestamp UTC} | {Document ID} — позволяет идентифицировать источник утечки при фотографировании экрана.

3.3 Quorum Authorization (Защита от «Злого Админа»)

Для доступа к мастер-ключам (Unseal Vault) требуется физическое присутствие нескольких офицеров безопасности. Используется схема разделения секрета Шамира:

Принцип: Используется схема разделения секрета Шамира (3-of-5). Мастер-ключ разделён на 5 частей, распределённых между ответственными лицами из разных подразделений.

Гарантия: Единоличный доступ к расшифровке данных исключён математически.

3.4 WORM Audit Logging

Механика: Audit events записываются в S3 с Object Lock в Compliance Mode (5 лет). Записи невозможно удалить даже с root-правами — юридическая значимость логов гарантирована.


4. Результаты и метрики

4.1 Реализация требований безопасности

Таблица 6. Защита от угроз

УгрозаКонтрмера
Кража БДEnvelope Encryption — данные бесполезны без ключей из Vault
Скриншот/ФотоПерсонализированные водяные знаки (ФИО + IP + Timestamp)
Удаление логовWORM-хранение (Object Lock 5 лет)
Evil AdminQuorum 3-of-5 по схеме Шамира

4.2 Производительность

Таблица 7. Latency по операциям

ОперацияTargetActual
Document Listменее 200 мс85ms
PDF Preview (first page)менее 500 мс180ms
PDF Navigate (next page)менее 200 мс140ms
Searchменее 1 сек450ms
Upload (100MB)менее 30 сек12s

4.3 Бизнес-результаты

  • M&A Сделки: Успешно сопровождено несколько сделок
  • Security Audit: Независимый пенетрационный тест пройден без критических замечаний
  • Compliance: Соответствие 152-ФЗ и внутренним политикам ИБ
  • Zero Incidents: 0 утечек за 18 месяцев эксплуатации

5. Заключение и рекомендации

Архитектура на базе Envelope Encryption, Rust-based rendering и WORM audit logs — рабочий подход к задачам защищённого документооборота.

Ключевые выводы:

  1. Envelope Encryption — обязательный паттерн для защиты данных at rest
  2. HashiCorp Vault обеспечивает централизованное управление ключами и аудит
  3. Rust необходим для real-time watermarking с acceptable latency
  4. WORM Storage — надёжный способ обеспечить юридическую значимость логов
  5. Defense in Depth — комбинация мер снижает риск успешной атаки

Рекомендация: Данная архитектура применима к любым сценариям обмена конфиденциальными документами: юридические фирмы, аудиторы, госзакупки, IP licensing.

Защищённая виртуальная комната данных для M&A-сделок | Софтэнк