Всем привет!
Сегодня продолжаем рассказ о методах расследований и сборе доказательств запуска апплетов Панели управления Windows.
Первая часть материала на эту тему доступна здесь.
Напомню, что с выходом Windows 7 механизм UserAssist претерпел существенные изменения. Сбор надежных доказательств запуска апплетов не поддерживается в системах Windows7|8, вместо этого мы можем использовать т.н. списки переходов (jumplists), источник информации, содержащий следы запуска апплетов.
В современных ОС Windows cписки переходов являются одним из самых важных источников информации для расследований, в том числе в них содержатся нужные нам следы запуска апплетов Панели управления. Автор Harlan Carvey написал отличный пост, посвященный спискам переходов. В нем он подробно рассказывает о структуре и практическом применении списков.
Для сбора информации, относящейся к Панели управления, нам понадобится список, имеющий идентификатор 7e4dca80246863e3 (список всех идентификаторов ). Полный путь к списку переходов выглядит так:
Обратите внимание, что списки переходов уникальны для профиля каждого пользователя.
Посмотрите на рисунок и отметьте для себя важный момент: каждый апплет Панели управления имеет идентификатор класса Windows (CLSID, в программе JumpList он представлен в форме глобального идентификатора GUID). Идентификаторы CLSID/GUID используются в списках переходов для того, чтобы зафиксировать выполнение апплета. В нашем примере идентификатор {E2E7934B-DCE5-43C4-9576-7FE4F75E7480} соответствует апплету «Дата и время» (timedate.cpl). В библиотеке MSDN содержится карта соответствия всех апплетов и их идентификаторов.
Рекомендуется использовать идентификаторы известных апплетов для поиска действий пользователей. Например, как мы видим на рисунке, последний запуск апплета «Дата и время» состоялся 5 апреля 2013г. в 06:53:33, и запустил его владелец именно этого списка. В отличие от механизмов Prefetch и UserAssist, информацию о времени первого запуска и количестве запусков получить невозможно (эту информацию можно получить, используя теневые резервные копии). Инструмент JumpLister разработал уже известный нам Mark Woan.
Теперь давайте посмотрим на картину в целом, представьте, что в процессе разбора журналов вы видите такое событие:
Простое вычисление позволяет вам понять, что 864001 секунда – это как раз 10 дней. Вы ищете prefetch-файлы, измененные примерно через 10 дней после события из журнала (т.е. дата изменения должна быть 28.03.2013 + 10 дней) и видите следующие следы:
Таким образом вы собрали доказательства того, что системное время было изменено. Остается найти, кто же его изменил? Используя ключ UserAssist, соответствующий учетной записи подозреваемого, вы находите недостающие 'улики':
В случае, если политика аудита была настроена так, что системные события протоколируются, вы увидите доказательства манипуляций со временем в журнале безопасности. Будет отображена полная информация, включая учетную запись пользователя, который перевел время. Следы в системе позволяют однозначно выявить учетную запись, от имени которой открывался любой апплет Панели управления. Для того, чтобы определить цели злоумышленника может потребоваться дополнительный контекст. Например, в случае если пользователь перевел время назад, чтобы подделать дату электронного письма, нам понадобится разбор журналов безопасности, метаданные письма и другие дополнительные инструменты и источники.
Сегодня продолжаем рассказ о методах расследований и сборе доказательств запуска апплетов Панели управления Windows.
Первая часть материала на эту тему доступна здесь.
Напомню, что с выходом Windows 7 механизм UserAssist претерпел существенные изменения. Сбор надежных доказательств запуска апплетов не поддерживается в системах Windows7|8, вместо этого мы можем использовать т.н. списки переходов (jumplists), источник информации, содержащий следы запуска апплетов.
Списки переходов в Windows 7/8 (Jumplists)
В современных ОС Windows cписки переходов являются одним из самых важных источников информации для расследований, в том числе в них содержатся нужные нам следы запуска апплетов Панели управления. Автор Harlan Carvey написал отличный пост, посвященный спискам переходов. В нем он подробно рассказывает о структуре и практическом применении списков.
Для сбора информации, относящейся к Панели управления, нам понадобится список, имеющий идентификатор 7e4dca80246863e3 (список всех идентификаторов ). Полный путь к списку переходов выглядит так:
%user profile%\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
\7e4dca80246863e3.automaticDestinations-ms
Обратите внимание, что списки переходов уникальны для профиля каждого пользователя.
Посмотрите на рисунок и отметьте для себя важный момент: каждый апплет Панели управления имеет идентификатор класса Windows (CLSID, в программе JumpList он представлен в форме глобального идентификатора GUID). Идентификаторы CLSID/GUID используются в списках переходов для того, чтобы зафиксировать выполнение апплета. В нашем примере идентификатор {E2E7934B-DCE5-43C4-9576-7FE4F75E7480} соответствует апплету «Дата и время» (timedate.cpl). В библиотеке MSDN содержится карта соответствия всех апплетов и их идентификаторов.
Рекомендуется использовать идентификаторы известных апплетов для поиска действий пользователей. Например, как мы видим на рисунке, последний запуск апплета «Дата и время» состоялся 5 апреля 2013г. в 06:53:33, и запустил его владелец именно этого списка. В отличие от механизмов Prefetch и UserAssist, информацию о времени первого запуска и количестве запусков получить невозможно (эту информацию можно получить, используя теневые резервные копии). Инструмент JumpLister разработал уже известный нам Mark Woan.
Собираем все доказательства и видим общую картину
Теперь давайте посмотрим на картину в целом, представьте, что в процессе разбора журналов вы видите такое событие:
Простое вычисление позволяет вам понять, что 864001 секунда – это как раз 10 дней. Вы ищете prefetch-файлы, измененные примерно через 10 дней после события из журнала (т.е. дата изменения должна быть 28.03.2013 + 10 дней) и видите следующие следы:
Таким образом вы собрали доказательства того, что системное время было изменено. Остается найти, кто же его изменил? Используя ключ UserAssist, соответствующий учетной записи подозреваемого, вы находите недостающие 'улики':
В случае, если политика аудита была настроена так, что системные события протоколируются, вы увидите доказательства манипуляций со временем в журнале безопасности. Будет отображена полная информация, включая учетную запись пользователя, который перевел время. Следы в системе позволяют однозначно выявить учетную запись, от имени которой открывался любой апплет Панели управления. Для того, чтобы определить цели злоумышленника может потребоваться дополнительный контекст. Например, в случае если пользователь перевел время назад, чтобы подделать дату электронного письма, нам понадобится разбор журналов безопасности, метаданные письма и другие дополнительные инструменты и источники.