Про метаданные документов. Без примеров

Последний раз про метаданные в офисных документах я писал более года назад в этой заметке «Извлечение скрытых метаданных из документов MS Office«.

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

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

Итак метаданные.

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

Фактически я бы разделил эту идентификационную информацию на 4 типа:

— метаданные документа – свойства (properties)  документа которые обычно забывают удалить при сохранении и пересылке.

— метаданные вложенных объектов — свойства вложенных OLE объектов и изображений.

— маркеры — данные в гипертексте документа идентифицирующие его владельца.

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

Для каждого из типов идентификационной информации имеются свои ограничения доступности и характера содержимого.

1. Метаданные документа

Это свойства документа которые видны если открыть его «Свойства» в Эксплорере Windows или открыв в соответствующей программе MS Office. Про эти свойства, казалось бы, должны знать все и последние версии MS Office включают возможности удаления этих метаданных. Однако на практике это далеко не так. Часто метаданные забывают почистить и удалить и там можно увидеть «чувствительную информацию» о том кто был на самом деле автором документа,

2. Метаданные вложенных объектов

Об этом я писал в прошлой заметке и повторю сейчас. Вложенные объекты — это так называемые OLE объекты или контейнеры StructuredStorage содержащие другие документы/объекты с которыми умеет работать MS Office. Ещё вернее что объекты с которыми вообще умеет работать MS Windows, но в данном случае чуть упростим.

Если описать это ещё проще, то когда Вы готовите таблицу в Excel, а потом вставляете её в презентацию — это вставка OLE объекта. Точно также если вы делаете диаграмму в Visio и потом вставляете её в презентацию или документ — это вставка OLE объекта, если только вы не преобразовали вначале диаграмму в изображение.

Особенность этих вложенных объектов в том что каждый из них несёт свой собственный набор свойств заданных в той программе в которой данный объект создавался. Если Вы вложили таблицу Excel — значит у документа будут свойства которые указаны в Excel. Если объект Visio, то свойства заданные в Visio.

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

Вложенные объекты можно извлечь несколькими способами, но большая часть из них весьма техническая и требует знаний того как устроены документы MS Office внутри, поэтому самый практичный способ — сохранить документ в одном из форматов OpenXML и распаковать его любимым ZIP распаковщиком. В результате, OLE объекты будут в папке embeddings. Впрочем  я ранее уже это описывал и заметке на которую я сослался вначале этого поста есть подробное описание процесса.

Однако, вложенными объектами могут быть не только OLE объекты. К этой же категории носителей информации можно отнести изображения. В изображениях может сохранятся информация EXIF (в JPEG файлах) и XMP. Подобное встречается гораздо реже, в основном если кто-то необдуманно вставляет в документы необработанные фотографии. Извлечь изображения можно по тому же рецепту — преобразовать в OpenXML, распаковать и заглянуть в папку media.

3. «Маркёры»

Это очень условное название для той информации которая может присутствовать в тексте документа и позволяет узнать более о его авторе. К подобной информации можно отнести:

— обсуждения и комментарии в режим правки. Иногда (в последнее время всё реже) авторы документов забывают про режим правки и публикуют документ со всей историей обсужения, заметками и так далее.

— ссылки. В некоторых случаях, сознательно или по ошибке в документах остаются ссылки на локальные документы того же пользователя или документы в его локальной сети. Чаще всего эти ссылки указывают на файлы на Desktop или же в папке «Мои документы«. Главное что такие ссылки позволяют узнать — локальное имя пользователя извлекаемой из пути к данному документу.

4. Скрытые данные

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

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

А как собственно получить все эти данные?

Инструменты

Существует довольно большое число инструментов по работе с метаданными, но чего-то универсального не нет. Каждый из инструментов имеет свои плюсы и минусы и многие из них (но не все) описаны в статье Document Metadata Extraction в Forensics Wiki —http://www.forensicswiki.org/wiki/Document_Metadata_Extraction здесь много ссылок на инструменты и библиотеки.

Набор инструментов:

— MS Office 2007-2010 для преобразования из бинарных форматов MS Office в OpenXML. В данном случае OpenOffice не подойдёт поскольку он не сохраняет OLE объекты

— Strings — утилитка из пакета Sysinternals позволяющая извлечь строковые переменные.

— OffVis — это такая специальная утилита от Microsoft позволяющая копатся в глубинах офисных документов. При глубоком анализе документов и выковыриванию PLS блоков из файлов Excel — незаменима. Скачать можно здесь http://download.techworld.com/3214034/microsoft-offvis-11/

— Metadata Extraction Tool — бесплатная утилитка по извлечению метаданных из офисных документов, PDF, изображений и так далее. заглядывает неглубоко и находит не всё  http://meta-extractor.sourceforge.net/

— Catalogue — собирает метаданные из разного типа файлов http://peccatte.karefil.com/software/Catalogue/CatalogueENG.htm

— Metadata Analyzer — извлекает метаданные (только базовые) http://smartpctools.com/metadata/

— Document Trace Remover — убирает метаданные http://smartpctools.com/trace_remover/

Oracle Outside In — инструмент для разработчиков, поддерживает около 500 форматов файлов http://www.oracle.com/us/technologies/embedded/025613.htm

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

Кроме того есть масса нераскрытых возможностей связанных с неполным описанием бинарных проприетарных форматов.

About This Author

Яндекс.Метрика