Троянская микроэлектроника
Популярная тема – атаки на компьютерное оборудование, использующие уровень аппаратуры. Особенно интересны тут троянские системы: есть хорошая статья Samuel T. King, et al про специальный процессор, позволяющий реализовывать произвольные атаки на той системе, где этот процессор установлен (там рассматривают ПК под управлением Linux, к которому подключаются через ЛВС). Вообще, проблема очень актуальна для систем вооружений.
О чём идёт речь? Допустим, микроэлектронные компоненты для бортовой системы закупаются на более-менее открытом рынке, у обычных поставщиков. Это дешевле, и с разработкой проще. Понятно, что в этом случае поступающая аппаратура может содержать в себе “жучки” и “закладки”, сделанные, так сказать, конкурентами, желающими в том или ином подходящем случае сохранить за собой возможность отключить управляющее оборудование.
Обнаружить подобные “жучки” весьма сложно. Особенно если они сделаны грамотно – а тут важно то, что сразу же дающие сбои комплектующие просто не имеют шанса попасть “на борт”. В принципе, с помощью дорогостоящих процедур можно исследовать внутренности закупленных микросхем. Но, во-первых, исследуемую микросхему, скорее всего, придётся разрушить (потому что неразрушающие методы, если они и есть, обойдутся ещё дороже). Во-вторых, довольно сложно разобраться с логикой работы и назначением тех или иных составляющих сложной интегральной микросхемы, содержащей миллионы базовых элементов (при этом внести нужные изменения на стороне производителя – многим проще).
Как можно использовать “закладки”? Разными способами, выбор тут зависит от конкретной задачи. В теории, устройство может просто отключаться по специальному “радиосигналу”. Правда, приёмник не так просто сделать незаметным. Удобнее логическая схема управления: например, процессор останавливается, наткнувшись на особую (достаточно длинную, а поэтому не встречающуюся в “штатных программах”) цепочку значений байтов памяти. Понятно, что никакое программное обеспечение не может противодействовать атаке на уровне аппаратуры. И также понятно, что ракета (или комплекс ПВО) с “зависшей” системой управления вряд ли будет представлять какую-то опасность.
Остаётся один важный вопрос: как отправить на борт военной системы противника нужную команду? Тут поможет тщательное изучение алгоритмов работы системы (это задача разведки; в принципе, экспортные системы можно просто закупить, напрямую или через подставные фирмы). Изучив алгоритмы, можно вычислить те внешние условия, при наступлении которых атакуемая система сама разместит нужную последовательность в памяти. (Например, в упомянутой в начале заметки статье, ключевая последовательность передаётся в составе сетевого пакета данных: операционная система атакуемой машины так устроена, что должна прочитать пакет для того, чтобы выяснить, нужно ли его обрабатывать. Понятно, что уже во время чтения ключевая последовательность из пакета попадёт в процессор и сделает своё дело, вне зависимости от того, “хочет” этого операционная система или нет.)
В случае с комплексом ПВО можно себе представить специальный помехопостановщик, передающий такие помехи РЛС, обработка которых бортовой вычислительной машиной как раз и приводит к появлению в памяти последней ключевой последовательности, отключающей процессор. Понятно, что отстройка от помех потребует обработки каких-то параметров этих помех ЭВМ.
Схема выглядит хитро, но вполне себе реальна (можно даже показать почему, используя, скажем, тот факт, что во многих системах слежения традиционно применяются широкоизвестные алгоритмы фильтрации и т.п). Вот поэтому для производства действительно защищённой техники требуются собственные микроэлектронные заводы.
Адрес записки: https://dxdt.ru/2008/05/11/1342/
Похожие записки:
- Модули DH в приложении Telegram и исходный код
- Gitea и омоглифы не в ту сторону
- Реплика: перенос доменных имён и GoDaddy
- DNS как транспорт для сигналов и данных
- Влияние систем ИИ на процессы в мире
- STARTTLS и SMTP
- Детектирование видеофрагментов, сгенерированных ИИ
- Статья про защиту DNS-доступа
- Open Source и добавление "вредоносного кода"
- Спутниковый радар Umbra
- Уводящие помехи GPS/GNSS
Комментарии читателей блога: 15
1. 11th May 2008, 08:05 // Читатель gene написал:
А как эта проблема решается в российских военных устройствах?
2. 11th May 2008, 10:47 // Александр Венедюхин:
В основном, я думаю, использованием аппаратуры внутреннего производства.
3. 11th May 2008, 12:04 // Читатель Прудков Козьма написал:
Тема, которую Вы поднимаете не раз поднимали специалисты по военным технологиям многих развитых и развивающихся стран. Все обеспокоены тем, что предсказать как в той или иной ситуации поведет себя микросхема приобретеная у сторонних производителей никто не может. В этом то и весь фокус – уязвимости высоких технологий! Выход, как мне кажется, один – самостоятельно проводить разработку архитектуры компонентов, а потом заказывать ее без объяснения смысла ее работы.
4. 13th May 2008, 20:25 // Читатель Jenyay написал:
Но все-таки в большинстве случаев скорее всего придется знать про то, как будет использоваться микросхема с “закладкой”. Ведь принимаемый сигнал обычно каким-то образом предварительно обрабатывается.
5. 13th May 2008, 22:53 // Александр Венедюхин:
Но все-таки в большинстве случаев скорее всего придется знать про то, как будет использоваться микросхема с ?закладкой?.
Так это в большинстве случаев как раз известно заранее. Ну, например, сигнальный процессор используют для обработки сигналов и тд.
6. 6th September 2008, 22:32 // Читатель arcman написал:
По сабжу – форменный бред
Защититься от такого можно грамотным проектированием системы и переодическим контролем поступающей продукции.
Подобную идиотию пытался эксплуатировать Бабаян, приводя это в защиту своего эльбруса.
Собственно как я понимаю, заметка только про CPU и написана, другие компоненты слишком просты, что бы в них подобный функционал спрятать.
По пунктам:
– если система не имеет связи со внешним миром, то и получить команду она не может.
– есть такие штуки, позволяющие разбирать микросхемы, слой за слоем – шпионский блок достаточно сложен, его будет видно (все микросхемы карёжить не нужно – каждую сотую например)
По поводу процессоров и “последовательностей в памяти”
– нисделать так никогда нивжисть :)
во первых – ПО для этих процессоров пишется уже локально, а не заказывается
во вторых – автоматически CPU просматривает (загружает в себя) только сегменты с кодом (т.е. то что написано заказчиком), а данные попадают в его нутро только по команде ПО, причём то как эти данные в него будут попадать, так же зависит от ПО.
А если проц будет сам по памяти шарить, в поисках секретной последовательности, то это будет выявлено сразу же, ещё на этапе тестирования новой системы.
как то так.
7. 6th September 2008, 22:57 // Александр Венедюхин:
Arcman, опять у Вас вышел комментарий вида “пальцем в небо”. Мало того, что есть много чипов со сложной топологией (не обязательно CPU), так ещё и атаки продемонстрированы на практике – см. статью, на которую ведёт ссылка.
Что особенно забавно, так это, скажем, система наведения ракеты, которая, как в Вашем комменте, “не имеет связи с внешним миром”: как она будет работать – это очередная загадка природы, видимо.
8. 7th September 2008, 00:47 // Читатель arcman написал:
Фигня там, а не взлом.
В лабораторных условиях “взломали” свою собственную систему.
При том что “секретный код” поступил в цифровом виде (т.е. ключевая последовательность была короткой и точной бит в бит) и исходник ОС так же был полностью им открыт.
Вы, Александр, очень приземлённо судите, я ведь общий случай рассматривал, а не конкретно ракеты.
Знаете как в секретных учреждения решают проблему в том числе аппаратных “закладок” применительно к широко распространённым компьютерам “IBM PC”?
А они в локальную сеть банально не включены и с внешним миром никак не контактируют – и фаерволы тут взламывать бесполезно, и “закладки” плодить.
Так что херня всё это – правильный подход к проектированию, даже в случае гарантированного наличия жучка, позволяет достичь необходимого уровня безопасности.
А что бы понять где и как в аппаратуре конкретно взятой зенитной ракеты можно разместить жука – нужно брать схему аппаратуры этой ЗР и смотреть.
Что, опять я – “пальцем в небо”?
Ну уж извините, “пальцем в небо” я обычно указываю на конкретную звезду и никак иначе.
9. 7th September 2008, 10:42 // Александр Венедюхин:
Arcman, все серьёзные атаки разрабатывают в лабораторных условиях. И Вы, конечно, рассматриваете не “общий случай”, а очень частный и очень ограниченный случай – некий IBM PC, связь которого “с внешним миром” возможна только по ЛВС и от неё этот IBM PC отключили.
В настоящем “общем случае”, как раз, любой полезный вычислитель обязательно связан “с внешним миром”, иначе толку в этом вычислителе нет. И, конечно, способы связи “с внешним миром” не исчерпываются ЛВС.
10. 7th September 2008, 11:17 // Читатель arcman написал:
Любой пример есть – частный случай.
Любое устройство может быть связано с внешним миром через другое устройство.
Особенности работы его связного устройства сведут на нет все усилия жукорарзаботчиков.
Защищённая система – это в первую очередь грамотно спроектированная система.
11. 10th September 2008, 16:07 // Читатель Bogdan написал:
Ха ха, закладки. Производственный дефект это. Кстати, ЦП Бабаяна и все наследники, включая современные российские военные ЦП имеют архитектуру SPARC. А также такие ЦП стоят на компьютерах МКС.
12. 11th September 2008, 07:37 // Читатель arcman написал:
Ну собственно это говорит только о том что проект бабаяна провалился (он изначально был мертворождённым)
а спарк – хорошая архитектура, значит здравый смысл восторжествовал :)
13. 17th September 2008, 17:05 // Читатель Igor написал:
Почему бы нет. Хотя грамотное проектирование (своей) аппаратуры сводит вероятность такой атаки к минимуму даже при использовании БИС с закладками. А использование импортной аппаратуры (например,в авионике)сводит вероятность успеха такой атаки к 100%. Не следует принебрегать инициацией таких жучков со спутников земли по радиоканалу или посредством ренгеновского излучения (внешние антенны тогда не нужны).
14. 17th September 2008, 21:27 // Читатель arcman написал:
Когда прибор 100% собран противником, он ясен пень будет содержать что угодно =)
И не надо сказки дальше развивать про спутники и ренген – если устройство не задействовано в приёмном тракте, то кодовая посылка до него и не дойдёт.
А вариант с ренгеном – это из серии посылки кода с помощья атомной бомбы =)
Слабый сигнал устройсвом без приёмного тракта услышан не будет, а сильный выведет из строя что угодно и без посторонней помощи =)
15. 17th September 2008, 21:32 // Александр Венедюхин:
Это не так. Ключевая последовательность может работать фактически в любом модуле. Эта последовательность не известна, и “отфильтровать” её, для устройств, работающих с произвольным набором данных “из внешнего мира”, не получится.