- BrainTools - https://www.braintools.ru -

Чужой компьютер: почему ваш телефон вам не принадлежит — и что с этим делать

Чужой компьютер

Чужой компьютер

Вы держите в руках устройство, в котором прямо сейчас исполняется код по меньшей мере восьми разных авторов. Ваш среди них один: операционная система и приложения. Он же самый бесправный. Мы узнали это на практике: написали свою ОС на Rust, загрузили её на обычный планшет Samsung Galaxy Tab S6 и полгода разбирались, кто ещё живёт внутри чипа и чьи правила там действуют. Ниже о том, как современное устройство устроено, почему «мой телефон» неточное выражение, что с этим можно сделать и чего нельзя. Каждое утверждение в тексте мы проверили руками на железе, и почти каждое вы можете проверить на своём.

UPD 2. Два слова о том, кто говорит «мы». Небольшая команда, которая пишет собственную операционную систему на Rust с чистого листа: не Linux и не форк, а своё ядро без std, свой планировщик, хранилище и графика. Одна и та же система работает процессом на macOS и Linux, в QEMU на ARM64, на микроконтроллере Cortex‑M4 со 128 КиБ памяти [1] и на планшете Galaxy Tab S6. Заменять Android на планшете мы не собирались; он понадобился как инструмент. Увидеть, что именно чипы требуют от хоста и как реагируют на ответы, можно только одним способом: обслуживать их самому, без вендорских блобов, и всё описанное ниже мы нашли по дороге к работающему Wi‑Fi. Язык здесь ни при чём: на C или в mainline Linux вы увидите в логах то же самое. Rust упомянут только чтобы было понятно, откуда взялись логи.

Ничего из этого не является свойством нашей ОС. Кто грузит чип, кто владеет IOMMU, где лежат файлы модема, у кого ключ от Wi‑Fi: всё это задано загрузчиком, TrustZone и гипервизором до старта любой операционной системы. Android, Linux, наша или чья угодно на этом железе могут только заметить это или не заметить; наша ОС ничего здесь не меняет и лишь дала возможность посмотреть. Поэтому читайте текст как разбор железа, а не как рассказ о чужой системе.

О чём эта статья. Кто исполняется в вашем устройстве помимо вашей ОС и что каждый из них может (таблица ниже собрана из наших логов загрузки). Как мы это измерили: тайминги, коды ответов, десять перезагрузок. Кто из атакующих на это способен, что каждому нужно и кому это реально грозит. Как проверить своё устройство за десять минут (команды в разделе «Понять, защититься, заменить»). И что с этим делать на трёх уровнях. Где мы чего-то не знаем, сказано прямо.

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

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

Что сделали. Загрузили собственную ОС на Snapdragon 855, подняли Wi‑Fi с нуля (32 000 строк вместо 950 на макетке) и составили карту всех, кто исполняется рядом с нами, и того, что каждый из них может.

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

Кто исполняется в телефоне кроме вашей ОС

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

Школьная модель «процессор исполняет операционную систему, ОС управляет железом» устарела лет пятнадцать назад. Современная система-на-кристалле похожа на многоквартирный дом, где операционная система один из жильцов, причём не на верхнем этаже. Вот кто живёт в типичном флагманском Android на Qualcomm; у других вендоров имена другие, роли те же.

Кто

Что может с вами

Что можете вы

TrustZone (EL3, Qualcomm)

Проверяет подписи и запускает прошивки, ставит заборы в памяти, перезагружает чип без объяснений. Лог зашифрован.

Просить: smc-вызовы по документированному списку.

Гипервизор (EL2, Samsung)

Владеет IOMMU, единственным забором между DMA чипов и вашей памятью. Наложил вето на наш запрет DMA для Wi‑Fi: мы записали bypass, прочитали обратно fault.

Ничего. Записи в его регистры молча переписываются.

Контроллер питания (AOP)

Держит все рельсы и такты. Наш неверный голос за один уровень напряжения обесточил цифровую логику [2] всего SoC.

Голосовать, не приказывать.

Загрузчик (S‑Boot)

Решает, что загрузится: ваша ОС, recovery или режим прошивки. Выбор хранится в одном байте микросхемы питания.

Ничего, пока он не передал вам управление.

Модем (80 МБ подписанной прошивки)

Сотовая связь, GNSS и вся логика Wi‑Fi. Требует четыре сервера от хоста; хранит свои файлы на вашем диске в разделах, которые переживают factory reset. Один отказ на запрос убивает его через 23 мс.

Обслуживать. Мы научились обслуживать так, чтобы он ничего не получал.

DMA‑каналы Wi‑Fi (12 штук)

Читают и пишут вашу RAM по физическим адресам: ядро, ключи, переписку. В стоковом Android без трансляции (qcom,smmu-s1-bypass).

Отдать им ровно 4 МиБ и надеяться, что забор поставит кто-то другой.

Дисплейный контроллер

Свой DMA‑поток в память. Показывал логотип, пока мы не подменили содержимое.

Подменить кадр.

Микросхема питания (PMIC)

Единственная память, которая переживает сброс. Мы сделали её свидетелем: 72 байта «последних слов» перед каждым опасным шагом.

Читать и писать 1,5 КиБ.

Вы (EL1: ОС, приложения)

—

Просить, голосовать, обслуживать, валидировать, запирать то, до чего дотягиваетесь. Ни одного «запретить», ни одного «проверить их код».

Планшет Galaxy Tab S6, Snapdragon 855. Адреса и регистры для каждой строки лежат в наших логах загрузки; в этой статье они не нужны.

Карта власти в устройстве: держатели ключей, жильцы с DMA, вы, внешний мир

Карта власти в устройстве: держатели ключей, жильцы с DMA, вы, внешний мир

Стрелки из вашего блока: просьбы и обслуживание. Стрелки в него: власть.

Заметьте направление стрелок. Всё, что исходит от вас, это просьбы, голоса и ответы на запросы. Всё, что входит, это власть: право перезагрузить, право прочитать память, право не загрузить. Для современного SoC такое устройство нормально; проблема начинается, когда владелец о нём не знает.

В таблице восемь строк, а не двадцать, потому что в неё попали только те, с кем мы физически столкнулись по дороге к Wi‑Fi. За кадром остались камера (в бюджетном MediaTek это около 15 миллионов строк кода со своим отдельным IOMMU), GPU, сенсорный контроллер, сканер отпечатка с собственным MCU, NFC, аудио‑DSP, сенсорный хаб (SLPI), контроллер накопителя UFS, SIM‑карта со своей операционной системой и апплетами и чип в кабеле USB‑C. У двух из них есть задокументированная история злоупотреблений: Simjacker в 2019 году отправлял команды SIM Toolkit через апплет S@T Browser, и карта силами модема отдавала местоположение и IMEI по SMS, без участия ОС, у операторов примерно в 30 странах; а баг прошивки eMMC у Samsung в 2012 году (MAG4FA/VYL00M) превращал обычный wipe в recovery в кирпич.

Полезнее делить жильцов не по объёму кода, а по двум признакам: есть ли у него DMA в память хоста и кто держит перед ним забор. SIM, SD‑карта и чип в кабеле в память не пишут; они разговаривают с хостом через модем, контроллер накопителя и PD‑контроллер, и после их компрометации нужно пробивать ещё один слой. Камера, GPU и Wi‑Fi пишут напрямую. В дереве устройств того же Tab S6 картина у них разная: GPU и камера стоят за SMMU с трансляцией, которую настраивает ядро, а у Wi‑Fi стоит явный qcom,smmu-s1-bypass. Поэтому в статье именно Wi‑Fi, а не GPU: не потому, что он опаснее по природе, а потому, что ему одному в стоковой конфигурации забор выключен. Mainline Linux на том же чипе трансляцию включает; это одна строка в device tree.

Что мы проверили руками

Четыре наблюдения из логов, регистров и десяти перезагрузок. Тайминги и коды ответов, а не домыслы.

  • 32 000: столько строк кода понадобилось, чтобы Wi‑Fi‑чип заработал на планшете. На макетке с ESP32 та же задача занимает 950 строк. Разница уходит на обслуживание привилегированного жильца: четыре сервера, загрузчик подписанных образов, семь рельс питания.

  • 23 мс: столько проходит между нашим ответом «нет такого раздела» на запрос модема и его смертью. Прошивка проверяет только форму ответа: отказ она считает неисправностью хоста, а пустой ответ принимает.

  • ∞: столько живут файлы модема на вашем диске: разделы modemst1/2 не трогает ни factory reset, ни переустановка ОС. Linux и Android отдают их модему настоящими. Мы подсунули тень в RAM, и он не заметил.

  • 0: столько заборов стоит между Wi‑Fi‑прошивкой и памятью ядра в стоковом Android: «bypass» там оформлен как трансляция с выключенной трансляцией. Изменить это мог бы только гипервизор. Он сказал «нет».

Смерть видна по одному биту: слово SMP2P slave-kernel, которое модем выставляет над общей памятью, меняется с 6 («готов») на 7 («fatal»), и remoteproc фиксирует переход running → crashed. Причины в SMEM (SMEM_SSR_REASON_MSS0) нет: модем умирает раньше, чем стартует его собственный сервис ошибок. Таймлайн взят из лога нашего сервера rmtfs, который ведёт по каждому вызывающему список OPEN, RW_IOVEC и отказов:

  1. OPEN /boot/modem_fs1: открыт, прочитан заголовок (один сектор со смещением 512).

  2. OPEN /boot/modem_fs2: открыт, прочитан заголовок.

  3. OPEN /boot/modem_fsg: отказ no such partition. В GPT этого планшета раздела fsg нет вообще.

  4. +23 мс: slave-kernel = 7, running → crashed. Воспроизводится каждый раз.

Контрольный эксперимент и обход: тень вместо диска

Контроль: если сервер rmtfs не поднимать вовсе, модем живёт около 40 секунд и падает с efs sync failed. Почему отказ на fsg фатален мгновенно, а отсутствие сервера убивает только через 40 секунд, мы не знаем, код прошивки закрыт; утверждать можем только тайминг и воспроизводимость.

Обход: отсутствующий раздел открывается пустым, как тень из нулей размером с modemst1. EFS модема знает состояние «стёртая золотая копия»: читает заголовок, выбирает рабочую копию и идёт дальше. В коде остались оба ответа: Refusal::NoPartition, как отвечает rmtfs из утилит qrtr для Linux, и флаг blank_missing, включённый по умолчанию.

«Тень вместо диска» стало общим правилом всех наших серверов для модема. Модем сам до диска не дотягивается: он читает и пишет разделы через хост посекторно (OPEN → ALLOC_BUFF → RW_IOVEC с диапазонами секторов в общий регион RAM). При OPEN раздел один раз читается в RAM, и все дальнейшие RW_IOVEC, чтения и записи, идут в эту копию; пути записи на диск в коде нет. Модем видит, что его записи «легли», диск не меняется, перезагрузка всё забывает [3]. Цена: часть функций сотового модема без персистентного EFS работать не будет, и мы платим её осознанно. Содержимое modemst* мы не разбирали и ничего о нём не утверждаем; наблюдали только паттерн доступа.

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

У модема есть собственный uplink в сеть оператора, и он структурно идёт мимо VPN, файрвола и любых ваших настроек. На iOS с 2019 года в авиарежиме Bluetooth и Wi‑Fi намеренно не выключаются; на Android модем уходит в low‑power mode силами собственной прошивки и сам решает, что делать с запросом.

Wi‑Fi‑прошивка как жилец с ключами арендодателя

Wi‑Fi‑прошивка как жилец с ключами арендодателя

«Wi‑Fi‑чип» на современном SoC: половина модема с DMA, файловым сервером и своим радио.

То же самое в ноутбуке, iPhone и лампочке

Принцип не зависит от вендора; меняются только имена. И не зависит от ОС: Android, Linux, iOS или наша.

Соблазнительно сказать, что это про Android на Snapdragon. Протокол, который мы обслуживали, у Qualcomm общий для любого хоста: он же на Windows‑ноутбуках с Snapdragon X Elite, он же на x86 с картами QCA (где трансляция DMA является opt‑in свойством драйвера), он же в iPhone с модемом Qualcomm, где перед модемом всегда стоит DART, потому что Apple жильцу не доверяет. У Broadcom, MediaTek, Exynos свои имена и та же архитектура: подписанная прошивка, DMA, свой uplink.

В ноутбуке жилец с DMA приходит ещё и через порт. Thunderclap в 2019 году показал, что устройство в разъёме Thunderbolt читает память хоста на macOS, Linux и Windows даже при включённом IOMMU, потому что ОС ставила забор слишком широко. Карта памяти пока «проситель» без прямого доступа к RAM, но с приходом SD Express она переезжает на PCIe и становится жильцом с DMA; через пару лет это будет отдельной строкой в таблице выше.

Мобильными SoC дело не ограничивается. На Raspberry Pi первым стартует VideoCore, графический процессор с собственной закрытой прошивкой и собственной ОС; именно он инициализирует память и запускает ARM‑ядра, а Linux общается с ним через mailbox. На Pi арендодатель загружается раньше жильца в самом буквальном смысле.

Спустимся ниже. ESP32 в «умной» лампочке исполняет блоб Wi‑Fi‑стека в вашем адресном пространстве, с вашими ключами, и за пять лет в этом блобе нашли три громких уязвимости. Поднимемся выше, в софт, и увидим ту же картину:

  • Расширение браузера с правом «читать и изменять все ваши данные на всех сайтах». Это жилец с ключами от всех ваших страниц. Так устроено большинство «бесплатных VPN для Chrome», и за это магазины их регулярно удаляют.

  • Приложение с доступом к контактам, микрофону и фоновой сети. Процесс, чей код вы не читали, на устройстве, где ОС не может проверить, что он делает с данными после отправки.

  • Облако и чужие API. Каждый запрос к чужой модели ИИ кладёт ваш документ на чужой сервер. «Мы не обучаемся на ваших данных» записано в политике, а политику меняют одной строкой в договоре.

  • Умный дом от бренда: хаб, который перестаёт работать без чужого сервера, и панель, прошивку которой обновляет не владелец дома.

Общая формула: доверенная база, которую вы не выбирали и не можете проверить. Устройства различаются только тем, насколько щедро хост обслуживает жильца: даёт ли настоящий диск, транслирует ли DMA, проверяет ли сертификат сервера, к которому ходит сам.

Есть и архитектурный ответ. Librem 5 и PinePhone выносят модем на USB, где у него нет DMA в память хоста, а аппаратные переключатели рвут питание радио; то самое «проверить можно только снаружи» там превращено в выключатель. Цена: другой класс производительности и стоимости, и жильцы внутри всё равно чужие. У PinePhone модем Quectel EG25‑G с закрытым baseband (открытая прошивка есть только для его прикладного ядра, DSP остаётся блобом), Wi‑Fi там Realtek с закрытой прошивкой; у Librem 5 модем на M.2 за USB и тоже закрытый. Единственное известное нам устройство, где код целиком ваш, это Precursor: SoC на FPGA, всё открыто, и ровно поэтому в нём нет сотового модема вообще. Открытого baseband с сертификацией оператора не существует. Поэтому реалистичная цель формулируется не как «без блобов», а так: блобы за забором, который контролируете вы, и обслуживание, при котором они не получают ничего лишнего.

Модель угроз

Пять классов атакующих, что каждому нужно и что он получает. Чего в списке нет, сказано тоже.

Сначала про пропорции. Подавляющее большинство задокументированных целевых атак на телефоны идёт через ОС и мессенджеры (Pegasus через iMessage, Predator через ссылки), а не через baseband. Прошивки модема и Wi‑Fi это слой, до которого патчи доходят последними (для не‑Pixel устройств лаг измеряется месяцами) и который не видит ни MDM, ни антивирус, ни сам владелец. Ниже пять классов атакующих по тому, что каждому нужно; всё в таблице задокументировано, без «ружья на стене».

Атакующий

Что ему нужно

Что он получает

Задокументированный случай

Доступ к сети оператора

Ничего: модем делает то, для чего создан

Местоположение, SMS, метаданные звонков

Перехват банковских mTAN через SS7 (O2 Germany, 2017)

Физический доступ

Час с телефоном и криминалистический комплекс

Всё содержимое и постоянный имплант

Сербская полиция и Cellebrite против журналиста, CVE‑2024‑43047 в Hexagon DSP (Amnesty, 2024)

Удалённый RCE в baseband

Номер телефона и эксплойт уровня вендора

Голос, SMS, трафик, выход в основную ОС

18 zero‑day в Exynos, четыре RCE по номеру (Project Zero, 2023)

Wi‑Fi по воздуху

Оказаться в радиусе вашей сети

Прошивка Wi‑Fi, дальше ядро через DMA

Broadpwn (2017), QualPwn (2019)

Персистентность

Однажды записать в разделы модема

Пережить factory reset

Структурно возможно; сброс уже не стирал данные (Cambridge, 2015)

Что реально задокументировано. Чего в списке нет: соседа, взламывающего ваш модем, и массового червя через baseband.

Из этого не следует, что вас лично взломают через модем; скорее всего, нет. Следует другое. Привычная модель безопасности («поставил VPN», «включил авиарежим», «сделал сброс перед продажей») строится на предположении, что эти действия управляют железом. Они управляют запросами к железу, и разница становится важной ровно в тот момент, когда от неё что-то зависит. Кому что грозит, по группам:

  • Обычный человек. Реальная угроза только первая строка таблицы, сеть оператора. Меры: второй фактор не по SMS, мессенджер со сквозным шифрованием, TLS везде. Стоимость: час. Остальные классы для него теория.

  • Журналист, адвокат, админ с ключами от продакшена, любой, у кого телефон могут изъять. Классы со второго по четвёртый применялись против ровно этих групп, есть отчёты с именами. Меры первого и второго уровня из следующего раздела стоят часы; третий уровень (устройство с модемом за забором) стоит денег. Соразмерно.

  • Компания с парком устройств. Практический риск в лаге патчей baseband и в том, что инвентаризация «какой модем, транслируется ли DMA» обычно не ведётся вообще. Мера: провести её один раз командами из следующего раздела.

Чего в реальной опасности нет: соседа, взламывающего ваш модем, массового червя через baseband, слежки через камеру силами прошивки Wi‑Fi. Ничего такого не задокументировано, и статья этого не утверждает. Есть и требование к вендорам, которое не стоит ничего: включить stage‑1 трансляцию SMMU для Wi‑Fi в стоковой прошивке. Это один дефолт в device tree, а не закон об открытом коде модема.

Модель угроз, в которой всё закрыто, не модель угроз. Список «не можем» такая же часть результата, как список «сделали».

Понять, защититься, заменить

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

Ответ на эту проблему раскладывается на три уровня. Уровни не исключают друг друга: первый нужен всем, второй большинству, третий тем, кто может себе позволить выбирать железо.

Уровень 1: понять. Почти всё из этой статьи проверяется на своём устройстве без разборки. Кто обслуживает модем, транслируется ли DMA Wi‑Fi, какие разделы переживают сброс:

for d in /sys/class/net/*/device; do
  echo "$(basename $(dirname $d)): $(cat $d/iommu_group/type 2>/dev/null || echo 'no IOMMU')"
done
# DMA / DMA-FQ: транслируется; identity: физические адреса; нет файла: IOMMU нет

На Android (нужен adb shell или root):

# разделы модема, которые переживают factory reset
ls -l /dev/block/by-name/ | grep -E 'modemst|fsg|fsc'
# если нашлось, Wi‑Fi‑прошивка пишет в RAM по физическим адресам
find /proc/device-tree -name 'qcom,smmu-s1-bypass' | grep -iE 'icnss|wifi|wlan'

На Windows: Диспетчер устройств → Wi‑Fi‑адаптер → Сведения → «DMA Remapping Policy». Значение 2 означает, что DMA транслируется; 0, 1 или отсутствие свойства означают физические адреса. На iPhone проверять нечего: DART перед модемом стоит всегда, а какой модем внутри, узнаётся по номеру модели и разборкам iFixit. В масштабе компании «понять» означает ту же карту, только для парка устройств, агентов и сервисов: кто и до чего дотягивается, и какой риск остаётся после всех мер.

Уровень 2: защититься там, где платформа чужая. Если жильца нельзя выселить, конфиденциальность строится на уровнях, до которых у него нет доступа. Три вывода, к которым мы пришли, ломая собственный код:

  1. Шифрование канала (WPA, LTE) не защищает содержимое от самого модема. Сессионный ключ Wi‑Fi вычисляет и хранит прошивка модема; так на любой ОС, включая нашу. Содержимое защищено ровно тем, что было зашифровано до попадания в модем: TLS с проверкой сертификата и сквозное шифрование в мессенджере. У себя мы нашли HTTPS без проверки сертификата на всех трёх платах; в IoT это обычная практика, проверьте свои устройства.

  2. VPN закрывает трафик от провайдера и от чужого Wi‑Fi, и это всё, что он делает. Отпечаток браузера, часовой пояс, вход в аккаунты и собственный uplink модема в сеть оператора VPN не трогает. Практические критерии при выборе: регистрация без персональных данных (утечь может только то, что собрано), протокол семейства WireGuard, и в документации перечислено, чего сервис не делает.

  3. Сайты сверяют сигналы устройства между собой. IP‑адрес сравнивается с часовым поясом из Intl.DateTimeFormat, языком браузера, набором шрифтов и системным временем; расхождение (адрес в Амстердаме, часы в Москве) выдаёт человека надёжнее, чем сам адрес. Если меняете один сигнал, менять нужно все.

Уровень 3: заменить платформу. Там, где вы выбираете железо, можно выбрать и то, сколько жильцов в нём живёт. Мы пошли этим путём дважды:

Своя ОС. Наша написана с чистого листа на Rust. Одна и та же система загружается на флагманском планшете и на контроллере с 512 КБ памяти. Чужому жильцу, модему, отдаётся ровно столько, сколько нужно, чтобы он работал и ничего не получал: тень вместо диска, пустой список вместо отказа, 4 МиБ вместо всей RAM. Та же логика работает в умном доме: контроллер без облака и панель, прошивку которой обновляет владелец, а не бренд.

Свой ИИ. Собственный движок инференса на Rust (Vulkan и Metal), собственный рантайм агентов с постоянной памятью и capability‑песочницей, ночной цикл дообучения с A/B‑гейтом. Документы, которые обрабатывает ИИ, не покидают ваш периметр по той простой причине, что модель стоит у вас.

Свои инструменты. Редактор с браузером внутри для аудита веба, агенты, которые не могут вызвать то, на что нет гранта, супликант WPA в safe Rust без unsafe. Своё здесь не из принципа: чужой код нельзя проверить, а мы обязаны знать, что делает каждый слой, за который отвечаем.

Этот уровень дорогой, и он не для всех. Зато на нём список «не можем» с каждым шагом становится короче.

Что мы не можем

Список, который мы считаем частью результата. Если бы могли, написали бы.

  • Прочитать код TrustZone, гипервизора, модема: он подписан и закрыт. Мы обслуживаем его, валидируем всё, что он присылает, и запираем то, до чего дотягиваемся.

  • Запретить модему излучать. «Авиарежим» остаётся просьбой; измерить можно только снаружи.

  • Закрыть DMA Wi‑Fi‑прошивки на планшете полностью. Stage‑1 трансляция возможна (mainline Linux делает её на том же чипе), у нас она в плане и помечена «не сделано».

  • Сделать чужую платформу своей. На iPhone, в стоковом Android, в Windows остаётся второй уровень, защита выше канала. VPN или расширение браузера эту проблему не решают, и обещать этого не должны.

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

Если вы дочитали до этого места, вы уже на первом уровне: знаете, что в устройстве есть жильцы и кто из них главный. Дальше по ситуации: проверить своё устройство командами выше, перечитать политику безопасности с поправкой на то, что «авиарежим» и «factory reset» не то, чем кажутся, и в следующий раз, выбирая железо, спрашивать не только про частоту процессора, но и про то, сколько в нём жильцов и кто из них держит ключи. Вопросы по деталям (адреса, регистры, конкретные прошивки) задавайте в комментариях, разберём. Если найдёте ошибку [4], скажите, поправим.

UPD 24.09: дополнил статью по замечаниям в комментариях: таймлайн смерти модема и механика «тени вместо диска» (спойлер в разделе «Что мы проверили руками»), VideoCore на Raspberry Pi и Librem 5 / PinePhone в разделе про ноутбук, iPhone и лампочку. UPD 2: добавил два абзаца в начале, кто мы и почему описанное не зависит от ОС. UPD 3 (25.09): вычистил текст по чек-листу из комментариев: тире, конструкции «не X, а Y», афоризмы в концовках абзацев, заголовки по одной формуле, жирный на каждом термине. UPD 4 (25.09): по итогам обсуждения в комментариях: абзац «О чём эта статья» в начале, таблица пяти классов атакующих с документированными случаями в разделе «Модель угроз», таймлайн смерти модема вынесен из спойлера в основной текст (в спойлере остались контрольный эксперимент и обход), наблюдение про авиарежим оформлено отдельно и дополнено, убраны подписи под цитатами. UPD 5 (25.09): перенёс в статью то, что разобрали в комментариях: жильцы, не попавшие в таблицу (SIM и Simjacker, eMMC, камера, GPU, USB‑C) и деление их по DMA и забору; Thunderclap и SD Express; что именно закрыто в PinePhone и Librem 5, Precursor; пропорции атак (ОС и мессенджеры против baseband) и кому что грозит по группам; при чём тут Rust (ни при чём). Раздел «Уровень 2» переписан из трёх лозунгов в обычные предложения.

Автор: scv9

Источник [5]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/36035

URLs in this post:

[1] памяти: http://www.braintools.ru/article/4140

[2] логику: http://www.braintools.ru/article/7640

[3] забывает: http://www.braintools.ru/article/333

[4] ошибку: http://www.braintools.ru/article/4192

[5] Источник: https://habr.com/ru/articles/1086340/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1086340

www.BrainTools.ru

Rambler's Top100