В процессоре Apple M1 нашли уязвимость, созданную самой компанией

Егор


SoC Apple M1 находится у всех на слуху последние полгода, поэтому не удивительно, что к ней привязаны взоры в том числе разработчиков и экспертов по безопасности. И создатель Asahi Linux Гектор Мартин нашел в этом процессоре одну интересную уязвимость, которую можно считать «закладкой» от Apple.

Называется она M1RACLES, то есть дословно «чудеса», и появилась она из-за того, что Apple решила нарушить спецификации ARM, выкинув из процессора пару инструкций. Видимо, компания посчитала, что они не нужны для работы ядра Darwin в macOS и iOS. 

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




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

Подчеркивая теоретичность этой уязвимости, Мартин дал ей шутливое название «M1RACLES» и даже создал сайт с ее описанием, где подробно объясняет принцип ее работы в забавной форме. В частности, описывая уязвимые системы, Мартин (разумеется в шутку) упоминает Newton OS, которая работала на одноименном планшете компании еще в 90-ые годы, подчеркивая, что теоретически в нем был установлен процессор Apple Silicon. 

Что касается Apple, то она признала дыру, обнаруженную Мартином, и присвоила ей имя CVE-2021-30747. Впрочем, закрыть ее программно компания все равно скорее всего не сможет без переписывания большей части ядра Darwin с нуля. С учетом того, что Apple обычно серьезно относится к конфиденциальности, но в данном случае не стала предпринимать какие-либо действия, аналогично подтверждает безопасность новой уязвимости.
12
iGuides в Яндекс.Дзен —  zen.yandex.ru/iguides.ru
iGuides в Telegram — t.me/igmedia

Будь в курсе последних новостей из мира гаджетов и технологий

Мы в соцсетях

Комментарии

–33
Да всем пофиг на эти «дыры»
27 мая 2021 в 22:47
#
+17
Какие пару инструкций они выкинули? Типичная статья от Морозова, скопировать у других, а первоисточник не проверить. Межпроцессных способов взаимодействия и так тысячи, от posix до darwin notifications, так в чем уязвимость? Автор же сам пишет, что это кликбейт и он играет в «плохую эпл»

So what's the point of this website?

Poking fun at how ridiculous infosec clickbait vulnerability reporting has become lately. Just because it has a flashy website or it makes the news doesn't mean you need to care.

If you've read all the way to here, congratulations! You're one of the rare people who doesn't just retweet based on the page title :-)
28 мая 2021 в 10:16
#
Егор Морозов
+1765
Какие пару инструкций они выкинули?
Очень рекомендую почитать про гипервизоры, регистры процессора, и как все это связано с инструкциями.
Автор же сам пишет, что это кликбейт и он играет в «плохую эпл»
Хотя разумеется что-то читать вы не будете — вы несколько абзацев новости-то осилить не смогли.
Межпроцессных способов взаимодействия и так тысячи
ага, и каждый первый из них работает без общего кэша и имеет торчащие наружу биты, которые может прочитать кто угодно.
28 мая 2021 в 11:40
#
+17
Я задала вполне конкретный вопрос: какие инструкции они выкинули? Говорить что читать мне не надо, я, как программист, знаю это намного лучше вас.
28 мая 2021 в 12:18
#
Егор Морозов
+1765
я, как программист, знаю это намного лучше вас.
оно и видно. Итак, открываем источник, который я, оказывается, не читал:

Linux supports both modes, where KVM on ARMv8 can run as a little Type 1 hypervisor built into the OS, or as a Type 2 hypervisor like on x86. Running in Type 1 mode (“non-VHE”) would make mitigating the vulnerability possible. However, in their infinite wisdom, Apple decided to only support Type 2 (VHE) mode on Apple Silicon chips, in violation of the ARM architecture specification which requires Type 1 support (non-VHE). So you can't actually run Linux in Type 1 mode on Apple Silicon. In fact, we had to patch Linux to work around this violation of the spec, because on every other ARM chip, it'll always start in non-VHE mode and only switch to VHE mode later.

Объясняю для программиста, который все знает лучше всех: M1 поддерживает только VHE-режим работы гипервизора, режима без VHE нет. Как этого можно добиться? Да очень просто — выкинув инструкции, нужные для работы этого режима. Какие именно инструкции? Ну, M1 — проц закрытый, это вам только пара инженеров компании скажет. Зачем Apple это сделала? Посчитала, что non-VHE режим для виртуализации под macOS не потребуется, а снижение количества инструкций ускоряет конвейер (а также, возможно, позволяет сэкономить на транзисторах, так как инструкции для виртуализации частенько реализуют «в кремнии»).

На будущее — перед тем, как ерничать, разберитесь самостоятельно в вопросе, чтобы в лужу не сесть.
28 мая 2021 в 12:30
#
+17
Вот вы и сами написали, что «выкинутые инструкции» это просто ваша догадка))) В том то и дело, что проц закрытый, и вы в принципе не можете знать что там происходит. Я об этом и говорю.

И повторюсь, есть darwin notifications, процессы давно могут общаться на уровне ядра ос, и передавать не 2 бита, а сколько угодно. Так в чем уязвимость? Автор для этого и сделал сайт, чтобы показать как вы ведётесь на любые кликбейты и раздуваете из мухи слона.

В лужу садитесь вы с каждой 3-4 своей статьей. У вас и inset tableview «скрытно доступна», и лейфилд энергоэффективне М1, и в киберпанке всего 30к возвратов)))))))))) Во всех случаях, первоисточник вы не читали. Я же говорю, типичная статья от вас☺️

28 мая 2021 в 13:22
#
Егор Морозов
+1765
Вот вы и сами написали, что «выкинутые инструкции» это просто ваша догадка)))
Поэтому я предложил всезнающему погромисту почитать, как работает гипервизор, но вы решили сумничать и попасть впросак. Закрытость M1 к этому отношение не имеет вообще. Гипервизор урезается отключением инструкций. Точка.
процессы давно могут общаться на уровне ядра ос, и передавать не 2 бита, а сколько угодно
угу. Могут. Например, через защищенную память под контролем супервизора. Расскажите мне способ прямого взаимодействия двух процессов? Вы же программист, должны знать).
Так в чем уязвимость? Автор для этого и сделал сайт, чтобы показать как вы ведётесь на любые кликбейты и раздуваете из мухи слона.
Опять не дочитали этот сайт? Уязвимость реальна, ей даже номер присвоен. Просто эксплуатировать ее сложно и нет смысла, о чем автор и пишет.
У вас и inset tableview «скрытно доступна», и лейфилд энергоэффективне М1, и в киберпанке всего 30к возвратов)))))))))) Во всех случаях, первоисточник вы не читали. Я же говорю, типичная статья от вас☺️
Да, во всех этих материалах я указывал первоисточник и дополнительные пруфы. Например, из ветки комментариев, где я скриншотом доказал энергоэффективность Lakefield, вы вообще сбежали, ибо крыть нечем было.
28 мая 2021 в 13:32
#
+17
Больно же ты реагируешь на критику))) Сказал бы сразу, что не разбираешься, и это просто твоя догадка — вопросов бы не было.

Я уже привела пример способа. А эта «уязвимость» тоже не является прямым взаимодействием, системе же ничего не мешает следить за этим регистром или даже крешить процессы, которые его используют.

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

Я никуда не сбегала, ты вообще-то не со мной спорил)))))))))))) Я просто молча орала с твоих комментариев, особенно со скриншота, который должен доказать энергоэффективности лейкфилда путём использования только энергоэффективных ядер)))))))
28 мая 2021 в 14:07
#
Егор Морозов
+1765
Ясно, крыть как обычно вам нечем, разбираться в работе гипервизора, как я сразу и сказал, вы не стали (как и в принципах изоляции процессов), зато решили перейти на «ты» и троллинг. Ну что ж, желаю удачи пользователям ваших приложений, им явно пострадать придется.
28 мая 2021 в 14:15
#
+17
Человек, проигнорировавший почти все что я сказала, говорит, что это мне нечем крыть))) Ну да, ну да))) Я экспериментируют с hypervisor framework ещё с самого выхода М1, и я прекрасно знаю, что он ограничен специально, чтобы приложения использующие его могли работать из под hardened runtime, и следовательно быть нотифицированы или выложены в аппстор. Знать как это устроено под капотом ты физически не можешь, поэтому я и спрашиваю какие инструкции они удалили. Но ты ответить не можешь, посылаешь меня к документации, которую я и так лучше тебя знаю🤔
28 мая 2021 в 14:57
#
+17
Ой, кажется кто-то сам сбежал, потому что ему самому крыть нечем😛🤣
29 мая 2021 в 13:47
#