Введение
Windows 11 вышла четыре года назад, но получила довольно слабое распространение в корпоративной среде. По статистике, основанной на данных расследований глобальной команды экстренного реагирования на киберинциденты (GERT), в начале 2025 года Windows 7, которая не поддерживается с 2020-го, встречалась у заказчиков лишь немногим реже, чем новейшая ОС. Большинство же систем до сих пор работает под управлением Windows 10.
Основные версии Windows, присутствующие в инфраструктуре организаций. Статистика основана на данных команды экстренного реагирования на киберинциденты (GERT) (скачать)
При этом самая распространенная ОС вышла более 10 лет назад, и с 14 октября 2025 года Microsoft перестает ее поддерживать, а значит, мы так или иначе будем наблюдать рост числа систем под управлением Windows 11 в организациях, которым оказываем услуги по расследованию инцидентов. Поэтому мы решили поделиться кратким обзором изменений в криминалистических артефактах в этой системе, который может пригодиться нашим коллегам по цеху. Описанные артефакты актуальны для Windows 11 24H2 — последней версии ОС на момент написания статьи.
Нововведения в Windows 11
Recall
Функцию Recall впервые представили в мае 2024 года. Она позволяет вспоминать все, что делал пользователь на компьютере за последние месяцы. Работает она следующим образом: каждые несколько секунд система делает снимки всего экрана. Затем локальный искусственный интеллект анализирует их в фоновом режиме, извлекая всю полезную информацию, которая впоследствии сохраняется в базу данных. По этой базе ведется умный поиск. С мая 2025 года функция Recall широко доступна на компьютерах, имеющих NPU (специальный чип для ИИ-вычислений, в настоящее время совместимый лишь с процессорами архитектуры ARM).
Microsoft Recall — это определенно одна из самых громких и спорных из заявленных функций Windows 11. С самого первого анонса она стала предметом критики в ИБ-сообществе, поскольку ставила под угрозу конфиденциальность данных. К релизу Microsoft доработала Recall, однако определенные опасения на ее счет все же остались. Из-за неоднозначности опция по умолчанию отключена в корпоративных сборках Windows 11, однако рассмотреть ее артефакты стоит на случай, если ее активировали злоумышленники или вредоносное ПО. В теории, включить Recall может и IT-служба организации с помощью групповых политик, но мы считаем такой сценарий маловероятным.
Как мы упоминали ранее, Recall работает на основе снимков экрана, которые, естественно, нужно где-то временно хранить, пока они не будут проанализированы. Необработанные изображения в формате JPEG можно найти по пути %AppData%\Local\CoreAIPlatform.00\UKP\{GUID}\ImageStore\*. В качестве имен файлов используются идентификаторы снимков экрана (о них далее).
Вместе со снимками экрана сохраняются их метаданные, которые записываются в стандартный тег Exif.Photo.MakerNote (0x927c) и содержат множество интересной информации: границы окна на переднем плане, временную метку (когда был сделан снимок), заголовок окна, идентификатор окна, полный путь процесса, запустившего окно; если во время создания снимка экрана используется браузер, могут быть сохранены URI, домен и т. д.
Функция Recall активируется отдельно для каждого пользователя. За включение и отключение сохранения снимков экрана отвечает ключ пользовательского куста реестра Software\Policies\Microsoft\Windows\WindowsAI\. Также в последних сборках Windows 11 Microsoft добавили несколько новых ключей реестра, связанных с управлением Recall.
Стоит отметить, что в версии, доработанной после скандалов присутствует специальный фильтр, который должен предотвращать сохранение скриншотов и текстов, если на экране находится потенциально секретная информация: окно браузера в режиме инкогнито, окно ввода платежных данных, менеджер паролей и т. д., однако, по данным исследователей, он может срабатывать не всегда.
Для быстрого поиска по всем данным, полученным из снимков экрана, используются две векторные базы данных DiskANN (SemanticTextStore.sidb и SemanticImageStore.sidb), но наиболее интересной для исследования будет обычная база данных SQLite: %AppData%\Local\CoreAIPlatform.00\UKP\{GUID}\ukg.db, состоящая из 20 таблиц. В последнем релизе она доступна без прав администратора, однако зашифрована. На момент написания статьи нет публично известных способов расшифровать базу данных напрямую, поэтому рассмотрим наиболее интересные таблицы из бета-релиза Windows 11 с Recall от 2024 года.
- В таблице
Appнаходятся данные о процессе, запустившем окно графического интерфейса приложения. - Таблица
AppDwellTimeсодержит данные о полном пути процесса, запустившего окно графического интерфейса приложения (столбец WindowsAppId), о дате и времени его запуска (HourOfDay, DayOfWeek, HourStartTimestamp) и продолжительности просмотра окна (DwellTime). - Таблица
WindowCaptureсодержит тип события (столбец Name).- WindowCreatedEvent — событие создания первого экземпляра окна приложения. Его можно связать с процессом, создавшим окно.
- WindowChangedEvent — событие изменения экземпляра окна. Оно позволяет отслеживать перемещения и изменения размера экземпляра окна с помощью столбца WindowId, содержащего идентификатор окна.
- WindowCaptureEvent — событие создания снимка экрана, содержащего окно приложения. Помимо идентификатора окна, оно содержит идентификатор изображения (ImageToken), по значению которого позднее можно получить JPEG-файл снимка экрана из ранее упомянутой директории ImageStore (имя файла будет соответствовать идентификатору изображения).
- WindowDestroyedEvent — событие закрытия окна приложения.
- ForegroundChangedEvent — событие не содержит полезных данных с точки зрения криминалистического анализа.
Также в таблице
WindowCaptureесть отметка о том, выведено ли окно приложения на передний план (столбец IsForeground), границы окна в виде координат на экране (WindowBounds), заголовок окна (WindowTitle), служебное поле свойств (Properties) и временная метка события (TimeStamp).
WindowCaptureTextIndex_contentсодержит распознанный при помощи OCR (Optical Character Recognition) текст со снимка экрана (столбец с2), заголовок окна (WindowTitle), путь к приложению (App.Path), временную метку снимка экрана (TimeStamp) и имя (Name). Эту таблицу можно использовать совместно с WindowCapture (в столбцах c0 и Id содержатся идентичные данные, на основе которых можно объединить таблицы) и App (одинаковые данные содержится в столбцах AppId и Id).
Артефакты Recall (если он был включен на системе до инцидента) представляют собой золотую жилу для специалиста по реагированию на инциденты. Благодаря им можно подробно восстановить активность злоумышленника в скомпрометированной системе. С другой стороны, эта функция может быть использована и во вред: как ранее упоминалось, фильтр приватной информации в Recall работает неидеально, поэтому злоумышленники и вредоносное ПО могут использовать ее для поиска учетных данных и другой конфиденциальной информации.
Обновленные стандартные приложения
В Windows 11 обновлению подверглись в том числе и стандартные приложения, причем у некоторых поменялся не только интерфейс, но и функциональность. В частности, такие приложения, как Блокнот, Проводник и Командная строка в рассматриваемой версии ОС поддерживают работу в режиме «несколько вкладок в одном окне». При этом Блокнот хранит состояние вкладок даже после завершения процесса.
Соответственно, в Windows 11 появились и новые артефакты, связанные с использованием этого приложения. Их в деталях исследовал наш коллега Абдулрхман Альфаифи (AbdulRhman Alfaifi), с работой которого можно ознакомиться тут.
Основная директория артефактов Блокнота в Windows 11 — %LOCALAPPDATA%\Packages\Microsoft.WindowsNotepad_8wekyb3d8bbwe\LocalState\.
Она содержит две директории.
- TabState хранит файл состояния {GUID}.bin для каждой вкладки Блокнота. В нем находится содержимое вкладки в случае, если она не была сохранена в файл, а для сохраненных вкладок — полный путь к сохраненному содержимому вкладки, хэш SHA-256 от содержимого вкладки, само содержимое, время последней записи в файл и т. д.
- WindowsState хранит информацию о состоянии окна приложения (общее количество вкладок, их порядок, активная вкладка, размеры и позиция окна приложения на экране). Файл состояния называется *.0.bin или *.1.bin.
Структура файла {GUID}.bin для сохраненных вкладок выглядит следующим образом.
| Поле | Тип | Значение и пояснения |
| Сигнатура | [u8;2] | NP |
| ? | u8 | 00 |
| Файл_сохранен | bool | 00 — файл не сохранен по указанному пути 01 — файл сохранен |
| Длина_пути | uLEB128 | Длина полного пути в символах к файлу, в который было записано содержимое вкладки |
| Путь_к_файлу | UTF-16LE | Полный путь к файлу, в который было записано содержимое вкладки |
| Размер_файла | uLEB128 | Размер файла, в который было записано содержимое вкладки, на диске |
| Кодировка | u8 | Кодировка файла: 0x01 — ANSI 0x02 — UTF-16LE 0x03 — UTF-16BE 0x04 — UTF-8BOM 0x05 — UTF-8 |
| Каретка_тип | u8 | Тип перевода каретки на новую строку: 0x01 — CRLF 0x02 — CR 0x03 — LF |
| Время_последней_записи | uLEB128 | Время последней записи (сохранения вкладки) в файл (в формате FILETIME) |
| хэш_sha256 | [u8;32] | Хэш SHA-256 содержимого вкладки |
| ? | [u8;2] | 00 01 |
| Старт_секции | uLEB128 | Смещение старта секции от начала файла |
| Конец_секции | uLEB128 | Смещение конца секции от начала файла |
| Конфигурация | ConfigBlock | Конфигурация в структуре типа ConfigBlock |
| Длина_контента | uLEB128 | Длина текста в файле |
| Контент | UTF-16LE | Содержимое файла до модификации новыми данными. Отсутствует в случае сохранения вкладки на диск без последующей модификации. |
| Содержит_несохраненные_данные | bool | 00 — содержимое вкладки в файле {GUID}.bin совпадает с содержимым вкладки в файле на диске 01 — изменения на вкладке не сохранены на диск |
| Контрольная_сумма | [u8;4] | Контрольная сумма CRC32 содержимого файла {GUID}.bin со сдвигом 0x03 от начала файла |
| Несохраненные_чанки | [UnsavedChunk] | Перечень структур UnsavedChunk. Отсутствует в случае сохранения вкладки на диск без последующей модификации |

Пример содержимого файла {GUID.bin} для вкладки Блокнота, сохраненной в файл, а затем модифицированной новыми данными, которые не были записаны в файл
Для несохраненных вкладок структура файла {GUID}.bin в директории TabState сокращена.
| Поле | Тип | Значение и пояснения |
| Сигнатура | [u8;2] | NP |
| ? | u8 | 00 |
| Файл_сохранен | bool | 00 — файл не сохранен по указанному пути (всегда) |
| Старт_секции | uLEB128 | Смещение старта секции от начала файла |
| Конец_секции | uLEB128 | Смещение конца секции от начала файла |
| Конфигурация | ConfigBlock | Конфигурация в структуре типа ConfigBlock |
| Длина_контента | uLEB128 | Длина текста в файле |
| Контент | UTF-16LE | Содержимое файла |
| Содержит_несохраненные_данные | bool | 01 — изменения на вкладке не сохранены на диск (всегда) |
| Контрольная_сумма | [u8;4] | Контрольная сумма CRC32 содержимого файла {GUID}.bin со сдвигом 0x03 от начала файла |
| Несохраненные_чанки | [UnsavedChunk] | Перечень структур UnsavedChunk |
Стоит отметить, что сохранение вкладок может быть отключено в настройках Блокнота. В таком случае артефакты TabState и WindowsState будут недоступны для анализа.
Если же они доступны, для автоматизации работы с ними можно использовать инструмент notepad_parser, написанный нашим коллегой Абдулрхманом Альфаифи.
Рассмотренный артефакт может помочь в восстановлении содержимого вредоносных скриптов и пакетных файлов. Кроме того, он может содержать результаты и журналы работы сетевых сканеров, утилит для извлечения учетных данных и прочих исполняемых файлов, которые использовали злоумышленники в случае, если в них были случайно внесены несохраненные изменения.
Изменения в привычных артефактах в Windows 11
Помимо новых артефактов, в Windows 11 появились некоторые интересные изменения в старых, о которых следует знать при расследовании инцидентов.
Изменения в поведении меток NTFS
По сравнению с Windows 10 в Windows 11 изменилось поведение меток NTFS в двух структурах $MFT: $STARNDARD_INFORMATION и $FILENAME.
Изменения в поведении меток структуры $STARNDARD_INFORMATION представлены в таблице ниже.
| Событие | Доступ к файлу | Переименование файла | Копирование файла в новую папку | Перемещение файла в рамках одного тома | Перемещение файла между томами |
| Win 10 1903 |
Обновится время последнего доступа к файлу. При этом, если системный том крупнее чем 128 ГБ, время доступа к файлу не изменится | Время последнего доступа к файлу не изменится | Метаданные копии будут обновлены | Время последнего доступа к файлу не изменится | Метаданные будут унаследованы от оригинального файла |
| Win 11 24H2 | Обновится время последнего доступа к файлу | Обновится время последнего доступа к файлу в соответствии с временем модификации | Метаданные копии будут унаследованы от оригинального файла | Обновится время последнего доступа к файлу в соответствии с временем перемещения | Метаданные будут обновлены |
В структуре $FILENAME произошли следующие изменения поведения меток.
| Событие | Переименование файла | Перемещение файла в рамках одного тома c помощью Проводника | Перемещение файла в корзину |
| Win 10 1903 |
Временные метки и метаданные остаются без изменений | Временные метки и метаданные остаются без изменений | Временные метки и метаданные остаются без изменений |
| Win 11 24H2 | Метки времени доступа и модификации, а также метаданные наследуются от предыдущей версии $STARNDARD_INFORMATION | Метки времени доступа и модификации, а также метаданные наследуются от предыдущей версии $STARNDARD_INFORMATION | Метки времени доступа и модификации, а также метаданные наследуются от предыдущей версии $STARNDARD_INFORMATION |
Описанные изменения стоит учитывать при анализе служебных файлов файловой системы NTFS.
Program Compatibility Assistant
Program Compatibility Assistant (PCA) появился еще в далеком 2006 году с выходом Windows Vista для запуска программ, предназначенных для более старых версий операционной системы, что позволяет использовать этот артефакт для выявления факта запуска программ.
С выходом Windows 11 появились новые файлы, связанные с этой функцией, интересные для криминалистического анализа запусков программ. Они расположены в директории C:\Windows\appcompat\pca\.
PcaAppLaunchDic.txt— каждая строка файла содержит данные о последнем запуске определенного исполняемого файла: время последнего запуска в формате YYYY-MM-DD HH:MM:SS.f (UTC), а также полный путь к файлу. Данные разделены при помощи символа «|». При новом запуске файла информация в соответствующей строке обновится. Файл использует кодировку ANSI (CP-1252), поэтому запуск исполняемых файлов, содержащих в названии юникод, «ломает» его: новые записи (включая запись о запуске файла с юникодом) перестают появляться, происходит лишь обновление старых.
PcaGeneralDb0.txtиPcaGeneralDb1.txt— эти файлы чередуются между собой при записи данных: новые записи сохраняются в первичный файл, пока его размер не достигнет двух мегабайт. После этого вторичный файл очищается и становится новым первичным файлом, а переполненный первичный становится вторичным. Этот цикл повторяется до бесконечности. Данные разделяются при помощи символа «|». Файл использует кодировку UTF-16LE и содержит следующие поля.- Время запуска исполняемого файла (YYYY-MM-DD HH:MM:SS.f (UTC))
- Тип записи (0-4):
- 0 — ошибка установки
- 1 — драйвер заблокирован
- 2 — аномальный выход процесса
- 3 — вызов PCA Resolve (компонент, отвечающий за устранение ошибок совместимости при запуске старых программ)
- 4 — значение не установлено
- Путь до исполняемого файла без буквы тома, часто с использованием переменных окружения (%USERPROFILE%, %systemroot%, %programfiles% и пр.)
- Имя продукта из заголовка PE (в нижнем регистре)
- Имя компании из заголовка PE (в нижнем регистре)
- Версия продукта из заголовка PE
- ID программы Windows (как в AmCache)
- Сообщение
Стоит отметить, что в описанные текстовые файлы записываются только данные о запуске программ через проводник Windows. Запуск исполняемых файлов в консоли в них не учитывается.
Windows Search
Windows Search — это встроенный механизм индексирования и поиска файлов в Windows. Поначалу он перебирал файлы напрямую, что делало поиск неэффективным и медленным. Позже появилось отдельное приложение, создающее быстрый индекс файлов, и лишь с 2006 года (Windows Vista) поиск был полностью интегрирован в систему, а индексация файлов стала происходить в фоновом режиме.
C Windows Vista до Windows 10 включительно индекс файлов хранился в базе данных Extensible Storage Engine (ESE): %PROGRAMDATA%\Microsoft\Search\Data\Applications\Windows\Windows.edb.
В Windows 11 хранилище было разбито на три базы данных SQLite.
%PROGRAMDATA%\Microsoft\Search\Data\Applications\Windows\Windows-gather.dbсодержит общие сведения о проиндексированных файлах и папках. Наибольший интерес представляет таблица SystemIndex_Gthr, в которой хранятся данные об имени проиндексированного файла или директории (столбец FileName), о последней модификации проиндексированного файла или директории (LastModified), а также идентификатор для связи с родительским объектом (ScopeID) и уникальный идентификатор самого файла или директории (DocumentID). С помощью ScopeID и таблицы SystemIndex_GthrPth можно восстановить полный путь к файлу в системе. Таблица SystemIndex_GthrPth содержит имя папки (столбец Name), идентификатор директории (Scope) и идентификатор родительской директории (Parent). Таким образом, сопоставив ScopeID файла и Scope директории можно узнать, к какой директории относится файл.%PROGRAMDATA%\Microsoft\Search\Data\Applications\Windows\Windows.dbсодержит сведения о метаданных проиндексированных файлов. Интерес для анализа представляет таблица SystemIndex_1_PropertyStore, в которой находится уникальный идентификатор проиндексированного объекта (Столбец WorkId), тип метаданных (ColumnId) и сами метаданные. Типы метаданных описываются в таблице SystemIndex_1_PropertyStore_Metadata (содержимое столбца Id соответствует содержимому ColumnId из SystemIndex_1_PropertyStore) и указаны в столбце UniqueKey.%PROGRAMDATA%\Microsoft\Search\Data\Applications\Windows\Windows-usn.dbне содержит сведений, полезных для криминалистического анализа.
Как видно на снимке экрана ниже, анализ файла Windows-gather.db при помощи инструмента DB Browser для SQlite может дать нам информацию о присутствии некоторых файлов (вредоносного ПО, файлов конфигурации, файлов, созданных и оставленных в системе атакующими и т. д.).

Стоит отметить, что время в столбце LastModified хранится в формате Windows FILETIME, который представляет неподписанное 64-битное значение даты и времени в виде количества интервалов в 100 наносекунд, прошедшего с начала дня 1 января 1601 года. Мы можем использовать утилиту наподобие DCode, чтобы представить его в формате UTC, как показано на изображении ниже.

Другие незначительные изменения в Windows 11
Стоит также отметить несколько небольших, но важных изменений в Windows 11, которые не нуждаются в подробном разборе.
- Полный отказ от NTLMv1, а значит, такая атака, как Pass-the-hash, постепенно уходит в прошлое.
- Удаление известного многим артефакта активности Windows 10 Timeline. Хотя он более не ведется, его база данных пока осталась в файлах с информацией об активности пользователя, расположенных по пути
%userprofile%\AppData\Local\ConnectedDevicesPlatform\ActivitiesCache.db. - Аналогичным образом, в Windows 11 больше нет Cortana и Internet Explorer, но их артефакты все еще присутствуют в операционной системе. Эта особенность может пригодиться в расследованиях, затрагивающих системы, которые были обновлены с Windows 10 до Windows 11.
- Предыдущее исследование также показало, что событие 4624, логирующее успешные попытки аутентификации в Windows, оставалось практически неизменным до версии Windows 11 Pro 22H2. В ней появилось новое поле Remote Credential Guard, подчеркивающее небольшой, но важный для криминалистического анализа сдвиг: хотя то, как оно будет использоваться в жизни и какое значение будет иметь для киберкриминалистов, нам еще только предстоит понять, сам факт его наличия указывает на то, что Microsoft пытается расширить телеметрию, связанную с аутентификацией в системе.
- Расширенная поддержка файловой системы ReFS. В последнем превью обновления Windows 11 стало возможно установить ОС прямо на том с ReFS, также появилась поддержка BitLocker. При этом данная файловая система имеет множество отличий от привычной NTFS, к которым стоит быть готовым:
- в ReFS нет привычной криминалистам таблицы $MFT, содержащей все актуальные записи о файлах на диске;
- не генерируются короткие имена (как в NTFS для совместимости с DOS);
- нет жестких ссылок (hard link) и нет расширенных атрибутов объектов;
- увеличены максимальные объемы как тома, так и единичного файла (35 ПБ против 256 ТБ в NTFS).
Заключение
Этот пост содержит краткий обзор основных изменений в артефактах Windows 11, интересных с точки зрения криминалистического анализа, — в особенности это касается изменений в PCA и Windows Search. Насколько они окажутся полезными при расследованиях — покажет время. Однако мы рекомендуем сразу добавить сбор вышеописанных файлов в ваш инструмент для сбора триажей.





Король умер, да здравствует новый король! EOL Windows 10 и криминалистические артефакты Windows 11