Аналитика

Использование централизованных баз данных эскизов для исследования зашифрованных данных

24 марта, 2009

В данной статье будут рассмотрены особенности баз данных эскизов в Windows Vista и в среде GNOME (Linux) при работе с зашифрованными файловыми системами.

Введение

Эскизы (англ. thumbnails) — уменьшенные изображения, дающие приблизительное представление об их оригиналах.

В Windows ME/2000/XP/2003 эскизы хранились в файлах Thumbs.db, которые находились в директориях с графическими файлами; файлы Thumbs.db представляют собой структурированные OLE-контейнеры[1]. Начиная с Windows Vista эскизы хранятся централизованно для каждого пользователя, при этом формат контейнеров претерпел значительные изменения.

Аналогичная централизованная система хранения эскизов присутствует во множестве окружений рабочего стола для Unix-like систем (например, GNOME и KDE).

В данной статье будут рассмотрены особенности баз данных эскизов в Windows Vista и в среде GNOME (Linux) при работе с зашифрованными файловыми системами.

Базы данных эскизов в Windows Vista

Отображение эскизов в Windows Explorer

Структура

В Windows Vista база данных эскизов хранится в следующей директории: \Users\<имя пользователя>\AppData\Local\Microsoft\Windows\Explorer

Директория содержит следующие файлы:

thumbcache_idx.db (индекс базы данных)

thumbcache_NN.db, где «NN» обозначает максимальный размер (в пикселях) большей стороны содержащихся в файле эскизов (например, thumbcache_96.db)

thumbcache_sr.db

Файл «thumbcache_idx.db» является индексом всей базы данных — в нем хранится информация о соответствии эскизов в файлах «thumbcache_NN.db» с уникальными идентификаторами эскизов, а также время модификации исходных файлов[2]. Сигнатура заголовка: строка «IMMM».

Файлы «thumbcache_NN.db» содержат в себе эскизы и начинаются со строки «CMMM». Эскизы хранятся в различных форматах, например, BMP и PNG, в «пачках» (chunks) данных с целью исключения фрагментации. Стоит отметить, что в базе данных эскизов отсутствует явная информация о путях к файлам, которым соответствует тот или иной эскиз, вместо пути используется специальный идентификатор (8 байт), который описывает исходный файл в системе. Данный идентификатор называется «Thumbnail Cache ID» (иногда «Thumbnail Filename», «File Reference», в данной работе будет использоваться термин «имя файла эскиза»); описание механизма генерации данного идентификатора в публичном доступе отсутствует.

Файл

Формат эскизов

Содержимое эскизов

thumbcache_32.db

BMP

Эскизы файлов и директорий

thumbcache_96.db

BMP

Эскизы файлов и директорий

thumbcache_256.db

JPG, PNG

Эскизы файлов (JPG) и директорий (PNG)

thumbcache_1024.db

JPG

Эскизы файлов

Для определения исходного графического файла можно использовать имя файла эксиза (предварительно преобразовав его из Unicode и представив в виде последовательности HEX), которое можно найти в базе данных Windows Search Indexer (файл Windows.edb, который, как правило, находится в директории \ProgramData\Microsoft\Search\Data\Applications\Windows); стоит отметить, что данный метод позволяет найти исходные графические файлы только в проиндексированных директориях.

Имя файла эскиза можно найти в файлах «thumbcache_NN.db» на некотором смещении назад от начала графических данных. Для автоматизации процесса можно использовать специализированные продукты, которые будут описаны ниже.

Имя файла эскиза перед заголовком JPEG

 Особенности

При копировании директории с базой данных эскизов на работающей системе средствами ОС необходимо учитывать то, что в некоторых случаях Windows может очистить содержимое базы данных до окончания процесса копирования. Если директория с базой данных эскизов защищена при помощи EFS, то ее содержимое будет очищено при первом же копировании!

В механизме генерации эскизов в Windows Vista были обнаружены следующие особенности:

1. Эскизы генерируются вне зависимости от того на каком носителе находится файл (на локальном или на удаленном, на жестком диске или на CD и т.п.);

2. Существующие эскизы не удаляются при удалении исходных файлов;

3. Для файлов, зашифрованных при помощи EFS, эскизы не сохраняются;

3а. Если директория с базой данных эскизов зашифрована при помощи EFS, то эскизы сохраняются и для зашифрованных файлов;

4. Существующие эскизы не удаляются, если файлы шифруются при помощи EFS.

Подобные особенности приводят к следующему:

1. Возможность определения того, какие графические данные хранились на подключенных сменных носителях;

2. Возможность просмотра эскизов графических файлов на некоторых зашифрованных разделах и контейнерах;

3. Возможность определения так называемых «скрытых контейнеров».

Проведенные тесты показали, что следующие продукты позволяют Windows создавать эскизы графических файлов, расположенных на зашифрованных файловых системах (сам эскиз при этом хранится на незашифрованном системном разделе):

- TrueCrypt 6.1a (был протестирован режим создания контейнеров в виде файлов, тесты были проведены как с обычными, так и со скрытыми контейнерами)

- BestCrypt v. 8 (был протестирован режим создания контейнеров в виде файлов, тесты были проведены как с обычными, так и со скрытыми контейнерами)

- PGP Desktop 9.9 (был протестирован режим создания контейнеров в виде файлов)

Методика проведения тестов описана ниже.

Извлечение эскизов

Для извлечения эскизов из базы данных можно использовать как специализированные продукты (например, DM Thumbs — www.dmthumbs.com или FTK — www.accessdata.com), так и программное обеспечение, предназначенное для извлечения файлов по их внутренней структуре (этот процесс больше известен как «file carving»). Примеры таких программ: foremost (http://foremost.sf.net/) и hachoir-subfile (часть проекта Hachoir; http://hachoir.org/).

Программное обеспечение для извлечения файлов по их внутренней структуре широко используется в компьютерной криминалистике для поиска данных на поврежденных и отформатированных носителях, а также для восстановления удаленных файлов с некоторых «экзотических» файловых систем (например, XFS). Наиболее распространенный принцип работы подобных программ — поиск заголовка файла (англ. «header») определенного формата (например, JPEG) с последующим копированием всех данных до достижения сигнатуры конца файла (англ. «footer»). К сожалению, данный способ имеет определенные недостатки, например, невозможность восстановления фрагментированных файлов. Однако, существующего функционала вполне достаточно для извлечения эскизов из файлов базы данных.[3]

Базы данных эскизов в GNOME

 Структура

В среде GNOME эскизы графических файлов хранятся в домашней директории пользователя (~/.thumbnails/normal, где «~» обозначает домашнюю директорию текущего пользователя, например, /home/pupkin). Каждый эскиз представляет собой графический файл формата PNG, в метаданные которого включена информация служебного характера (путь к исходному изображению, размеры исходного изображения и т.п.).

 Особенности

Эскизы генерируются вне зависимости от точки монтирования, что приводит к сохранению эскизов с примонтированных зашифрованных файловых систем и сменных носителей. С другой стороны, эскизы удаляются при удалении исходных файлов средствами GNOME.

Пример эскиза, созданного для графического файла на примонтированном контейнере TrueCrypt (метаданные были извлечены при помощи программы hachoir-metadata, которая является частью проекта Hachoir; http://hachoir.org/):

$ hachoir-metadata ~/.thumbnails/normal/0d97afdc637ac86d75d13e72172dc77c.png

Metadata:

- Image width: 128 pixels

- Image height: 122 pixels

- Bits/pixel: 24

- Pixel format: RGB

- Compression rate: 1.6x

- Compression: deflate

- Producer: GNOME::ThumbnailFactory

- Comment: Thumb::Image::Width=779

- Comment: Thumb::Image::Height=744

- Comment: Thumb::URI=file:///media/truecrypt1/123.jpg

- Comment: Thumb::MTime=1216153400

- MIME type: image/png

- Endian: Big endian

Пример эскиза, созданного для графического файла на CD:

$ hachoir-metadata ~/.thumbnails/normal/f34c0ff3299e0a0b87a4a9a3a4d994ff.png

Metadata:

- Image width: 128 pixels

- Image height: 96 pixels

- Bits/pixel: 24

- Pixel format: RGB

- Compression rate: 1.5x

- Compression: deflate

- Producer: GNOME::ThumbnailFactory

- Comment: Thumb::Image::Width=3264

- Comment: Thumb::Image::Height=2448

- Comment: Thumb::URI=file:///media/%D0%BE%D0%BA%D1%82%2025%202006/P1010043.JPG

- Comment: Thumb::MTime=1161800029

- MIME type: image/png

- Endian: Big endian

Процесс извлечения эскизов, сохраненных в Windows Vista

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

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

2. Подключенный контейнер (в виде локального диска) был открыт в Windows Explorer, который был настроен на отображение эскизов (по-умолчанию).

Содержимое контейнера (на фотографии — лунный модуль СССР)

3. Был подключен скрытый контейнер.

4. Подключенный скрытый контейнер был открыт в Windows Explorer.

Содержимое скрытого контейнера

5. Содержимое директории с базой данных эскизов было скопировано на переносной носитель и подключено к компьютеру с ОС GNU/Linux (Helix).

6. При помощи утилиты scalpel были извлечены все графические данные из базы данных с эскизами.

Извлеченные эскизы

7. Сопоставление эскизов с исходными файлами.

Отображение эскизов в FTK 1.81 (интересующие имена файлов эскизов подчеркнуты)

Для нахождения исходного файла для эскиза с именем «7ab75dd2c38546c4.jpg» был произведен поиск по базе данных «Windows.edb» шестнадцатиричного значения 7a b7 5d d2 c3 85 46 c4. Результат поиска подчеркнут на нижнем рисунке красным цветом; путь к исходному файлу выделен.

Результат поиска в HEX редакторе

Поиск через Windows PowerShell (7ab75dd2c38546c416 = 884263955317006509210)

Исходный файл для эскиза с именем «a6a09993edfc2001.jpg» найден не был, т.к. директория с этим файлом не индексируется.

Дальнейшие направления исследований

- Исследование механизма генерации эскизов в следующих версиях Windows;

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

Ссылки

 

Автор: Суханов Максим
ITDefence

 Ежедневный выпуск от SecurityLab.Ru
 Еженедельный выпуск от SecurityLab.Ru

(Голосов: 11, Рейтинг: 3.58)
24-03-2009 08:56:30
Спасибо, что поведали о базах данных эскизов. :-|
24-03-2009 10:34:00
Я у себя в системе эскизы регулярно чищу: со временем их становится очень много.

cd ~/.thumbnails/normal
rm *
r14
24-03-2009 11:03:31
это всё, конечно, интересно, но какова практическая область применения?
самое "полезное", что сходу приходит в голову - выявление пользователей, хранящих нежелательные приватные фотоизображения на зашифрованных разделах корпоративных компьютеров :)
ИМХО, было бы интереснее рассмотреть вопрос о случаях, когда в файловой системе остаются не удалённые временные файлы, содержащие результаты работы пользователей в приложениях. из них можно почерпнуть больше информации, чем из превьюшек изображений )
24-03-2009 21:09:16
Не хватает подзаголовка "Увлекательное путешествие по диску в поисках sensitive data, которых на нем быть не должно", или короче - "О сколько нам открытий чудных..."
26-03-2009 23:50:10
Таки занимательно, какой-никакой путь утечки инфы
27-03-2009 19:07:16
Сервис - Свойства папки - Вид
поставить галку на Некэшировать эскизы
27-03-2009 20:51:03
Цитата
В данной статье будут рассмотрены особенности баз данных эскизов в Windows Vista и в среде GNOME (Linux) при работе с зашифрованными файловыми системами.


Успел прочитать только заголовок и меня сразу насторожило:
Почему, уважаемый Суханов Максим, Вы сравниваете последнюю поделку от MS с оболочкой GNOME, которая уже почти не используется добрый десяток лет? Если сравнивать - так с KDE4, будет самое то. Быть может это скрытая реклама ОС windows wista? Тогда надо писать "На правах рекламы", а не вводить в заблуждение неопытных пользователей.
01-04-2009 16:20:29
Cамое самое єто то что thumb.db остаются даже там где уже нету картынок но были!))
не знаю как в висте