Исследователи безопасности из группы Zero, созданной компанией Google для предотвращения атак, совершаемых с использованием ранее неизвестных уязвимостей, опубликовали (https://googleprojectzero.blogspot.ru/2017/04/over-air-explo...) результаты обратного инжиниринга прошивки проприетарного WiFi-чипа Broadcom. Используя уязвимости (CVE-2017-0561), выявленные в процессе изучения прошивки, исследователям удалось подготовить рабочий эксплоит, позволяющий организовать удалённое выполнение кода в контексте Wi-Fi SoC с последующим получением контроля за всей системой, через отправку специально оформленных управляющих кадров через беспроводную сеть.
Wi-Fi чипы Broadcom представляют собой специализированный процессор (ARM Cortex R4 со своим 640KB ПЗУ и 768KB ОЗУ), на котором выполнятся подобие своей операционной системы с реализаций своего беспроводного стека 802.11 (FullMAC). FullMAC позволили снизить энергопотребление, разгрузив CPU, и упростили реализацию беспроводных драйверов, абстрагировав для операционной системы доступ к усложнённым современным возможностям Wi-Fi. В качестве обратной стороны подобного подхода и существенного усложнения беспроводных чипов стало появление нового класса уязвимостей, которые могут привести к выполнению вредоносного кода на стороне Wi-Fi SoC и к дальнейшем компрометации всей системы.
Но уязвимость является частным случаем, а основная проблема кроется в том, прошивки проприетарные являются чёрным ящиком, который может свести на нет безопасность даже самой защищённой и проверенной системы. Так как Wi-Fi SoC самодостаточен и отделён от основной операционной системы, эксплуатацию уязвимостей в нём очень трудно блокировать. В ответ на критику компания Broadcom сообщила, что следующие поколения Wi-Fi SoC будут оснащены MPU (Memory Protection Unit (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc....)), который позволит управлять доступом к областям памяти и помечать блоки памяти флагом, запрещающим выполнение кода.
В ходе изучения прошивки были выявлены четыре уязвимости в коде обработки кадров: две уязвимости в реализации механизмов роуминга (802.11r Fast BSS Transition (https://bugs.chromium.org/p/project-zero/issues/detail?id=1051) (FT) и Cisco CCKM (https://bugs.chromium.org/p/project-zero/issues/detail?id=1051)) и две (1 (https://bugs.chromium.org/p/project-zero/issues/detail?id=1046), 2 (https://bugs.chromium.org/p/project-zero/issues/detail?id=1047)) в реализации протокола TDLS (Tunneled Direct Link Setup), предназначенного для обмена данными между разными сетями Wi-Fi в обход точек доступа.
Уязвимости устранены в наборе прошивок, поставляемом в апрельском обновлении (https://source.android.com/security/bulletin/2017-04-01.html) платформы Android для устройств Nexus 6, Nexus 6P, Nexus 9, Pixel C и Nexus Player.
Примечательно, что в том же обновлении устранено ещё две удалённо эксплуатируемые уязвимости: В crypto-движке Qualcomm (CVE-2016-10230 (https://source.codeaurora.org/quic/la//kernel/msm-3.18/commi...)), которая позволяет выполнить код в контексте ядра Linux при попытке обработки некорректно оформленных параметров. В сетевом стеке старых версий ядра Linux (до 4.5) устранена уязвимость (CVE-2016-10229 (https://security-tracker.debian.org/tracker/CVE-2016-10229)), позволяющая выполнить код через отправку специально оформленного UDP-пакета.
URL: https://googleprojectzero.blogspot.ru/2017/04/over-air-explo...
Новость: http://www.opennet.me/opennews/art.shtml?num=46316