Взлом Linux через подключение USB-устройства стал реальностью
8 марта 2011 года
В USB-драйвере caiaq найдена уязвимость (Архивная копия от 10 сентября 2011 на Wayback Machine), позволяющая инициировать переполнение буфера и выполнение кода злоумышленника через подключение специально сконфигурированного USB-устройства к работающему под управлением Linux компьютеру. Используя данную уязвимость, злоумышленник может воспользоваться имеющимися в продаже недорогими программируемыми USB-платами для организации выполнения своего кода c правами ядра Linux в любой системе к USB-порту которой он может получить доступ.
Драйвер caiaq, разработанный в рамках проекта ALSA для звуковых плат компании Native Instruments, входит в базовую поставку Linux-ядра и загружается автоматически в большинстве Linux-дистрибутивов, включая серверные системы. Приводящая к уязвимости ошибка представляет собой (Архивная копия от 12 марта 2011 на Wayback Machine) наиболее тривиальный вариант инициирования переполнения буфера, связанный с использованием для копирования содержимого строки небезопасной функции strcpy(), вместо учитывающего длину строки варианта strlcpy(). Эксплуатировать уязвимость можно через передачу превышающего 80 символов имени устройства в процессе обмена информацией на стадии инициализации.
Обнаружившие ошибку исследователи уже подготовили рабочий прототип USB-устройства, подключение которого к компьютеру приводит к эксплуатации уязвимости. Для создания устройства можно использовать отладочные USB-платы на базе микроконтроллеров серии AT90USB или ATMEGA32U4, стоимость которых составляет приблизительно 20$. Именно эти платы в прошлом году использовались для организации взлома Sony PlayStation 3 через USB-порт.
Приводящая к уязвимости ошибка была исправлена(недоступная ссылка) в коде ядра в середине февраля. Исправления вошли (Архивная копия от 11 августа 2011 на Wayback Machine) в состав ядер 2.6.37.2 и 2.6.38-rc4-next-20110215. В выпущенном вчера обновлении ядра 2.6.32.32 присутствует исправление похожей ошибки в USB-драйвере iowarrior, поэтому не исключено, что в ближайшее время можно ожидать анонс уязвимости и в других драйверах. В качестве временной защиты рекомендуется удалить из системы драйверы /lib/modules/2.6.*/kernel/sound/usb/caiaq/snd-usb-caiaq.ko и /lib/modules/2.6.*/kernel/drivers/usb/misc/iowarrior.ko. Обновления с исправлением уязвимости пока недоступны для Linux-дистрибутивов, статус выхода исправлений можно отследить на следующих страницах: Slackware, Gentoo, Mandriva, openSUSE, CentOS, Fedora (Архивная копия от 18 января 2012 на Wayback Machine), RHEL, Debian, Ubuntu (вышедшие несколько дней назад обновления ядра для RHEL и Ubuntu (Архивная копия от 17 августа 2014 на Wayback Machine) не содержат исправления обсуждаемой уязвимости).
Месяц назад Джон Лаример (Jon Larimer) из подразделения IBM X-Force выступил на одной из конференций с докладом, в котором подробно рассмотрел теоретическую возможность совершения подобных атак. Тем не менее в своем докладе Лаример акцентировал внимание на взлом систем через функции автоматического запуска и индексации программ файловым менеджером десктоп-окружений, считая маловероятным взлом через уявзимость в USB-драйвере. Взлом системы через пользовательское приложение усложняется наличием таких средств защиты, как SELinux, AppArrmor и ASLR (рандомизация адресного пространства), которые не применяются для защиты от ошибок в Linux-ядре.
Дополнение: уже несколько лет проводится разработка устройств для атаки компьютеров через широко распространённые типы портов.
Источники
править- Главная ссылка к новости (http://labs.mwrinfosecurity.co...) (Архивная копия от 10 сентября 2011 на Wayback Machine)
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.