Какие форматы файлов чаще всего скрывают внутри PDF и как их обнаружить

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

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

Основные типы встроенного содержимого в PDF

Спецификация PDF позволяет включать следующие категории объектов:

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

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

Изображения

Наиболее часто встречающимся встроенным типом являются изображения. PDF поддерживает следующие форматы:

  • JPEG (baseline и progressive);
  • JPEG 2000;
  • PNG (с поддержкой альфа‑канала);
  • TIFF (с различными схемами сжатия);
  • в редких случаях — BMP или GIF.

Изображения могут быть встроены как непосредственные потоки данных или как ссылки на внешние файлы (в последнем случае они не считаются truly embedded, но всё равно влияют на размер документа). При анализе стоит обращать внимание на необычно большие изображения, которые могут использоваться для сокрытия другого бинарного кода (стeganография).

Шрифты

PDF часто содержит встроенные шрифты, чтобы гарантировать одинаковый вид текста на разных системах. Типы шрифтов, которые могут быть помещены в документ:

  • Type 1 (PostScript);
  • TrueType;
  • OpenType (включая CFF‑вариант);
  • встроенные шрифты CID‑keyed для азиатских языков.

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

Мультимедиа и 3D

Современные версии PDF допускают встраивание мультимедийного контента и трехмерных моделей:

  • аудио форматы — MP3, AAC, WAV;
  • видео форматы — H.264 (MPEG‑4 Part 10), VP8, MPEG‑2;
  • анимация — устаревший формат Flash (SWF) всё ещё может встречаться в старых документах;
  • 3D модели — U3D (Universal 3D) и PRC (Product Representation Compact).

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

Вложенные файлы и сценарии

PDF позволяет встраивать произвольные файлы как «attachment» (вложения). Технически любой тип данных может быть помещён в такой объект: архивы (ZIP, RAR), исполняемые файлы, скрипты, документы Office и т.п. Вложения доступны через панель вложений в большинстве читателей и могут быть открыты пользователем вручную.

Кроме того, в PDF можно разместить JavaScript‑код, который исполняется при определенных действиях (открытие документа, переход на страницу, нажатие на поле формы). Хотя современные читатели ограничивают возможности таких скриптов, они всё ещё могут использоваться для автоматизации нежелательных действий.

Скрытые структуры: метаданные, слои и optional content groups

Некоторые данные не являются непосредственным содержимым, но влияют на отображение и могут использоваться для сокрытия информации:

  • метаданные (XMP, стандартные свойства PDF) — могут хранить произвольный текст или бинарные блоки;
  • слои (Optional Content Groups, OCG) — позволяют показывать или скрывать группы объектов в зависимости от условий;
  • закладки, переходы и действия — могут ссылаться на скрытые области документа;
  • шифрованные потоки — содержимое недоступно без правильного пароля, но само наличие шифрования сигнализирует о наличии защищённой информации.

Эти элементы часто применяются для управления сложными документами, однако их также можно использовать для сокрытия вредоносного кода или конфиденциальных данных от поверхностного просмотра.

Как проверить PDF на скрытое содержимое

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

  1. Откройте документ в редакторе, поддерживающем инспекцию объектов (например, Adobe Acrobat Pro, Foxit PhantomPDF, PDF‑XChange Editor).
  2. Перейдите в панель «Свойства» → «Описание» и проверьте метаданные на наличие необычных полей или больших блоков данных.
  3. Исследуйте панель «Вложения» («Attachments») — здесь перечислены все встроенные файлы независимо от их типа.
  4. Воспользуйтесь функцией «Просмотр объектов» или «Object Inspector» — она показывает типы потоков (изображения, шрифты, мультимедиа, скрипты и т.д.) и их размеры.
  5. Проверьте слои и группы optional content: в большинстве редакторов есть панель «Layers» где можно включать/выключать слои и видеть, какие объекты в них находятся.
  6. Если подозревается наличие JavaScript, откройте панель действий («Actions») и изучите скрипты, привязанные к открытию документа, страницам или полям формы.
  7. Для более глубокого анализа можно воспользоваться командной строкой: утилиты вроде pdfinfo, pdffonts, pdfimages (из poppler) позволяют извлечь шрифты, изображения и получить сведения о встроенных объектах без GUI.
  8. При обнаружении подозрительных вложений (например, исполняемых файлов, архивов с неизвестным содержимым) извлеките их в изолированную среду и проверьте антивирусом или песочницей.

Важно помнить, что некоторые виды сокрытия (например, стеганография в изображениях) требуют специальных инструментов для обнаружения и выходят за рамки стандартного анализа PDF.

Риски и ограничения

Несмотря на возможность обнаружить многие типы встроенных данных, существуют ограничения:

  • Зашифрованные документы требуют пароля для доступа к содержимому; без него невозможно определить, какие объекты находятся внутри.
  • Некоторые форматы (например, специфические шрифты или редкие мультимедиа-кодеки) могут не распознаваться устаревшими читателями, что приводит к ложному выводу об их отсутствии.
  • Сложные схемы сокрытия, использующие комбинацию стеганографии в изображениях и пользовательских JavaScript‑функций, могут потребовать специализированного forensic‑анализа.
  • Автоматические сканеры часто фокусируются только на известных угрозах (исполняемые файлы, макросы) и могут пропустить нестандартные полезные нагрузки.

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

Практические рекомендации

Для снижения риска, связанного с скрытым содержимым в PDF, следует придерживаться следующих шагов:

  1. Всегда открывайте полученные PDF в режиме «только чтение» с отключенным автоматическом выполнением JavaScript и мультимедиа.
  2. Используйте доверенные средства для извлечения вложений и изображений перед их дальнейшим использованием.
  3. Регулярно обновляйте PDF‑читалку и антивирусное ПО, чтобы они могли обнаруживать известные эксплойты, связанные с обработкой шрифтов, изображений и мультимедиа.
  4. Если документ содержит большое количество вложенных файлов или необычно большие объекты, рассматривайте его как потенциально опасный и проводите дополнительную проверку в изолированной среде.
  5. Для корпоративной среды настройте политики, запрещающие открытие PDF с активным JavaScript или с определенными типами вложений (например, .exe, .scr, .zip) без предварительного согласования службы безопасности.

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

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

  • Можно ли полностью запретить встраивание любых файлов в PDF?
  • Спецификация PDF не предоставляет механизма полного запрета на встраивание объектов; ограничения реализуются на уровне программ‑читателей и политик безопасности.
  • Какие форматы изображений наиболее безопасны для встраивания?
  • Форматы без поддержки исполнимого кода, такие как baseline JPEG, PNG и TIFF с базовой сжатием, считаются относительно безопасными, поскольку они не содержат исполняемых инструкций.
  • Как отличить легитимное встраивание шрифта от вредоносного?
  • Легитимные шрифты обычно имеют корректные таблицы имен и подписи, тогда как подозрительные могут содержать нестандартные блоки данных или anomalously большие размеры. Инструменты вроде ttfdump или otfinfo помогут проверить внутреннюю структуру.
  • Нужно ли сканировать PDF на вирусы перед открытием?
  • Да, особенно если документ получен из внешней почты или загружен с ненадёжного сайта. Антивирусные решения часто включают модули для анализа PDF на наличие вредоносных объектов и скриптов.
  • Можно ли удалить все встроенные объекты, оставив только чистый текст?
  • В некоторых редакторах существует функция «оптимизации» или «сжатия», которая удаляетunused объекты, шрифты и изображения, не влияющие на отображение. Однако полное удаление всех встроенных данных может привести к потере форматирования и интерактивных элементов.
PEFile.ru