Сейчас на форуме: Alf, Dart Raiden, bedop66938 (+8 невидимых)

 eXeL@B —› Электроника —› project:rosenbridge - VIA C3 CPU backdoor
<< . 1 . 2 .
Посл.ответ Сообщение


Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 28 августа 2018 11:58
· Личное сообщение · #1

project:rosenbridge

Описание
Аппаратный бэкдор в процессорах VIA C3 - это скрытое несовместимое с x86 ядро, существующее наряду с основным x86-совместимым ядром. Активизируется установкой управляющего бита в служебном регистре. В некоторых случаях бэкдор активирован по умолчанию.
Позволяет получить полный контроль над системой в Ring 0.



Overview
project:rosenbridge reveals a hardware backdoor in some desktop, laptop, and embedded x86 processors.

The backdoor allows ring 3 (userland) code to circumvent processor protections to freely read and write ring 0 (kernel) data. While the backdoor is typically disabled (requiring ring 0 execution to enable it), we have found that it is enabled by default on some systems.

This repository contains utilities to check if your processor is affected, close the backdoor if it is present, and the research and tools used to discover and analyze the backdoor.

Сорсы:
https://github.com/xoreaxeaxeax/rosenbridge

-----
EnJoy!


| Сообщение посчитали полезным: SDK, ELF_7719116, 4kusNick, ntldr, stnt, HandMill, sefkrd, mak


Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 01 сентября 2018 17:33
· Личное сообщение · #2

difexacaw пишет:
Бэкдор позволяет поднять права


Именно.

difexacaw пишет:
в данном же случае нужна куча манипуляций в км что бы это запустить


В некоторых случаях бэкдор активирован по умолчанию, поэтому никаких манипуляций по активации не требуется. Таким образом, на проце с активным бэкдором можно юзать бэкдор без лишних действий.

-----
EnJoy!





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 01 сентября 2018 18:03
· Личное сообщение · #3

f13nd

> И если например в комплекте со швейной машинкой идет шлицевая отвертка, ты делаешь вывод, что этот аппарат умеет завинчивать болты?

Если бы тема была в виде - вот какая то фича в камне, какой то особенный мод и я разобрал его систему команд", то тогда я бы даже тут и не ответил. Но тут конкретно сказано - железячный бэкдор и висит видео в шапке. Введение в заблуждение.

Jupiter

> Таким образом, на проце с активным бэкдором можно юзать бэкдор без лишних действий.

А что бы заюзать нужны км права!?

Добавлено спустя 6 минут
Jupiter

> бэкдор активирован по умолчанию

Тоесть если это как то запустится, то ось крэшнет без должной поддержки на уровне ядра, так как обработка невозможна из за отсутствия прав ?

-----
vx





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 01 сентября 2018 18:16 · Поправил: f13nd
· Личное сообщение · #4

difexacaw пишет:
Тоесть если это как то запустится, то ось крэшнет без должной поддержки на уровне ядра

без поддержки 1 инструкции в юзермоде? ось крашнет? там в одном из примеров перед этим seh устанавливается, который в случае исключения прибавляет к eip 2.
difexacaw пишет:
тут конкретно сказано - железячный бэкдор и висит видео в шапке.

к этой гифке надо было абстрактного црушника подрисовать, чтоб всем сразу все стало понятно?

-----
2 оттенка серого





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 01 сентября 2018 18:23
· Личное сообщение · #5

f13nd

Если какое то событие приводит к смене режима, те переход в км, то там должно быть всё настроено для такого вызова заранее. Иначе управление улетит вникуда, ось упадёт. Если возможность такой обработки ограничена правами(нулевой кпл), то это просто errata в процессоре, а не бэкдор.

-----
vx





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 01 сентября 2018 18:48 · Поправил: f13nd
· Личное сообщение · #6

difexacaw пишет:
Если какое то событие приводит к смене режима, те переход в км

Там смены режима не происходит. Можно просто читать-писать память ядра минуя все проверки, об этом сказано, я даже цитировал. Типа х86 будет эти баунды исполнять, а это дополнительное ядро то, что в них подшито. Хз как такое возможно, но типа вот так.

-----
2 оттенка серого





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 01 сентября 2018 19:20 · Поправил: difexacaw
· Личное сообщение · #7

f13nd

Хорошо. Тогда возникают вопросы, зачем все эти манипуляции в км и в частности с IDT. Без них - не получится, крэшнет, если будет смена мода. Окружение ядерное не настроено. Нельзя просто взять и прыгнуть в км.
Далее откуда автор инфу накопал, errata present на cpu, вот только не гуглится.

Добавлено спустя 4 минуты
> Можно просто читать-писать память ядра минуя все проверки

Опять же, если есть права на запись в км, то не нужна вся эта куча кода. Регистрируем к примеру ISR и вуаля - мы в контексте ядра корректным образом. Но всё же для чего то извраты использовались, не просто так.

-----
vx





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 01 сентября 2018 19:31 · Поправил: f13nd
· Личное сообщение · #8

difexacaw пишет:
Хорошо. Тогда возникают вопросы, зачем все эти манипуляции в км и в частности с IDT. Без них - не получится, крэшнет, если будет смена мода. Окружение ядерное не настроено.
Далее откуда автор инфу накопал, errata present на cpu, вот только не гуглится.

Я не знаю. Ему было надо угадать формат этих инструкций, видимо втупую перебирал, дампил, сравнивал куда что улетело. Шут его знает какие там особенности и что для этого надо делать, тем более в никсах. Для этого надо заниматься примерно тем же самым и на линухе, чтоб иметь представление зачем и что он там делал. Мне вся эта история видится возможной только в случае если он видел пример использования и заинтересовался что за дичь тут происходит. С большей вероятностью метеорит на башку упадет, чем будет исполнена несуществующая инструкция, по eax будет баунд и этот баунд хотя бы кернел паник вызовет, чтоб себя как-то проявить. И все это при включенном по умолчанию бекдоре или случайно ставшей правильной конфигурацией msr. Ну ладно, пусть инструкция была vpcext из антиотладки в вирусне какой-нибудь, но все остальное слишком случайно.

-----
2 оттенка серого





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 01 сентября 2018 19:46 · Поправил: difexacaw
· Личное сообщение · #9

f13nd

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

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

-----
vx





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 01 сентября 2018 19:53
· Личное сообщение · #10

difexacaw пишет:
На процессоры постоянно вендоры публикуют найденные косяки(errata).

Вряд ли CIAVIA стали бы этот косяк публиковать, даже если он не задумывался как бекдор и это просто инженерный костыль.

-----
2 оттенка серого





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 01 сентября 2018 19:59
· Личное сообщение · #11

f13nd

Вот и я так же думаю. По этому и сомневаюсь, про это обсуждение выше. Если бы это был нэйтив пример, можно было бы разобраться. Но это ядерный пример с кучей линукс особенностей ядра и понять что там зачем сложно.

-----
vx





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 01 сентября 2018 20:05
· Личное сообщение · #12

difexacaw пишет:
понять что там зачем сложно

Так там написано что зачем, я прочитал описание папки kern и сразу к ней интерес потерял. На гифке пример использования, прямо показан исходник, сборка, запуск и что рутом стал юзер. Мечта любителей сплоетов, чтоб настолько понятно все было.

-----
2 оттенка серого





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 01 сентября 2018 20:07
· Личное сообщение · #13

f13nd

В никсах понятие защиты как таковое отсутствует. Каждый билдит ось как хочет. Стандартом написания эксплойтов является именно нт, так как там механизмы защиты чётко определены.

-----
vx





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 01 сентября 2018 20:15
· Личное сообщение · #14

difexacaw пишет:
В никсах понятие защиты как таковое отсутствует. Каждый билдит ось как хочет. Стандартом написания эксплойтов является именно нт, так как там механизмы защиты чётко определены

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

-----
2 оттенка серого





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 01 сентября 2018 22:58 · Поправил: difexacaw
· Личное сообщение · #15

f13nd

Да чёрт с этими никсами, почему нет реализации под нт, где это можно всё конкретно и быстро разобрать ?

Учитывая необходимость в кернел окружении даже не может походу и речи быть про запуск на нт. Защита(архитектура как в MLT) зарубает на корню это всё, поэтому POC в никсах.

-----
vx





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 01 сентября 2018 23:07
· Личное сообщение · #16

difexacaw пишет:
Да чёрт с этими никсами, почему нет реализации под нт, где это можно всё конкретно и быстро разобрать ?

Выкинь запуск шела, разберись с ассемблером, вставь, собери mingw, вот тебе реализация под нт. С msr придумай что-нибудь сам. Почему это должно быть руководством к действию? Особенно учитывая то, что этот тайванец и в лучшие свои годы был не особо кому-то нужен.

-----
2 оттенка серого





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 01 сентября 2018 23:14 · Поправил: difexacaw
· Личное сообщение · #17

f13nd

Мне незачем(и особенно нечего, ваш совет не уместный) разбираться с асм. Я выше уже несколько раз повторил про причины реализации на никсах. Это вероятно как и MLT только там и сработает, такова архитектура.

Добавлено спустя 15 минут
> Почему это должно быть руководством к действию?

Это не руководство к действиям, а как и говорил введение в заблуждение. Порт на нт просто невозможен, если как вы говорите в никсах открыты мср - то в нт всё иначе. Там ничего делать нельзя из того, что делал автор тех сурков(к примеру установка своих дескрипторных таблиц это андок, что приведёт к использованию кучи моторов, один будет парсить ядро что бы вытянуть необходимые структуры, другой будет регистрировать KiDbg фильтр etc).

Даже если бы это и сработало на нт, то реализация была бы довольно сложной. Это значит что не приемлемой. Обход системной защиты более сложен, чем поднятие привилегий до км на нт.

Добавлено спустя 28 минут
> С msr придумай что-нибудь сам.

Придумать нечего. Я не знаю архитектуру линей, но хорошо знаю нт. Там любая передача управления в км должна происходить чрез формирование T-фреймов. Иначе ось падает. Тоесть невозможно просто записать поинтер и на него передать управление. Даже если это сработает в обход железячной защиты, то это уронит ось.

Возможно в никсах иначе я хз. Но первый вопрос всё же это не снимает - нужны км права для запуска сабжа.

-----
vx





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 02 сентября 2018 03:09
· Личное сообщение · #18

автор же выкладывал утиль для брута процессора на скрытые команды для системы NIX ,--> Link <--

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 145.8 (ветеран), 190thx
Активность: 0.140.36
Статус: Участник

Создано: 03 сентября 2018 09:26
· Личное сообщение · #19

Ну раз вы осилили прочитать эту бредятину от афтара, то почему не осилили погуглить датащит на этот проц и убедиться в том что это не бекдор, а отладочный интерфейс - http://datasheets.chipdb.org/VIA/Nehemiah/VIA%20C3%20Nehemiah%20Datasheet%20R113.pdf (ALTERNATE INSTRUCTION EXECUTION)

Code:
  1. This alternate instruction set is intended for testing,
  2.  debug, and special application usage. Accordingly, it 
  3. is not documented for general usage. If you have a 
  4. justified need for access to these instructions, contact 
  5. your VIA representative.


Сомнительно что афтар не осилил нагуглить это тем более что осилил нагуглить патенты VIA с которых на этот "бекдор" и вышел. Что более вероятно перед вами яркий пример подмены понятий и очередного вниманияблядства от псевдореверсов стремящихся в теплый и уютный ентерпрайз.

| Сообщение посчитали полезным: mak, ntldr, bartolomeo, difexacaw


Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 03 сентября 2018 09:42
· Личное сообщение · #20

Фиаско. Таки инженерный костыль. А какое понятие было подменено?

-----
2 оттенка серого





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 10 сентября 2018 00:26 · Поправил: difexacaw
· Личное сообщение · #21

f13nd

Вот и получается что это как и предполагалось не бэкдор, а дебаг фича. А эти все действия с IDT etc лишь настройка окружения для запуска отладочного механизма. Кстате как пример не годится, не думаю что нужно архитектурные железные механизмы трогать, что бы установить ловушки или выполнить какие то иные подобные действия, для этого должен быть гибкий ядерный апи. Но это ведь никсы, дичайший изврат, но зато опенсорсно; зачем системный апи, если можно заколхозить напрямую

-----
vx





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 10 сентября 2018 03:07
· Личное сообщение · #22

difexacaw пишет:
А эти все действия с IDT etc лишь настройка окружения для запуска отладочного механизма.

Мне kern/privregs/privregs.c видится как тупо пример, который он изучал, чтоб научиться юзера делать рутом с режима ядра.

-----
2 оттенка серого


| Сообщение посчитали полезным: difexacaw

Ранг: 42.8 (посетитель), 16thx
Активность: 0.020.06
Статус: Участник

Создано: 26 октября 2018 16:15 · Поправил: bartolomeo
· Личное сообщение · #23

вот этот товарищь всё раскопал - --> Link <--

но как то неочевидно почему он вообще начал копать сторону бекдора в проце.



Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 28 октября 2018 08:21
· Личное сообщение · #24

Народ, у кого-нибудь тут имеется в наличии VIA'вский процессор? Нужна помощь в тестировании криптографической библиотеки. Код для VIA есть, проверить негде.

-----
PGP key <0x1B6A24550F33E44A>





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 03 ноября 2018 21:37
· Личное сообщение · #25

bartolomeo

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

Добавлено спустя 6 минут
ntldr

Я как то попросил обычный модуль ядра от 10-ки, так никто и не дал, всем пофиг. А вы хотите найти спец железо, увы это врядле возможно. Вам следует зайти в какую то конфу, где высокая активность и там спросить, возможно так найдётся нужная железка.

-----
vx




Ранг: 42.8 (посетитель), 16thx
Активность: 0.020.06
Статус: Участник

Создано: 03 ноября 2018 22:20 · Поправил: bartolomeo
· Личное сообщение · #26

да я просто под впечатлением от видео подумал что чувак неимоверно крут ) - потом уже увидел пост Alchemistry.

ещё в даташите указано что
Code:
  1. From x86 mode, the availability of the Alternate Instruction Set can be detected by executing a CPUID
  2.  with the EAX register set to 0xc0000001 and then examining the EDX register. If EDX bit 0 is set to 1, then AIS
  3.  is supported. If EDX bit 1 is also set to 1, then AIS is enabled.[6] If AIS is supported by the CPU, then its status
  4.  can be checked and altered through the Model-specific registers, by checking and setting the Feature Control
  5.  Register (FCR, register 0x1107). If bit 0 ("ALTINST") is set to 1, then AIS is enabled.[6]


и смотрим на полное описание инструкции CPUID например тут - --> Link <--

и видим какие биты отвечают за поддержку скрытых инструкций.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 06 ноября 2018 00:54
· Личное сообщение · #27

bartolomeo пишет:
как то неочевидно почему он вообще начал копать сторону бекдора в проце


Начинал он с другого: с инструмента поиска скрытых (недокументированных) инструкций процессора.

Статья с деталями:
- Breaking the x86 ISA

Собственно инструмент:
- sandsifter @GitHub



-----
EnJoy!


| Сообщение посчитали полезным: plutos, 4kusNick, bartolomeo
<< . 1 . 2 .
 eXeL@B —› Электроника —› project:rosenbridge - VIA C3 CPU backdoor
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати