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

Этот материал написан посетителем сайта, и за него начислено вознаграждение.


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

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

Вступление.

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

Статья получилась большой, но в меньший объем уложиться не получилось. Итак, простыми словами о сложном.

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

По моему мнению, процессор просто получает инструкции из ОЗУ, поскольку программный счетчик тикает или выполняет задачи после прерывания. Как же он получает доступ к приложению и данным. Является ли это тем, что он не выполняет и до сих пор получает инструкции (например, для загрузки файла на жесткий диск, который должен быть открыт в приложении) и обрабатывает любые запросы, сделанные приложением, которые хранятся в ОЗУ в качестве инструкций после этого (например, сохранение файл). Или приложение и данные, относящиеся к открытому файлу (например), просто остаются в ОЗУ и вообще не получают доступ к процессору.

Аналогичным образом, прочитав статью, он сказал, что копия операционной системы хранится в ОЗУ. Затем CPU может получить доступ к операционной системе. ( Я думал, что процессор просто работал с инструкциями из ОЗУ). Как он взаимодействует с операционной системой и как прерывания отправляются в ЦП, из копии ОС в ОЗУ или из ОС на жестком диске.

Извините, если это действительно сбивает с толку, я не понял.

Корень вашего вопроса: Отсутствие четкой дифференциации между компьютерным оборудованием и компьютерным программным обеспечением.

Я не претендую на то, чтобы иметь гений и полные знания об аппаратном и программном обеспечении компьютеров, и не выйду за пределы моего домена (который является программным обеспечением), если я достигнет границы в любом месте ответа.

Ещё в конце декабря на 33 конгрессе Chaos Communication Congress в Гамбурге два представителя российской компании Positive Technologies — Максим Горячий и Марк Ермолов — сообщили о возможности свободного доступа к данным в процессорах Intel. Для доступа не нужны какие-либо специальные приборы, как раньше.

Начиная с процессоров Skylake считать информацию с регистров процессора и получить над ним полный контроль можно с помощью одного лишь кабеля для порта USB 3.0. В ряде случаев может понадобиться программатор, например, чтобы переписать BIOS, но в целом реализованный компанией штатный механизм отладки процессоров уязвим без применения специальных программ и приборов. Иначе говоря, доступен даже начинающему хакеру.

В компании Intel располагают данной информацией. Сообщается, что Intel предпринимает шаги для защиты от данной уязвимости. В настоящий момент якобы по данной схеме уязвимы только процессоры линейки Skylake U. Это процессоры для ноутбуков и компактных настольных систем типа NUC, а также для моноблоков. Уязвимость не определяется программами для защиты от подобных атак, поскольку доступ к ней находится ниже программного уровня. При этом в отличие от того же Stuxnet, который работал только под Windows, взлом с помощью отладки не требует какой-либо операционной системы.

Доступ к процессору и его данным осуществляется через отладочный интерфейс JTAG (Joint Test Action Group). Интерфейс JTAG обеспечивает доступ к аппаратной отладке ядра ОС, гипервизоров и драйверов. Для взлома достаточно штатного пакета Intel для разработчиков в виде программного обеспечения Intel System Studio и входящих в него компонентов Intel System Debugger и Intel DAL. Если возможность доступа к процессору с помощью новой технологии Direct Connect Interface (DCI) не заблокирована по умолчанию, то злоумышленник может получить полный контроль над компьютером жертвы. Технологию доступа DCI через порт USB 3.0, как сказано выше, компания Intel впервые реализовала в процессорах Skylake.

Операционная система Windows 11 имеет довольно суровые системные требования. В первую очередь многие компьютеры не подходят под требования к наличию доверенного платформенного модуля (TPM) версии 2.0. Это требование достаточно легко обойти всего за несколько минут.


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

Microsoft не очень хорошо справилась с информированием пользователей о системных требованиях Windows 11 и для чего те или иные компоненты нужны. Кроме того, за несколько месяцев предварительного тестирования условия ещё и менялись. Главная путаница связана с необходимостью модуля TPM 2.0, который прежде был нужен только в корпоративном окружении.

Microsoft хочет, чтобы Windows 11 получила дополнительный уровень безопасности, в котором модуль TPM 2.0 играет основную роль. Компанию не останавливает отсутствие этого модуля на многих компьютерах. Однако, это требование нетрудно обойти и для этого существует не один способ. Правда, после этого вы не сможете получать функциональные обновления и обновления безопасности Windows 11.


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

Один из методов требует наличия поддержки TPM 1.2. Если у вас процессор линейки AMD Ryzen 1000 или более современный и Intel Kaby Lake 7-го поколения или новее, на вашей материнской плате скорее всего есть TPM 1.2 или даже TPM 2.0.

Проверить это легко. Достаточно открыть диспетчер устройств в разделе «Устройства безопасности». Можно воспользоваться сочетанием клавиш Win + R и в открывшемся окне ввести tpm.msc. Откроется окно «Управление доверенным платформенным модулем (TPM) на локальном компьютере». Тут сказано, есть у вас этот модуль или нет.

:/>  34 совета по оптимизации и настройке windows


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

Если нет, проверьте настройки UEFI. Обычно нужно открыть вкладку «Дополнительно» и включить опцию «PTT» для систем Intel и «PSP fTPM» для систем AMD. Эта настройка есть на большинстве потребительских ПК, где она чаще всего по умолчанию выключена.

После её изменения нужно добавить ключ в реестр. Нажмите на кнопку «Пуск» и введите regedit, нажмите ввод. В адресное поле скопируйте HKEY_LOCAL_MACHINESYSTEMSetupMoSetup и нажмите ввод. Нужно создать параметр DWORD с названием «AllowUpgradesWithUnsupportedTPMOrCPU», значение выставить на 1. Создайте загрузочную флешку или диск при помощи приложения Media Creation Tool, запустите с них программу установки Windows 11 и обновите свою систему.


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

Если вы желаете выполнить чистую установку на ещё более старым процессоре, можно обойти проверки процессора и TPM в процессе установки Windows. После этого появится сообщение «На этом компьютере не работает Windows 11». Нужно вернуться на шаг назад и нажать сочетание клавиш Shift + F10 для запуска окна командной строки. Снова откройте редактор реестра, нажав пуск и введя regedit. Перейдите по адресу HKEY_LOCAL_MACHINESYSTEMSetup. Нажмите на Setup правой кнопкой мыши и создайте ключ с названием «LabConfig».

В этом ключе добавьте параметр DWORD под названием «BypassTPMCheck» со значением 1. Добавьте ещё один параметр «BypassCPUCheck» также со значением 1. Этот же процесс повторите с «BypassSecureBootCheck». Однако, если ваш компьютер не соответствует требованиям Windows 11 по объёму оперативной памяти или хранилища, лучше этим способом не пользоваться и оставаться на Windows 10.

Процессоры Intel позволяют хакеру получить полный контроль над компьютером через отладочный интерфейс JTAG. Подключение производится через порт USB 3.0 по технологии DCI, взлом не требует специального оборудования. Уязвимость присутствует в современных процессорах, начиная с семейства Skylake.


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

Процессоры Intel уязвимы через USB

Современные процессоры Intel имеют уязвимость, которая позволяет получить полный контроль над процессором через порт USB 3.0. Атака проводится через отладочный интерфейс и не отслеживается системой безопасности. О наличии уязвимости и методах защиты устройства рассказали на Всемирном конгрессе хакеров в Гамбурге сотрудники российской ИБ-компании Positive Technologies.

Уязвимость отладочного механизма

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

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

Что нужно для взлома

Для получения доступа потребуется только отладочный кабель USB 3.0 и программатор, поясняет Максим Горячий. Иногда необходимы отладочный кабель и выполнение кода. Есть вероятность, что можно обойтись только одним кабелем, считает Горячий, хотя эксперты Positive Technologies пока не наблюдали такого примера.

Для атаки используется программный пакет Intel для разработчиков системного ПО Intel System Studio. В частности, применяются входящих в него компоненты Intel System Debugger и Intel DAL. С их помощью можно получить полный контроль над компьютером жертвы. Это даст возможность читать или записывать память и регистры процессора, осуществлять остановку процессора и пошаговую трассировку и выполнять другие действия, поясняет Горячий.

Старые и новые процессоры

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

Но в 2015 г. Intel начала выпуск процессоров семейства Skylake, в которых реализовала технологию Direct Connect Interface (DCI). D CI делает возможным доступ к JTAG через порт USB 3.0. Для получения доступа на компьютере жертвы не нужно устанавливать какие-либо программные или аппаратные агенты, достаточно всего лишь активировать DCI. Это нетрудно сделать, поскольку на многих современных компьютерах возможность активации DCI не заблокирована по умолчанию. Существуют также другие способы активации.

Способы защиты

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

Горячий и Ермолов предлагают три метода защиты устройства от проникновения через DCI. Во-первых, можно активировать Intel BoodGuard, чтобы защититься от активации DCI через UEFI HII. Во-вторых, возможна частичная защита путем отключения отладки процессора в IA32_DEBUG_INTERFACE MSR. В-третьих, можно проверить, установлены ли биты DCI в устройстве P2SB.

AMD или Intel

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

Ну а как обстоят дела в плане наличия или отсутствия уязвимостей процессоров разных компаний. В разной степени этим уязвимостям подвержены процессоры всех производителей (Intel, AMD, а также построенных по архитектуре ARM). Например, компания Intel имеет 242 публично раскрытых уязвимостей. А компания AMD всего лишь 16.

Некоторые из официально опубликованных компанией Intel уязвимостей:

:/>  Быстро разблокировать учетные записи рекламных пользователей с помощью power shell


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

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

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

Разрыв получился колоссальный, не правда ли. Поэтому компания AMD ведет себя более пассивно в вопросе устранения дыр безопасности, в то время как компания Intel лихорадочно пытается их залатывать. Ну и следующие процессоры, построенные то архитектуре ARM (Cortex A15, Cortex A57, Cortex A72, Cortex A75) также не избежали этой участи. А вот, например, как бы это парадоксально не звучало, но отечественный процессор Байкал-Т1 построенный на ядрах MIPS P5600 не подвержен уязвимостям Meltdown и Spectre.

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

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

Алгоритм создания исправлений ПО на примере операционной системы AstraLinux:


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

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

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

Надеюсь, моя статья была для вас полезна. Что вы думаете по этому поводу, и сталкивались ли вы напрямую с уязвимостями? Пишите в комментариях.

Теперь тело и душа вместе, и человек (машина) может работать.

До сих пор ОС уже находится в ОЗУ и ЦП. ( Прочитайте When the power button is pressed если вы сомневаетесь в этом.) Позвольте обрабатывать свой вопрос абзацем за пунктом сейчас –

——–

К настоящему времени вы уже знаете, что действительно ОС присутствует в ОЗУ и регистры процессора. Вот где он живет. Это происходит там, где он сообщает процессору, как работать. Если ОС будет достаточно маленькой (или если регистры и кеши будут достаточно большими), ОС будет жить еще ближе к процессору.

Как вы уже догадались – CPU не получает инструкций, операционная система делает это через CPU. Кроме того, именно так, как мозг не дает непосредственного указания руками и ногами двигаться и вместо этого использует нервы для взаимодействия, ЦП не сообщает дискам давать/брать данные. Процессор работает только с ОЗУ и регистрами. Несколько единиц оборудования работают вместе, чтобы обеспечить путь для передачи данных и команд. Важными компонентами задействованного оборудования являются:

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

Первый параграф

1. Откройте меню “Пуск” и зайдите в “Параметры” (Win+I).

Разрешить или запретить приложениям доступ к вашему местоположению в редакторе реестра

1. В строке поиска или в меню “Выполнить” (Win+R) введите regedit и нажмите Enter.

Или в поле “Значение” введите Deny и нажмите на “ОК” – если вы хотите отключить доступ приложениям к вашему расположению.

На сегодня все, если вы знаете другие способы – пишите в комментариях! Удачи Вам 🙂

Компоненты компьютерной системы

Только чтобы мы поняли обо всех них и поняли их природу, позвольте мне сказать следующее:

Мы начнем с понимания с того момента, когда мы скажем, что компьютер запущен и правильно выполняет наши инструкции. Но в то время вы скажете: “Как я сюда попал? Поэтому я остановлюсь на нескольких моментах о запуске компьютера.

Третий абзац


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

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

2. Уязвимость Spectre основывается на технологии спекулятивного исполнения инструкций, значительно повышающей производительность процессора, и являющейся системой прогнозирования (предсказания ветвлений). Суть ее работы заключается в том, что при выполнении процессором вычислений он старается заранее рассчитать некоторое множество возможных сценариев событий исполняемой программы, не дожидаясь результата предыдущего вычисления, который и должен определить, какой в действительности сценарий должен выполняться по его результату. Например, процессор исполняет действие «А» и, не дожидаясь, когда станут известны результаты действия «А», рассчитывает некоторое количество наиболее вероятных действий «B, C, D, E, F», следующих за действием «А». И если оказывается, что после действия «А», должно выполняться какое-либо действие из уже рассчитанных, например «D», то тогда все хорошо, время на вычисление этого действия экономится, так как оно уже готово, и ускоряется работа процессора. Остальные не угаданные ветви действий «B, C, E, F» процессор аннулирует. Но неправильные предсказания тоже происходят, ничего страшного при этом не случается, процессор просто начинает вычисление правильного действия «W», после получения результата действия «А», и просто увеличивается время вычисления этой последовательности событий, а не угаданные действия «B, C, D, E, F» аннулируются процессором. Предсказатель ветвлений обучаем, он накапливает статистику, запоминает закономерность в вычислении действий. И повторяющиеся последовательности вероятных сценариев событий, которые он угадывал правильно, начинает считать истинными, и эти сценарии событий в следующий раз он предсказывает в первую очередь, считая их правильными, и предоставляет доступ к кэш-памяти. Этим и пользуется зловред, он подсовывает предсказателю ветвлений код похожий на целевой, и «тренирует» предсказатель ветвлений, заставляя его многократно правильно угадывать вероятный сценарий события, и считать его истинным, которое проходит «проверку» в большинстве случаев.  После накопления предсказателем ветвлений необходимой статистики зловред задает в задании другое условие, например запись в кэш – память или считывание из него необходимых зловреду данных. Предсказатель ветвлений при этом выполняет его, как истинное и предоставляет доступ к кэш – памяти. Потом он, конечно, поймет, что этот результат не является истинным, и сбросит его, но будет уже поздно, зловред свое дело уже сделает.

Результат на ПК злоумышленника выглядит так:

:/>  Убираем сообщение Вам понадобится новое приложение, чтобы открыть этот ms-gamingoverlay


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

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

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

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

3. Уязвимость ZombielLoad основывается на технологии гиперпоточности (Hyper-Threading), которая также призвана увеличивать быстродействие процессора за счет исполнения физическим ядром процессора двух потоков вычислений. Работает эта технология следующим образом. Одним физическим ядром процессора исполняется два потока кодов разных приложений. В тот момент, когда по какой-либо причине, например из-за временного отсутствия необходимых данных для продолжения вычисления первого потока, его обработка останавливается, то для предотвращения простоя этого ядра он начинает исполнять код второго потока. Особенность этой технологии, которая создала еще одну дыру в безопасности, заключается в том, что эти оба исполняемые одним ядром потока используют общую для них обоих кэш-память и буфер. Что и дает зловреду, который исполняется, к примеру, в первом потоке, возможность получить доступ к важным данным другого приложения, которое исполняется во втором потоке, из общей для них кэш-памяти. Компания Google, например, в свое время отключала на своих устройствах Chromebook функцию гиперпоточности процессоров, для блокировки данной уязвимости. Однако это снижало производительность до 40 %.


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

Второй абзац

Отсутствие различия между аппаратным и программным обеспечением является основной причиной ваших недоумений. Поразмыслите об операционных системах на Coursera или Academic Earth для более глубокого понимания.

Люди, которые нашли что-то не так в моем ответе.

Это действительно сбивает с толку. Позвольте мне попытаться объяснить.

Процессор и ОЗУ

Процессор подключен к ОЗУ через “материнскую плату”, и они работают вместе. C PU может выполнять множество инструкций, но нужно сказать, что делать с инструкциями в ОЗУ. C PU в основном находится в цикле: все, что он делает, получает следующую инструкцию из ОЗУ и выполняет ее снова и снова.

Итак, как эта RAM заполняется инструкциями?

BIOS (базовая система ввода/вывода)

Когда компьютер сначала загружается, часть ОЗУ заполняется данными с чипа на материнской плате (чип BIOS), а процессор включен и начинает обработку. Это заводские настройки.

Данные из чипа BIOS, который копируется в ОЗУ, состоит из библиотеки инструкций для доступа к аппаратным устройствам (жесткие диски, CD/ROM, USB-накопители, сетевые карты и т.д.) И программу, использующую эту библиотеку для загрузки того, что называется bootsector, первый сектор на загрузочном устройстве, в оперативную память и управление передачей (с инструкцией перехода).

Данные bootsector, загруженные программой загрузки BIOS с загрузочного устройства, очень малы – всего 440 байт, но с помощью библиотеки BIOS этого достаточно, чтобы загружать больше секторов и выполнять их. Загрузочный сектор и загружаемые им данные называются загрузчиком, который отвечает за загрузку операционной системы.

Фактически, загрузчик является более динамичной версией BIOS: программа BIOS находится во флэш-памяти, тогда как загрузчик находится на жестких дисках, USB-накопителях, SSD-дисках и т.д. И, следовательно, может быть больше и сложнее.

В свою очередь, операционная система (ОС) является просто более продвинутой версией загрузчика, так как она может одновременно загружать и запускать несколько программ из нескольких мест.

BIOS знает о дисках. Bootloader знает о дисках и разделах. О С знает о дисках, разделах и файловых системах.

CPU, как вы заметили, читает программу из ОЗУ, инструкцию по инструкции. Когда инструкция выполняется, она может ссылаться на данные, хранящиеся в памяти, которые он либо явно вводит в регистры (внутренняя память центрального процессора, довольно небольшая – на x86_64, что подобно нескольким 64-разрядным регистрам + другим элементам, таким как регистры сегментов, IP, SP и т.д.) С отдельной инструкцией или данными, считываемыми из памяти (мы говорим о небольшом количестве данных). Это все, что на самом деле.

Загрузка файла с диска будет выполнена путем запроса соответствующего контроллера для сбора данных в определенное место в памяти. C PU подключается к шинам, которые будут нести инструкции для соответствующих контроллеров.

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

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

ЦП имеет несколько внутренних областей хранения, называемых регистром. Назовем их R0 в Rn. Процессор назначает целые целевые реестры. Один из этих регистров – ПК.

Один общий режим адресации отложен. Я указываю этот режим как (Rn). Инструкция вроде этого:

MOV (R0), R1

использует значение, содержащееся в R0 в качестве адреса памяти, извлекает значение, сохраненное в этой ячейке памяти, и сохраняет копию этого значения в R1.

Последовательность команд, например:

MOV (R0), R1 MOV (R2), R3

хранится в памяти, поскольку данные (игнорируя защиту), код, данные и переменные используют один и тот же тип памяти. Другими словами, любое местоположение памяти можно интерпретировать как код, данные или переменную.

CPU выполняет следующую команду, расположенную на (ПК). После выполнения команды ЦП автоматически увеличивает ПК, указывая на следующую команду.