Современные процессоры Intel позволяют использовать отладочный интерфейс через доступный на многих платформах порт USB 3.0 для получения полного контроля над системой, что дает возможность проводить атаки, которые не отслеживаются современными системами безопасности. Доклад об этих механизмах, а также о способах защиты от подобных атак, был представлен экспертами Positive Technologies 28 декабря на конференции Chaos Communication Congress (33C3) в Гамбурге.

В чем проблема


Эксперты Максим Горячий и Марк Ермолов в своем докладе отметили, что зачастую подобные аппаратные механизмы используются как вполне легальные инструменты, которые внедряются еще на стадии производства ? например, специальные отладочные возможности, оставленные разработчиками для настройки аппаратуры и других «благих целей». Однако сейчас такие механизмы оказываются доступны и для злоумышленников, причем цена вопроса настолько низка, что для организации подобных атак уже не нужно быть государственной спецслужбой и иметь специальное оборудование.

Один из таких механизмов был подробно проанализирован и показан в исследовании. В качестве опасной возможности, оставленной производителем, здесь фигурирует отладочный интерфейс JTAG (Joint Test Action Group), доступ к которому теперь открыт через USB-интерфейс. Данный способ доступа к процессору работает «ниже» всего программного обеспечения, позволяя осуществлять аппаратную отладку гипервизоров, ядра ОС и драйверов. Однако тот же механизм может использоваться и для несанкционированных вторжений.

В старых процессорах Intel доступ к JTAG требовал подключения специализированного устройства через отладочный разъем на некоторых системных платах (ITP-XDP). Это усложняло доступ к данной технологии, в том числе, и для злоумышленников.

Однако, начиная с процессоров семейства Skylake, запущенных в производство в 2015 году, компания Intel внедрила технологию Direct Connect Interface (DCI), которая предоставляет доступ к JTAG через популярный порт USB 3.0. При этом на целевом компьютере не требуется каких-либо программных или аппаратных агентов ? необходимо лишь, чтобы интерфейс DCI был активирован. Как выяснили исследователи, это можно сделать несколькими способами, и на множестве современных компьютеров этот функционал оказался доступен буквально «из коробки» ? то есть по умолчанию возможность активации DCI не заблокирована.

Ниже представлены слайды презентации (также доступны по ссылке):



Демонстрация


В докладе также был представлен видеоролик, показывающий, насколько легко злоумышленники могут получить полный доступ к процессору с помощью такого механизма. По мнению исследователей, данный механизм в процессорах Intel может привести к целому классу новых атак типа «Bad USB» – но уровень проникновения будет гораздо глубже.



В заключение доклада эксперты предложили ряд способов защиты от данной угрозы, которые основаны на использовании BootGuard и запрете активации отладочного интерфейса.

Описания атак с применением особенностей работы отладочного механизма процессоров были переданы Intel, однако официального ответа исследователи пока не получили.
Поделиться с друзьями
-->

Комментарии (34)


  1. navion
    29.12.2016 15:58

    и на множестве современных компьютеров этот функционал оказался доступен буквально «из коробки»

    Какой-нибудь ASUS и прочая Тайвань, известная своим наплевательским отношением к ИБ?


  1. vbogom
    29.12.2016 17:22
    +1

    Если у злоумышленника есть физический неконтролируемый доступ компьютеру, то о какой безопасности вообще может идти речь. Другое дело, если админ сует в USB что не попало, но это вопрос к админу.


    1. ptsecurity
      29.12.2016 17:38
      +3

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

      Поэтому для атаки с использованием данного бэкдора не нужен личный физический доступ. Многие пользователи сами доносят заразу до своего USB-порта.


      1. vbogom
        29.12.2016 19:51
        +1

        Поэтому для атаки с использованием любого данного бэкдора (в таком случае) не нужен личный физический доступ.


      1. vbogom
        29.12.2016 19:56
        +1

        Просто, если так рассматривать вопрос, то вообще USB (и не только она) — потенциальная уязвимость.


        1. navion
          29.12.2016 20:01
          +2

          Раньше такие ужасы были только у Firewire из-за DMA.


    1. msts2017
      29.12.2016 19:29
      +2

      классическая сцена в кино — посетитель приходит на прием — отвлекает сотрудника — втыкает в комп устройство и тут-же начинается скачивание инфы.


      1. vbogom
        29.12.2016 19:49

        Я и не спорю, что это уязвимость, но она не страшнее трояна на флешке.


        1. ptsecurity
          29.12.2016 20:32

          Что значит «не страшнее»? Трояны разные бывают. Значительное количество их может быть отловлено антивирусами и другими программными средствами защиты.

          Но в данном случае бэкдор даёт доступ к процессору на самом низком уровне, «ниже» любого ПО. Очевидно, что такое вторжение гораздо сложнее заметить, чем обычные трояны.


          1. vbogom
            29.12.2016 20:45
            +1

            Вы выше писали про флешки — на них такие-же программы которые необходимо запускать, т.е. их можно «увидеть» (либо не дать запустится) установленными средствами защиты. А вот если специализированное устройство, то я с Вами полностью согласен — опасность очень высока. В этом случае только делать невозможным несанкционированный физический доступ к ПК. Защищаться от пользователей/админов вставляющих что попало в USB дело неблагодарное и от этого ничего не поможет кроме собственных шишек, ну или лишить их всего, но в большинстве случаем это не возможно. А само наличие JTAG конечно интересно, но не знаю насколько полезно в реальных условиях (для рядового админа).


            1. mva
              29.12.2016 23:17

              [палево_mode]
              Взломщик #1 сидит под окнами офиса и ловит беспроводной сигнал от вставленного устройства.
              Взломщик #2 идёт на парковку/ресепшн/whatever и "случайно" роняет флешку (которая является одновременно и флешкой с котиками/эротикой/whatever, и устройством, содержащим в себе и JTAG и средство удалённого беспроводного доступа для взломщика #1.


              Рандомный Вася (из работников офиса) выходит пообедать и находит симпатичную флешку. Прячет её в карман. Обедает. Возвращается. Вставляет её в компьютер. Смотрит котиков/девочек/whatever.


              Тем временем Взломщик #1 подключается к устройству.


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


              ???


              PROFIT!
              [/палево_mode]


              Никакого несанкционированного физического доступа к компьютеру.


              Только те самые пользователи/админы, что вставляют что попало в USB.


              Пока они набьют шишки, у взломщиков уже будет всё, что им было нужно.


  1. igor_suhorukov
    29.12.2016 17:53
    +5

    Ура, JTAG теперь и через USB!


  1. golf2109
    29.12.2016 18:26

    насколько я понимаю, то доступ к отладке влючается на уровне BIOS…
    или в процессорах Intel уже есть типа внутренняя Flash?


    1. ptsecurity
      29.12.2016 19:29

      Если верить документации, то настройка хранится в CMOS.


  1. swmicro
    29.12.2016 21:53

    BootGuard не защитит в Runtime, он всего лишь проверяет валидность BIOS.


    1. usheynet
      05.01.2017 15:11

      Наверное, предполагается, что валидный биос запаролен и корректно настроен (jtag off), в случае сценария с перезаписью биоса из под ОС и перезагрузкой машины для включения режима отладки — вполне нормальная защита.


      1. swmicro
        08.01.2017 21:12

        Эта защита не проверяет переменные. Если эта опция часть БИОС, то ON или OFF всегда будет валидно. Можно добавить в Chipsec модуль для проверки этой уязвимости.


  1. flothrone
    30.12.2016 00:33
    +1

    Посмотрел видео доклада (с 33c3), очень интересно. Есть несколько вопросов.

    1) правильно ли я понимаю, что перед тем как вставить USB устройство, которое будет использовать технологию DCI (например, с целью провести атаку) необходимо предварительно попасть на атакуемую машину чтобы включить технологию DCI (пропатчив BIOS или выставив соответствующий бит в регионе Flash Descriptors на SPI флэш-памяти)?

    2) только один из имеющихся USB 3.0 портов. может использовать DCI. Возможно ли, что этот порт не выведен на фронтальную или заднюю панель системного блока, а находится например на самой материнской плате (бывает, что прямо из материнки вверх торчит USB гнездо), или же вообще не распаян?


    1. ptsecurity
      05.01.2017 15:12

      1) Да это действительно так, но это может быть сделано на стадии производства или отгрузки (таргетированная атака). На некоторых системах DCI может быть активирован в runtime через P2SB-устройство

      2) Нет, это не подтверждается экспериментами. На системах, которые использовались исследователями, доступ к DCI имели все порты USB 3.0.


      1. flothrone
        06.01.2017 20:23

        Понятно. Встречали ли вы системы, где возможно использование DCI с P2SB-устройства, т.е. без предварительной модификации содержимого SPI флэш-памяти? Если не секрет, то что за устройство, или хотя бы, что за вендор?


  1. Merkat0r
    30.12.2016 01:30
    +1

    Опять про физический доступ…
    Таких способов сотни и, как выше уже отписались, россыпь флешек с *разными* фишками перед офисом — что-то да проканает в любом случае, но… обычно, тех на кого нацелены такой тип атак:
    1)подбирает флешку
    2)никуда не вставляет… порты то все вырваны или залиты термоклеем и вообще по ушам получает даже за попытку подобную
    3)Профит

    С кем прокатило на таком объекте — обычно вскоре пропадают, возможно даже где-нить в лесополосах

    Всех остальных оно, в принципе, не парит ибо у них и так всякие *бухи* под админами сидят да *девочки* на айфончик через айтюнчик музыку накачивают — им достаточно и тупого заряженного письма


    1. Merkat0r
      30.12.2016 01:35

      Не дописал —
      Не будет никто так сейчас заморачиваться ибо неиллюзорно легко(когда на 1 кв.м по 100500камер и не только) могут вычислить и оторвать все выпирающие части тела :) в прошлом было популярно, да.


      1. burst
        05.01.2017 15:11

        Это конечно Вам не Metasploit использовать. Как только прибыль превысит все заморочки при таком взломе, так сразу и будут так взламывать. Это всего лишь дыра где нет легко доступных инструментов.


  1. DrZlodberg
    30.12.2016 09:12

    А зачем jtag в усб? Всё-таки интерфейс специфичный и для него использовать отдельный разъём логичнее.

    УСБ вообще непонятный интерфейс. У меня эл.книжка рушит каким-то образом одновременно несколько портов до перезагрузки.


    1. Maccimo
      30.12.2016 18:59

      Удобно же. Один интерфейс для всего.


      1. DrZlodberg
        30.12.2016 21:48
        +1

        Не смотря на большую любовь к универсальности тут я бы поспорил. JTAG не та вещь, которую стоит светить наружу (не считая девелоперских версий естественно). Для обычной материнки это очнь странное решение. Примерно как в обычном автомобиле убрать передний капот и ездить с кишками наружу. Норм, механикам удобно. Да и то им под капот лазить приходится чаще, чем обычным юзерам в jtag.


    1. monah_tuk
      31.12.2016 17:40

      А я после пары лет плотной работы с USB вообще удивляюсь, каким образом оно как-то умудряется работать. Качество контроллеров и, особенно, драйвером просто удручающее. Особенно для USB 3.0. За 3.1 ничего не скажу, но по тенденциям — там ещё хуже всё будет, как минимум из-за косяков в power-драйверах (а они будут).


    1. erty
      05.01.2017 15:11

      Предположу, что рушится драйвер на контроллер, который отвечает за этот ряд юсб-портов…


      1. DrZlodberg
        05.01.2017 15:50

        Не, там всё явно сложнее. Если интересно — в целом это выглядит так:
        В linux при втыкании книжки или внешнего винта (любого) система иногда вырубает все активные порты (зарядка из них работает по прежнему). Рабочим остаётся только незанятый в данный момент (любой). Раньше думал, что это баг ноута, пока не словил его на другой машине под вындой уже. При втыкании книжки (только с ней) курсор мышки забился в эпилептическом припадке. Отключение книжки его не спасло. Не спасло даже отключение мыши (похоже система этого просто не заметила). Такая вот фигня.


  1. emusic
    04.01.2017 16:10

    Существует ли способ программно запретить DCI из-под загруженной ОС, если BIOS по умолчанию его разрешает, и не поддерживает опции запрета?


    1. ptsecurity
      08.01.2017 02:18

      Да, можно отключить DCI через регистры, которые указаны на слайдах.


      1. emusic
        08.01.2017 07:40

        Спасибо. Однако, в даташитах (vol 1, vol 2) на I/O моего процессора (6820HK) регистр ECTRL почему-то не упомянут вообще, хотя DCI поддерживается. Как он там управляется? Или просто не дописали разделов в даташит?


  1. emusic
    04.01.2017 16:14

    Да, и спасет ли от такой атаки хаб стандарта 2.0? Хаб 3.0, по идее, спасать не должен, так как все порты и так подключены к контроллеру через внутренний хаб.


    1. vadimr
      04.01.2017 21:53

      Сигналы JTAG, приходящие по шине USB, не обязательно заведены через контроллер USB, поэтому тут может получиться как угодно. А вопрос про хаб, действительно, интересен.