Хабрахабр

Security Week 34: неординарные уязвимости в Windows

13 августа компания Microsoft выпустила очередной апдейт безопасности (обзорная новость) для операционных систем Windows и офисных программ, и на этот раз патч оказался по-настоящему гигантским: кому-то явно не удалось сходить этим летом в отпуск. Всего было закрыто 93 уязвимости, из которых 23 квалифицированы как критические. Закрыты серьезные баги в Remote Desktop Services, в клиенте DHCP, в обработчике .LNK-файлов, двеуязвимости в Hyper-V с побегом из песочницы.

Помимо прочего, несколько уязвимостей интересны сами по себе, а еще у одной интересная история обнаружения. Столь монументальная работа над ошибками — это очень хорошая новость. Исследователь Тавис Орманди из Google Project Zero, обнаруживший последнюю, утверждает, что проблема существует уже 20 лет. Помимо уже упомянутых проблем в Remote Desktop Services, сегодня мы подробнее рассмотрим уязвимость в сервисе MSCTF. Ну и заодно оценим уязвимость в Bluetooth, которая затрагивает не только Windows.

WTF is CTF?

Уязвимость в сервисе MSCTF была обнаружена Тависом Орманди почти случайно (новость, пост в блоге Тависа). Все началось с изучения механизмов Windows, позволяющих разным программам взаимодействовать друг с другом. Такое взаимодействие ограничивается системой User Interface Privilege Isolation, которая не позволяет, например, пользовательским процессам вмешиваться в системные. Изучая странные случаи, когда, несмотря на ограничения, сообщения все же проходили, Тавис и наткнулся на модуль MSCTF.

К нему подключаются все запущенные приложения. Этот модуль относится к Text Services Framework, который в свою очередь управляет раскладками клавиатуры и подобным. Ну, например, для облегчения процесса ввода текста на китайском или японском языках. Зачем?

Для таких языков отдельная программа обрабатывает ввод в окне приложения и меняет введенное на иероглифы. По сути MSCTF — это отдельный канал коммуникации между приложениями, который, как выяснилось, недостаточно защищен. Самая ранняя версия MSCTF, которую удалось найти Тавису, входит в комплект офисного пакета Microsoft Office XP, совместимого еще с Windows 98. Начиная с Windows XP, MSCTF является частью операционной системы. Возможности взаимодействия с другими приложениями через MSCTF весьма широкие, а главное — нет никакой авторизации. В итоге Тавис написал утилиту для работы с CTF и занялся поиском уязвимостей:

Уязвимости, пусть и не сразу, были найдены. В «лучшем» случае, на системе с одним из языков, требующих расширенные инструменты ввода (японский, китайский, корейский и некоторые другие), можно подменять текст в приложении, отправлять команды в консоль с правами администратора, не будучи при этом привилегированным пользователем, или красть пароли пользователей. В худшем (правда, вышеперечисленное — уже достаточно плохо) можно получить права системы, то есть повысить свои привилегии до максимальных. Такой Proof of Concept показан на видео:

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

Bluekeep или не Bluekeep

Проблемы в Remote Desktop Services (новость, бюллетень на сайте Microsoft) отчасти похожи на обнаруженную в мае этого года уязвимость Bluekeep. Дыры в сервисе удаленного доступа (но не в самом протоколе RDP) теоретически позволяют распространять атаку на все компьютеры в сети, без участия пользователей: есть определенный риск повторения ситуации с шифровальщиком WannaCry в 2017 году, когда масштабно эксплуатировалась проблема в реализации протокола SMB.

Более ранняя проблема не распространялась на последние версии ОС, сейчас же, наоборот, ей подвержены все ОС от Windows 7 до Windows 10 (но не Windows XP, Server 2003 и 2008). Впрочем, есть и отличия от BlueKeep. И Bluekeep, и четыре новые проблемы нейтрализуются включением Network Level Authorization. Баги были выявлены в ходе внутреннего аудита Microsoft, реальных атак пока не было замечено. В худшем случае (нет NLA, не установлен августовский патч, включен удаленный доступ) появляется возможность обойти авторизацию и получить контроль над системой путем отправки подготовленного запроса. Но NLA на непропатченной системе не до конца спасает от ряда сценариев выполнения кода на удаленной машине.

Уязвимость в Bluetooth

Проблему, известную как KNOB Attack (Key Negotiation of Bluetooth), обнаружили исследователи из Сингапура, Германии и Великобритании (новость, сайт исследования, научная работа). В отличие от других уязвимостей из набора патчей Microsoft, эта распространяется не только на Windows, но и вообще актуальна почти везде, где используется Bluetooth. Большой список апдейтов от производителей смартфонов, ноутбуков, IP-телефонов, отреагировавших на проблему, есть здесь.

В случае «восьмибитного» ключа взломать его можно достаточно быстро простым перебором: если такое «слегка защищенное» соединение будет по каким-то причинам установлено, атакующий может расшифровать обмен данными. В спецификациях Bluetooth два устройства, устанавливающие между собой защищенное соединение, могут выбирать длину ключа в пределах от 1 до 16 байт. Вопрос в том, как именно реализовать такую атаку, и исследовательская работа доказывает, что есть как минимум два умеренно реалистичных варианта. Например, между клавиатурой и настольным компьютером.

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

Кроме того, множество устройств будут и дальше подвержены атаке KNOB, так как для них просто не выпустят обновление. Это серьезная уязвимость, которая существует благодаря изначально слабым спецификациям стандарта Bluetooth. Во всех случаях патч устанавливает минимальную длину ключа так, чтобы атака стала практически неприменимой. С другой стороны, реализация такого сценария на практике достаточно сложна: в первом случае требуется оказаться неподалеку от жертвы в нужное время, во втором — вмешиваться в цепочку поставок и потом, опять же, быть рядом с атакуемым устройством, когда по нему передаются конфиденциальные данные.

Дорогая редакция вообще рекомендует относиться к любым мнениям со здоровым скептицизмом. Disclaimer: Мнения, изложенные в этом дайджесте, могут не всегда совпадать с официальной позицией «Лаборатории Касперского».

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть