Троянская микроэлектроника

Популярная тема – атаки на компьютерное оборудование, использующие уровень аппаратуры. Особенно интересны тут троянские системы: есть хорошая статья Samuel T. King, et al про специальный процессор, позволяющий реализовывать произвольные атаки на той системе, где этот процессор установлен (там рассматривают ПК под управлением Linux, к которому подключаются через ЛВС). Вообще, проблема очень актуальна для систем вооружений.

О чём идёт речь? Допустим, микроэлектронные компоненты для бортовой системы закупаются на более-менее открытом рынке, у обычных поставщиков. Это дешевле, и с разработкой проще. Понятно, что в этом случае поступающая аппаратура может содержать в себе “жучки” и “закладки”, сделанные, так сказать, конкурентами, желающими в том или ином подходящем случае сохранить за собой возможность отключить управляющее оборудование.

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

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

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

В случае с комплексом ПВО можно себе представить специальный помехопостановщик, передающий такие помехи РЛС, обработка которых бортовой вычислительной машиной как раз и приводит к появлению в памяти последней ключевой последовательности, отключающей процессор. Понятно, что отстройка от помех потребует обработки каких-то параметров этих помех ЭВМ.

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

()

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



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

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

Комментарии читателей блога: 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 // Александр Венедюхин ответил:

    если устройство не задействовано в приёмном тракте, то кодовая посылка до него и не дойдёт.

    Это не так. Ключевая последовательность может работать фактически в любом модуле. Эта последовательность не известна, и “отфильтровать” её, для устройств, работающих с произвольным набором данных “из внешнего мира”, не получится.