Защита от хакеров корпоративных сетей
Шрифт:
Пример: хакинг устройства NetStructure 7110 E-commerce Accelerator
Устройство Intel NetStructure 7110 e-Commerce Accelerator (www.intel.com/network/idc/products/accel_7110.htm) является поддерживающим протокол защищенных сокетов SSL криптографическим акселератором, который разгружает главный Web-сервер сети от выполнения криптографических функций, позволяя тем самым увеличить производительность его работы с остальными сайтами сети. Устройство помещается между маршрутизатором и Web-сервером и может обрабатывать до 200 безопасных подключений в секунду. NetStructure 7110 использует последовательный порт при помощи пульта управления, расположенного на передней
Этот пример показывает, каким образом пользователь или администратор может получить доступ к устройству, не имея на то законных полномочий. Устройство было физически вскрыто, и была исследована его операционная система, записанная на простой плате памяти. В результате анализа различных частей кода при помощи программных методов реинжиниринга у некоторых доработок NetStructure 7110 был обнаружен недокументированный пароль администратора, который позволяет контролировать любые настройки системы и получить полный доступ к внутренним компонентам устройства и его файловой системе. Этот пример основан на рекомендациях Брайона Обливиона (Brian Oblivion) «Потайная дверь в устройство NetStructure 7110 через его консоль» (NetStructure 7110 Console Backdoor), www.atstake.com/research/advisories/2000/ipivot7110.html. Пример был проверен на устройстве, изготовленном в апреле 2000 года.
Вскрытие устройства
Устройство NetStructure 7110 размещено в стандартном 19-дюймовом устанавливаемом в стойку корпусе и закрыто малозаметными винтами (рис. 14.13). Вскрытие устройства позволило обнаружить внутри стандартную материнскую плату PC и процессор Pentium II 333 МГц. Плата Rainbow CryptoSwift Accelerator (www.rainbow.com/cryptoswift/PCI.html) была подключена к локальной шине PCI материнской платы. Внутри устройства не оказалось жесткого диска, поскольку файловая система размещается в постоянном запоминающем устройстве на плате запоминающего устройства CompactFlash (www.CompactFlash.org). Не было обнаружено никаких явных защитных механизмов, разве только небольшой слой изоляции (пломба) на внешней стороне корпуса, который был тщательно удален перед вскрытием и заменен по окончании исследования.
Рис. 14.13. Внешний вид устройства Intel NetStructure 7110 e-Commerce Accelerator
Поиск файловой системы
То, что файловая система была полностью размещена на 32-мегабайтной плате CompactFlash, упростило исследование. Из-за небольшого размера постоянной запоминающей флэш-памяти устройства (по сравнению с жесткими дисками размером в 20 Гб и больше для типичных серверов) скопировать ее оказалось просто. На этом этапе цель исследований заключалась в успешном дублировании файловой системы, нахождении двоичного образа любой интересующей исследователя информации и попытке смонтировать диск для дальнейшего анализа.
Сначала плата CompactFlash была отсоединена от устройства NetStructure и вставлена в адаптер PCMCIA CompactFlash, который может быть подключен к портативному или настольному компьютеру (рис. 14.14).
Рис. 14.14. Установка платы CompactFlash в PCMCIA адаптор CompactFlash
Платы CompactFlash совместимы со спецификацией ATA/IDE для жесткого диска, поэтому большинство операционных систем обнаружит их автоматически, не
wdc2 at pcmcia1 function 0 “CL ATA FLASH CARD LEXAR ,
TIDALWV, V.17B” port 0xa000/16
wd1 at wdc2 channel 0 drive 0: <LEXAR_ATA_FLASH>
wd1: 1-sector PIO, LBA, 31MB, 1004 cyl, 2 head, 32 sec,
64256 sectors
wd1(wdc2:0:0): using BIOS timingsПосле этого воспользовались командой dd для создания точного образа платы CompactFlash. В качестве входного файла был определен /dev/wda1 (который на самом деле является платой CompactFlash), а в качестве выходного – fs.bin. Кроме того, было указано, что размер блока равен 1 байту (минимально возможный размер блока):
# 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, можно получить следующее: