Zero-click атаки: Когда ваша безопасность не зависит от вас
Zero-click или zero-touch — это удаленная атака на устройство, не требующая от пользователя никаких дополнительных действий. Она может быть проведена по воздуху (OTA, over-the-air): достаточно, чтобы жертва была в радиусе действия нужного беспроводного канала связи. О таких атаках мы и поговорим в этой статье.
Вместо введения
Оригинал.
0-click атаки не требуют никаких действий от пользователя. 1-click атаки требуют совершить какое-то действие. По большому счету, почти все атаки на серверные приложения можно отнести к 0-click, но наша статья не о серверном ПО. Появление 1-click и 0-click атак связано с массовым распространением мобильных устройств, роста покрытия сети и количества Wi-Fi точек. Ввиду активного интернет-серфинга, мобильные устройства хранят много личной и конфиденциальной информации. Конечной целью атакующего являются как раз эти данные пользователя, которые теперь хранятся не на сервере или домашнем компьютере, а прямо у него в кармане.
За последние 10 лет вся наша информация и общение перебрались с десктопов в мощные мобильники с кучей умного железа. Таким образом, пространство для атак (attack surface) сильно увеличилось.
Раньше считалось, что фаервол обеспечивает относительную безопасность пользователя. Но сейчас ясно, что все находятся под угрозой взлома, а главное — атака может быть незаметной.
Как это возможно?
- При передаче атакующим на устройство жертвы специально сформированных данных по беспроводному каналу передачи данных (GSM, LTE, Wi-Fi, Bluetooth, NFC и т.д — нужное подчеркнуть).
- Уязвимость может сработать при обработке этих данных непосредственно на чипе (baseband, Wi-Fi SoC, Bluetooth SoC, NFC SoC и т.д.).
- Или данные могут пройти чуть дальше, и уязвимость сработает при предобработке данных на целевой программе (звонки, SMS, MMS, мессенджеры, почтовые клиенты и т.д.), которая отвечает за подготовку этих данных для пользователя.
- Далее пэйлоад в эксплойте производит те или иные действия для Post-Exploitation.
При этом жертва должна сделать ровно 0 кликов, касаний, или переходов! Такую атаку трудно предотвратить, и невозможно обвинить жертву в том, что она перешла по фишинговой ссылке из сообщения или открыла какой-то документ. В некоторых источниках эту же атаку называют «fully remote» или «interaction-less» — единого термина нет.
«Удобство» такой атаки в том, что злоумышленнику не надо проводить сессии социальной инженерии, чтобы убедить пользователя щелкнуть по ссылке или открыть документ. Все происходит незаметно, и пользователь может и вовсе не понять, что произошла атака. Если идти по классическому пути через атаку на пользовательское приложение, то там почти все уже облеплено различными security mitigations. А если идти со стороны разных SoC, то велика вероятность встретить систему без security mitigations, что, конечно же, упрощает работу атакуещего.
Что за специально сформированные данные?
Это может быть все, что угодно:
- Служебные данные при общении устройства с сотовой вышкой (OTA команды)
- Пакеты канального уровня
- Ответы на аутентификацию
- SMS сообщения
- MMS сообщения
- Голосовые сообщения
- Видео-конференции
- Сообщения в ваш любимый мессенджер (Skype, WhatsApp, Viber, FaceTime, Telegram и т.д.)
- Звонки
- etc.
Все перечисленное может вызвать срабатывание уязвимости либо в прошивке чипа, либо в коде программы, который отвечает за его обработку. К большому сожалению, даже код, отвечающий за раннюю стадию обработки данных, содержит уязвимости.
В качестве бонуса рекомендуем статью от Natalie Silvanovich из Google Project Zero «The Fully Remote Attack Surface of the iPhone».
Есть ли реальные примеры?
Интерес к подобным атакам в исследовательских кругах появился достаточно недавно, и сейчас они набирают большую популярность. Из работ в данной области можно выделить следующие (список не претендует на полноту):
В области Wi-Fi:
В области Baseband:
- «Fuzzing the Phone in your Phone», CHARLIE MILLER, COLLIN MULLINER (2009)
- «All your baseband are belong to us», Ralf-Philipp Weinmann (2010)
- «The Baseband Apocalypse», Ralf-Philipp Weinmann (2011)
- «Baseband Attacks: Remote Exploitation of Memory Corruptions in Cellular Protocol Stacks», Ralf-Philipp Weinmann (2012)
- «Breaking Band: reverse engineering and exploiting the shannon baseband», Nico Golde, Daniel Komaromy (2016)
- «Path of Least Resistance: Cellular Baseband to Application Processor Escalation on Mediatek Devices», György Miru (2017)
- «A walk with Shannon Walkthrough of a pwn2own baseband exploit», Amat Cama (2018)
- «Exploitation of a Modern Smartphone Baseband», Marco Grassi, Muqing Liu, Tianyi Xie (2018)
Примечание по эксплуатации baseband-процессора:
Про эксплуатацию baseband«ов с помощью вредоносной базовой станции, стоит отметить, что, начиная c 3G, большинство пакетов должны быть аутентифицированы специальным ключом. Цитата из работы «Exploitation of a Modern Smartphone Baseband»: «This is because originally 2G (second generation) networks considered the BTS (base station) as a trusted component, out of reach from attackers. So the phone will blindly trust anyone posing as a BTS. This makes it possible to build a fake BTS and launch attacks over the air. Only the base station is authenticating the mobile phone, but not vice versa. After the advent of SDR, it becomes clear that now the BTS cannot be trusted anymore. Nowadays it«s very cheap to build a fake base station and attack mobile phones. For this reason in 3G networks and newer the approach changed. Now the mobile phone, leveraging keys in the SIM card, will authenticate the 3G or newer base station usually. This removes lot of attack surfaces in 3G and newer networks, which require to bypass authentication.»
В связи с тем, что большинство современных baseband поддерживают 3G и 4G и сети используют новые стандарты (они более приоритетные), то атакующему нужны дополнительные приемы, которые позволяют выполнить downgrade дефолтного способа подключения (до 2G) в клиентском модеме.
Возможны ньюансы, и все от конкретной реализации того или иного чипа.
В области Bluetooth:
В области мессенджеров:
Проанализировав приведенные выше работы, можно понять, что помимо непосредственно уязвимости удаленного исполнения кода для успеха серьезной атаки, как правило, необходимы дополнительные уязвимости, повышающие привилегии в системе (в случае с мессенджерами) или приводящие к переносу исполнения кода с периферийного чипа (Wi-Fi, baseband, etc.) на основной процессор (Application Processor). Только собрав цепочку уязвимостей, можно добиться полной компрометации устройства.
Реальные инциденты с использованием zero-click сложно зафиксировать. Однако если обратиться к 1-click, то сразу вспоминаются атака с использованием вредоносного кода Pegasus, расследование «A very deep dive into iOS Exploit chains found in the wild» и недавняя CVE-2019–11932 в WhatsАpp, приводящая к RCE.
Соревнование Mobile Pwn2own 2019
Интерес к подобным атакам проявили и организаторы соревнований pwn2own, хотя раньше там были только браузеры и ОС. Впервые они появились в 2015 году, а в 2019 на PWN2OWN TOKYO были такие категории, как:
- Short Distance: атака проходит при взаимодействии по Wi-Fi, Bluetooth, NFC;
- Messaging: атака при просмотре или получении MMS или SMS сообщения;
- Baseband: атака проходит при взаимодействии с базовой станцией.
А среди целевых устройств были:
- Xiaomi Mi 9
- Samsung Galaxy S10
- Huawei P30
- Google Pixel 3 XL
- Apple iPhone XS Max
- Oppo F11 Pro (только в категории baseband)
В зависимости от категории и цели приз составлял от 30.000$ до 150.000$.
По результатам имеем следующую картину:
- Samsung Galaxy S10 был взломан через NFC. Уязвимость UaF в JavaScript JIT;
- Samsung Galaxy S10 был взломан через baseband. Уязвимость переполнение на стеке;
- Xiaomi Mi9 был взломан через NFC. Уязвимость XSS.
Да, не все из проведенных атак были zero-click, но тенденция показательна.
Рынок эксплойтов
Интерес к zero-click проявляют и эксплойт-брокеры, которые за такие цепочки эксплойтов предлагают до 3 миллионов долларов.
И ценник других брокеров.
Рекомендации
Единственное, что можно посоветовать и что способен сделать рядовой пользователь — это своевременно ставить все обновления, чтобы поддерживать ОС, прошивки и приложения в актуальном состоянии. Это позволит максимально снизить вероятность успешного проведения атаки.
Вывод
Zero-click атаки сложны в реализации и, как правило, требуют выполнения ряда условий, что не дает им широкого распространения. Тем не менее, они способны нанести огромный урон, оставаясь при этом незамеченными.
P.S. За помощь в подготовке материалов для статьи спасибо veneramuholovka!