Извлечение скрытых метаданных из документов MS Office

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

Сейчас же я опишу как увидеть скрытые метаданные без использования специального ПО.

Для начала немного о самих метаданных.

Метаданные можно разделить на два типа: метаданные документов и метаданные связанных объектов.

Метаданные которые также называют свойства документов (document properties) — это набор данных идентифицирующий автора кем был создан документ, его организацию, кем он редактировался последним и так далее. Многие поля добавляют системы документооборота, но чаще присутствуют лишь те что добавляются программами из поставки MS Office.

Метаданные связанных объектов — это те данные которые присутствуют внутри мультимедиа файлов. Например, Adobe Photoshop сохраняет xmpmeta, в создаваемых им TIF и JPG файлах, в JPG файлах фотографий часто не удаляют данные EXIF — в результате можно узнать когда фотография была произведена, плюс много разного о том как каким фотоаппаратом она снималась и тому подобного.

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

Итак как получить метаданные из документов MS Office.

1. Необходимо открыть документ в MS Office 2007 или выше (например в 2010 Technical Preview) и пересохранить его в один из форматов OpenXML. То есть файл .doc надо сохранить в .docx, файл .xls в .xlsx, файл .ppt в .pptx и так далее.

2. Итоговый файл необходимо переименовать в аналогичный с расширением .zip.

3. Полученный ZIP файл распаковываем с помощью любого любимого ZIP архиватора в отдельную директорию. На Windows платформе я пользуюсь 7-Zip’ом, но тут без особой разницы что использовать.

4. Заглянем в итоговую директорию после распаковки. В зависимости от типа документа, состав папок там будет отличаться. Для файла .pptx будет присутствовать папка ppt,  для .docx папка word, для .xlsx папка xl.  Нам нужно именно в эту папку, заходим туда и ищем папку embeddings.

5. В папке embeddings будут файлы с названиями «oleObjectNN.bin» где NN — это номер объекта. Наличие этих файлов означает что в документе содержались контейнеры с метаданными в виде OLE объектов (в качестве отступления для людей далёких от ИТ.  OLE объекты — это те данные которые вы вставляете через команды «Вставить» или Insert в офисных программах. Таблица, документ или график — это всё OLE объекты). Все файлы .bin необходимо переименовать в .xls. Здесь необходимо оговорится — большинство .bin файлов на самом деле не будут файлами Excel, но для нашей задачи это не имеет значения поскольку все OLE объекты имеют схожую структуру и то как показывать из них метаданные, программы решают не по расширению файла, по фактическому содержимому вне зависимости от того что это за файлы — таблицы Excel, диаграммы Visio или документы Word

5. Теперь когда у нас в папке есть файлы для просмотра для каждого из них мы щелкаем правой кнопкой мыши в Эксплорере, открываем его свойства и смотрим в подробнее.  Во многих случаях Вы там ничего не увидите, поскольку это может быть OLE объект MSGraph.Chart который метаданных не содержит (или мы просто пока не знаем как их извлечь), но в случаях когда были вставлены диаграммы Visio, таблицы Excel и так далее — мы сможем увидеть фактические свойства вложенных документов, узнать кто их автор и так далее.

Нюансы:

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

2. В случае новых форматов OpenXML ситуация немногим лучше. При вставке одного офисного документа в другой они сохраняются не как бинарные образы OLE объектов, а как файлы OpenXML. Например, после вставки документа Excel, он оказывается в папке embeddings в формате xlsx. Метаданные из него, конечно, никуда не исчезают и при чистке главного контейнера не удаляются.

3. Возможно схожая ситуация с WordPad’ом, хотя он и слишком прост чтобы работать со сложными структурами. Это требует проверки.

4. Можно ли вышеперечисленное повторить в OpenOffice? Очень может быть — правда насколько я знаю OpenOffice проводит преобразования OLE объектов для их переносимости, но опять же всё требует проверки.

Как этого избежать?

1. Анонимизировав себя в  MS Office удалив информацию о себе как об авторе или же заменив её на заведомо нерелевантную, например, «Мустава Рукоплясова» с организацией ООО «Сиреневый кузнечик». В зависимости от Вашей фантазии и серьёзности читающих документы.

2. Вычищая метаданные из каждого из документов который вкладывается друг в друга. Это означает что нельзя просто вставить Excel файл в презентацию. Надо вначале его заполнить, потом сохранить, удалить из него все метаданные и лишь потом вставлять через Cut & Paste.

3. Заменять объекты на их упрощённые формы. Вместо таблицы Excel, вставить в презентацию просто таблицу, вместо диаграммы Visio — её изображение и так далее.

P.S.

И, заодно, для тех кто интересуются — свою деятельность по извлечению и анализу данных я переношу сейчас в DPLabs (http://www.dplabs.ru) где эта и другие мои заметки будут оформлены в виде статей.

About This Author

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