Следующая новость
Предыдущая новость

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

26.03.2018 16:09
Тулкит для форензики. Выбираем дистрибутив и набор софта для криминалистического анализа

Содержание статьи

  • Цели и методы форензики
  • Как не наследить следопыту
  • Flash
  • Копия или подделка?
  • Популярные Live-дистрибутивы
  • Платные дистрибутивы
  • Раскопки
  • Из ряда вон

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

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

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

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

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

WARNING

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

Ты уже пользовался утилитами для форензики?

  • Да, с целью представления доказательств в суде
  • Да, но не для криминалистического анализа
  • Ещё нет

Тулкит для форензики. Выбираем дистрибутив и набор софта для криминалистического анализа Загрузка ...

Как не наследить следопыту

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

К сожалению, на практике этот принцип часто нарушается из-за незнания особенностей работы ОС, в том числе 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 --setro /dev/sdb2 (вместо sdb2 укажи актуальное обозначение диска) 

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

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

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

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

mount -o ro,loop /dev/sdb2 dir (здесь dir — произвольное имя каталога) 

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

mount -o ro,loop diskimage.dd dir 

Продолжение доступно только подписчикам

Материалы из последних выпусков можно покупать отдельно только через два месяца после публикации. Чтобы продолжить чтение, необходимо купить подписку.

Подпишись на «Хакер» по выгодной цене!

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

1 год

4990 р.

Экономия 1400 рублей!

1 месяц

720 р.

25-30 статей в месяц

Уже подписан?

Источник

Последние новости