Написано для команд безопасности и о нашем собственном продукте не меньше, чем о чужих.
Введение
Эта статья опубликована в блоге бесплатного онлайн‑просмотрщика документов. Об этом стоит упомянуть в первой строке, потому что жанр, к которому она относится — «скрытые опасности бесплатных PDF‑инструментов» — обычно представляет собой рекламный текст в лабораторном халате, и вы должны читать её с этим в виду.
Итак, сразу раскрываем детали. Doconut.app — бесплатный хостинг‑просмотрщик. Когда вы используете его, ваш PDF загружается на наши серверы, там рендерится и удаляется после завершения сеанса просмотра. Всё, что ниже описано о структурных рисках загрузки документа в инфраструктуру чужого провайдера, относится и к нам. Мы не будем спорить иначе; мы будем конкретны в том, что делаем и чего не делаем, и позволим вам решить, какие документы могут здесь находиться.
1. Риск структурный, а не экзотический
Интересные риски — не нулевые уязвимости. Это обычные последствия того, что файл находится где‑то, где вы не контролируете его.
Загрузка реальна. Хостинг‑просмотрщик обязан получить документ, чтобы отобразить его. Любой, кто утверждает, что у их хостинг‑сервиса «файл никогда не покидает ваш компьютер», либо описывает полностью клиентский инструмент, либо говорит неточно. На Doconut.app загрузка происходит по HTTPS, что защищает её в пути — а затем файл находится на наших серверах, потому что так необходимо.
Сохранение — это обещание, а не механизм, который можно проверить. Мы говорим, что файл удаляется по окончании сеанса. Это правда, но вы не можете подтвердить это извне. Это суть проблемы каждого бесплатного просмотрщика, включая этот: вы возлагаете доверие на организацию, с которой у вас нет контракта.
Общая инфраструктура — общая. Бесплатный публичный сервис обрабатывает документы множества клиентов на общей инфраструктуре. Это иной уровень риска, чем у программного обеспечения, работающего внутри вашей сети, независимо от того, насколько тщательно оно эксплуатируется.
Отсутствие соглашения — отсутствие правовой основы. Если вы обрабатываете персональные данные в соответствии с GDPR или PHI согласно HIPAA, перемещение файла к процессору без Договора обработки данных (DPA) или Соглашения о деловом партнерстве (BAA) представляет проблему в момент загрузки — независимо от того, будет ли когда‑нибудь нарушена безопасность. Doconut.app не имеет DPA и BAA с вами. Для регулируемого материала это окончательный ответ, и никакое шифрование это не меняет.
2. Что мы не делаем
Жанр этой статьи обычно обещает всё. Поскольку цель здесь — калибровка, более полезный список — это то, чего нет:
- Нет сертификатов безопасности. Нет ISO 27001, нет SOC 2, нет подтверждения HIPAA, нет оценки PCI DSS. Не для бесплатных сайтов и не для SDK. Если ваш опросник поставщиков требует сертификат, у нас его нет.
- Нет журнала аудита. На Doconut.app нет учётных записей, поэтому нет чего‑то, к чему можно привязать доступ, и нет следов, которые можно передать.
- Нет удаления метаданных. Мы рендерим документ как есть. Имена авторов, история правок и комментарии в файле остаются в файле — что стоит знать перед тем, как пересылать контракт, хотя этот риск относится к документу, а не к нам.
- Нет шифрования «на диске», о котором можно говорить. Мы не предлагаем зашифрованное хранилище, потому что не предлагаем хранилище. Не хранить что‑то — более сильное свойство, чем шифровать, но это другое свойство, и поставщики часто их смешивают.
- Нет настраиваемого срока хранения. Время определяется нами. Нет настройки, которую вы могли бы изменить.
3. Что мы делаем
- Загрузка происходит по HTTPS.
- Документ рендерится на наших серверах, и браузер получает готовые страницы, а не исходный файл.
- Рендеринг не является выполнением: макросы в файле Office не запускаются, а действия PDF не активируются. Просмотрщик просто отображает документ.
- Файл удаляется по окончании сеанса просмотра. Нет библиотеки, нет истории, нет учётной записи.
- Загрузчик отклоняет то, что не может обработать до отправки — фиксированный список более 70 расширений, с ограничением размера для каждого формата от 5 МБ до 25 МБ.
- DICOM намеренно исключён. Файлы
.dcmи.imaне принимаются, именно потому что DICOM‑файл содержит идентификаторы пациентов вместе с изображением, а публичный эндпоинт загрузки — неправильное место для такого.
4. Тест, который можно применить к любому бесплатному просмотрщику, включая этот
Вместо списка угроз — четыре вопроса, отделяющие пригодные решения от непригодных:
- Говорит ли он явно, что файл загружается? Если ответ расплывчат, предположите, что файл загружается.
- Указывает ли он срок хранения в конкретных терминах? «Удалено по окончании сеанса» или «удалено через 60 минут» — это ответы. «Ваши файлы в безопасности у нас» — нет.
- Готов ли он подписать соглашение? Для регулируемых данных это единственный важный вопрос, и бесплатные сервисы почти никогда этого не делают. Мы не делаем.
- Заявляет ли он о наличии сертификатов? Если да, попросите сертификат и его область применения. Многие такие заявления не выдерживают такой проверки.
Применительно к Doconut.app: да, файл загружается; да, удаление происходит по окончании сеанса; нет, мы не подпишем DPA; и нет, у нас нет сертификатов. Такое сочетание подходит для большого количества документов, но не подходит для некоторых. Суть в том, что вы можете определить, что подходит, а что нет.
5. Когда размещённый просмотрщик — неправильный инструмент
Если документ подпадает под режим соответствия, покрыт обязательством конфиденциальности клиента или просто представляет собой материал, который вы не захотите объяснять в отчёте об инциденте, ни один бесплатный размещённый просмотрщик не является правильным решением — включая наш. Правильное решение — держать рендеринг внутри собственной сети.
Для этого и предназначен Doconut SDK: тот же .NET‑движок рендеринга, который работает на этом сайте, но установлен в вашем окружении. Он рендерит на ваших серверах и не делает запросов к нам, поэтому документ никогда не пересекает границу, которую вы ещё не оценили.
Будьте также ясны в том, чем SDK не является. Он не поставляется с шифрованием «на диске», управлением ключами, интеграцией провайдера идентификации или журналом аудита, и не может сделать ваше приложение соответствующим каким‑либо требованиям. Эти контрольные меры — ваша ответственность, что и есть смысл, потому что именно их вы уже можете продемонстрировать. Компонент, работающий внутри вашей сети и не вызывающий внешних сервисов, — это архитектурный аргумент, и для большинства проверок безопасности он более полезен, чем сертификат сторонней организации.
Заключение
Бесплатные PDF‑просмотрщики действительно полезны, и большинство документов, с которыми работают люди, не являются чувствительными. Ошибка заключается не в их использовании, а в использовании без понимания, к какой категории относится ваш файл.
Для обычного документа, который нужно прочитать один раз, просмотрщик, не сохраняющий данные, — разумный выбор и более безопасный, чем скачивание файла и открытие его в любой установленной программе. Doconut.app делает это бесплатно, без учётной записи и удаляет файл после просмотра.
Для любого документа, подпадающего под обязательство, которое вам придётся защищать, держите обработку на оборудовании, которым вы управляете.
Немедленные действия
- Проведите аудит PDF‑рабочих процессов в вашей организации и составьте каталог уже используемых бесплатных инструментов — обычно их больше, чем ожидают.
- Классифицируйте, какие типы документов могут быть отправлены в размещённый сервис. Это решение политики, а не техническое.
- Перенесите остальное внутрь, используя Doconut SDK или аналог, и сохраняйте доказательства, которые потребуют ваши аудиторы.
