Ваш цифровой след: Погружение в форензику Windows

Специальный корреспондент
Собака

Собака

Пресс-служба
Команда форума
Private Club
Регистрация
13/10/15
Сообщения
55.100
Репутация
63.040
Реакции
277.411
RUB
0
808fcaa4d7f24b3d37af157a77abe451.png

В этой статье мы поговорим о методах поиска информации в операционной системе Windows — с целью выявления различных инцидентов. Это сведения о пользователях и входах, базовой информации системы, сетевом подключении, а также о восстановлении удаленных файлов, просмотрe открывавшихся документов, выявлении подключавшихся к компьютеру флешек и т. д. — данные, позволяющие установить факты нарушения безопасности или несанкционированного доступа. Затронем также тему этики при проведении экспертиз такого рода.

Может показаться, что для решения большинства из этих задач специальных знаний не требуется и достаточно простого владения компьютером на уровне уверенного пользователя. Что ж, может, так и есть. Хотите знать наверняка? Добро пожаловать под кат.

Что такое форензика?​

Форензика (или, как её еще называют, компьютерная криминалистика) — это прикладная дисциплина о том, как расследовать инциденты, которые произошли на цифровых девайсах, и получать цифровые доказательства для различных нужд, например, для анализа нарушений безопасности. Само слово «форензика» имеет иностранное происхождение и происходит от термина «forensic science». Дословно это можно перевести как «судебная наука» или «криминалистика». В термин forensic science охватывает криминалистику целиком: баллистическая и дактилоскопическая экспертизы, токсикология и так далее. Однако в русском языке под форензикой понимают именно компьютерную криминалистику.

Объектами интересов форензики как дисциплины являются ситуации разной степени серьезности. Это и ретроспективный аудит систем с целью понимания процессов, произошедших на них (например, при попадании ВПО), и анализ техники при намеренных противоправных действиях пользователей с целью сбора доказательств, анализа техник и тактик злоумышленника и последствий для компании.

Почему именно Windows​

Windows — наиболее распространенная в мире ОС, и будет еще долго таковой оставаться. Большое количество систем на этой ОС не только обосновывает актуальность анализа Windows, но и облегчает понимание форензики в целом. Кто из нас не работал с виндой?

Windows – лидер на рынке серверных операционных систем. Источник: truelist.co.

Windows – лидер на рынке серверных операционных систем. Источник: truelist.co.
Безусловно, в энтерпрайз-средах анализ Linux-систем зачастую может быть более важен. На серверах компании могут храниться различные критические сервисы и службы. И хотя, судя по всему, Windows Server все равно является самой популярной серверной ОС, есть намерение выпустить еще одну статью по основам форензики Linux-систем, если интерес аудитории к этой статье окажется ненулевым.

В каких случаях проводить расследование​

Анализ систем может быть полезен в следующих обстоятельствах:

  • Система была скомпрометирована злоумышленниками или вредоносным ПО, требуется проанализировать, какие файлы и сервисы были затронуты, первоначальный вектор проникновения, хронологию событий.
  • Служебное расследование таких случаев нарушения политики компании, как утечка конфиденциальной информации, злоупотребление служебным положением.
  • Необходимо восстановить удаленные файлы.
  • Судебные экспертизы. Суд, сторона обвинения или защиты заказывает компьютерно-техническую экспертизу.
  • Система просто работает не так, как надо, и никто не знает почему.

Какие сведения искать в системе и чем они полезны​

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

Что ищем
Зачем
Имя компьютера и версия ОС​
Чтобы точно знать, что мы работаем с нужной машиной.​
Системное время и часовой пояс​
Установить точную хронологию событий в журналах и прочих файлах. Некоторые данные в компьютере будут иметь временные метки в UTC, а некоторые — в системном времени. Кроме того, при наличии внешних систем аудита и наблюдения, например, межсетевых экранов или SIEM, важно установить разницу во времени событий в исследуемом компьютере и в этих системах.​
Сведения о сетевых интерфейсах и использовавшихся в прошлом сетях​
Информация о сетевых интерфейсах (MAC-адреса, IP-адреса) может помочь установить, как исследуемый компьютер взаимодействовал с другими устройствами или сетями. Также данные о прошлых сетях, к которым подключался компьютер, могут указывать на места, где находился пользователь компьютера, или на визиты пользователя в определенные места.​
Программы автозапуска​
Информация о программах автозапуска может раскрыть, какие приложения запускаются при загрузке системы. Это может помочь восстановить последовательность действий, предшествовавших инциденту. Кроме того, вполне легитимный Планировщик заданий Windows часто используется для запуска вредоносного ПО.​
Информация о пользователях и служебных учетных записях​
Информацию об учетных записях, информацию о входе в систему и информацию о группе мы можем использовать для идентификации пользователя, анализа привилегий, поиска данных о входах в систему, а также для анализа вредоносной активности.​
Журналы системы​
Журнал событий позволяет отслеживать действия пользователей и системных процессов.​
Подключавшиеся устройства​
Помогают определить, что было подключено к системе. Это важно для расследования случаев НСД или передачи данных.​
Недавние файлы​
Если в списке недавних файлов появляются необычные или незнакомые документы, это может быть признаком вредоносной активности или утечки информации. Кроме того, Список недавних файлов предоставляет информацию о действиях пользователя.​
Для исследователя главными «призами» в процессе поиска являются так называемые артефакты — то есть фрагменты информации, позволяющие в совокупности составить истинную картину происходивших в системе процессов. Извлечение и анализ артефактов — главная цель форензики.

Как и где искать нужные сведения​

Переходим к самому интересному. Вообще, в реальной обстановке в компаниях редко есть необходимость копаться непосредственно в компьютере или сервере. Компьютеры сотрудников находятся в домене, в котором через групповые политики настроена отправка событий безопасности на удаленный сервер. Кроме этого, есть антивирусы/EDR с централизованным управлением, которые тоже пишут свои логи, также возможно присутствие агентов SIEM или сторонних решений аудита наподобие Netwrix Auditor.

Мониторинг сервера Windows с помощью Netwrix, netwrix.com

Мониторинг сервера Windows с помощью Netwrix, netwrix.com
Но иногда речь заходит о служебных ноутбуках сотрудников, не включенных в домен, компьютерах, на которых, по недосмотру, программ контроля или не было совсем, или они были таинственным образом удалены. Еще в ряде случаев используются автономные компьютеры, например, для обработки крайне чувствительных документов. Короче говоря, иногда анализ отдельно взятого компьютера необходим.

Основной (но не единственный) источник информации о системе — реестр Windows. Это место, где содержатся сведения о конфигурации системы: оборудовании, программном обеспечении или информации пользователя. Вы можете прямо сейчас просмотреть свой реестр с помощью regedit.exe.

Вот что вы увидите

Вот что вы увидите
Реестр Windows состоит из ключей и значений. Ключи — это все папки, которые вы видите, а значения — это данные, хранящиеся в этих ключах. Куст (hive) реестра — это группа ключей, подразделов и значений, хранящихся в одном файле на диске.

В каждом реестре Windows есть пять корневых ключей:

  1. HKEY_CLASSES_ROOT
Содержит информацию, связанную с типами файлов и их ассоциациями. Сокращается до HKCR.

  1. HKEY_CURRENT_USER
Содержит корень информации о конфигурации для пользователя, который находится в системе в данный момент. Часто сокращается до HKCU. Подраздел HKEY_USERS.

  1. HKEY_LOCAL_MACHINE
Содержит информацию о конфигурации, относящуюся к конкретному компьютеру: данные о системной шине, портах, контроллерах и других аппаратных компонентах, сведения о безопасности и т. д. Сокращается до HKLM.

  1. HKEY_USERS
Содержит все загруженные профили пользователей на компьютере. Сокращение — HKU.

  1. HKEY_CURRENT_CONFIG
Содержит информацию о профиле оборудования, используемом локальным компьютером при запуске системы. Сокращается до HKCC.

Ключи — слева, значения — справа. Изображение: learn.microsoft.com

Ключи — слева, значения — справа. Изображение: learn.microsoft.com
Regedit.exe можно использовать в случае, если у исследователя есть доступ к исследуемому компьютеру, включая действующий логин и пароль. На практике, даже если такие данные предоставлены, делать этого не рекомендуется. Во-первых, вход по имени и паролю в исследуемый компьютер теоретически может активировать какой-нибудь скрипт, который инициирует затирание или повреждение искомых данных. Во-вторых, даже если этого не произойдет, вход пользователя в систему и действия в ней неизбежно вызовет массив новых записей в логи системы, что может повлечь за собой удаление более старых. Например, журнал security.evtx по умолчанию настроен именно таким образом — старые события безопасности удаляются, чтобы освободить место для новых, если достигнут максимальный размер журнала.

Кроме того, если проводится серьезное расследование, исследователю потребуются доказательства тождественности исследуемой единицы данных с единицей данных, которая была получена/изъята с исследуемой системы. Для удостоверения тождественности, т. е. целостности и неизменности данных, будет правильным снять образ с диска и произвести подсчет хэш-сумм с самого диска и с его образа. Совпадение значений хэшей гарантирует полное совпадение содержимого файлов или носителей.

Как снять образ? Можно использовать как специализированные программы, так и утилиту dd. Департамент юстиции США занимался тестированием инструментов для снятия образа. По их заключению, наибольшую точность показали программы и . По гиперссылкам можно посмотреть результаты исследований. На форумах довольно часто упоминается OSFClone, но я с ней совсем не знаком.

Скриншот из исследования утилиты dd по ссылке выше. Количество ошибок — 0.

Скриншот из исследования утилиты dd по ссылке выше. Количество ошибок — 0.
Короче говоря, снятие образа с диска может выглядеть примерно так: диск изымается с исследуемой системы, исследователь подключает его к системе Linux и использует утилиту dd для создания образа, например:

dd if=/dev/sda of=/путькцелевому_образу

Главное — правильно указать место назначения. Второй, более элегантный способ — вместо изъятия диска загрузиться на исследуемом компьютере с live-образом ОС, например, Kali Linux, и использовать ту же утилиту dd.

После этого диск необходимо смонтировать. В Linux для этого надо создать каталог:

sudo mkdir /mnt/disk_image

Смонтировать образ:

sudo mount -o ro,loop путьобразадиска /mnt/disk_image

Как результат, образ диска станет доступным для чтения, как если бы он был физическим устройством.

Не забудьте размонтировать образ после окончания работы:

sudo umount /mnt/disk_image

В системах Windows снятие и монтирование образов дисков можно проводить с помощью специальной программы AccessData FTK Imager.

При работе с образом диска важно знать, как найти кусты реестра без regedit.exe. Первый каталог, заслуживающий внимания — C:\Windows\System32\Config.

Там находятся следующие файлы:

  • DEFAULT, где находятся данные HKEY_USERS\DEFAULT
  • SAM (Security Accounts Manager), там лежат данные HKEY_LOCAL_MACHINE\SAM
  • SECURITY (HKEY_LOCAL_MACHINE\Security)
  • SOFTWARE (HKEY_LOCAL_MACHINE\Software)
  • SYSTEM (HKEY_LOCAL_MACHINE\System)
Также стоит обратить внимание на файл C:\Windows\AppCompat\Programs\ Amcache.hve. В нем содержится информация о запускаемых приложениях в системе. Каждая запись в Amcache.hve включает в себя путь выполнения, время первого выполнения, время удаления, первую установку и SHA1-хеш каждого запущенного файла, что позволяет использовать его при поиске ВПО для проверки файлов в VirusTotal или аналогах. Кроме того, есть еще ShimCache, который также содержит информацию о приложениях, но менее полную, чем Amcache. Несмотря на это, использование ShimCache и Amcache в комбинации позволяет создать более полное представление о деятельности на компьютере.

Помимо вышеописанного, в каталогах профилей пользователей содержатся еще два важных файла. Первый называется NTUSER.DAT, там содержится информация, которая при логине этого пользователя в систему попадает в HKCU. Этот файл находится по адресу C:\Users\пользователь\. Второй файл имеет название UsrClass.dat, он монтируется в HKCU\Software\CLASSES и находится по пути C:\Users\пользователь\AppData\Local\Microsoft\Windows.

Также на глаза могут попасться файлы с расширением .LOG. Это журнал, который используется Windows для отслеживания изменений в реестре. Так, файл SAM.LOG содержит информацию о том, какие изменения были внесены в базу данных учетных записей (локальных и доменных) на компьютере. Эти файлы также представляют интерес. Располагаются они в уже известном каталоге — C:\Windows\System32\Config.

И пока последняя, пожалуй, точка интереса — это резервные копии кустов реестра, которые хранятся в C:\Windows\System32\Config\RegBack. Туда стоит заглянуть, если есть подозрения, что некоторые ключи реестра могли быть изменены.

Инструменты для анализа​

Образ в наличии, есть понимание точек интереса. Что дальше? Для просмотра и анализа файлов можно использовать эти два инструмента:

(Kroll Artifact Parser And Extractor)

Хороший бесплатный инструмент. Получить можно с официального сайта, заполнив форму. Правда, потребуется указать корпоративную почту. Лично я, чтобы не палить контору, указывал свою студенческую почту на институтском домене. Письмо со ссылкой пришло через пару дней.

Интерфейс

Интерфейс
Достаточно понятный GUI, хотя в комплекте поставки есть и CLI-версия. Слева — зона модуля Target, который отвечает за поиск файлов. Собственно, в графу Target Source надо прописать путь к смонтированному диску, в Target destination — директорию, в которую будут помещаться извлеченные файлы. Длинный список в секции Target — предустановленные плагины, определяющие выборку информации при извлечении. Например, плагин Basic Collection извлекает следующие данные:

Скрытый текст
Плагины Target позволяют быстро сделать большой объем работы, вплоть до извлечения данных из Chrome и торрент-клиентов. Плагины в секции Modules отвечают за действия над собранными файлами. Например, AmcacheParser извлекает из Amcache.hve информацию о выполнении программ в формат .csv. Вообще, большинство результаты работы модулей имеют расширение либо .csv, либо .txt. Для просмотра удобно использовать EZViewer от разработчика KAPE Эрика Циммермана. Для просмотра извлеченных кустов реестра можно использовать Registry Explorer. Скачать можно , и в целом там много интересного.



Программа бесплатная, есть версия как под Windows, так и под Linux (А в Kali Linux она вообще предустановлена). Умеет работать как с живыми системами, так и с образами.

Интерфейс

Интерфейс
Также как в KAPE, присутствует система модулей для работы:

Радует экзотическое DJI Drone Analyzer

Радует экзотическое DJI Drone Analyzer

Анализ реестра​

Но вернемся пока к реестру. Чтобы извлечь его в KAPE, надо использовать Target плагин KAPE Triage/RegistryHives. Теперь можно просмотреть результат в Registry Explorer. В первую очередь целесообразно узнать имя компьютера и версию ОС. Эти данные находятся в ключах

  • SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName или ControlSet001\Control\ComputerName\ComputerName
ae8089f3ace6e1a5aab5592b290f2742.png

  • SOFTWARE\Microsoft\Windows NT\CurrentVersion.
e1f14e0b67cbda31ecff9cc805b4e215.png

Важно. При подгрузке веток в Registry Explorer может высветиться сообщение, что загружаемая ветка имеет неполные данные (dirty hive). Это означает, что надо подгрузить журналы транзакций .LOG. После загрузки основной ветки требуется выбрать файлы с расширением .LOG для выбранной ветки. Например, после загрузки ветки SYSTEM может потребоваться загрузить ветки SYSTEM.LOG1 и SYSTEM.LOG2. Далее программа сгенерирует полный файл ветки с именем SYSTEM_clean. После сохранения этого файла его можно использовать для анализа.

9e77a842cb48edee0e39c0182af0b082.png

Далее нас интересует часовой пояс компьютера. Данные об этом можно узнать из ключа:

SYSTEM\CurrentControlSet\Control\TimeZoneInformation

В разделе RealTimeIsUniversal:

На картинке видно, что на компьютере было установлено западноевропейское время.

На картинке видно, что на компьютере было установлено западноевропейское время.
Следующий раздел реестра предоставит список сетевых интерфейсов системы:

SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces

Каждый интерфейс представлен уникальным идентификатором (GUID). Из значений в этих ключах можно установить статус DHCP, адрес и маску, шлюз, домен и DNS-серверы.

Например, из указанных значений становится понятно, что DHCP на системе был отключен.

Например, из указанных значений становится понятно, что DHCP на системе был отключен.
Сети, к которым компьютер подключался ранее, можно найти здесь:

SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\

Особенно важны столбцы First и Last Connect.

2cfa635b51ac7d0c2e5ff4219ffaf122.png

Проверим список автозапуска. Данные о программах автозагрузки можно найти в следующих местах:

NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Run

NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\RunOnce

SOFTWARE\Microsoft\Windows\CurrentVersion\Run

SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run

Вот пример того, что можно найти. В автозагрузке стоит клиент OneDrive.

Вот пример того, что можно найти. В автозагрузке стоит клиент OneDrive.
Исследуем информацию об учетных записях. Они находятся здесь: SAM\Domains\Account\Users. Это крайне полезная информация, особенно если предполагается компрометация учетных данных пользователей. В значениях ключа содержится информация о времени создания учетной записи, последнем времени успешного логина, времени изменения пароля, дате последнего неправильного ввода пароля и так далее.

Обратите внимание — значения времени отображаются в формате UTC.

Обратите внимание — значения времени отображаются в формате UTC.
Говоря о пользователях, не меньший интерес представляет список недавно открытых файлов. Эта информация хранится в NTUSER.DAT каждой учетной записи по пути:

NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs

41fb1396c538b2646310b26e1a873964.png

Также есть возможность посмотреть список недавно открытых документов. Например, информация о таблицах Excel хранится в SOFTWARE\Microsoft\Office\16.0\Excel.

Там можно найти путь и имя файла, а также время последнего открытия.

Хорошим источником артефактов может послужить куст AmCache. Его предназначение мы кратко описывали выше. Registry Explorer позволяет просмотреть его, загрузив из папки C:\Windows\appcompat\Programs\Amcache.hve. Из него можно извлечь данные о выполняемых на компьютере программах.

3c7ad43eadf427360b3065482523ab19.png

Последнее на сегодня извлечение из реестра, но от этого не менее важное – сведения о подключенных устройствах. Исходя из моего опыта, зачастую «грязные» флешки являются наиболее частым начальным вектором атаки в организациях, уступая первое место в этом сомнительном соревновании, пожалуй, только фишинговым электронным письмам. Поэтому в расследовании проникновения вирусов в инфраструктуру данные о том, какая флешка в какой момент времени подключалась к системе, могут быть невероятно полезны. Эту информацию можно поискать в следующих разделах:

SYSTEM\CurrentControlSet\Enum\USBSTOR

SYSTEM\CurrentControlSet\Enum\USB

SYSTEM\ControlSet001\Enum\USB

SYSTEM\ControlSet001\Enum\USBSTOR

Отдельно стоит заметить, что там сохраняется не только время подключения и имя устройства, но и его серийный номер. Это полезно, если в вашей организации есть корпоративные флешки и ведется учет вида «серийный номер устройства — сотрудник». Это позволит выявить в том числе факты неавторизованного использования накопителей. Помимо этого, в ключе Enum сохраняются данные, например, о принтерах, что также может оказаться полезным.

Анализ журналов событий​

Анализ журналов — обязательная точка интереса в расследовании. Тема журналов обширна, но раз статья называется «Введение в форензику», поговорим о главном. В первую очередь следует обратить внимание на историю входов на компьютер. Опять же, в доменной сети это можно узнать на контроллере домена, если включена политика аудита входа пользователей. Однако если что-то пошло не так, это можно сделать и локально. Самый простой способ — открыть Event Viewer, выбрать журнал Security и отфильтровать события по ID 4624 — такой код имеют события успешного входа в систему. Также полезно обратить внимание на 4625 — это неуспешные попытки входа.

В отфильтрованном по ID 4624 будет очень много событий с logon type 5. Это указывает на то, что произошел вход в систему через сервис. Хотя подозрительная активность с этим типом входа может указывать на компрометацию служб или программ в системе, лучше сначала обратить внимание на события с logon type 2, 3 и 10. Это позволит сэкономить время на анализе. Тип входа 2 — связан с локальным входом на компьютер, подозрительная активность с использованием этого типа входа может включать в себя попытки физической компрометации устройства или несанкционированный доступ к компьютеру непосредственно на месте. Тип входа 3 или 10 указывает на доступ через сеть (Network/RemoteInteractive), что может свидетельствовать о попытках бокового распространения через средства удаленного подключения. Подробнее о типах входа можно почитать .

Для удобства исследования можно пользоваться просмотром не с помощью EventViever, а через модуль KAPE «EvtxECmd». Он предоставляет более стандартизированный и удобный для анализа вывод журналов. Краткий обзор модуля в видеоформате можно посмотреть .

Пример вывода EvtxECmd. Картинка: kazamiya.net

Пример вывода EvtxECmd. Картинка: kazamiya.net

Поиск удаленных файлов​

Бывают случаи, когда необходимо найти и восстановить удаленные файлы на диске. Например, данные были удалены вредоносной программой или намеренно, чтобы замести следы использования вредоносного ПО. В ряде случаев их можно восстановить. Когда файлы удаляются стандартными способами (например, через корзину или команду удаления в операционной системе), они обычно не стираются полностью, а просто помечаются как удаленные в файловой системе. Эта информация ещё может быть восстановлена с использованием специальных инструментов, например Autopsy.

Допустим, у нас есть флешка, на которой был очень важный файл. По недосмотру файл был удален. Нужно попытаться восстановить его.

Так как вредоносного ПО на флешке нет, можно считать ее безопасной и подключить к компьютеру с Autopsy напрямую. Затем нужно открыть программу и задать данные кейса.

dfc6bdaec4b439cb604db7d19a6e9e70.png

Далее дождаться, пока создастся база данных, выбрать хост и затем источник данных. Поскольку флешка подключена напрямую, надо выбрать Local disk.

b0b17a6b1b374e00b646526fa01c78ca.png

С левой стороны по симпатичной навигации в виде дерева нужно зайти в Deleted Files.

a6a302983b75d04cb817cc68dc88be01.png

И справа будут отображены удаленные файлы.

abf6c68fadea3886abe9ca44b42e7ba4.png

Далее — щелчок правой кнопкой мыши и выбор пункта «Extract files». После этого можно зайти в директорию, где был сохранен извлеченный файл, и просмотреть содержимое.

Френдли ремайндер — а вы регулярно меняете пароли?

Френдли ремайндер — а вы регулярно меняете пароли?
Успех!



Однако если данные были удалены с помощью низкоуровневого форматирования, то есть процессом, который переписывает всю флешку нулями или другими данными, полностью стирая как файловую систему, так и все данные на носителе, восстановить данные невозможно.

Этические нормы и ответственность в работе​

Работа криминалиста при исследовании систем требует не только технических знаний, но и следования этическим нормам. Эксперт несет ответственность не только за качество своего расследования, но и за защиту прав и конфиденциальности всех вовлеченных сторон. Прежде всего это важно при судебных экспертизах. Понятно, что МВД и другие службы предпочитают привлекать к исследованию специалистов из соответствующих учреждений, но и не запрещают привлечение в качестве экспертов гражданских лиц, равно как не предъявляют требований к сертификации или лицензированию.








 
  • Теги
    windows форензика
  • Сверху Снизу