Продолжение про троянскую микроэлектронику

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

Проблемы, помимо затронутых в прошлой заметке по теме, тут вот какие: во-первых, сейчас мало кто делает все нужные микросхемы “самостоятельно” – это не только слишком дорого, но и большинство государств просто не имеет нужных технологий и производств. Поэтому часто микросхемы приходится закупать у “сторонних” поставщиков, которых сложно контролировать. (Понятно, что на применение такой техники в системах вооружений есть ограничения. Но не все их могут выполнять.)

Во-вторых, ситуация с микросхемами вовсе не такая, как с программным обеспечением. Опять же – всё завязано на производство. Если исходные коды программ можно тщательно исследовать (для этого есть специальные автоматизированные средства), а потом тиражировать уже проверенный код своими силами, то проверка десятка микросхем не гарантирует, что другие аналогичные чипы не содержат “закладок”. Ведь внести изменения в устройство микросхемы – не так уж и сложно.

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

()

Похожие записки:



Далее - мнения и дискуссии

(Сообщения ниже добавляются читателями сайта, через форму, расположенную в конце страницы.)

Комментарии читателей блога: 10

  • 1. 16th May 2008, 04:47 // Читатель Jeff Zanooda написал:

    “…исходные коды программ можно тщательно исследовать…”

    Рекомендую к прочтению статью Кена Томпсона “Reflections on Trusting Trust”, опубликованную в 1984 году. Мораль: “No amount of source-level verification or scrutiny will protect you from using untrusted code.”

  • 2. 16th May 2008, 09:24 // Читатель zu написал:

    А если используется широкоизвестная система с закрытым кодом, то к лёгкости добавления закладок добавляется ещё и тяжесть обнаружения.

    И вообще по-моему бредовый пассаж про преднастройку ОС. Если ОС продаётся вместе с железом, то тогда да. А если она не привязана и доступна самому пользователю для изменения, то поведение может изменяться самым неожиданым для “затачивателя” образом.

  • 3. 16th May 2008, 10:07 // Александр Венедюхин ответил:

    >А если она не привязана и доступна самому пользователю для изменения, то поведение может изменяться самым неожиданым для “затачивателя” образом.

    Это вряд ли. Мало кто исправляет ядро, например. Или важные системные функции. К особенностям логического устройства этих компонент можно привязать процедуры проведения атак.

  • 4. 17th May 2008, 08:56 // Читатель vlad написал:

    Я конечно уважаю Вас за многие интересные статьи и размышления, но в данной статье некоторые Ваши высказывания (а именно “внутри используется широкоизвестная операционная система с открытым кодом”) граничат с бредом.
    Во первых: Вы подменяете понятие чип на микропроцессор – сильно ограничивая ассортимент чипов в которые можно встроить “закладки”, что наводит на мысли о Вашей некомпетентности в этом вопросе. Не мне Вам рассказывать, что интересы заинтересованных сторон в шпионаже лежит гораздо шире тех рамок которые Вы очертили.
    Во вторых: даже если рассматривать микропроцессорную епархию, злоумышленнику (шпиону) никто не запретит исследовать код закрытого ПО, и соотвественно подстроиться (“заточить логику”) под него.
    В третьих: как сказал предыдущий оратор – гарантий никаких нет, что одно открытое ПО не будет заменено на другое, но тем не менее такое же открытое ПО (или скажем версия обновится). А код одного и тоже ПО собранное разными компиляторами и с разными параметрами сильно разнится.
    В четвертых: гораздо меньше будет доверия к закрытому ПО, написанному заграницей (пусть даже не той заграницей, которая произвела чип), т.к. контролировать его качество и тем более найти возможные “трояны” нереально. Поэтому считаю, что тема “открытое ПО” притянута за уши.

    Я бы всетаки поостерегся писать “выхлопы” о том, чего не знаю.

    PS: Сама статья начата на одной теме (“троянские микросхемы”),
    а закончена совершенно другой (“открытое ПО” – зло).

  • 5. 17th May 2008, 10:42 // Александр Венедюхин ответил:

    Вы подменяете понятие чип на микропроцессор

    По-моему, вы весьма невнимательны в чтении. Я не “подменял понятия”, а привёл микропроцессор в качестве примера.

    злоумышленнику (шпиону) никто не запретит исследовать код закрытого ПО

    Это неверно. Код может быть в той или иной степени секретным, то есть, его исследование вполне себе под запретом для злоумышленника: через Интернет не раздаётся, попробуй получи доступ.

    Поэтому считаю, что тема “открытое ПО” притянута за уши.

    “Открытое ПО” тут иллюстрирует один простой момент, который вы никак не оспорили: открытый для всеобщего обозрения код проще исследовать. При этом преимуществ, как с точки зрения безопасности, так и с точки зрения надёжности – такой код не даёт.

    Я бы всетаки поостерегся писать “выхлопы” о том, чего не знаю.

    Вот именно, остерегайтесь.

  • 6. 18th May 2008, 13:37 // Читатель vlad написал:

    Вы Александр как пишите, так и отвечаете однобоко.

  • 7. 18th May 2008, 14:23 // Александр Венедюхин ответил:

    Вы Александр как пишите, так и отвечаете однобоко.

    Вы просто отказываетесь понять простой тезис: если для реализации атаки с использованием “аппаратурной закладки” нужно знать конкретные алгоритмы работы программной системы, то проще всего эти алгоритмы извлечь из общедоступного ПО с открытым кодом (если, конечно, именно такое ПО используется на атакуемой системе). По-моему, это достаточно очевидно и тут спорить не о чем.

  • 8. 19th May 2008, 11:58 // Читатель vlad написал:

    Вы читали Поварнина?, так у него есть замечательное правило, звучит оно примерно так “необходимо убедиться, что объект спора истенен (или ложен) всегда и во всех случаях”.
    В данном случае я пытаюсь Вам объяснить, что Вы указали лишь частный случай. Все ПО которое можно скажем скачать с интернета (выцепить с HDD, RAM, ROM) – подвергается атаке через железные трояны.

  • 9. 19th May 2008, 13:53 // Александр Венедюхин ответил:

    Все ПО которое можно скажем скачать с интернета (выцепить с HDD, RAM, ROM) – подвергается атаке через железные трояны.

    И что?

    Вы бы как-то сформулировали, что ли, тезис, с которым спорите.

  • 10. 19th May 2008, 19:45 // Читатель arcman написал:

    “А сколько ангелов может уместиться на кончике иглы?”
    – а вот столько!
    – нет, вот столько…
    – да кто вы такой что бы спорить об этом?