Чтение онлайн

ЖАНРЫ

Защита от хакеров корпоративных сетей

авторов Коллектив

Шрифт:

Рис. 14.11. Увеличенное изображение части постоянного запоминающего устройства ROM с показом битов фактических данных

Для анализа кристаллов требуются современные инструментальные средства и оборудование, которыми часто оснащены академические лаборатории. Некоторые компании, например Semiconductor Insights (www.semiconductor.com), предлагают услуги по инженерному анализу аппаратных средств и оказывают помощь в функциональном исследовании, извлечении и моделировании интегральных схем. Также они могут проанализировать полупроводниковый прибор и процессы его изготовления, используемые при этом методы и материалы. Такие услуги полезны при отсутствии доступного оборудования у исследователя.

Криптоанализ и методы запутывания

Для защиты записанных в память

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

После извлечения данных из устройства потребуется проанализировать их для определения реальных значений данных. В этом поможет знание простых криптографических алгоритмов (описанных в главе 6) и обычно используемых в таких случаях методов запутывания смысла. Известны также более сложные механизмы защиты / запутывания данных, например программа Tamper Resistant Software компании Cloakware Corporation (www.cloakware.com). Также в этом случае может помочь книга Брюса Шнайера (Bruce Schneier) «Прикладная криптография» (Applied Cryptography, John Wiley & Sons, 1996). В книге описана история криптографии и представлены десятки криптографических протоколов, алгоритмов и примеров реализующих программ. В целом это неплохая отправная точка для криптографического анализа извлеченных из устройства данных.

Одним из примеров слабой, обратимой схемы кодирования является схема, используемая операционной системой для защиты системного пароля: запутанный преобразованиями пароль сохраняется в системной памяти. К тому же этот пароль часто передается через последовательный или инфракрасный порт во время операции HotSync, которую легко контролировать. В консультации Кингпина (Kingpin) «Декодирование и извлечение пароля операционной системы Palm» («Palm OS Password Retrieval and Decoding») (www.atstake.com/research/advisories/2000/a092600-1.txt) показано, как можно легко определить фактический пароль. Пароль устанавливается законным пользователем при помощи приложения Palm «Security». Его максимальная длина составляет 31 символ ASCII. Независимо от числа образующих пароль символов в результате получается блок закодированной информации длиной 32 байта. В зависимости от длины пароля используются два метода кодирования пароля ASCII. В качестве примера рассмотрим схему для паролей из четырех символов и менее. Контролируя при помощи PortMon передаваемые через последовательный порт данные во время выполнения операции HotSync и сравнивая закодированные блоки различных коротких паролей, было определено, что 32-байтовый блок закодированной информации получается в результате выполнения простой логической операции XOR «Исключительное ИЛИ» над блоком пароля ASCII и 32-байтовым константным блоком. Для расшифровки закодированного таким способом пароля оказалось достаточно выполнить операцию XOR над константным и закодированным блоками.

Let A = Original ASCII password

Let B = 32-byte constant block

Let C = 32-byte encoded password block

Для пароля из четырех символов или менее константа B может быть следующей:

09 02 13 45 07 04 13 44 0C 08 13 5A 32 15 13 5D D2 17 EA D3 B5 DF 55 63 22 E9 A1 4A 99 4B 0F 88

Сначала вычислим начальный индекс j, определяющий позицию в константном блоке, начиная с которой будут выбираться данные для операции XOR по модулю 32. Индекс j вычисляется по следующему правилу: к количеству символов пароля добавляется десятичное значение первого символа в кодировке ASCII. Например, если паролем является слово «test», то количеством символов пароля или его длиной является число 4, к которому будет добавлено число 116 (десятичное значение символа «t» в кодировке ASCII равно 116) по модулю 32. Таким образом, в этом примере операция XOR начнется с 24-го символа 32-байтового константного блока.

j = (A[0] + strlen(A)) % 32;

Затем 32 раза выполняется простой цикл, в котором выполняется операция XOR над содержимым исходной строки пароля, индексированной переменной j, и константного блока, индексированного переменной i. Начальное значение индекса j вычисляется по описанному выше правилу, а начальное значение индекса i равно 0. После каждой операции значение индексов i и j увеличивается на 1. Полученный результат сохраняется в массиве C.

for (i = 0; i < 32; ++i, ++j)

{

// wrap around to beginning

if (j == 32) j = 0;

C[i] = A[i] XOR B[j];

}

В

результате в блок C записывается закодированное значение пароля. В случае, если значение пароля было равно «test», то результат кодирования представлен ниже. Обратите внимание, что только 4 байта закодированного пароля отличаются от содержимого приведенного выше константного блока. Так выглядит закодированная версия пароля.

56 8C D2 3E 99 4B 0F 88 09 02 13 45 07 04 13 44 0C 08 13 5A 32 15 13 5D D2 17 EA D3 B5 DF 55 63

Зная константный блок и закодированное значение пароля, можно легко определить первоначальный пароль ASCII. Для этого надо сравнить два блока, циклически сдвигая константный блок до тех пор, пока не совпадут все похожие байты, а затем по отдельности выполнить операцию XOR над каждыми различающимися байтами. Например, 0x56 XOR 0x22 = 0x74 (что соответствует символу «t»), 0x8C XOR 0xE9 = 0x65 («e»), 0xD2 XOR 0xA1 = 0x65 («s») и т. д.

Необходимый набор инструментов

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

Начальный комплект инструментальных средств

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

• цифровой универсальный измерительный прибор (мультиметр).

Обычно его сравнивают со швейцарским армейским ножом. Он входит в состав электрических технических инструментальных средств измерения. В этих (обычно) портативных устройствах предусмотрен ряд измерительных функций, включая вольтметр постоянного / переменного тока, измерение сопротивлений, емкостей, тока и электропроводности. В современные модели включены счетчики частоты, графические дисплеи и возможности цифровых осциллографов, например мультиметр Fluke 110, www.fluke.com. Примерная цена этого прибора составляет 20-500$;

• паяльный аппарат. Паяльные инструменты могут быть различной формы и размеров, начиная от простого металлического стержня и заканчивая совершенными приборами. Современные модели предоставляют возможность регулируемого температурного управления, автоматический выключатель и взаимозаменяемые наконечники для различных типов корпусов компонентов схемы и требований к стайке. Примером может послужить паяльный аппарат Weller WES50, www.coopertools.com/brands/Weller. Примерная цена этого аппарата составляет 10-500$;

программатор устройства. Используется для чтения из памяти и записи в нее (оперативную память RAM, постоянную память ROM, стираемую программируемую постоянную память EPROM, электронно-перепрограммируемую постоянную память EEPROM, флэш-память), управления микроконтроллерами и программируемыми логическими элементами. Они очень полезны для извлечения из исследуемого устройства программного кода и сохраненных данных. К таким устройствам относится, например, BP Microsystems BP-1600, www.bpmicro.com. Примерная цена программатора устройства составляет 10 $ (любительский) – 1000$;

• прочий инструмент: струйные воздушные сушилки (heat gun), отвертки, устройства для зачистки проводов, кусачки (проводов), щипчики и плоскогубцы различного вида, в том числе с игольчатым носиком (needle nose pliers), пружинные зажимы для временных соединений / зажимы типа «крокодил», защитные устройства по технике безопасности (маска, защитные очки, рабочий халат), различный припой в виде присоски или фитиля из припоя (solder sucker/solder wick).

Расширенный комплект инструментальных средств

В зависимости от сложности исследуемого устройства и намерений исследователя могут потребоваться дополнительные средства. Большинство из этих устройств стоят дорого (свыше 10 000$). Существует ряд фирм, которые специализируются на прокате контрольно-измерительной аппаратуры, например Technology Rentals and Services (www.trsonesource.com). Подобные фирмы могут сдать эту аппаратуру в аренду или внаем (лизинг) на несколько недель либо месяцев. Кроме того, эту аппаратуру часто можно найти в академических лабораториях. К подобной аппаратуре относится следующее:

Поделиться с друзьями: