Коллектив авторов - Защита от хакеров корпоративных сетей
# dd if=/dev/wd1a of=fs.bin bs=1
30081024+0 records in
30081024+0 records out
30081024 bytes transferred in 379.838 secs (79194 bytes/sec)После этого в файл fs.bin был переписан точный образ платы CompactFlash устройства NetStructure 7110. Теперь можно было приступить к извлечению строк любых печатных ASCII-символов и поиску любых интересных текстовых частей, сохраненных на плате:
strings fs.bin > fs.strings
Просматривая строки выводного текстового файла (в этом примере fs.strings), можно обнаружить отдельные команды сетевой конфигурации (ifconfig, route add) и некоторые жестко запрограммированные IP-адреса. Наибольшее значение имеет следующая строка, которая непосредственно идентифицирует записанные на плате CompactFlash данные. В данном случае плата является файловой системой операционной системы BSD, одной из разновидностей UNIX:
@(#) Copyright (c) 1990, 1993
The Regents of the University of California. All rights
reserved.
@(#)boot.c 8.1 (Berkeley) 6/11/93
/bsdЗная, что на плате постоянной запоминающей памяти записана операционная система BSD, можно попытаться «смонтировать» плату к каталогу /mnt/fs (с указанием опции только для чтения, чтобы предотвратить случайную перезапись оригинальных данных платы). В результате может быть получен доступ к файловой системе.
# mount –r –a /dev/wd1a /mnt/fs
Если это удастся осуществить, с помощью команды ls – la /mnt/fs будет выведена следующая информация:
total 4290
drwxr-xr-x 5 root 100 512 Jan 2 1998 .
drwxr-xr-x 3 root wheel 512 Dec 24 08:23 ..
-rwxr-xr-x 1 root 100 64705 Sep 23 1999 boot
-rw-rw-r– 1 root 100 501972 Sep 24 1999 bsd.gz
-rw-rw-rw– 1 root 100 1253 Jan 2 1998 config.pgz
-rw-rw-rw– 1 root 100 1248 Jan 1 1998 configold.pgz
-rwxr-xr-x 1 root 100 292 Sep 24 1999 debug
drwxr-xr-x 2 root 100 512 Sep 24 1999 etc
-rw-rw-r– 1 root 100 3791468 Sep 24 1999 filesys.gz
drwxrwxr-x 2 root 100 512 May 16 1998 logs
drwxrwxr-x 2 root 100 512 Sep 24 1999 serviceНа плате файловая система записана в архивированном виде в файлах bsd.gz и filesys.gz. С помощью утилиты gunzip файловую систему можно будет разархивировать и приступить к подготовке монтирования образа следующим способом:
# vnconfig –cv /dev/vnd0c filesys
Использование команды vnconfig позволит подготовить файл образа к использованию его в виде файловой системы. В результате станет возможным обращаться к файлу образа как к диску. Введя команду disklabel vnd0, можно получить следующее:
# /dev/rvnd0c:
type: ST506
disk:
label:
flags:
bytes/sector: 512
sectors/track: 2048
tracks/cylinder: 1
sectors/cylinder: 2048
cylinders: 16
total sectors: 32768
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # microseconds
track-to-track seek: 0 # microseconds
drivedata: 0
8 partitions:
# size offset fstype [fsize bsize cpg]
a: 32768 0 4.2BSD 1024 8192 32 # (Cyl. 0–15)
c: 32768 0 unused 0 0 # (Cyl. 0–15)Наконец, будет смонтировано неотформатированное устройство /dev/ vnd0c, созданное командой vnconfig:
# mount –r –a /dev/vnd0c /mnt/filesys
После успешной монтировки команда ls – la /mnt/filesys выведет следующее:
total 11
drwxr-xr-x 10 root 100 512 Sep 24 1999 .
drwxr-xr-x 7 root wheel 512 Dec 24 14:23 ..
-r-xr-xr-x 1 root 100 206 Sep 23 1999 .profile
drwxr-xr-x 2 root 100 1024 Sep 24 1999 bin
drwxr-xr-x 2 root 100 1024 Sep 24 1999 debug
drwxr-xr-x 2 root 100 512 Sep 24 1999 dev
drwxr-xr-x 2 root 100 512 Sep 24 1999 etc
drwxr-xr-x 2 root 100 512 Sep 24 1999 flash
lrwxr-xr-x 1 root 100 3 Sep 24 1999 sbin -> bin
drwxr-xr-x 5 root 100 1024 Sep 24 1999 shlib
drwxr-xr-x 2 root 100 512 Sep 24 1999 tmp
drwxr-xr-x 3 root 100 512 Sep 24 1999 varВ конечном счете будет создана структура каталогов, которая полностью соответствует стандартной структуре файловой системы. После ее успешной монтировки можно обращаться ко всей файловой системе (которая была записана на плате CompactFlash в заархивированном виде), перемещаться по всей структуре каталогов и по желанию читать файлы.
Реинжиниринг генератора пароля
Во время исследования восстановленной из файла filesys.gz файловой системы было замечено, что ряд существовавших на CompactFlash прикладных программ были удалены. К этим приложениям относились прикладные программы, которые включали файлы gdb и tcpdump. Оба эти файла были найдены в каталоге /debug. В каталоге /bin был записан файл xmodem, который мог использоваться для загрузки в удаленный компьютер по линиям связи дополнительных инструментальных средств устройства. К подобным инструментальным средствам относится ряд диагностических прикладных программ (cr_diag для платы Rainbow CryptoSwift Accelerator, ser_diag для последовательного порта, exp_diag для сетевой интерфейсной карты и lm_diag для синхронизации системы).
Известны и другие прикладные программы, специально разработанные для устройства Intel NetStructure 7110. К ним относятся, например, программы saint, ipfWasm, ipfWcmp, gen_def_key и gp. Выводимые программой gp строки позволяют понять использование строк с MAC-адресом или интерфейсом Ethernet, что само по себе интересно и гарантирует успех дальнейшего исследования.Usage: gp [aa:bb:cc:dd:ee:ff | ifname]
С помощью компилятора rec, специально созданного для решения задач реинжиниринга (www.backerstreet.com/rec/rec.htm), было определено, что приложение gp, получив MAC-адрес, преобразует его к используемому по умолчанию паролю администратора. К счастью, приложение gp было откомпилировано со всеми допустимыми опциями отладки, что существенно облегчило процесс реинжиниринга. В каждом устройстве NetStructure пароль администратора образован из MAC-адреса сетевой интерфейсной платы, установленной в устройство. Во время начальной загрузки устройства и перед каждым подключением к системе MAC-адрес передается пользователю через последовательный порт пульта управления. Пароль администратора может быть введен с пульта управления через последовательный порт, если у злоумышленника есть физический доступ к машине, или удаленно, если модем подключен к устройству NetStructure и сконфигурирован для удаленного доступа. Этот пароль отменяет любые параметры настройки и позволяет получить полный контроль над устройством. Программа проверки идеи и ее исходный текст доступны по адресу www.atstake.com/research/tools/ipivot.tar.gz. Она демонстрирует возможности преобразования MAC-адреса в пароль.
Резюме
В этой главе были рассмотрены различные вопросы хакинга аппаратных средств. Хакинг аппаратных средств может быть разделен на два этапа: атаки на корпус устройства и его механическую часть и атаки на электрическую схему устройства. Атаки на корпус устройства и его механическую часть направлены на исследование корпуса устройства и его защитные механизмы. Атаки на электрическую схему устройства направлены на реинжиниринг внутренних электрических схем устройства и их исследование. В зависимости от целей атаки и объекта нападения выбор способов реализации атаки может сильно различаться. Чаще всего хакинг аппаратных средств применяется для извлечения выгоды из получения доступа к системе защиты (типа поиска секретных данных или повышения собственных привилегий) или изменения функциональных возможностей устройства.
В пункте «Вскрытие устройства: атаки на корпус устройства и его механическую часть» были рассмотрены вопросы, связанные с защитными механизмами противодействия вскрытию устройства, его демонстративной защиты, обнаружения вскрытия и реакции устройства на него. Обычно эти защитные механизмы используются для предотвращения доступа к компонентам устройства и его данным. Были рассмотрены причины и методы вскрытия корпуса устройства, идентификации внешнего интерфейса, анализа любых используемых протоколов передачи данных, поскольку их порты часто используются для конфигурации устройства и извлечения представляющей интерес информации типа паролей или передаваемых в открытом виде данных. Также было рассказано об электромагнитных и радиочастотных излучениях устройств, их восприимчивости к электростатическому разряду. Поскольку все электронные устройства являются источником электромагнитных излучений, то это может быть использовано атаками пассивного мониторинга.
В пункте «Внутренний анализ устройства: атаки на электрическую схему» были рассмотрены вопросы реинжиниринга схем устройства и способы атак на них. Вероятно, изложенный в этом пункте материал является основным для хакинга аппаратных средств. Воссоздание электрической схемы устройства по печатной плате является решающим, самым полезным этапом при определении любых ошибок проектирования и направления возможных атак. В основном атаки ориентированы на извлечение данных из микропроцессоров или внешних компонент памяти, чтобы извлечь из устройства пароли или другую секретную информацию. Использование устройства в непредусмотренных условиях эксплуатации, например изменяя напряжение, температуру или параметры синхронизации, иногда приводит к неожиданным для разработчика результатам, из которых злоумышленник может извлечь выгоду. Также были рассмотрены современные методы хакинга аппаратных средств, включая способы удаления герметизации эпоксидной смолой, которая используется для предотвращения вскрытия и исследования устройства, анализ корпусов интегральных схем и кремниевых чипов, который может помочь для извлечения кода программы, состояния выполняемых устройством функциональных возможностей или криптографических компонент.