Как включить jtag отладку через usb · • Не требует...

22
ptsecurity.ru Как включить JTAG-отладку через USB Эксперты исследовательского центра Positive Technologies Максим Горячий, Марк Ермолов

Upload: others

Post on 12-Aug-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

ptsecurity.ru

Как включить JTAG-отладку

через USB

Эксперты исследовательского центра

Positive Technologies

Максим Горячий, Марк Ермолов

Page 2: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Roadmap

Как получить доступ

к JTAG в процессорах Intel

Direct Connect Interface

(DCI)

Активация

DCI

Page 3: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Что такое JTAG

Joint Test Action Group IEEE 1149.1

О JTAG

https://en.wikipedia.org/wiki/JTAG

IEEE Standard 1149.1

https://standards.ieee.org/findstds/

standard/1149.1-2013.html

Доклад Felix Domke Blackbox JTAG Reverse Engineering [26C3]

https://www.youtube.com/watch?v=8Unisnu-cNo

https://www.xjtag.com

Page 4: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Для чего может быть полезен JTAG на x86

• Расследование инцидентов (чтение

прошивки, обнаружение руткитов)

• Исследования (Cache as RAM, Secure

Boot, Boot Guard, SMM)

• Низкоуровневая отладка (UEFI

DXE/PEI, драйверы, гипервизор)

• Анализ производительности

http://partsolutions.com/

Page 5: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

JTAG в процессорах Intel

• JTAG 101 IEEE 1149.x and Software Debug —

http://www.intel.com/content/dam/www/public/us/en/documents/

white-papers/jtag-101-ieee-1149x-paper.pdf

• Debug Port Design Guide for UP/DP Systems —

http://download.intel.com/support/processors/pentium4/sb/31337

301.pdf

• Packetizing JTAG across industry, US 9,015,542 B2

• DFx software debug feature for IO and other non-memory typed

transactions, US 2011/0145443 A1

https://upload.wikimedia.org

Page 6: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Типы подключений

Intel In-Target Probe eXtended Debug Port (ITP-XDP)

Intel Direct Connect Interface (DCI): отладочная функциональность,

доступная через USB 3.0

• USB3 Hosting DCI (USB Debug cable)

• BSSB Hosting DCI (Intel SVT Closed Chassis Adapter)

Page 7: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Intel ITP-XDP

• «Прямой» доступ к отладочному

интерфейсу CPU

• Цена — 3000 $ (NDA)

• Требуется специальная материнская плата

с разъемом (BSH-030-01-F-D-A-TR)

• Закрытый протокол

https://designintools.intel.com

Page 8: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Intel DCI

Intel® 100 Series and Intel® C230 Series Chipset Family Platform Controller Hub (PCH)

Работает «из коробки» только на U-сериях

Page 9: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

BSSB Hosting DCI

• Intel® Silicon View Technology Closed Chassis

Adapter (SVTCCA или BSSB) позволяет

получить доступ к DFx через USB 3.0.

• Цена — 390 $

• Закрытый протокол (не USB для целевой

платформы)

https://designintools.intel.com

Page 10: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

USB3 Hosting DCI

• Не требует специального оборудования

• Не поддерживает «глубокий сон»

• Работает через интегрированное в PCH

устройство

• Использует стандартный протокол USB 3.0

• Работает через любой порт USB 3.0 http://www.datapro.net/

Page 11: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Устройство USB3 Hosting DCI

Page 12: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Как включить DCI

UEFI Human Interface Infrastructure (UEFI HII)

PCH Strap (Intel Flash Image Tool)

Устройство P2SB

Page 13: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Активация через UEFI HII

UEFI Human Interface Infrastructure —

http://www.uefi.org/sites/default/files/resources/UEFI

%20Spec%202_5_Errata_A.PDF

AMI BIOS Configuration Program 5.0 —

https://ami.com/products/bios-uefi-tools-and-

utilities/bios-uefi-utilities/

http://www.dediprog.com/

Page 14: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Активация через PCH Strap

Intel® Flash Image Tool

http://www.win-raid.com/t596f39-Intel-Management-Engine-Drivers-Firmware-amp-

System-Tools.html

Page 15: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Активация через P2SB

Page 16: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Ложка дегтя

Page 17: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Есть решение!

Page 18: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Live Demo

http://www.datapro.net/

Page 19: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Резюме

Современные СPU (Skylake, Kabylake) позволяют получить доступ

к JTAG через USB 3.0 на оборудовании, доступном в широкой

продаже (отладочные версии системных плат не требуются)

Позволяют использовать JTAG без подписания NDA

Используя эту технологию, можно «перепрошить» BIOS, даже если

вендор заблокировал доступ к SPI-flash, контролирует подпись,

но «забыл» заблокировать DCI

Может использоваться для целенаправленных атак

Page 20: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Активация в run-time

• Intel выпустит официальный бюллетень

• Крупные производители материнских плат подтвердили наличие

проблемы

• Названия производителей пока не разглашаются по их просьбе

Page 21: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Контакты

Максим Горячий

[email protected]

Марк Ермолов

[email protected]

Страницы Positive Technologies:

• На GitHub: https://github.com/ptresearch

• На Хабре: https://habrahabr.ru/company/pt/

• В соцсетях: https://www.facebook.com/PositiveTechnologies

https://twitter.com/ptsecurity

Page 22: Как включить JTAG отладку через USB · • Не требует специального оборудования • Не поддерживает «глубокий

Спасибо!

ptsecurity.ru