При помощи системного вскрытия можно осуществить куда более подробный анализ. Например, восстановить процессы, файлы или инструменты, которые, скорее всего, были изменены взломщиком, что дает нам возможность воссоздать действия взломщика или определить действия, которые могли быть пропущены при другом виде анализа. Системное вскрытие - это процесс просмотра взломанной системы и воссоздания поэтапной картины происходивших событий. Для этого обычно требуется перевести взломанную систему в автономный режим работы или сделать копию системы и проанализировать образы. Так как системное вскрытие - очень сложный процесс, мы коснемся только тех приемов, которые чаще всего использовались командой Honeynet Project. В следующей главе будет подробно описано поэтапное системное вскрытие взломанной honeypot.
Первый этап системного вскрытия заключается в сборе данных. Нельзя проверять систему при помощи той же самой системы. Для этого есть две причины - доверие и копии:
• взломанной системе нельзя доверять. Взломщик может изменить сис
темные двоичные файлы, файлы конфигурации и даже ядро системы.
Если бы пришлось использовать взломанную систему для анализа, ско
рее всего, мы получили бы сфальсифицированные данные. После
взлома машины, особенно в случае с системами UNIX, атакующий
инсталлирует программы под названием rootkits, которые не только
позволяют ему вновь получать доступ, но и используются для маскиров-
,ки его следов. Например, взломщики могут изменить команду
/bin/Is таким образом, что при просмотре администратором списка
файлов некоторые созданные ими каталоги будут в нем отсутствовать.
После того как будет установлен пакет knark, rootkit на уровне ядра, он
создаст виртуальную среду, подчиняющуюся взломщику на уровне ядра.
Если у вас возникло подозрение, что система взломана, то нельзя дове
рять тому, что она «говорит»;
• кроме того, существует опасность случайного изменения или загряз
нения первоначальных данных. Любой анализ следует проводить на
копии. Это гарантирует, что даже при случайном изменении данных
оригинал сохранится в первоначальном виде.
Суть заключается в том, чтобы сделать точные побайтовые копии с минимальным искажением взломанной системы. Команда Honeynet Project разработала способ, который упрощает этот процесс, в то же время сводя к минимуму искажения данных. Применяемый способ заключается в том, чтобы делать копии взломанной системы, пока она еще подключена к сети, а затем пересылать образы через сеть в доверяемую систему. Далее она анализирует эти образы. Такой метод наиболее предпочтителен, потому что при его использовании нет необходимости в замене жестких дисков и не нужно отключать взломанную систему от сети. Можно снимать копии со взломанной системы honeypot, в то же время оставляя ее в сети в ожидании возвращения взломщика. Эта стратегия с успехом применялась множество раз. Хакер взламывает систему, оставляя разнообразные инструменты и исходные коды. Мы делаем копию образа системы и можем начинать изучать инструменты взломщика. Однако система остается в сети, так что можно продолжать наблюдение за действиями взломщика. Кроме того, нужно понаблюдать за определенными процессами в то время, когда они происходят в системе.
Копирование образов начинается с установления прослушивания netcat в доверяемой системе. Netcat - это полезная утилита, используемая для передачи информации. В следующем примере netcat прослушивает порт 5000; она перехватывает все входящие через него данные и сохраняет их в отдельном файле.
пс -1 -р 5000 > honeypot.hda1.dd
После того как будет настроена утилита netcat в доверяемой системе, мы через сеть скопируем раздел взломанной системы в доверяемую систему. Мы используем программу dd, чтобы сделать побайтовую копию, a netcat - чтобы передавать данные. На взломанную систему устанавливается CD-ROM. Затем с него запускаются доверяемые, статически скомпилированные версии netcat и dd. Здесь нам нужна dd (1M), чтобы сделать копию раздела /dev/hda1 и передать ее в trusted_system.
Этот процесс повторяется для каждого отдельного раздела, включая swap. После того как все разделы будут скопированы, мы произведем проверку контрольной суммы MD5 для всех образов. Это дает гарантию, что при совместном использовании или передаче образов их целостность сохраняется. Затем создаются контрольные суммы MD5 для всех, сжатых и несжатых, образов. Образы и контрольные суммы MD5 будут выглядеть примерно следующим образом:
Затем образы устанавливаются в доверенную систему. Дэвид Дитрих (David Dittrich), ведущий эксперт команды в области системного вскрытия, определил способ установки файлов напрямую в систему. У Linux есть опция loopback mount, при помощи которой можно устанавливать в систему образы в качестве файла. Это сокращает процесс на один шаг, так как не приходится копировать образы в отдельный раздел, а затем его устанавливать.
У этого способа есть одно ограничение, так как образы (файлы) должны иметь размер менее 2 Гб, согласно ограничению размеров файлов, устанавливаемому многими ядрами. Honeynet преодолевает это ограничение, создавая разделы honeypot размером менее 2 Гб. Этот стандарт облегчает обмен образами среди членов команды. Образ раздела можно установить в систему Linux следующим способом:
mount -о loop.ro, nodev,noexec honeypot.hdai.dd /mnt
Нужно установить корневой раздел взломанной системы в каталог /mnt доверенной системы. Процесс инсталляции каждого раздела в /mnt повторяется до тех пор, пока не будут полностью установлены все образы взломанной системы. Это гарантирует, что данные не будут изменены в процессе анализа, поскольку нельзя допускать изменения данных во время анализа. После установки всех образов доверяемая система может выглядеть так:
noexec, nodev, =/dev/loopO) (ro noexec,nodev Ioop=/dev/loop1) (ro noexec,nodev, Ioop=/dev/loop2) (ro noexec,nodev, Ioop=/dev/loop3) (ro noexec,nodev, Ioop=/dev/loop4)
/dev/hda1 on / type ext2 (rw) none on /proc type proc (rw) /dev/hda8 on /home type ext2 (rw) /dev/hda5 on /usr type ext2 (rw) /dev/hda6 on /var type ext2 (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) /forensics/data/honeypot.hda8.dd on /mnt type ext2 (ro
loop /forensics/data/honeypot. hdai.dd on /mnt/boot type ext2
/forensics/data/honeypot.hda6.dd on /mnt/home type ext2 /forensics/data/honeypot.hda5.dd on /mnt/usr type ext2 /forensics/data/honeypot. hda7.dd on /mnt/var type ext2
Теперь мы приступим к системному вскрытию взломанной системы. Системный анализ - это искусство, а не наука. Нет правильного или неправильного способа его проведения. Все зависит от применяемых методов и от того, что вы ищете. При анализе взломанной системы цель состоит в том, чтобы узнать как можно больше, а не в том, чтобы найти доказательства для привлечения кого-то к суду. Это упрощает задачу, так как нас не волнуют юридические вопросы. Мы хотим узнать все действия взломщика, шаг за шагом, а также причины этих действий. Все системы honeypot в Honeynet построены с учетом будущего анализа. Например, все дисковые разделы имеют размер меньше 2 Гб. Как уже отмечалось ранее, это упрощает процесс обмена и передачи информации между членами группы. Кроме того, благодаря этому образы могут быть установлены в системы как файлы при помощи опции -loop.
Еще одно правило заключается в том, чтобы перед созданием honeypot жесткие диски полностью стирались. То есть с жесткого диска должны удаляться данные, которые могут находиться на нем перед инсталляцией. Для операционных систем Linux или Windows жесткие диски очищают перед установкой при помощи программы dd следующим образом:
dd bs=1OOOk < /dev/zero > /dev/had
Для систем Solaris воспользуйтесь командой format(1M), выберите диск, который хотите очистить, опцию analyze, а затем опцию purge.
Перемещение битов на жестком диске гарантирует, что от предыдущих инсталляций не останется ничего лишнего. Этот урок дался нам с большим трудом. 25 сентября 2000 года была взломана honeypot с системой Linux. Был проведен полный системный анализ с целью закрепления наших навыков. Во время его проведения из системы было извлечено более 800 Мб данных, которые не имели отношения к инсталляции Linux. Мы обнаружили, что в предыдущей «жизни» система была брандмауэром Soralis x86. Что еще более удивительно, мы нашли файлы конфигурации предыдущей инсталляции Windows 95, работавшей двумя годами ранее. Из общего объема скопированных из системы данных (1 Гб) 800 Мб представляли собой данные от двух предыдущих инсталляций. Это невероятно затрудняет определение данных, принадлежащих взломанной системе. Мы запомнили полученный урок. Все последующие системы honeypot сначала проходят полную очистку жесткого диска. Помимо удаления лишних данных у этого действия есть дополнительное преимущество в виде значительного улучшения компрессии данных.
Оптимальным инструментом для анализа систем UNIX является набор The Coroner's Toolkit (TCT). Разработанные асами в области обеспечения безопасности, Дэном Фармером (Dan Farmer) и Витсом Венемой (Wietse Venema), эти инструменты позволят вскрыть такую информацию, которая большинству людей покажется просто невероятной. Вот отдельные функциональные возможности инструментов:
• автоматический сбор данных;
• восстановление удаленных файлов;
• реконструкция событий на основе времени MAC (modify/access/change -модификация/доступ/изменение).
Подробную информацию о ТСТ и способах его применения, а также в целом о системном вскрытии можно найти по адресу: http:/'/www. porcupine.org/forensics. Кроме того, Дэвид Дитрих разработал обширную документацию по системному вскрытию, которая находится по адресу: http://staff.washington.edu/dittrich/misc/forensics. Рассказ об этих инструментах не входит в задачу нашей книги. Однако об их применении мы рассуждаем в примере системного вскрытия взломанной honeypot (глава 8).
Способы анализа Windows и NT одинаковы, но используются разные инструменты. Для NT имеется несколько коммерческих вариантов, таких как EnCase {http://www.encase.com). Что касается бесплатных утилит, то Дж. Д. Глейзер (J.D. Glaser) из компании Foundstone разработал несколько отличных инструментов и технических приемов. Его презентацию NT Forensics можно найти по адресу: http://www.blackhat.com/html/bh-usa-99/bh3-speakers.html