Что скрывают PDF-документы помимо видимого текста

“Не зря говорят, что если документ выглядит как пустой лист, он наверняка полон того, чего ты не видишь. PDF — один из самых непроницаемых форматов в офисе. Его открывают, читают текст, печатают и забывают. Но внутри может скрываться не только текст, а целое приложение, история его создания и данные, которые никогда не должны попасть в договор или акт.”

У нас регулярно появляются PDF-документы — договоры, акты, спецификации. Создают их в текстовых редакторах, сервисах электронного документооборота, конвертируют из других форматов или скачивают готовые шаблоны. Часто эти документы, казалось бы, простые. Однако разница между видимой частью и внутренним содержимым бывает огромной. Например, один PDF с актом может содержать больше данных, чем весь договор. Разберёмся, в чём здесь неочевидность.

Видимый текст и невидимые слои PDF

PDF создаётся как окончательный документ, который не должен меняться. Но внутренняя структура может оказаться сложнее, чем предполагалось.

Основные элементы PDF-файла:

  • Содержимое страниц — текст, изображения, ссылки. Это видимый уровень.
  • Встроенные объекты — шрифты, векторные графики, растровые картинки. Они могут занимать значительный объём.
  • Метаданныеинформация о документе: автор, дата создания, версия ПО, название исходного файла. Иногда здесь появляются служебные данные системы, в которой документ был создан.
  • Скрытые слои — комментарии, аннотации, слои для редактирования, которые были забыты при финализации.
  • Бинарные данные — в PDF можно встроить практически любые файлы: исполняемые скрипты, архивы, базы данных. Размер таких данных может превышать весь видимый текст договора.

Одна из причин такого расхождения — автоматическое добавление ресурсов. Например, когда документ создаётся из шаблона, шаблон может включать не только стандартные поля, но и набор векторных изображений для оформления, специфичные шрифты, служебные скрипты для проверки заполнения полей. Эти ресурсы попадают в итоговый файл, даже если в текущем документе они не используются.

Другой пример — конвертация. Если договор сделан в текстовом редактором, потом экспортирован в PDF, редактор может встроить в файл всю историю правок, временные объекты, служебные метки. Визуально это никак не проявляется, но занимает место и может быть извлечено.

Почему акт оказался больше договора?

Конкретный случай: договор был подготовлен в виде простого текстового файла и потом конвертирован в PDF через стандартный инструмент. Внутри остался лишь текст и базовые метаданные. Акт же был создан в системе электронного документооборота, которая:

  • использует шаблон со сложной векторной графикой для оформления заголовков и рамок;
  • встраивает в каждый документ JavaScript для проверки цифрового подписи и валидации полей;
  • сохраняет внутри служебные метки системы для последующего поиска в архиве;
  • добавляет в метаданные не только стандартные поля, но и идентификаторы транзакций, ссылки на внутренние объекты системы.

Даже если акт по объёму текста меньше договора, его внутренние объекты и скрипты могут занимать больше пространства. Размер файла — первичный индикатор, но не единственный. Чтобы увидеть полный состав, нужны инструменты анализа.

Как посмотреть, что внутри PDF?

Стандартные средства просмотра показывают лишь видимые страницы. Для анализа структуры нужны специализированные инструменты.

  1. Анализаторы PDF-структуры. Например, pdfinfo, pdftk, библиотеки вроде Poppler позволяют вывести список всех объектов, метаданных, встроенных файлов. Простейший пример командной строки:

[КОД: используйте pdfinfo для вывода метаданных документа]

  1. Извлечение ресурсов. Можно вытащить все изображения, шрифты, скрипты, чтобы посмотреть их размер и содержимое. Пример через pdftk:

[КОД: извлечь все встроенные файлы из PDF в отдельную директорию]

  1. Анализ бинарных данных. Если внутри есть неожиданные большие объекты, их можно найти через инструменты типа binwalk или hex-редакторы. Они показывают смещения и размеры всех блоков данных.

  2. Проверка на скрытые слои. Некоторые редакторы PDF позволяют просматривать слои и аннотации, которые не отображаются при обычном открытии. Важно понимать: если акт или договор попадает в архив, в систему контроля или передаётся регулятору, все эти скрытые данные тоже передаются. Они могут не соответствовать требованиям к передаваемой информации.

Риски избыточных данных в документах

Казалось бы, если данные скрыты и не влияют на видимое содержимое, почему это проблема?

  • Уязвимости. Встроенный JavaScript или другие исполняемые объекты могут быть использованы для атак. PDF — не только документ, но и потенциальный вектор для вредоносных скриптов.
  • Несоответствие требованиям регуляторов. Например, при передаче документов регулятору могут быть ограничения на тип и объём метаданных. Служебные метки внутренней системы, идентификаторы транзакций, это дополнительная информация, которую иногда нельзя передавать.
  • Архивы и поиск. Скрытые метки могут нарушить работу архивных систем или привести к неверной индексации. Документ, созданный в одной системе, может содержать теги, которые конфликтуют с системой архивации другой организации.
  • Конфиденциальность. В метаданных иногда сохраняются данные автора, путь к исходному файлу на компьютере, имя учётной записи — информация, которая не должна быть в финальном документе.
  • Размер передачи. Если документы передаются по каналам с ограничениями на объём, скрытые объекты могут привести к превышению лимитов.

В случае, когда акт содержит больше данных, чем договор, нужно проверить, какие именно данные добавлены и можно ли их удалить без нарушения документа.

Как очистить PDF от скрытого содержимого?

Не каждый PDF нужно очищать, но для документов, которые передаются внешним сторонам или регуляторам, это может быть необходимо.

  1. Пересоздание из чистого текста. Самый безопасный способ — взять видимый текст документа и создать новый PDF через минималистичный конвертер без шаблонов и дополнительных объектов.
  2. Оптимизация через специализированные инструменты. Некоторые программы для работы с PDF позволяют удалить неиспользуемые объекты, сжать изображения, очистить метаданные. Пример через командную строку:

[КОД: использование Ghostscript для оптимизации и удаления ненужных объектов из PDF]

  1. Удаление конкретных объектов. Если известны типы ненужных данных (например, конкретные скрипты или слои), их можно извлечь и удалить с помощью библиотек программирования.
  2. Проверка перед передачей. Внедрить этап анализа PDF в процесс подготовки документов для внешней передачи. Сравнить размер, проверить метаданные, убедиться, что нет бинарных данных, которые не относятся к документу. Не стоит пытаться удалять всё автоматически — некоторые объекты могут быть необходимы для цифровой подписи или целостности документа. Но избыточные служебные данные, шаблонные ресурсы, скрытые слои обычно можно убрать.

Зачем это всё знать в контексте регуляторики?

В регуляторике ФСТЭК и 152-ФЗ основное внимание уделяется защите информации, её классификации, передаче и архивировании. PDF-документы часто являются частью этой информации.

  • Классификация данных. Если в документе скрыты дополнительные данные, они могут повысить его уровень конфиденциальности. Например, служебные метки системы могут раскрывать внутреннюю структуру организации.
  • Передача регулятору. При передаче документов по требованиям регулятора могут быть ограничения на формат и содержимое. Скрытые объекты могут нарушить эти требования.
  • Архивация. Документы с избыточными скрытыми данными могут нарушить систему архивации, привести к ошибкам индексации или увеличить объём архивов без реальной необходимости.
  • Анализ угроз. PDF с встроенным JavaScript или другими исполняемыми элементами может рассматриваться как потенциальный вектор угрозы. Это важно при оценке защищенности информационных систем.

Понимание внутренней структуры PDF позволяет не только избежать проблем с передачей и архивацией, но и более точно оценивать риски, связанные с документами. Когда один акт содержит больше данных, чем весь договор, это сигнал к проверке и, возможно, очистке.

Неочевидные практические моменты

Помимо технических деталей, есть несколько практических ситуаций, которые часто не учитываются.

  • Слияние документов. Когда несколько PDF объединяются в один (например, договор и все акты в одном файле), скрытые объекты из каждого исходного документа переносятся в итоговый. Это может привести к неожиданному увеличению размера и наличию конфликтующих метаданных.
  • Цифровые подписи. Подпись в PDF, это тоже объект, который занимает место и содержит данные о сертификате, времени, алгоритме. Если подпись добавляется несколько раз (например, при каждом изменении), объём этих данных может стать значительным.
  • Версии редакторов. Разные версии текстовых редакторов и конверторов добавляют разные служебные данные в PDF. Документ, созданный в новой версии ПО, может содержать больше скрытой информации, чем документ из старой версии, даже если визуально они одинаковы.
  • Шаблоны организаций. В крупных организациях часто используются корпоративные шаблоны для документов. Эти шаблоны могут включать множество ресурсов для унификации оформления. Когда сотрудник создаёт простой акт, шаблон добавляет в него все свои ресурсы, что увеличивает итоговый файл.

Все эти моменты могут приводить к ситуации, когда короткий документ оказывается больше по внутреннему объёму, чем длинный договор.

Что делать в ежедневной работе?

Не нужно анализировать каждый PDF перед отправкой. Но стоит внедрить несколько практик для документов, которые передаются внешним сторонам или попадают в системы регуляторов.

  1. Для важных документов — проверить размер и, если он не соответствует видимому содержимому, провести базовый анализ через pdfinfo или аналоги.
  2. Использовать чистые шаблоны — если шаблон включает множество ресурсов, которые не нужны для большинства документов, создать минимальную версию шаблона для обычных случаев.
  3. Ограничить автоматическое добавление ресурсов — в системах документооборота настроить создание PDF без служебных скриптов и меток, если они не требуются для функционала.
  4. При конвертации — выбирать режимы, которые не сохраняют историю и временные объекты.
  5. Проверять перед архивацией — если документ попадает в долгосрочный архив, убедиться, что в нем нет скрытых данных, которые могут нарушить архивацию или раскрыть служебную информацию через годы.

Ситуация, когда один PDF с актом содержит больше данных, чем весь договор, — не исключение, а частый результат автоматизации и использования шаблонов. Понимая структуру PDF и возможные скрытые объекты, можно избежать неожиданных проблем с передачей, архивацией и соответствием требованиям регуляторов.

Оставьте комментарий