Pull to refresh
24
0
Максим Горячий @h0t_max

Пользователь

Send message

Intel х86 Root of Trust: утрата доверия

Reading time5 min
Views43K


Изображение: shutterstock

Вот и настал момент, которого, возможно, больше всего боялись системные архитекторы, инженеры и специалисты по безопасности компании Intel: была найдена ошибка в неперезаписываемой области памяти (ROM) подсистемы Intel Converged Security and Management Engine, и эта ошибка ставит под сомнение все усилия компании по созданию корня доверия и фундамента безопасности на ее платформах.

И дело здесь даже не в том, что ошибки микропрограммного обеспечения (firmware), которое «зашито» в бортовой памяти Mask ROM микропроцессоров и чипсетов, уже невозможно исправить, а скорее в том, что найденная ошибка разрушает цепочку доверия всей платформы в целом, позволяя скомпрометировать ее аппаратную основу.
Читать дальше →
Total votes 70: ↑69 and ↓1+68
Comments217

Устройство файла UEFI BIOS, часть вторая: UEFI Firmware Volume и его содержимое

Reading time9 min
Views74K
Позади уже полторы (первая, полуторная) части этой статьи, теперь наконец пришло время рассказать о структуре UEFI Firmware Volume и формате UEFI File System.
Читать вторую часть
Total votes 51: ↑48 and ↓3+45
Comments4

Устройство файла UEFI BIOS, часть полуторная: UEFI Platform Initialization

Reading time6 min
Views90K
В первой части этой статьи мы познакомились с форматом UEFI Capsule и Intel Flash Image. Осталось рассмотреть структуру и содержимое EFI Firmware Volume, но для понимания различий между модулями PEI и драйверами DXE начнем с процесса загрузки UEFI, а структуру EFI Firmware Volume отставим на вторую часть.
Читать полуторную часть
Total votes 39: ↑37 and ↓2+35
Comments11

Пузырьки, кэши и предсказатели переходов

Reading time6 min
Views10K
Эта заметка написана по мотивам одного любопытного поста, краткий коммент её же автора к которому сподвиг меня разобраться в происходящем поподробнее. Предлагается сравнить две вариации алгоритма сортировки пузырьком. Первая из них – обычный пузырёк, с небольшой оптимизацией — внутренний цикл можно закончить немного раньше, зная, что оставшаяся часть массива уже отсортирована:
for (i=0; i<N; i++)
  for (j=0; j<N - (i+1); j++)
    if (a[j] > a[j+1])
      swap(a[j], a[j+1]);


Во втором варианте внутренний цикл проходит по другой части массива, однако алгоритмически этот вариант эквивалентен первому (подробности ниже):
for (i=0; i<N-1; i++)
    for (j=i; j>=0; j--)
        if (a[j] > a[j+1])
            swap(a[j], a[j+1]);


Запускаем (код), например, для N=100 000 на массиве int'ов, и получаем около 30 секунд в первом случае, и меньше 10 секунд — во втором, то есть отличие в 3 раза! Откуда же тогда берётся такая разница?
Читать дальше →
Total votes 157: ↑150 and ↓7+143
Comments65

Заказные блоки в микросхемах (Silicon IP): как это работает

Reading time22 min
Views43K
В каждой статье на Хабре, посвященной отечественным микропроцессорам, так или иначе поднимается вопрос лицензионных IP-блоков и того, насколько их наличие и отсутствие уменьшает ценность, отечественность или безопасность разработки. При этом очень многие комментаторы не слишком хорошо понимают предмет обсуждения, поэтому давайте попробуем разобраться, как же именно работает лицензирование в микроэлектронной индустрии, чем хороши и чем плохи лицензированные блоки, и в чем состоит процесс разработки микросхемы, если большая часть блоков в ней куплена.


Читать дальше →
Total votes 66: ↑65 and ↓1+64
Comments149

Реверс-инжиниринг TL431, крайне распространенной микросхемы, о которой вы и не слышали

Reading time14 min
Views108K
Кен, как и планировал, провёл реверс-инжиниринг микросхемы по фотографиям, сделанным BarsMonster. Барс в статье упомянул своё общение с Кеном, но этой переводимой статьи тогда еще не было.

Фото кристалла интересной, но малоизвестной, микросхемы TL431, используемой в блоках питания, даёт возможность разобраться в том, как аналоговые схемы реализуются в кремнии. Несмотря на то, что схема на фото выглядит как какой-то лабиринт, сама микросхема относительно проста, и может быть исследована без большого труда. В своей статье я попытаюсь объяснить каким образом транзисторы, резисторы и другие радиодетали запакованы в кремний для выполнения своих функций.


Фото кристалла TL431. Оригинал Zeptobars.
Читать дальше →
Total votes 74: ↑73 and ↓1+72
Comments30

Зоопарк AFL фазеров

Reading time12 min
Views17K
image

На Хабре уже пару раз появлялись статьи, поднимающие тему American Fuzzy Lop (AFL) (1,2). Но в данной статье речь пойдет не о классическом AFL, а о вспомогательных утилитах для него и его модификациях, которые, на наш взгляд, могут значительно улучшить качество фаззинга. Если вам интересно узнать, как можно прокачать AFL и искать быстрее и больше уязвимостей, то добро пожаловать под кат!
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments7

Защита микросхем от реверс-инжиниринга и несанкционированного проникновения

Reading time20 min
Views84K

“CVAX — когда вы забатите довольно воровать настоящий лучший”.
Надпись, оставленная американскими инженерами для советских коллег в топологии микропроцессора.

Реверс-инжиниринг микросхем — головная боль производителей с самых первых лет существования микроэлектроники. Вся советская электроника в какой-то момент была построена на нем, а сейчас с гораздо большим размахом тем же самым занимаются в Поднебесной, да и не только в ней. На самом деле, реверс-инжиниринг абсолютно легален в США, Евросоюзе и многих других местах, с целью (цитирую американский закон) “teaching, analyzing, or evaluating the concepts or techniques embodied in the mask work or circuitry”.

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

Другое не менее (а то и более) важное направление защиты микросхем от реверс-инжиниринга — обеспечение безопасности информации, хранимой в памяти. Такой информацией может быть как прошивка ПЛИС (то есть опять-таки интеллектуальная собственность разработчика), так и, например, пин-код от банковской карты или ключ шифрования защищенной флэшки. Чем больше ценной информации мы доверяем окружающему миру, тем важнее защищать эту информацию на всех уровнях работы обрабатывающих ее систем, и хардварный уровень — не исключение.
Читать дальше →
Total votes 237: ↑234 and ↓3+231
Comments130

Физически неклонируемые функции: защита электроники от нелегального копирования

Reading time8 min
Views19K
За последние 10 лет количество товаров-подделок в мире увеличилось в 2 раза. Это данные отчета министерства внутренней безопасности США. Большая часть контрафакта приходится на Китай (56 %), Гонконг (36%) и Сингапур (2%).

Производители оригинальных товаров несут серьезные убытки, часть из которых приходится на рынок электроники. Многие современные товары содержат в себе электронные компоненты: одежда, обувь, часы, ювелирные изделия, автомобили. В прошлом году прямые потери от незаконного копирования потребительской электроники и электронных компонентов в составе других товаров достигли порядка 0,5 трлн долл. США.



Эту проблему помогают решить различные методы защиты цифровой электроники от нелегального копирования, модификации и обратного проектирования: аппаратное шифрование (AES, RSA и др.), хеширование (например, SHA-256, MD-5), внедрение цифровых водяных знаков и отпечатков пальцев в проектное описание, лексическая и функциональная обфускация, формальная верификация и другие.

В этой статье мы расскажем об одном из самых экономичных методов защиты с точки зрения аппаратных затрат — физически неклонируемых функциях.
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments64

Ликбез по химии: кислотный реверсинг микросхем (как обнажить кристалл микросхемы для последующего его фотографирования)

Reading time7 min
Views27K

Введение


Если вы уже занимаетесь стравливанием и фотографированием микросхем, то мало что сможете почерпнуть из этой статьи. Однако, если вы хотите сфотографировать микросхему, но не знаете с чего начать, то эта статья определённо для вас. Кроме того, имейте в виду, что на первых шагах освоения этой увлекательной процедуры, вам скорее всего будет немного больно.


Пожалуйста, соблюдайте крайнюю осторожность, тогда вам больно хоть и будет, но не сильно. Также, если у вас есть хотя бы крохотная наклонность к здравому смыслу, – проводите данную процедуру в специально оборудованной химической лаборатории, под присмотром опытных специалистов; и не становитесь жертвой своей самонадеянности, думая, что после прочтения этого ликбеза, вы сразу сможете проводить данную процедуру самостоятельно. Более того, если вы без обращения к Google не знаете, что во что нужно лить (кислоту в воду или воду кислоту) и не знаете, чем для вас будет чревато это незнание, – пожалуйста прекратите читать этот ликбез и сначала запишитесь на курсы в какой-нибудь местный техникум, где есть хорошая химическая лаборатория.


Кислоту в воду или воду в кислоту?

Читать дальше →
Total votes 81: ↑79 and ↓2+77
Comments41

LoJax: первый известный UEFI руткит, используемый во вредоносной кампании

Reading time25 min
Views16K
Кибергруппа Sednit, также известная как АРТ28, Strontium и Fancy Bear, работает как минимум с 2004 года. Считается, что группа стоит за рядом резонансных кибератак. Некоторые ИБ-компании и Министерство юстиции США назвали Sednit ответственной за взлом Национального комитета Демократической партии перед выборами в США в 2016 году. Группе приписывают взлом глобальной телевизионной сети TV5Monde, утечку электронных писем Всемирного антидопингового агентства (WADA) и другие инциденты. У Sednit множество целей и широкий спектр инструментов, некоторые из которых мы уже задокументировали ранее, но в этой работе мы впервые детально опишем применение UEFI руткита.


Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments5

Intel ME Manufacturing Mode — скрытая угроза, или что стоит за уязвимостью CVE-2018-4251 в MacBook

Reading time9 min
Views24K


Принцип «безопасность через неясность» не один год критикуется специалистами, но это не мешает крупным производителям электроники под предлогом защиты интеллектуальной собственности требовать подписания соглашений о неразглашении для получения технической документации. Ситуация ухудшается из-за возрастающей сложности микросхем и интеграции в них различных проприетарных прошивок. Это фактически делает невозможным анализ таких платформ для независимых исследователей, что ставит под удар как обычных пользователей, так и производителей оборудования.

Примером может служить технология Intel Management Engine (Intel ME), а также ее версии для серверных (Intel SPS) и мобильных (Intel TXE) платформ (подробнее об этой технологии см. [5], [6]. В этой статье мы расскажем, как используя недокументированные команды (если термин «документированный» вообще применим к Intel ME), можно перезаписать память SPI flash и реализовать самый страшный сценарий — локальную эксплуатацию уязвимости в ME (INTEL-SA-00086). Корнем данной проблемы оказался недокументированный режим работы Intel ME — Manufacturing Mode.
Читать дальше →
Total votes 61: ↑61 and ↓0+61
Comments46

Реверс-инжиниринг режима разработчика Animal Crossing

Reading time16 min
Views4.3K
Using the code on a real GameCube

Прошлым летом я приступил к реверс-инжинирингу игры Animal Crossing для GameCube. Я хотел исследовать возможность создания модов для этой игры. Кроме того, мне хотелось задокументировать процесс, чтобы создать туториалы для людей, заинтересованных в хакинге ROM-ов и обратной разработке. В этом посте я расскажу о отладочных функциях разработчика, которые остались в игре, а также поделюсь тем, как я обнаружил чит-комбо, с помощью которых их можно разблокировать.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments5

В компьютерах Apple закрыта уязвимость прошивки, найденная экспертами Positive Technologies

Reading time3 min
Views6.9K


Изображение: Unsplash

Исправленная уязвимость позволяла эксплуатировать опасную ошибку в подсистеме Intel Management Engine и по-прежнему может присутствовать в устройствах других вендоров, использующих процессоры Intel.

Компания Apple выпустила обновление для macOS High Sierra 10.13.4, которое устраняет уязвимость в прошивке персональных компьютеров (CVE-2018-4251), обнаруженную экспертами Positive Technologies Максимом Горячим и Марком Ермоловым. Подробная информация об этом представлена на сайте технической поддержки Apple.

Вот как описывает проблему Максим Горячий: «Уязвимость позволяет злоумышленнику с правами администратора получить несанкционированный доступ к критически важным частям прошивки, записать туда уязвимую версию Intel ME и через ее эксплуатацию тайно закрепиться на устройстве. В дальнейшем он сможет получить полный контроль над компьютером и осуществлять шпионскую деятельность, без малейшей вероятности быть обнаруженным».
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments23

Добавление нового семейства процессоров в IDA pro

Reading time8 min
Views15K
Пришлось не так давно потрошить прошивку от M16C (Mitsubishi/Renesas). С удивлением обнаружил, что оказывается IDA v6.1.xxx не «держит» данное семейство контроллеров, увы. Впрочем, SDK есть в наличии, значит, не страшно – будем исправлять ситуацию. Как показала практика, ничего сверх сложного в написании своего модуля нет (не rocket science, чай).
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments20

Модернизация IDA Pro. Debugger-плагин. Часть I. Теория

Reading time4 min
Views29K

Всем привет. Я решил попробовать начать цикл статей по модернизации нашей с вами любимой IDA Pro.
В каждом из туториалов я попытаюсь раскрыть довольно таки сложную и мало изученную тему: написание различных модулей:
  • загрузчики;
  • плагины;
  • дебагер-плагины;
  • процессорные модули;
  • скрипты.

И, если процессорные модули, плагины и скрипты — тема все таки более менее раскрытая, то все остальное — практически полный мрак (в конце статьи я дам список литературы и проектов, где есть хоть что-то).

Итак, первая статья из цикла будет посвящена написанию плагина-отладчика, а точнее предварительной теории. В штатной поставке IDA SDK уже имеются исходники основных дебагеров (Windows, Linux, Mac). Но как быть, например, с Amiga, M68000?
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments13

Как взломать выключенный компьютер или выполнить код в Intel ME

Reading time9 min
Views42K
На прошедшей недавно конференции Black Hat Europe исследователи Positive Technologies Марк Ермолов и Максим Горячий рассказали об уязвимости в Intel Management Engine 11, которая открывает злоумышленникам доступ к большей части данных и процессов на устройстве.

Такой уровень доступа означает также, что любой эксплуатирующий эту уязвимость злоумышленник, обойдя традиционную защиту на основе ПО, сможет проводить атаки даже при выключенном компьютере. Сегодня мы публикуем в нашем блоге подробности проведенного исследования.
Читать дальше →
Total votes 70: ↑68 and ↓2+66
Comments44

Intel устранила найденную экспертами Positive Technologies уязвимость в подсистеме Management Engine

Reading time2 min
Views19K
image

Компания Intel опубликовала бюллетень безопасности, в котором сообщила о выпуске патча для устранения уязвимости в подсистеме Intel ME, которая была обнаружена экспертами Positive Technologies Марком Ермоловым и Максимом Горячим. Также компания Intel опубликовала специальный инструмент, который поможет администраторам Windows и Linux-систем узнать о том, уязвимо ли их оборудование.

Intel Management Engine — это закрытая технология, которая представляет собой интегрированный в микросхему Platform Controller Hub (PCH) микроконтроллер с набором встроенных периферийных устройств. Через PCH осуществляется почти все общение процессора с внешними устройствами, поэтому Intel ME имеет доступ практически ко всем данным на компьютере. Исследователям удалось найти ошибку, которая позволяет выполнять неподписанный код внутри PCH на любой материнской плате для процессоров семейства Skylake и выше.
Total votes 32: ↑30 and ↓2+28
Comments30

JTAG в каждый дом: полный доступ через USB

Reading time9 min
Views35K
Исследователи Positive Technologies активировали аппаратную отладку (JTAG) для Intel Management Engine, которая позволяет получить полный доступ ко всем устройствам PCH (Platform Controller Hub), используя технологию Intel DCI (через интерфейс USB). Мы планируем поделиться подробностями на одной из ближайших конференций. А о том, как активировать этот интерфейс, но для основного процессора, расскажем ниже.

Читать дальше →
Total votes 57: ↑57 and ↓0+57
Comments10

Реверс-инжиниринг первых умных часов Seiko UC-2000

Reading time32 min
Views32K


Где-то в конце 1983 — начале 84 года, японская компания Seiko начала продавать первые в истории компьютеризированные часы — Seiko Data-2000 и Seiko UC-2000. Data-2000 имели возможность хранить 2КБ заметок, их нужно было вводить с помощью специальной компактной клавиатуры, которая шла в комплекте. UC-2000, по сути, те же Data-2000 с корпусом другого цвета, но они уже позиционировались как часть Наручной Информационной Системы, которая, среди прочего, включала терминал UC-2200, представляющий из себя компьютер с Z80-совместимым процессором, интерпретатором Бэйсика и термопринтером, но без экрана, в качестве которого использовались часы (как это не странно). Среди прочего, терминал давал возможность загружать на часы приложения со специальных картриджей. Подробнее о линейке ранних умных часов Seiko можно почитать, например, в этой статье. В этом же посте я расскажу, как написал (возможно) первую, за более чем 33 года, программу для этих часов.
Total votes 139: ↑139 and ↓0+139
Comments35
1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity