PDF давно стал эталоном для обмена документами: в этом формате хранятся отчеты, счета, судебные решения и презентации. Его создавали как цифровой аналог бумаги, защищенный от правок. Однако на практике именно PDF чаще всего становится объектом подделок и инструментом для скрытой передачи данных.
Разберем методы экспертного анализа PDF-документов: от поиска следов редактирования до восстановления удаленного текста и проверки легитимности цифровых подписей.
Пять уровней исследования PDF
Для специалиста по информационной безопасности работа с PDF обычно сводится к трем сценариям:
- Проверка подлинности. Необходимо подтвердить, что условия договора не менялись после подписания, а печать или подпись не были скопированы из другого документа.
- Предотвращение утечек (DLP). Поиск данных, которые скрыли черным маркером, но оставили в метаданных или невидимых текстовых слоях.
- Обнаружение угроз. Выявление вредоносного кода, скриптов-загрузчиков и фишинговых ссылок, встроенных в файл.
PDF файл это не просто изображение с текстом, а сложный контейнер, состоящий из объектов, слоев, сценариев и метаданных. Глубокое изучение структуры файла позволяет восстановить полную историю его изменений.
Уровень 1: Работа с изображениями
Часто PDF служит лишь оболочкой для сканированного документа. В этом случае страницы сохраняются как растровые изображения, и к ним применимы стандартные методы фототехнической экспертизы.
Признаки вмешательства:
- Использование инструментов клонирования или размытия (Blur/Clone stamp).
- Неоднородная зернистость (шум матрицы) на разных участках страницы.
- Специфические артефакты сжатия JPEG вокруг цифр или подписей, отличающиеся от общего фона.
- Фрагменты с разным разрешением на одной странице.
Для анализа необходимо извлечь изображения из контейнера без перекодирования. Утилита pdfimages (для Mac/Linux, входит в пакет poppler-utils) позволяет выгрузить оригиналы в исходном качестве для дальнейшего изучения уровней ошибок сжатия.
Уровень 2: Внутренняя структура и инкрементные обновления
Формат PDF поддерживает функцию дозаписи. При внесении правок редактор часто не переписывает файл полностью, а добавляет изменения в конец документа. Для криминалиста это бесценная особенность: старые версии текста, удаленные страницы и первоначальные изображения физически остаются внутри файла, даже если обычный просмотрщик их не отображает.
На что обратить внимание:
Метаданные:
- Поля:
CreationDate(дата создания) иModDate(дата изменения). - Параметры:
Producer(библиотека, создавшая файл) иCreator(исходное ПО для верстки). - Аномалии: если документ якобы создан в Word, но в поле
Producerуказана библиотека iText, файл был сгенерирован программно.
Слои и объекты:
- Наличие скрытых слоев (Optional Content Groups) поверх основного текста.
- Порядок вывода объектов: наложение элементов друг на друга часто скрывает фрагменты исходного содержания.
Шрифты:
- Смешение разных гарнитур в пределах одного абзаца.
- Текст, переведенный в векторные кривые. Это часто делают для того, чтобы скрыть следы правки конкретных символов.
Инструменты:
- ExifTool (Windows, Mac/Linux), стандарт для просмотра всех метаданных.
- peepdf-3 (Windows, Mac/Linux), интерактивный анализатор, позволяющий исследовать дерево объектов и версии документа.
- qpdf (Windows, Mac/Linux), инструмент для декомпрессии потоков данных, превращающий бинарные блоки в читаемый код.
- PyMuPDF или pdfplumber (Windows, Mac/Linux), библиотеки Python для автоматизации парсинга.

Уровень 3: Ошибки при скрытии информации
Самый распространенный сценарий утечки данных, это наложение черного прямоугольника поверх текста в обычном редакторе. Визуально данные исчезают, но в коде документа они остаются нетронутыми.
Как это происходит:
- Текст просто перекрыт графической фигурой и легко копируется через
Ctrl + CилиCommand + C. - Данные удалены с основного слоя, но сохранились в невидимом слое распознавания (OCR).
- Информация осталась в метаданных или закладках документа.
Провалы ретуширования стали классикой в мире ИБ. Например, адвокаты Пола Манафорта скрыли данные в Word черной заливкой и экспортировали файл в PDF. Журналисты просто скопировали содержимое, раскрыв детали о связях с иностранными структурами. В 2021 году компания AstraZeneca корректно удалила текст в контракте с ЕС, но забыла про закладки (bookmarks), в которых остались графики платежей и суммы сделки.
Для автоматического поиска таких ошибок используются инструменты вроде X-ray (Windows, Mac/Linux) или Unredact (Linux).

Уровень 4: Извлечение и распознавание текста
Текст в PDF может храниться в виде текстовых объектов, векторных контуров или растровых изображений. Часто в одном файле встречаются все три типа.
Алгоритм проверки:
- Извлечь весь доступный текстовый слой и сравнить его с тем, что отображается на экране.
- Провести OCR-распознавание растровых фрагментов.
- Сопоставить результаты: любые расхождения указывают на преднамеренное редактирование.
Для этих целей применяются:
- Tesseract (Windows, Mac/Linux), классический движок распознания, поддерживает десятки языков.
- DocTR (Windows, Mac/Linux), современная библиотека с нейросетевыми моделями.
- PyMuPDF + Tesseract или pdfplumber, для комплексного анализа: извлечение, распознание, сравнение.

Уровень 5: Актуальные CVE и вредоносный код
PDF эффективный вектор атаки. Формат поддерживает исполнение JavaScript, запуск внешних приложений и автоматические действия при открытии файла.
Актуальные уязвимости:
| CVE ID | Тип уязвимости | Последствия |
|---|---|---|
| CVE-2024-49535 | XXE Injection | Чтение локальных файлов на устройстве жертвы |
| CVE-2025-54257 | Use-After-Free | Произвольное исполнение кода через ошибки памяти |
| CVE-2024-4761 | V8 Zero-Day | Обход песочницы Chrome через PDF-рендерер |
| CVE-2025-64899 | Out-of-bounds Read | Утечка данных из памяти приложения |
Индикаторы компрометации (IoC) внутри структуры:
/JavaScriptи/JS, наличие исполняемого кода (часто используется для техники переполнения памяти)./OpenActionи/AA(Additional Actions), команды, запускаемые автоматически при открытии страницы./Launch, триггер для запуска внешних команд или файлов (например, через PowerShell)./EmbeddedFiles, встроенные объекты, которые могут быть загрузчиками вредоносного ПО.
Для глубокого анализа PDF-документов используется специализированный стек, позволяющий заглянуть за пределы визуального рендеринга. Ключевые инструменты:
- pdf-parser.py, основной инструмент для извлечения и анализа отдельных объектов, включая вредоносные элементы.
- pdfid.py, скрипт для первичной оценки файла на наличие подозрительных тегов (
/JS,/JavaScript,/OpenAction). - peepdf-3 (ссылка выше), мощный фреймворк для поиска встроенных скриптов, вложений и анализа логической структуры.
- PhishTool, специализированное решение для разбора ссылок и инфраструктуры фишинговых атак.
Практический анализ и Shadow Attacks
Для выявления скрытых угроз используются инструменты pdfid.py и обновленный peepdf-3 (версия 5.1.1, май 2025).
Шаг 1: Быстрый аудит с pdfid.py
Утилита pdfid.py сканирует структуру файла на наличие специфических тегов без запуска полноценного парсера. Это безопасный способ понять, содержит ли файл активное содержимое.
Команда для запуска: python3 pdfid.py suspicious_file.pdf
Критические маркеры в отчете:
/JavaScriptи/JS: указывают на наличие сценариев. Если значение больше нуля, файл потенциально опасен и требует изоляции./OpenActionи/AA: триггеры, запускающие команды автоматически при открытии документа./Launch: самый опасный тег, сигнализирующий о попытке запуска внешних приложений или командной строки.- Обфускация: наличие записей вида
/J#61vaScriptговорит о попытке скрыть теги через шестнадцатеричное кодирование.
Шаг 2: Глубокое погружение с peepdf-3
Это интерактивная консоль для разбора документа по байтам.
Команда для запуска: python3 peepdf.py -i malicious.pdf
Полезные команды:
tree: Показывает логическое дерево объектов. Ищите узлы, не привязанные к основному каталогу (/Catalog), именно там часто скрыт вредоносный код.metadata: Извлечение XMP-данных. Позволяет узнать реального автора, путь к файлу в локальной системе разработчика и используемое ПО (Producer)object [номер]: Просмотр содержимого конкретного узла. Если поток данных сжат (/Filter/FlateDecode), peepdf-3 автоматически выполнит декомпрессию.extract js: Автоматическая выгрузка всех JavaScript-сценариев в отдельные файлы для дальнейшего изучения в песочнице.
Цифровые подписи и Shadow Attacks
Цифровая подпись призвана гарантировать неизменность документа. Однако механизм добавочных сохранений PDF уязвим к Shadow Attacks (теневым атакам). Эту методику впервые представили эксперты Рурского университета в 2020 году, и она до сих пор актуальна из-за особенностей рендеринга.
Механика Shadow Attacks
Суть атаки в создании документа с двойным содержанием: легитимным (для подписывающего лица) и скрытым (активируемым после подписи). Подпись защищает только конкретный диапазон байтов, поэтому добавление новых объектов через инкрементное обновление часто не нарушает валидность сертификата в популярных программах просмотра.
Существует три основных вектора:
- Hide (Скрытие): вредоносный контент перекрывается непрозрачным объектом. После подписи добавляется обновление, которое делает этот объект прозрачным.
- Replace (Замена): через таблицу перекрестных ссылок (Xref) происходит подмена легитимного объекта на другой с тем же идентификатором.
- Hide-and-Replace (Скрытие и замена): полная перестройка структуры документа через манипуляцию описанием объектов.
Исследования показывают, что значительная часть ПО, включая Adobe Acrobat и Foxit Reader, периодически оказывается уязвимой к тем или иным вариациям Shadow Attacks.
В организациях с высоким уровнем риска ручного анализа недостаточно. Оптимальным решением становится технология CDR, автоматическая пересборка PDF с удалением потенциально опасных компонентов.
Принцип работы CDR:
- Входящий PDF-файл полностью деконструируется на атомарные объекты.
- Все активные элементы (скрипты, макросы, встроенные файлы, метаданные) удаляются.
- Документ собирается заново из проверенных компонентов (текст, безопасные изображения).
- Конечный пользователь получает визуально идентичную, но гарантированно чистую копию.
Решения для внедрения:
- Clearswift Adaptive DLP, автоматическая очистка на уровне почтового шлюза.
- Adobe Acrobat Pro, функция Sanitize Document для ручной обработки.
- Foxit PDF Editor, пакетная обработка документов с удалением метаданных.
- GdPicture.NET SDK, инструмент для интеграции CDR-функционала в собственные системы предприятия.
Итоговый чек-лист криминалистического анализа
- Изоляция: работайте только с копией файла внутри виртуальной машины.
- Метаданные: сверьте даты создания и изменения, проверьте историю версий ПО.
- Структура: ищите признаки добавочных сохранений, предыдущие версии файла могут остаться внутри.
- Изображения: используйте ELA-анализ для поиска следов монтажа на сканах.
- Скрытые слои: проверьте документ на наличие невидимого текстового слоя через полное выделение контента (
Ctrl + AилиCommand + C). - Подписи: убедитесь, что в файл не вносились изменения после наложения цифровой подписи.
- Активный код: используйте pdfid.py для поиска тегов
/JavaScript,/Launchи подозрительных URL. - OCR-сверка: сравните распознанный текст с растровых фрагментов с текстовым слоем документа.
Криминалистика PDF сегодня, это не просто поиск правок в договоре, а полноценное исследование на стыке системного анализа и кибербезопасности. Появление Shadow Attacks и новых критических уязвимостей доказывает: визуальное отображение файла больше не является доверенным источником информации.
Читайте также: Драйвер EnCase 2006 года стал оружием хакеров: атака BYOVD отключает 59 средств защиты
Для современного бизнеса PDF остается основным вектором доставки вредоносной нагрузки. Единственная надежная стратегия, это переход к модели CDR, при которой любой документ из внешнего источника по умолчанию считается недоверенным объектом, требующим глубокой структурной очистки.