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

Это новая часть цикла по форензике для новичков, в котором мы рассказываем о том, что такое цифровая форензика, разбираем наиболее популярные инструменты анализа, изучаем несколько кейсов на устройствах с Android и расследуем хищение денежных средств из системы ДБО на ноутбуке с Windows 10.

Предыдущие статьи цикла:

  1. «Теория, книги, курсы, полезные материалы»
  2. «Находим источники данных, ищем и анализируем артефакты»
  3. «Android под колпаком. Как раскрывают кейсы взлома»
  4. «Тайна казначейского ноутбука. Используем форензику, чтобы раскрыть ограбление»

Есть много вариантов создания дампа содержимого жесткого диска или оперативной памяти. При этом можно использовать и нативные утилиты, входящие в состав дистрибутива, и сторонние программы — как со свободной лицензией, так и коммерческие. Я по возможности сосредоточусь на наиболее известных, максимально простых и рабочих инструментах.

Первым делом на «живые» системы я рекомендую ставить утилиту Auditd — с ее помощью можно получить детальные сведения об изменениях системы в режиме аудита.

Прежде всего нас будут интересовать такие события, как:

  • запуск и завершение работы системы (перезагрузка, остановка);
  • чтение/запись системных файлов и изменение прав доступа к ним;
  • инициация сетевого соединения и изменение сетевых настроек;
  • изменение информации о пользователе или группе;
  • изменение даты и времени;
  • установка, удаление, запуск и остановка программ и демонов;
  • выполнение системных вызовов.

Также рекомендую настроить системный syslog.conf и скорректировать правила сбора сообщений: увеличить глубину собираемых алертов (уровень 7) и пул источников (диапазон от 0 до 15). Это все позволит наблюдать за изменениями системы в реальном времени.

 

Некоторые особенности форензики в Linux

В прошлой статье, которая была посвящена кейсу с хищением денежных средств в ДБО на Windows 10, мы по возможности использовали в качестве инструментария программы с графическим интерфейсом. Если не брать проприетарные решения, такие, к примеру, как EnCase Forensic или Belkasoft Evidence Center, то на Linux большинство рабочих утилит идет в режиме командной строки.

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

Помимо отдельных утилит, есть целые дистрибутивы, предназначенные для цифровой криминалистики. Это прежде всего DEFT, CAINE, Sumuri PALADIN, Helix, ну и, конечно же, всем известный Kali Linux. Полный обзор дистрибутивов и тулкитов для форензики можно прочитать в статье «Тулкит для форензики. Выбираем дистрибутив и набор софта для криминалистического анализа».

Из литературы по форензике в Linux я бы в первую очередь порекомендовал едва ли не единственную полноценную книгу об этом. Ее написал Филип Полстра, а называется она Linux Forensics Paperback. Во вторую очередь — издание UNIX and Linux Forensic Analysis DVD Toolkit Криса Пога и других. Ну и в-третьих, Digital Forensics with Kali Linux.

 

Общий чек-лист проверки

Для поиска и сбора криминалистических доказательств мы первым делом создадим образы (дампы) следующих объектов наших систем:

  • оперативная память (системные и пользовательские процессы, демоны, возможно запущенный вредоносный код и так далее);
  • жесткий диск (посекторная копия HDD, включающая удаленные разделы, неразмеченные области диска, потертые файлы, скрытые файлы и директории и прочее);
  • сетевой стек (поднятые коннекты, открытые порты, «неизвестные» сервисы на портах, паразитный трафик).

В рамках самой операционной системы мы будем обращать особое внимание в первую очередь:

  • на список пользователей, группы, привилегии;
  • запущенные от имени root процессы;
  • задачи, запускаемые по расписанию (cron jobs);
  • файлы с установленным битом SUID и SGID;
  • состав файла /etc/sudoers;
  • скрытые файлы и директории;
  • файлы, открытые на чтение в системе;
  • сетевые интерфейсы, соединения, порты, таблицу маршрутизации;
  • логи iptables, fail2ban (Reports, Alarms, Alerts);
  • конфигурацию /etc/ssh/sshd_config;
  • логи демона Syslog (проверим на типичные алерты);
  • состояние SELinux;
  • список загруженных модулей ядра.

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

Поскольку железо, на котором крутится вся ферма, находится в надежном дата-центре, сразу отметается поиск артефактов, связанных с сетевой ФС (NFS), локально смонтированными устройствами и подключенными по USB девайсами.

WARNING

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

 

Снимаем образ HDD

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

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

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

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

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

3 комментария

  1. Иван Пискунов

    Иван Пискунов

    03.04.2019 at 13:19

    Друзья, дорогие читатели, так вышло, что заключительная часть цикла по форензике получилась очень большой по объему. Поэтому для облегчения чтения и восприятия материала, мы разбили его на две части. Первая, сейчас как раз и предоставлена вашему вниманию, она больше носит теоретический характер, иллюстрирует некоторые действия, которые мы будем проводить для сбора артефактов в целях исследования кейса, который будет описан во второй части. А в заключительной, т.е. второй части нас ждет только хардкор — разбор на практике взлома целой Linux-фермы из десятков машин у одного их хостинг-провайдеров, включая эксплуатацию CVE, багов web, инжект майнеров, тулз для создания бот-нета и техник анти-форензики!

  2. Аватар

    robotobor

    05.04.2019 at 05:37

    Спасибо за статью, только из-за таких статей, ревреса, кодерства, nix и т.д. читаю Х.
    Но, это хорошо если чувак сидел под рутом и мы на горячую сдампили его оперативку, трафик, диск. А если не под рутом он сидел?, а если при установке некоторых утилит память по скрипту начнет подчищаться, наверное, сначала надо стандартными средствами дампить, потом уже сторонними? Или я чего-то не понимаю…

    • Иван Пискунов

      Иван Пискунов

      05.04.2019 at 12:41

      Попробую ответить о пунктам:
      1. По поводу root’a. Предполагается, что та система с которой мы собираем артефакты находится в нашем управлении, т.е. мы администраторы и в связи с этим соответственно имеем полномочия суперпользователя. Либо, если нас приглашает какой-либо заказчик (сторонняя организация) на свою площадку, то для проведения криминалистического анализа нам предоставляют root-вый доступ, поскольку мы, приглашенные эксперты действующие легитимно, а не хакеры незаконно проникшие с целью взлома.

      2. К сожалению, без получения root-прав выполнить многие действия будет просто невозможно, поскольку это команды используют системные вызовы ядра, затрагивают критические компоненты и поэтому могут выполняться исколчительно от имени суперпользователя. Такая ситуация не нова, аналогичное требование есть и под Windows и под Android, где, как я уже описывал в предыдущих статьях цикла, к примеру, без рутинга дамп системы со смартфона не снять.

      3. По поводу нативных и сторонних утилит. К сожалению, риск «не доснять» данные либо каким-то образом их исказить в процессе дампа, все же существует, хоть и не большой, и не важно какие именно инструменты в этом случае использовались — встроенные в ОС либо отдельные паки специально предназначенные для этих задач. Мы в материале рассмотрели только несколько самых ходовых, известных и наиболее простых в использовании утилит. Я давно ими пользуюсь и сбоев по вине их неправильной работы еще не наблюдал. Плюс нативных утилит это то, что они идут сразу «из коробки», а спец инструменты нужно доустанавливать, но за то они как правило обладают большим функционалом и возможностями, которых нет в core utilities

Оставить мнение

Check Also

Хроники битвы при Denuvo. Как «непробиваемая» игровая защита EA Origin оказалась пробиваемой

Защита от пиратства Denuvo пришла на смену SecuROM и связана с одним действующим лицом – Р…