Продолжение про троянскую микроэлектронику
Небольшое продолжение темы про троянские микросхемы. Напомню, что речь о “жучках” и “закладках” в микроэлектронных чипах. Новые технологии позволяют незатратно и незаметно встраивать в эти чипы, – например, в микропроцессоры, – довольно гибкие схемы, позволяющие позже реализовать практически произвольный тип атаки. Особую значимость ситуация приобретает в применении к военной электронике.
Проблемы, помимо затронутых в прошлой заметке по теме, тут вот какие: во-первых, сейчас мало кто делает все нужные микросхемы “самостоятельно” – это не только слишком дорого, но и большинство государств просто не имеет нужных технологий и производств. Поэтому часто микросхемы приходится закупать у “сторонних” поставщиков, которых сложно контролировать. (Понятно, что на применение такой техники в системах вооружений есть ограничения. Но не все их могут выполнять.)
Во-вторых, ситуация с микросхемами вовсе не такая, как с программным обеспечением. Опять же – всё завязано на производство. Если исходные коды программ можно тщательно исследовать (для этого есть специальные автоматизированные средства), а потом тиражировать уже проверенный код своими силами, то проверка десятка микросхем не гарантирует, что другие аналогичные чипы не содержат “закладок”. Ведь внести изменения в устройство микросхемы – не так уж и сложно.
Ну а самое интересное тут в том, что отличные возможности для атаки предлагает удачное сочетание программного обеспечения и аппаратурных “закладок”. Например, если для работы на вычислительной машине с “троянским процессором” внутри используется широкоизвестная операционная система с открытым кодом (скажем, Линукс), то предварительная настройка и уверенная последующая активация аппаратной атаки очень сильно упрощается. Дело в том, что проектирующему атаку инженеру будет заранее известно системное программное окружение (не зависящее от прикладной программы, специфичной для конкретной задачи), и именно под это окружение он сможет “заточить” логику функционирования троянского чипа.
Адрес записки: https://dxdt.ru/2008/05/15/1360/
Похожие записки:
- "Двухфакторная" аутентификация и Google Authenticator
- Домены верхнего уровня, реестры и администраторы
- URL и ссылки в письмах
- Байты ключей в квантовом компьютере
- Централизация обновлений и CrowdStrike
- Raspberry Pi 5
- Криптографическая библиотека для Arduino: дополнение для новых IDE
- Неверные обобщения "принципа Керкгоффса"
- Техническое: TLS-сообщение с постквантовой криптосистемой Kyber768
- Сбой DNSSEC в .RU
- Компиляторы и ассемблер
Комментарии читателей блога: 10
1 <t> // 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 <t> // 16th May 2008, 09:24 // Читатель zu написал:
А если используется широкоизвестная система с закрытым кодом, то к лёгкости добавления закладок добавляется ещё и тяжесть обнаружения.
И вообще по-моему бредовый пассаж про преднастройку ОС. Если ОС продаётся вместе с железом, то тогда да. А если она не привязана и доступна самому пользователю для изменения, то поведение может изменяться самым неожиданым для “затачивателя” образом.
3 <t> // 16th May 2008, 10:07 // Александр Венедюхин:
>А если она не привязана и доступна самому пользователю для изменения, то поведение может изменяться самым неожиданым для “затачивателя” образом.
Это вряд ли. Мало кто исправляет ядро, например. Или важные системные функции. К особенностям логического устройства этих компонент можно привязать процедуры проведения атак.
4 <t> // 17th May 2008, 08:56 // Читатель vlad написал:
Я конечно уважаю Вас за многие интересные статьи и размышления, но в данной статье некоторые Ваши высказывания (а именно “внутри используется широкоизвестная операционная система с открытым кодом”) граничат с бредом.
Во первых: Вы подменяете понятие чип на микропроцессор – сильно ограничивая ассортимент чипов в которые можно встроить “закладки”, что наводит на мысли о Вашей некомпетентности в этом вопросе. Не мне Вам рассказывать, что интересы заинтересованных сторон в шпионаже лежит гораздо шире тех рамок которые Вы очертили.
Во вторых: даже если рассматривать микропроцессорную епархию, злоумышленнику (шпиону) никто не запретит исследовать код закрытого ПО, и соотвественно подстроиться (“заточить логику”) под него.
В третьих: как сказал предыдущий оратор – гарантий никаких нет, что одно открытое ПО не будет заменено на другое, но тем не менее такое же открытое ПО (или скажем версия обновится). А код одного и тоже ПО собранное разными компиляторами и с разными параметрами сильно разнится.
В четвертых: гораздо меньше будет доверия к закрытому ПО, написанному заграницей (пусть даже не той заграницей, которая произвела чип), т.к. контролировать его качество и тем более найти возможные “трояны” нереально. Поэтому считаю, что тема “открытое ПО” притянута за уши.
Я бы всетаки поостерегся писать “выхлопы” о том, чего не знаю.
PS: Сама статья начата на одной теме (“троянские микросхемы”),
а закончена совершенно другой (“открытое ПО” – зло).
5 <t> // 17th May 2008, 10:42 // Александр Венедюхин:
Вы подменяете понятие чип на микропроцессор
По-моему, вы весьма невнимательны в чтении. Я не “подменял понятия”, а привёл микропроцессор в качестве примера.
злоумышленнику (шпиону) никто не запретит исследовать код закрытого ПО
Это неверно. Код может быть в той или иной степени секретным, то есть, его исследование вполне себе под запретом для злоумышленника: через Интернет не раздаётся, попробуй получи доступ.
Поэтому считаю, что тема “открытое ПО” притянута за уши.
“Открытое ПО” тут иллюстрирует один простой момент, который вы никак не оспорили: открытый для всеобщего обозрения код проще исследовать. При этом преимуществ, как с точки зрения безопасности, так и с точки зрения надёжности – такой код не даёт.
Я бы всетаки поостерегся писать “выхлопы” о том, чего не знаю.
Вот именно, остерегайтесь.
6 <t> // 18th May 2008, 13:37 // Читатель vlad написал:
Вы Александр как пишите, так и отвечаете однобоко.
7 <t> // 18th May 2008, 14:23 // Александр Венедюхин:
Вы Александр как пишите, так и отвечаете однобоко.
Вы просто отказываетесь понять простой тезис: если для реализации атаки с использованием “аппаратурной закладки” нужно знать конкретные алгоритмы работы программной системы, то проще всего эти алгоритмы извлечь из общедоступного ПО с открытым кодом (если, конечно, именно такое ПО используется на атакуемой системе). По-моему, это достаточно очевидно и тут спорить не о чем.
8 <t> // 19th May 2008, 11:58 // Читатель vlad написал:
Вы читали Поварнина?, так у него есть замечательное правило, звучит оно примерно так “необходимо убедиться, что объект спора истенен (или ложен) всегда и во всех случаях”.
В данном случае я пытаюсь Вам объяснить, что Вы указали лишь частный случай. Все ПО которое можно скажем скачать с интернета (выцепить с HDD, RAM, ROM) – подвергается атаке через железные трояны.
9 <t> // 19th May 2008, 13:53 // Александр Венедюхин:
Все ПО которое можно скажем скачать с интернета (выцепить с HDD, RAM, ROM) – подвергается атаке через железные трояны.
И что?
Вы бы как-то сформулировали, что ли, тезис, с которым спорите.
10 <t> // 19th May 2008, 19:45 // Читатель arcman написал:
“А сколько ангелов может уместиться на кончике иглы?”
– а вот столько!
– нет, вот столько…
– да кто вы такой что бы спорить об этом?