Исследователи придумали способ находить подделки в PDF-документах

Исследователи придумали способ находить подделки в PDF-документах

Исследователи придумали способ находить подделки в PDF-документах

Учёные из Университета Претории (ЮАР) разработали новый способ выявления изменений в PDF-документах. Их прототип анализирует так называемые file page objects — это такие внутренние структуры файла, где хранится всё: от текста и картинок до метаданных.

PDF-формат давно стал стандартом в деловой переписке, поэтому неудивительно, что его часто используют мошенники — например, чтобы подделывать договоры или внедрять вредоносный код.

Сегодня редактировать PDF может кто угодно: есть и Adobe Acrobat, и куча онлайн-редакторов. Поэтому важно уметь быстро определять, менялся ли документ — и если да, то как именно.

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

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

Что придумали в Претории

Новый прототип работает на Python и использует библиотеки PDFRW, hashlib и Merkly. Вот как он устроен:

  1. Сначала PDF нужно “защитить”. Программа читает файл, находит все page objects и создаёт уникальные хеши для каждой страницы, разбивая её содержимое на кусочки по 256 байт. Эти хеши строятся по принципу дерева Меркла: есть “листья” (для каждого блока) и “корень” (общий хеш всей страницы).
  2. Также отдельно хешируется сам объект страницы и метаданные всего документа. Чтобы избежать ложных срабатываний, некоторые части пропускаются — они могут меняться от редактора к редактору и не несут смысла.
  3. Все хеши прячутся внутри документа — в специальные скрытые поля. После этого сохраняется новая версия PDF — уже “защищённая”.
  4. Если потом нужно проверить файл на изменения, программа достаёт из него все сохранённые хеши, заново рассчитывает новые — и сравнивает. Если что-то не совпадает, значит, документ менялся.

Главное достоинство — точность. Система может указать не только, что файл изменился, но и какую именно страницу и какой участок (в пределах 256 байт) тронули. Также покажет, если были переписаны метаданные.

 

Пока работает лучше всего с Adobe Acrobat

Прототип тестировали на файлах, изменённых в Adobe Acrobat, и в этих случаях он отрабатывал отлично. Теоретически, он должен справляться и с другими редакторами — потому что «защищённые» PDF создаются единообразно через PDFRW, — но это ещё предстоит проверить.

Важное ограничение: систему нельзя применить к «обычным» PDF-документам — сначала их нужно защитить через этот же инструмент. И пока он не умеет отслеживать, скажем, смену шрифта или вставку JavaScript.

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

OOXML — фикция: LibreOffice обвинила Microsoft в манипуляциях

Проблемы совместимости остаются одной из главных причин, по которым пользователи не спешат переходить с Microsoft Office на LibreOffice. Формально всё работает, но на практике время от времени всплывают странности с вёрсткой, форматированием и отображением данных. И, как считают в The Document Foundation (TDF), дело тут вовсе не в LibreOffice.

Фонд, стоящий за LibreOffice, снова выступил с жёсткой критикой Microsoft. В блоге Итало Виньоли — одного из основателей TDF — корпорация из Редмонда обвиняется в том, что она игнорирует интересы отрасли ради собственных коммерческих целей.

По его словам, утверждение «OOXML — это стандарт, и его просто нужно принять» выглядит, мягко говоря, странно.

Виньоли настаивает: Office Open XML (OOXML) не может считаться полноценным стандартом, пока Microsoft не готова радикально переработать сами приложения Office. В качестве примера он напомнил о давней проблеме Excel с автопреобразованием данных — истории, которая напрямую затронула научное сообщество.

Excel годами автоматически превращал текстовые значения в даты. Для обычных таблиц это удобно, но для генетиков — катастрофа. Названия генов вроде MARCH1, SEPT1 или DEC1 Excel воспринимал как даты и превращал их в «1-Mar», «1-Sep» и «1-Dec».

В 2016 году журнал Genome Biology проанализировал почти 3,6 тысячи научных работ с Excel-файлами и выяснил, что примерно в каждой пятой были ошибки, вызванные именно автозаменой форматов.

Долгое время Microsoft считала проблему нишевой и не давала возможность отключить такое поведение. Лишь в 2023 году компания добавила соответствующую настройку; уже после того, как Комитет по номенклатуре генов человека (HGNC) был вынужден переименовать около 27 генов, чтобы избежать ошибок. К тому моменту ущерб для исследований уже был нанесён.

По словам Виньоли, OOXML «открыт» лишь формально. Спецификация формата занимает около 7 000 страниц, что делает полноценную и корректную реализацию сторонними разработчиками почти невозможной.

Кроме того, Microsoft Office сам не использует строгую версию стандарта (Strict OOXML), предпочитая так называемый Transitional-вариант. В нём до сих пор есть зависимости от старых, проприетарных форматов и поведения древних версий Word — вплоть до элементов с названиями вроде autoSpaceLikeWord95 или shapeLayoutLikeWW8.

Отдельно Виньоли критикует рекомендации использовать Windows Metafile для графики вместо открытых и кросс-платформенных форматов вроде SVG.

Для пользователей всё это выливается в знакомую проблему: документы между Office и LibreOffice открываются, но не всегда так, как ожидалось. Для TDF же это очередное подтверждение того, что формат Office по-прежнему работает как инструмент удержания пользователей внутри экосистемы Microsoft.

Спор вокруг OOXML длится уже много лет, и новый выпад со стороны LibreOffice ясно показывает: вопрос совместимости и «открытых стандартов» по-прежнему далёк от закрытия.

RSS: Новости на портале Anti-Malware.ru