- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Защита от хакеров корпоративных сетей - Коллектив авторов
Шрифт:
Интервал:
Закладка:
Из-за ограниченности быстродействия устройства DS1991 и быстродействия шины его однопроводного интерфейса время транзакции при каждой попытке ввода пароля ограничено 0,116 с. Поэтому нельзя атаковать устройство способом грубой силы, перебирая всевозможные значения пароля в 64-битном ключевом пространстве. Только на перебор печатных символов ASCII потребовалось бы около 22 406 645 лет. Но успешная атака со словарем из обычно используемых паролей вполне возможна.
Реинжиниринг «случайного» ответа
Сравнивая «случайные» ответы устройства на известные неправильные пароли длиной в 48 байт, было выяснено, что они были вычислены в простом цикле, как показано ниже. Хотя код может показаться сложным, на самом деле в нем выполняется ряд операций XOR над последовательностью константных строк.
Пусть A_j – j-ый байт восьмибайтового пароля A (в случае, если длина пароля меньше 8 байт, то остаток области пароля дополняется до 8 байт константами 0x20)
Пусть B_k – k-ый байт 12 Кб константного блока B (массива из 256 48 байтовых элементов)
Пусть C_m – m-ый байт C 48-байтового кода возврата устройства (инициализированного константами 0x00)for (j = 0; j < 8; ++j) // For each remaining character in p/w
{
for (m = 0; m < 48; ++m) // For each byte in the response
{
if (m + j < 48) // Catch overflow above 48-bytes long
{
k = A_j; // Perform a look-up into the constant block
// based on the jth byte of the password
C_(m + j) ^= B_k; // XOR the response with the value
// of the constant block (shifted
// j bytes)
}
}
}В случае если последний символ пароля (A_7) является числом со знаком (значение символа больше величины 0x7F), предпринимается дополнительный шаг. В этом случае предварительно вычисленное значение подключа складывается по модулю 2 (выполняется операция XOR) со значением другого константного блока, представленного в виде массива из 128 элементов по 48 байт каждый. Неясно, почему устройство iButton так делает. Возможно, чтобы еще больше запутать исследователя и добавить таинственности «случайному» ответу. Как видно из только что приведенного программного кода, константный блок используется для поиска 48-байтной строки для каждого байта введенного пароля. В случае ввода неправильного пароля для получения окончательного ответа каждая строка складывается по модулю 2 и возвращается устройством iButton. Для приведенного ниже примера рассмотрим использование пароля «hello» (дополненного до 8 символов байтом пробела 0x20) и вычислим 48 байт строки «неверного пароля». В целях экономии места рассмотрим только первые 16 байт результирующего 48-байтного кода возврата.
Пусть A = “hello ” = 68 65 6C 6C 6F 20 20 20
B_68 (“h”) = D8 F6 57 6C AD DD CF 47 CC 05 0B 5B 9C FC 37 93 ...
B_65 (“e”) = 03 08 DD C1 18 26 36 CF 75 65 6A D0 0F 03 51 81 ...
B_6C (“l”) = A4 33 51 D2 20 55 32 34 D8 BF B1 29 40 03 5C 9C ...
B_6C (“l”) = A4 33 51 D2 20 55 32 34 D8 BF B1 29 40 03 5C 9C ...
B_6F (“o”) = 45 E0 D3 62 45 F3 33 11 57 4C 42 0C 59 03 33 98 ...
B_20 (“ “) = E0 2B 36 F0 6D 44 EC 9F A3 D0 D5 95 E3 FE 5F 7B ...
B_20 (“ “) = E0 2B 36 F0 6D 44 EC 9F A3 D0 D5 95 E3 FE 5F 7B ...
B_20 (“ “) = E0 2B 36 F0 6D 44 EC 9F A3 D0 D5 95 E3 FE 5F 7B ...
D8 F6 57 6C AD DD CF 47 CC 05 0B 5B 9C FC 37 93 ...
03 08 DD C1 18 26 36 CF 75 65 6A D0 0F 03 51 ...
A4 33 51 D2 20 55 32 34 D8 BF B1 29 40 03 ...
A4 33 51 D2 20 55 32 34 D8 BF B1 29 40 ...
45 E0 D3 62 45 F3 33 11 57 4C 42 0C ...
E0 2B 36 F0 6D 44 EC 9F A3 D0 D5 ...
E0 2B 36 F0 6D 44 EC 9F A3 D0 ...
E0 2B 36 F0 6D 44 EC 9F A3 ...Результирующий предварительно вычисленный код возврата складывается по модулю 2 со всеми вышерасположенными строками, сохраняя наиболее значащие 48 байт. Обратите внимание, что эта строка является шестнадцатеричным представлением «мусора» на рис. 14.12, который был возвращен в ответ на ввод неправильного пароля «hello»:
D8 F5 FB 26 4B 46 03 9B CC 2E 68 82 22 F7 F3 2B ...
Если вводится неверный пароль, то устройство DS1991 возвращает 48-байтную строку «неверного пароля», как это было продемонстрировано в нашем примере. При вводе одинаковых паролей предварительно вычисленное значение для любого устройства будет всегда одним и тем же. Поэтому если предварительно вычисленное значение совпадает с кодом возврата, возвращенным устройством DS1991, то введенный пароль неверен, а если не совпадает, то предполагаемый пароль – правильный. Так происходит из-за того, что устройство возвращает записанные в области подключа данные быстрее «случайных» данных, обычно возвращаемых при вводе неверного пароля.
Инструментарий демонстрации правильности идеи концепции вместе с исходным текстом доступен по адресу www.atstake.com/research/advisories/2001/ds1991.zip. Он отображает содержимое 12 Кб константного блока и демонстрирует возможность атаки со словарем на устройство DS1991 iButton. Демонстрационный пример выполняет следующие действия.
1. Находит устройство DS1991 iButton на определенном по умолчанию COM-порте.
2. Считывает входной файл, в котором записаны слова словаря атаки. Вычисляет предполагаемый 48-байтный код возврата устройства при вводе неверного пароля.
3. Выбрав в качестве пароля первое слово из словаря паролей, пытается прочитать данные подключевой области № 1. В случае успеха отображает защищенные данные из области подключа. В противном случае повторяется второй шаг с очередным словом из файла словаря.Пример: хакинг устройства 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 для жесткого диска, поэтому большинство операционных систем обнаружит их автоматически, не требуя для этого установки дополнительных драйверов. Плата была автоматически обнаружена портативным компьютером типа лаптоп с установленной операционной системой OpenBSD 3.0:
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 байту (минимально возможный размер блока):