Заглядываем внутрь ESE: от B+ деревьев до артефактов Windows

Wait 5 sec.

Меня зовут Григорий Гришаев. Я работаю младшим специалистом в департаменте комплексного реагирования на киберугрозы в экспертном центре безопасности Positive Technologies (PT ESC) и занимаюсь разработкой парсеров различных файловых артефактов.В ходе расследований нашей команде регулярно приходится работать с артефактами, собранными с хостов под управлением Windows. Среди них часто встречаются базы данных в формате ESE (Extensible Storage Engine), который широко используется в экосистеме Microsoft. Мы неоднократно сталкивались с тем, что существующие инструменты для работы с этим форматом имеют ряд ограничений и не всегда корректно обрабатывают реальные данные. В результате возникла необходимость исправлять существующие решения и разрабатывать собственные средства извлечения данных из подобных файлов. Одна из основных целей статьи — описать общий алгоритм парсинга БД ESE и подсветить важные для разработки и отладки собственного парсера нюансы. Сразу отмечу, что в данной статье будут описаны лишь те детали реализации, которые могут быть важны для корректного получения данных из файла БД, но не для полного дублирования функций движка. Читать далее