При расследовании инцидентов одним из важнейших действий является грамотный сбор доказательств, ведь иначе мы рискуем упустить из виду что‑то важное, что впоследствии поможет нам разобраться в произошедшем.
Не секрет, что компрометация большинства корпоративных сетей начинается с атак на пользовательские рабочие места. Проникнув на компьютер пользователя, злоумышленник может дальше развивать атаку уже в корпоративной сети. Чтобы понять, как злоумышленник проник на машину, что он делал дальше, на какие узлы ходил и так далее нам необходимо произвести анализ скомпрометированного узла. Так как в большинстве организаций пользовательские компьютеры по прежнему используют Windows, в этой статье мы поговорим об анализе этой операционной системы.
Также в этой статье мы не будем касаться темы анализа дампов памяти и использования Volatility, так как на эту тему написано достаточно интересных статей. Вместо этого мы поговорим о других укромных уголках Windows, в которых тоже можно найти полезную информацию.
Начнем с уведомлений и таймлайнов
В Windows 10 есть уведомления. Да-да, те самые надписи в правом нижнем углу (новые письма, служебные уведомления), на которые мы все не обращаем особого внимания. Но в них тоже может быть что‑то интересное, и при расследовании неплохо было бы заглянуть в журнал уведомлений.
База уведомлений хранится по пути:
\Users\<имяпользователя>\AppData\Local\Microsoft\Windows\Notifications\
wpndatabase.db
По формату это база данных SQLite, содержащая множество различных таблиц. Нас будет интересовать таблица Notification, которая содержит уведомления в формате XML. Для того, чтобы открыть db файл, проще всего воспользоваться DB Browser.
Здесь можно найти сообщения о новых письмах и точное время, когда эти письма пришли, уведомления от установленных приложений и другую полезную системную информацию, которая может помочь при расследовании.
Еще одна следилка полезная функция Windows, которая предоставляет хронологическую историю посещенных веб‑страниц, отредактированных документов и выполненных приложений, это Timeline. Здесь всё аналогично уведомлениям, в базе также хранятся сведения о тех приложениях и страницах, которые запускались на машине с указанием точного времени запуска. Найти ее можно в:
\Users\<имяпользователя>\AppData\Local\ConnectedDevicesPlatform\<id>\ActivitiesCache.db
Эту базу данных также можно открыть с помощью инструмента DB Browser. Здесь мы можем видеть, какие компоненты Windows когда запускались, причем речь идет не только о пользовательских приложениях, но также и о системных компонентах.
Также в случае, если злоумышленники повредили или модифицировали основной журнал событий Windows Event Log, содержимое этой базы может помочь восстановить историю работы системы.
Aльтернативные потоки данных
При открытии файла, загруженного из интернет, операционная система или офисные приложения предупреждают нас о том, что этот файл загружен из сети. Откуда тот же Word или PowerPoint узнает, что документ был загружен? Это происходит благодаря альтернативным потокам данных (ADS). По сути, это метаданные, связанные с объектом файловой системы NTFS. В этой файловой системе файл, кроме основных данных, может также быть связан с одним или несколькими дополнительными потоками.
Например, загружаемые файлы могут содержать идентификатор ADS Zone.Identifier, указывающий на то, как они были загружены из внутренней сети, интернета и т. д. Некоторые программы (например, браузеры) обычно помещают еще больше информации, например URL, откуда был загружен файл.
Для того, чтобы посмотреть альтернативные потоки, никакие дополнительные инструменты не требуются. Просто в консоли необходимо выполнить команду dir /R
. Наиболее интересным для проверки на наличие ADS является каталог с загрузками.
Мусор в корзине
При анализе содержимого файловой системы обязательно стоит заглянуть в Корзину. Удаляемые пользователями файлы могут остаться в ней и там тоже может что‑то любопытное.
В системах Windows, начиная с Vista, корзина находится в папке $Recycle.bin в корне диска (например C:\$Recycle.bin). При удалении любого файла в этой папке создаются два специальных файла:
$I{id}: Информация о файле (дата удаления).
$R{id}: Содержимое файла
В результате, имея доступ к Корзине на файловом уровне, мы можем без труда узнать содержимое удаленных файлов.
Обнаружив эти файлы, вы можете использовать инструмент Rifiuti, чтобы получить оригинальный адрес удаленных файлов и дату их удаления. Данная утилита входит в состав Kali Linux.
Теневые копии томов
Теневое копирование — это технология, входящая в состав Microsoft Windows, позволяющая создавать резервные копии или снимки компьютерных файлов или томов, даже если они используются. Эти резервные копии обычно располагаются в папке \System Volume Information в корне файловой системы, а их название состоит из UID, как показано на следующем рисунке:
Для того, чтобы просмотреть содержимое теневой копии, можно воспользоваться инструментом ShadowCopyView. Каждый снимок содержит старые версии файлов и папок, начиная с даты создания снимка, и в результате анализа мы можем просмотреть старые версии файлов и папок.
Однако в системе есть ряд файлов, которые, наоборот, не нужно бэкапировать. Эти файлы можно найти в ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore.
Мы знаем, какие документы ты открывал
Продолжая тему слежки за пользователем полезного функционала Windows, рассмотрим механизм автоматического создания ярлыков приложений, открытых пользователем.
Для файлов офисных приложений эти ярлыки создаются в каталоге:
C:\Users\\\AppData\Roaming\Microsoft\Office\Recent\
Для всего остального в каталоге:
C:\Users\\AppData\Roaming\Microsoft\Windows\Recent\
Эти автоматически создаваемые файлы ссылок содержат информацию о происхождении файла или папки, времени создания файла, информации о томе, где хранится файл, и папке целевого файла. Кроме этого, дата создания файла ссылки — это время первого использования исходного файла, а дата изменения файла ссылки — время последнего использования исходного файла.
Подробнее о том, как устроены LNK-файлы и какие инструменты можно использовать для их просмотра, можно прочитать, например, в этой статье.
Полезным свойством упомянутого механизма автоматического создания ярлыков является то, что в числе прочего будут созданы ярлыки и для тех файлов, которые открывались со съемных носителей. Да, у нас не останется содержимого этих файлов, если мы их не копировали на диск, но у нас останется название файла, его тип, приложение, в котором его открывали, и время. При расследовании это тоже может оказаться полезно.
Впрочем, анализ подключений USB-носителей — это отдельная тема, и об этом мы еще обязательно поговорим.
Заключение
В этой статье мы рассмотрели некоторые компоненты ОС Windows, позволяющие узнать о том, какие файлы запускал пользователь и какие процессы запускались в системе. Стоит отметить, что для того, чтобы получить все эти данные, нам не нужен дамп оперативной памяти, и все это может использоваться в том случае, когда скомпрометированную машину успели выключить или перезагрузить.
Пользуясь случаем, расскажу про открытые уроки по информационной безопасности, которые пройдут скоро в Otus и которые можно посетить бесплатно:
5 февраля: «Основы обеспечения безопасности в Docker контейнерах». В результате урока сформируете базовые навыки обеспечения безопасности Docker-контейнеров и сможете применять эти знания для защиты своей инфраструктуры на практике. Записаться
19 февраля: «Комплексная кибербезопасность компании». Разберём, как выстроить многоуровневую защиту, чтобы избежать финансовых потерь и соблюсти действующие и будущие стандарты ИБ. Записаться
kovserg
forensic windows - криминальная экспертиза окон