vak: (Default)
[personal profile] vak
По ссылке народ раскусил формат интеловского микрокода и научился подменять машинные команды. Могу предложить достойную задачу: заменой микрокода превратить процессор Intel Atom в БЭСМ-6.

https://www.offensivecon.org/speakers/2022/maxim-goryachy.html

Date: 2022-07-20 18:14 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Микрокод Intel подписан RSA.
Без взлома ключа нет возможности залить модифицированный

Date: 2022-07-20 18:20 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Они научились дизассемблировать.
А криптография - это другая задача

Если бы микрокод был зашифрован, то технически симметричный ключ обязан храниться в CPU и его можно найти под микроскопом.
А асимметричного ключа для подписывания в CPU физически нет
Edited Date: 2022-07-20 18:22 (UTC)

Date: 2022-07-20 18:28 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Они сами явно отвечают на этот вопрос https://github.com/chip-red-pill/MicrocodeDecryptor


- Can I make a custom microcode update?

- No, you can't. Only decryption is supported, because microcode has an RSA signature for integrity protection.
Edited Date: 2022-07-20 18:29 (UTC)

Date: 2022-07-20 18:58 (UTC)
kondybas: (Default)
From: [personal profile] kondybas
Как знать, как знать. Соблазна много.

Date: 2022-07-20 19:23 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Учитывая что RSA - первый кандидат на взлом квантовым компьютером, задача прошивки Intel - реальна в перспективе лет 50-и.

Date: 2022-07-21 08:46 (UTC)
From: [personal profile] ivanrubilo
Для интелов рано, а для AMD Phenom однако можно заливать модифицированный микрокод.

Date: 2022-07-20 23:13 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Ну да, временно. Т. е. в БЭСМ-6 не превратить, но ускорить эмулятор на порядок можно.

Date: 2022-07-21 01:20 (UTC)
x86128: (Default)
From: [personal profile] x86128
Можно попробовать реализовать JIT трансляцию. Кажется, мест где работает самомодифицирующийся код не так много

Date: 2022-07-21 03:07 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Любой экстракод чтения зоны, в сущности - модификация кода, так что большой выгоды может не получиться. Хотя, конечно, задача интересная, можно предложить студентам в качестве исследовательской работы.

Date: 2022-07-20 22:53 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Интересно, как у них устроен менеджмент этого магического ключа. Есть ли хоть один человек, который его знает, или он распределён между разными людьми, которых всех одновременно не подкупишь?

Date: 2022-07-20 23:08 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Технически можно реализовать в виде опломбированного компьютера.
1. Ключ сгенерировался внутри и никогда не вылезал наружу
2. Компьютер принимает файлы на вход и выдаёт подписанные на выходе
3. При попытке вскрыть - уничтожает ключ. но это убъёт возможность выпуска новых прошивок

но может быть в CPU прописано несколько ключей. И если выходит из строя один генератор, у Intel припасены запасные.

Такая схема гарантирует что ключа нет ни у кого из сотрудников. Могут только физически украсть компьютер. Но опять же можно встроить саморазрушение на случай перемещения с места
Edited Date: 2022-07-20 23:08 (UTC)

Date: 2022-07-20 23:24 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Это работает, но тогда нужно предусмотреть защиту от несанкционированного использования этого компьютера, защиту от модификации логов сеансов подписывания файлов, и т. п. То есть вопрос, сколько человек надо подкупить, чтобы скрытно получить произвольный подписанный файл, всё равно остаётся.

Date: 2022-07-20 23:32 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Как только обнаружатся левые подписанные файлы, начнётся расследование, усилят Секьюрити

Для компании это не так опасно как утечка ключа, которая необратима

Date: 2022-07-28 22:44 (UTC)
From: [personal profile] is39
Хранение таких секретов - довольно стандартная задача (не то, что идеально решенная, но решаемая на практике) - например для хранения ключей в CA (Certificate Authority), DNSSEC и других "high value" секретов.

Обычно используется HSM (Hardware Security Module) с одной из схем Secret Sharing, реализованных через смарт-карты у персонала:
https://en.wikipedia.org/wiki/Hardware_security_module
https://en.wikipedia.org/wiki/Secret_sharing

Date: 2022-07-20 18:23 (UTC)
vinsent_ru: (Default)
From: [personal profile] vinsent_ru

но зачем

Date: 2022-07-20 22:10 (UTC)
From: [personal profile] dijifi
Не влезет в память для пэтчей

Date: 2022-07-21 08:48 (UTC)
From: [personal profile] ivanrubilo
В Phenom действительно довольно немного sram доступно для модификаций микрокода, насколько я помню. Но всё же доступно сколько-то.

Date: 2022-07-21 06:57 (UTC)
kondybas: (Default)
From: [personal profile] kondybas
Было бы интересно посмотреть, как оно на нативной архитектуре может молотить. Думаю, 2х-3х быстрее, не менее. Минус товарищ майор. Плюс наборы команд по вкусу, а не так, что AVX-512 теперь простым телезрителям не положен.

Date: 2022-07-21 09:54 (UTC)
waqur: (Default)
From: [personal profile] waqur
Это вряд-ли будет возможно когда-нибудь. Аппаратный декодер команд почти всегда может разложить одну x86-инструкцию на несколько (до 5-6) микроопераций, и только когда не может этого сделать (скажем, инструкция слишком сложная, или редкая), тогда вставляет микрооперацию microcode assist (вызов процедуры в микрокоде). Ещё microcode assist может произойти в результате исключения (general protection fault, page fault), или какого-то нетипично сложного состояния (у инструкции много префиксов, вызов дальней процедуры с TSS в селекторе и т.п.). Конечно, для Атомов характерны более простые микрооперации и более компактное микроархитектурное состояние (а значит, больше микрокода), но всё равно декодер простейших x86-инструкций реализован в железе.
Edited Date: 2022-07-21 09:55 (UTC)