Дистрибутивы для криминалистического анализа (Форензики)

Компьютерная криминалистика или как говорят специалисты Форензика, применяется при расследовании компьютерных преступлений. В зависимости от конкретных задач, методы форензики подразделяются на две большие группы: анализ включенной системы (например, работающего сервера) и выключенной (например, изъятых накопителей). В обоих случаях есть свои особенности и инструменты, о которых мы и поговорим.

Еще по теме: Обзор защищенных Linux-дистрибутивов

Цели и методы форензики

Анализ «живой» и анализ выключенной системы в корне отличаются не только подходами, но и теми данными, которые удается собрать. В первом случае (Live Forensic) это наблюдение за атакованной системой в реальном времени. Есть возможность непосредственно оценить дисковую и сетевую активность, получить список запущенных процессов, открытых портов, просмотреть залогиненных пользователей, а главное — получить из оперативной памяти те данные, которые при отключении питания исчезнут бесследно.

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

Наборы для анализа «вживую» каждый специалист формирует, исходя из собственных потребностей. Скажем, админу достаточно уметь быстро поднять сервисы, упавшие после атаки, и восстановить продуктив из бэкапа. Уже потом в спокойной обстановке он, может быть, и глянет логи, но вряд ли найдет в них что-то ценное. Айпишники китайских прокси? Признаки входа на корпоративный сайт через дырявую CMS, которую он хотел пропатчить месяц назад? Если все бизнес-процессы идут своим чередом, дальнейшее расследование КИ для него теряет смысл.

Иные подходы у отдела расследования компьютерных инцидентов антивирусной компании (который вместе с правоохранительными органами анализирует свежий случай массового заражения) или FinCERT, распутывающей APT в какой-нибудь платежной системе. Здесь совсем другие приоритеты: нужно собрать максимум информации, которую затем можно будет использовать в суде. Обнаружить C&C-серверы ботнета, найти источник угрозы, детально восстановить сценарий взлома и выйти на его организаторов (в идеале — с их последующим арестом). Для этого требуется тщательно собрать доказательную базу, но проблема в том, что анализ системы почти всегда вносит в нее искажения. Задача специалиста по компьютерной криминалистике — свести их к минимуму и учесть при дальнейшем анализе.

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

Как не наследить криминалисту

Первое правило форензики — не вносить искажений в оригинал. Для этого все действия выполняются с точной (посекторной) копией исследуемой файловой системы и полными дампами оперативной памяти.

К сожалению, на практике этот принцип часто нарушается из-за незнания особенностей работы ОС, в том числе Live-дистрибутивов. Для удобства во многих из них по умолчанию активирована функция автоматического подключения всех обнаруженных дисков. Особенно этим грешит Windows (включая сборки на основе PE), которая создает на каждом диске временные файлы и служебные каталоги (System Volume Information, $Recycle.Bin и так далее), но и в Linux проблем хватает.

Во многих загрузочных дистрибутивах для форензики на основе Linux дисковые разделы монтируются с опцией -o ro. Считается, что этого достаточно для предотвращения случайной записи. Однако даже если для пользователя диск выглядит как подключенный в режиме «только чтение», ядро ОС и драйверы файловой системы все равно могут изменять на нем служебные данные — например, время последнего обращения к файлу.

По умолчанию среди параметров монтирования указан atime, что означает обновлять атрибут «время последнего доступа» при любом обращении к файлам. Для форензики разумнее использовать noatime.

Другую проблему представляют некорректно размонтированные разделы, что часто случается при изъятии дисков во время «маски-шоу». Перед следующим монтированием поврежденная файловая система будет проверена и fsck попытается автоматически устранить все найденные ошибки. Например, программа исправит «подвисшие» индексные дескрипторы (которые описывают файлы, удаленные открытыми).

Собственно говоря, драйверы всех журналируемых файловых систем (ext3/4, ReiserFS, XFS, NTFS и других) игнорируют опцию -o ro при системных обращениях к диску. Чтобы отучить их смотреть журнал и пытаться внести исправления, лучше монтировать исследуемые разделы с опцией ro,noload, ro,nolog или ro,norecovery — в зависимости от типа файловой системы, однако и это не панацея.

Непреднамеренная запись на исследуемый накопитель во время анализа все равно остается возможна, причем еще на этапе запуска Live-дистрибутива. Например, при поиске загрузочного носителя, записи драйверов в initramfs и создании swap-файла или автоматическом монтировании обнаруженных дисковых разделов (в том числе для поиска Root FS банальным перебором всех подключенных дисков). Это одна из причин физически подключать исследуемый накопитель уже после загрузки Live-дистрибутива.

Варианты решения проблемы самовольной записи на исследуемый диск зависят от особенностей дистрибутива и самого устройства. Например, тома ext3 и ext4 можно смонтировать как нежурналируемые (ext2).

Долгое время для неразрушающего анализа жестких дисков считалось достаточным подключать их как блочное устройство в режиме «только чтение»:

Казалось бы, все верно: blockdev использует системный вызов для изменения флага ядра, который проверяется на уровне файловой системы. Если этот флаг установлен, то он отключает операции записи в ФС, причем не только пользовательские, но и системные (журналирование, восстановление, перезапись суперблока). Такой метод применяется в большинстве дистрибутивов для форензики.

Однако на практике некорректно написанный драйвер ФС все равно может пропустить эту проверку и выполнить операции записи.

Поэтому использование blockdev в режим «только чтение» гарантированно работает только для приложений, запускаемых из userspace, обращения которых проверяет драйвер, но не для ядра ОС и самих драйверов.

Самый надежный вариант — поместить между анализируемым диском и драйвером ФС виртуальное блочное устройство loop device. Оно не пропустит низкоуровневые команды и не даст системе тихо модифицировать исследуемый диск.

Аналогично метод работает с образами дисков.

Еще по теме: Восстановление файлов с помощью Scalpel

Проблемы с Flash-накопителями

Отдельные сложности возникают с твердотельными накопителями. Их контроллеры самостоятельно выполняют низкоуровневые операции для ускорения последующей записи и выравнивания степени износа ячеек флеш-памяти. Банальные операции Garbage Collection и TRIM могут выполниться в любой момент и похоронить надежду на восстановление удаленных файлов.

Варианта решения этой проблемы как минимум два:

  1. Выпаять чипы памяти и считать их программатором (бесполезно, если на SSD используется встроенное шифрование, а сейчас оно по умолчанию активировано на большинстве моделей).
  2. Создать длинную очередь команд на чтение (обычно контроллер не выполняет внутренние операции, пока обрабатывает внешние запросы).

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

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

Копия или подделка?

Качественный сбор информации характеризуется воспроизводимостью (верифицируемостью) его результатов. Это возможно только при неразрушающем и точном копировании данных. Однако даже среди специализированных «криминалистических» программ для создания образов встречаются ошибки.

Например, в форензике часто использовалась (и кое-где продолжает применяться) консольная утилита dcfldd, разработанная в Лаборатории судебной экспертизы компьютерной безопасности (DCFL) — подразделении Центра защиты от киберпреступлений (Линтикам, штат Мэриленд). Это расширенный вариант программы dd, выполняющий побитную копию файловой системы. Если во время работы dcfldd произойдет ошибка чтения, то все последующие номера секторов в образе окажутся смещены. Поддержка dcfldd была прекращена в 2006 году, и баг остался неисправленным.

Созданная копия может оказаться неполной и в случае дампа памяти. Большинство утилит записывают только содержимое ОЗУ, игнорируя файл подкачки. Поэтому, кроме стандартного дампа, есть смысл делать копию pagefile.sys. Для этого удобно воспользоваться утилитой Forensic Toolkit Imager. Это бесплатная часть платного набора Forensic ToolKit от Access Data, мощная программа для предварительного просмотра и визуализации данных, используемая при получении доказательств с работающих Windows-машин.

Дистрибутивы для криминалистического анализа
Делаем дамп вместе с pagefile.sys
Делаем дамп вместе с pagefile.sys
Получаем системные файлы
Дополнительно FTK Imager позволяет без перезагрузки получить копии заблокированных файлов SAM и SECURITY, сделать копии веток реестра SOFTWARE и SYSTEM. Программа умеет создавать побитные копии данных (как отдельных файлов или папок, так и целых дисков) без внесения изменений в оригинал. С ее помощью удобно просматривать все физически имеющиеся файлы, включая удаленные, но еще не перезаписанные.
Дистрибутивы для криминалистического анализа
Создаем образы

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

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

Популярные Live-дистрибутивы для форензики

Для компьютерной криминалистики были созданы десятки Live CD/USB с громкими названиями. Большинство из них оказались однотипными клонами на базе Knoppix, Ubuntu и реже — других ОС. Здесь мы отметим только современные и хорошо себя зарекомендовавшие. Начнем с бесплатных.

CAINE

Итальянский дистрибутив CAINE (Computer Aided INvestigative Environment) создан на базе Ubuntu 16.04. Он доступен в 32-битной и 64-разрядной версии. Последняя сборка называется CAINE 9.0 Quantum и вышла в октябре 2017 года. Авторы CAINE реализовали режим «только чтение» через blockdev и предлагают удобный инструмент управления разрешением записи на диски. По умолчанию запись блокируется и ни один раздел (кроме основного) не монтируется автоматически. Однако CAINE не предотвращает перезапись служебной информации на разделах с журналируемыми ФС и подключенными через менеджер логических томов LVM.

Дистрибутивы для криминалистического анализа
Блокировка записи в CAINE

CAINE содержит десятки популярных утилит для форензики, организованных в соответствующие разделы. Они применяются для изучения систем на базе Windows и Linux. Типовые сценарии анализа частично автоматизированы. Также в нем доступна полуавтоматическая компиляция окончательного отчета, что помогает быстрее создавать стандартизированную доказательную базу для суда.

Дистрибутивы для криминалистического анализа
Набор утилит в CAINE

CAINE вобрал в себя известные тулкиты (NirSoft, Sleuth Kit, Autopsy и другие), поэтому с ним нет необходимости загружать их отдельно. Утилиты для Windows используются в режиме Live Forensic и ранее развивались в рамках дружественного проекта Win-UFO. После его закрытия их добавили в состав CAINE. Просто распакуйте образ на флешку и запустите их отдельно или через лаунчер.

Дистрибутивы для криминалистического анализа
Утилиты для анализа Windows
Дистрибутивы для криминалистического анализа
Детальный сбор данных о системе в WinAudit
Дистрибутивы для криминалистического анализа
NirSoft Launcher в составе CAINE

DEFT

Еще один итальянский дистрибутив для криминалистического анализа на базе Ubuntu — DEFT (Digital Evidence & Forensic Toolkit). Он связан с популярным тулкитом для препарирования Windows-машин на живую — DART (Digital Advanced Response Toolkit) и включает в себя представленные в нем утилиты (запускаются через эмулятор WINE). Работает эта связка не так стабильно, как нативные приложения, да и в целом DEFT уступает CAINE по функциональности.

Основной акцент в DEFT сделан на создание точных дисковых образов и расширенную проверку целостности данных с использованием разных хеш-функций.

Дистрибутивы для криминалистического анализа
Утилиты хеширования в DEFT
Дистрибутивы для криминалистического анализа
Создание образов в DEFT

Первая версия DEFT вышла в 2005 году. С 2012 года он развивается под эгидой некоммерческой организации DEFT Association. Последняя (протестированная в этой статье) версия датируется январем 2017 года.

Parrot OS

Изначально итальянский (они там сговорились, что ли?!) дистрибутив Parrot OS не был ориентирован именно на форензику. Его прерогативой был анонимный веб-серфинг и аудит безопасности. После того как пункт forensic mode был добавлен в меню загрузки, Parrot OS успешно применяется и для расследования КИ.

Дистрибутивы для криминалистического анализа
Parrot OS Forensic mode

Parrot OS базируется на Debian и активно развивается. Последняя версия появилась всего полтора месяца назад. Операционная система очень легковесная (может запускаться на системах с 256 Мбайт ОЗУ), работает на процессорах с архитектурой x86, x86-64 и ARM, что позволяет эффективно использовать ее также на Raspberry Pi и прочих одноплатниках.

По функциональности это один из лучших дистрибутивов. В нем есть все популярные инструменты для криминалистического анализа работающих систем и образов плюс мощный пакет аудита чего угодно, как в Kali Linux.

Дистрибутивы для криминалистического анализа
Набор инструментов для форензики в Parrot OS

Интегрированный пакет Sleuth Kit и Autopsy (графический интерфейс к набору Sleuth) упрощают оформление отчетов при расследовании КИ. В них содержится вся собранная информация по разделам вместе с комментариями, которые ИТ-эксперт оставлял по ходу их обнаружения.

Sumuri PALADIN

Sumuri PALADIN — один из популярных продуктов Sumuri для форензики. Также базируется на Ubuntu и пытается заблокировать запись через blockdev (с тем же частичным успехом, что и CAINE).

Дистрибутивы для форензики
Запуск Paladin

В состав Paladin входит утилита для создания и конвертации образов дисков разных форматов. Благодаря графическому интерфейсу с ней справится и новичок.

Дистрибутивы для форензики
Paladin Toolbox

Разработчики распространяют дистрибутив как donationware с рекомендованной ценой 25 долларов. Вы можете указать и другую (как больше, так и меньше), но в любом случае придется оформлять покупку. Подсказка: поля не проверяются. Просто введите валидный почтовый индекс для выбранного штата или страны.

Kali Linux — Forensic mode

При запуске в таком режиме Kali не монтирует автоматически ни один раздел, включая swap. Все основные средства криминалистического анализа собраны в метапаке kali-forensics-tools размером 3,1 Гбайт. Этот набор из 84 утилит удобно использовать для самостоятельной сборки образа Kali, в котором не будет ничего лишнего.

Дистрибутивы для форензики
Kali Forensic tools

Платные дистрибутивы для криминалистического анализа

SMARTLinux

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

EnCase Forensic

Де-факто этот дистрибутив для криминалистического анализа стал эталоном для Интерпола. Используется для анализа дампа памяти компьютеров и мобильных устройств, включая смартфоны и GPS-трекеры. Подходит для совместной работы нескольких специалистов.

Grml-Forensic

Очень известный дистрибутив для криминалистического анализа на базе Debian, поскольку используется для обучения форензике. При покупке лицензии предоставляется доступ к закрытому сервису Grml-Forensic Bug Tracking System.

Grml-Forensic умеет взаимодействовать с X-Ways Forensics. Это расширенный вариант WinHex с кучей дополнительных функций. Он поддерживает нетипичные для Windows файловые системы (HFS, XFS и другие). Умеет читать и записывать файлы доказательств .e01 (образы EnCase). Может выполнять раздельный анализ файлов разных пользователей. Имеет встроенный анализатор дампов памяти и метаданных.

Helix

Представлен раздельными ветками для анализа вживую и офлайн. Для быстрого дампа памяти, сбора паролей, списков активных процессов и открытых портов есть Helix Live Response. Для офлайновой форензики предлагается Helix3 Pro. Также есть бесплатная версия Helix3, но она не обновлялась с 2009 года.

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

COFEE (Computer Online Forensic Evidence Extractor)

Набор утилит, который был популярен в National White Collar Crime Center (NW3C), для сбора доказательств с компьютеров под управлением Windows XP и более младших версий. Разработан старшим следователем MS Internet Safety Enforcement Team Энтони Фангом (Anthony Fung). В 2008–2009 годах Microsoft раздавала его на флешках сотрудникам Интерпола и всем ИТ-экспертам, которые участвовали в задержании предполагаемых преступников. COFEE ускорял сбор цифровых вещдоков, включая пароли, историю браузера, содержимое папок пользователя и детальное описание системы. Порой это избавляло от необходимости физически изымать компьютеры. Сейчас его убрали с сайта Microsoft, но он есть на торрентах.

Сам дистрибутив не содержит ничего специфического за исключением скрипта оформления процедуры сбора данных. Это просто набор известных утилит (autoruns, netstat, ipconfig, pslist и прочие) в единой оболочке.

FIRE (Forensic and Incident Response Environment)

Прекратил существование в 2004 году. Это все, что нужно о нем знать.

INSERT (Inside Security Rescue Toolkit)

Последняя версия 1.3.9 вышла в феврале 2007 года.

PlainSight

Первая и последняя версия 0.1 вышла в сентябре 2008 года. Подобных попыток сделать свой дистрибутив, ориентированный на задачи криминалистики, было очень много.

Странные дистрибутивы для криминалистического анализа

Все дистрибутивы для форензики довольно специфические, но есть и совсем узкоспециализированные. Например, MacQuisition для криминалистического анализа macOS. Цены на индульгенцию Маквизиции начинаются от 1400 долларов. В рассмотренных выше наборах его отчасти заменяет бесплатная линуксовая утилита volafox для исследования дампа памяти «маков». Она используется (в том числе) для поиска загруженных в ОЗУ ключей.

Проект WinFE (Windows Forensic Environment) — смелая попытка заниматься офлайновым анализом КИ из винды. Впрочем, ее забросили в 2012 году. Сейчас для Live Forensic виндовых машин удобнее использовать наборы от NirSoft и Sysinternals, а офлайновый анализ и вовсе выполнять в среде Linux.

Источник