Защита от хакеров корпоративных сетей
Шрифт:
Поиск компонент памяти
Компоненты внешней памяти используются для хранения информации о конфигурации секретных данных (паролей, личных идентификационных кодов PIN, криптографических ключей) или временных переменных во многих устройствах, даже в устройствах, разработанных в интересах обеспечения безопасности. Эти данные легко обнаружить программным способом, с помощью программатора устройства. Например, программатор MAC Address Cloning фирмы Кингпин (Kingpin) (www.atstake.com/research/reports/mac_address_cloning.pdf) позволяет проводить детальную модификацию сетевых интерфейсных плат NIC, заменяя записанные в незащищенном серийном устройстве электронно-перепрограммируемой постоянной памяти EEPROM физические шестибайтовые MAC-адреса (MAC-адрес – уникальное 48-разрядное число, присваиваемое сетевому адаптеру производителем. MAC-адрес является физическим адресом, который используется для отображения в сетях TCP/IP). Серийные устройства EEPROM довольно часто применяются в машиностроении. Для осуществления чтения-записи данных устройства достаточно очень простой схемы. Конструкция серийных устройств памяти EEPROM позволяет подключить к нему программатор, одновременно подключая его к схеме устройства, и по своему желанию читать или записывать данные в устройство. Это позволяет успешно контролировать использование устройством памяти и определять хранимые в ней данные. Например, неоднократно изменяя записанный в устройство идентификации пароль пользователя и читая из постоянной памяти EEPROM данные после каждого изменения, можно определить, сохраняется ли пароль в памяти устройства, по
Чтение данных из оперативной запоминающей памяти (памяти произвольного доступа) RAM или из других энергозависимых запоминающих устройств во время работы устройства поможет найти полезные временно сохраненные данные или данные, сохраненные в открытом виде. Конечно, сделать это гораздо труднее, поскольку изменения адресной шины или шины данных во время работы устройства могут вызвать ошибки и отказ устройства.
Большинство схем памяти, включая оперативную память RAM, постоянную память ROM и флэш-память, печально известны своей небезопасностью. В некоторых устройствах памяти реализованы конструктивные особенности для предотвращения чтения сохраненных в них данных обычными программаторами, например плавкие предохранители постоянно запоминающих устройств или защита блока начальной загрузки во флэш-памяти. Электронно-перепрограммируемая постоянная память Dallas Semiconductor DS2432 является примером безопасного устройства памяти, в котором использован алгоритм стойкого кэширования SHA-1 (Secure Hash Algorithm) и возможность записи пользователем секретного кода защиты сохраненных данных в память, доступную только для записи. Но в большинстве других устройств EEPROM подобные функциональные возможности не реализованы. Для противодействия этим способам защиты часто используются современные методы, например анализ кремниевых чипов.
В докладе Гутмана (Gutmann) «Данные об остаточной намагниченности в полупроводниковых приборах» (Труды десятого симпозиума USENIX по вопросам безопасности (Proceedings of the Tenth USENIX Security Symposium), 2001, www.usenix.org/publications/library/proceedings/sec01/gutmann.html) показано, насколько трудно обеспечить безопасность даже при полном удалении данных из оперативной и энергонезависимой (долговременной) памяти. Это означает возможность сохранения и восстановления остатков временных данных, криптографических ключей и других секретных данных в памяти устройства в течение длительного времени после отключения электропитания или перезаписи содержимого памяти. Извлечение данных по описанному способу предполагает наличие современного оборудования, обычно доступного в академических кругах.
Атаки на таймерАтаки на таймер преследуют цель изменить или измерить характеристики таймера схемы и обычно разделяются на две категории: активные и пассивные атаки на таймер. Активные атаки на таймер – агрессивные нападения, для успешного осуществления которых необходим физический доступ к кварцевому генератору синхронизирующих (тактовых) импульсов или другой схеме синхронизации. Главная цель состоит в изменении частоты синхронизации, вызвав тем самым отказ или выполнение непреднамеренной операции. Схемы, использующие для точной синхронизации генераторы тактовых импульсов, могут быть атакованы для «ускорения» или «замедления» скорости их работы. Подобные схемы используются, например, в устройствах идентификации, основанных на измерении временных интервалов. Замедление устройства может оказаться полезным для его отладки и анализа, что не всегда возможно при высоких скоростях его работы.
Пассивные атаки на таймер – неагрессивное измерение времени вычисления для определения данных или устройств криптографических операций. Вооружившись гипотезой о необходимости различного времени для различных вычислений, возможно в результате пассивной атаки определить секретные компоненты схемы или взломать криптографические устройства. Подобные нападения обсуждены в статье Пауля Кочера (Paul Kocher) «Атаки на таймер при нападении на реализации алгоритмов Диффи-Хелмана, RSA, систем поддержки принятия решений DSS и других систем» ( Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems), www.cryptography.com/timingattack/ timing.pdf.Современные способы атак: удаление эпоксидной смолы и вскрытие интегральных схем
Герметизация важных компонентов эпоксидной смолой или другими клеящими веществами обычно выполняется для предотвращения вскрытия устройства и получение доступа к нему. На рисунке 14.9 показан микропроцессор, который для предотвращения его исследования залит эпоксидной смолой. Известно много разных типов эпоксидных смол и пластиков, которые используются для обеспечения защиты компонентов. Некоторые из этих материалов могут быть растворены или удалены с использованием химикатов, например метилена хлорида (Methylene Chloride) или дымящейся азотной кислоты (Fuming Nitric Acid). Для их удаления также можно использовать высокооборотные инструментальные средства, к которым относится, например, инструмент Дремеля (Dremel tool) или дрель с деревянным сверлом в виде шпинделя с ватным валиком или зубочисткой. Легкое перемещение дрели по поверхности эпоксидной смолы ослабляет и утончает связующий материал. Рекомендуется на этой стадии исследования принять необходимые меры предосторожности и соблюдать технику безопасности. Как только эпоксидная смола будет удалена с компонента, можно приступать к его исследованию.
Рис. 14.9. Монтажная плата устройства iKey 1000 компании Rainbow Technologies
Для более сложных конструкций устройств необходимо вскрыть интегральную схему и проанализировать кремниевый чип. Особенно это необходимо, если в устройстве предусмотрены средства предотвращения чтения из памяти устройства, описанные в пункте «Поиск компонент памяти». Цель вскрытия состоит в получении доступа к интересующему исследователя кремниевому чипу интегральной схемы, который может быть микропроцессором, аналоговой или цифровой памятью или программируемой логической схемой. Вскрытие интегральных схем без использования специализированных инструментальных средств очень сложно. Для этого необходимы требующие осторожного обращения химикаты. Зачастую нижележащие кремниевые чипы очень хрупки. Некоторые фирмы, например B&G International (www.bgintl.com), предлагают помощь в разгерметизации устройств при удалении некоторых типов эпоксидной смолы. Анализ кремниевого чипа
После того как кремниевый чип станет доступным для осмотра, его можно исследовать с помощью мощного микроскопа. Проводимое исследование может помочь извлечь хранимые в постоянном запоминающем устройстве данные или программный код, определить места расположения логических элементов декодирования или состояние реализованных в устройстве функциональных возможностей. Кюммерлинг (^mmerling) и Кун (Kuhn) в статье «Принципы проектирования механизмов противодействия вскрытию процессоров смарт-карт» (Design Principles for Tamper-Resistant Smartcard Processors) (Материалы симпозиума USENIX по технологиям смарт-карт (Proceedings of the USENIX Workshop on Smartcard Technology), 1999, www.cl.cam.ac.uk/~mgk25/sc99-tamper.pdf) детально описали методы извлечения программного кода и данных из процессоров смарт-карт. Они описали исследование устройства микроскопом, лазерную резку, манипуляции с фокусированными лучами ионов, атаки имитации сбоя и анализ питания. Большая часть их исследования была основана на книге Бека (Beck) « Анализ отказов интегральных схем. Руководство по способам подготовки» (Integrated Circuit Failure Analysis – A Guide to Preparation Techniques book), выпущенной издательством John Wiley & Sons в 1998 году. В этой книге детально представлены способы вскрытия корпусов и удаление изоляции чипов, способы травления микросхем для удаления уровней структуры чипа,
На рисунке 14.10 показан структурный слой исследуемого чипа типичного устройства стираемой программируемой постоянной памяти EPROM, чьи логические элементы устанавливаются электрическими импульсами, а стираются прямым ультрафиолетовым светом. В зависимости от использованной технологии изготовления кремниевых приборов дальнейшее увеличение изображения и удаление кремниевого слоя приведет к показанному на рис. 14.11 изображению. На этом изображении видно, что у устройства 16 столбцов и 10 строк для обеспечения 160 бит памяти. Каждый бит отвечает за представление наличия или отсутствия данных с помощью цифр «1» или «0» соответственно. Например, верхний ряд соответствует битовой строке «0000010011100001».
Для анализа кристаллов требуются современные инструментальные средства и оборудование, которыми часто оснащены академические лаборатории. Некоторые компании, например 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$;