Безопасность

Цифровая криминалистика PDF: как найти скрытые данные и следы манипуляций

Артем Сафонов
By Артем Сафонов , Аналитик угроз
Цифровая криминалистика PDF: как найти скрытые данные и следы манипуляций
Image by Anonhaven

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) поверх основного текста.
  • Порядок вывода объектов: наложение элементов друг на друга часто скрывает фрагменты исходного содержания.

Шрифты:

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

Инструменты:

  1. ExifTool (Windows, Mac/Linux), стандарт для просмотра всех метаданных.
  2. peepdf-3 (Windows, Mac/Linux), интерактивный анализатор, позволяющий исследовать дерево объектов и версии документа.
  3. qpdf (Windows, Mac/Linux), инструмент для декомпрессии потоков данных, превращающий бинарные блоки в читаемый код.
  4. PyMuPDF или pdfplumber (Windows, Mac/Linux), библиотеки Python для автоматизации парсинга.

Инструмент ExifTool

    Уровень 3: Ошибки при скрытии информации

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

    Как это происходит:

    • Текст просто перекрыт графической фигурой и легко копируется через Ctrl + C или Command + C.
    • Данные удалены с основного слоя, но сохранились в невидимом слое распознавания (OCR).
    • Информация осталась в метаданных или закладках документа.

    Провалы ретуширования стали классикой в мире ИБ. Например, адвокаты Пола Манафорта скрыли данные в Word черной заливкой и экспортировали файл в PDF. Журналисты просто скопировали содержимое, раскрыв детали о связях с иностранными структурами. В 2021 году компания AstraZeneca корректно удалила текст в контракте с ЕС, но забыла про закладки (bookmarks), в которых остались графики платежей и суммы сделки.

    Для автоматического поиска таких ошибок используются инструменты вроде X-ray (Windows, Mac/Linux) или Unredact (Linux).

    Инструмент восстановления и отображения текста PDF Redaction

    Уровень 4: Извлечение и распознавание текста

    Текст в PDF может храниться в виде текстовых объектов, векторных контуров или растровых изображений. Часто в одном файле встречаются все три типа.

    Алгоритм проверки:

    1. Извлечь весь доступный текстовый слой и сравнить его с тем, что отображается на экране.
    2. Провести OCR-распознавание растровых фрагментов.
    3. Сопоставить результаты: любые расхождения указывают на преднамеренное редактирование.

    Для этих целей применяются:

    1. Tesseract (Windows, Mac/Linux), классический движок распознания, поддерживает десятки языков.
    2. DocTR (Windows, Mac/Linux), современная библиотека с нейросетевыми моделями.
    3. PyMuPDF + Tesseract или pdfplumber, для комплексного анализа: извлечение, распознание, сравнение.

    PDF Инструмент DocTR

    Уровень 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-документов используется специализированный стек, позволяющий заглянуть за пределы визуального рендеринга. Ключевые инструменты:

    1. pdf-parser.py, основной инструмент для извлечения и анализа отдельных объектов, включая вредоносные элементы.
    2. pdfid.py, скрипт для первичной оценки файла на наличие подозрительных тегов (/JS, /JavaScript, /OpenAction).
    3. peepdf-3 (ссылка выше), мощный фреймворк для поиска встроенных скриптов, вложений и анализа логической структуры.
    4. 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-функционала в собственные системы предприятия.

    Итоговый чек-лист криминалистического анализа

    1. Изоляция: работайте только с копией файла внутри виртуальной машины.
    2. Метаданные: сверьте даты создания и изменения, проверьте историю версий ПО.
    3. Структура: ищите признаки добавочных сохранений, предыдущие версии файла могут остаться внутри.
    4. Изображения: используйте ELA-анализ для поиска следов монтажа на сканах.
    5. Скрытые слои: проверьте документ на наличие невидимого текстового слоя через полное выделение контента (Ctrl + A или Command + C).
    6. Подписи: убедитесь, что в файл не вносились изменения после наложения цифровой подписи.
    7. Активный код: используйте pdfid.py для поиска тегов /JavaScript, /Launch и подозрительных URL.
    8. OCR-сверка: сравните распознанный текст с растровых фрагментов с текстовым слоем документа.

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

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

    PDF PDF проверка Анализ PDF-файлов Кибербезопасность Криминалистика PDF Скрытые данные в PDF