Взлом Linux через подключение USB-устройства стал реальностью | автор: Luca | 8 марта 2011
Категория: GNU/Linux, Security
Прочитано 24867 раз и оставлено 94 комментариев.
В USB-драйвере caiaq найдена уязвимость, позволяющая инициировать переполнение буфера и выполнение кода злоумышленника через подключение специально сконфигурированного USB-устройства к работающему под управлением linux компьютеру. Используя данную уязвимость, злоумышленник может воспользоваться имеющимися в продаже недорогими программируемыми USB-платами для организации выполнения своего кода c правами ядра linux в любой системе к USB-порту которой он может получить доступ.
Драйвер caiaq, разработанный в рамках проекта ALSA для звуковых плат компании Native Instruments, входит в базовую поставку linux-ядра и загружается автоматически в большинстве linux-дистрибутивов, включая серверные системы. Приводящая к уязвимости ошибка представляет собой наиболее тривиальный вариант инициирования переполнения буфера, связанный с использованием для копирования содержимого строки небезопасной функции strcpy(), вместо учитывающего длину строки варианта strlcpy(). Эксплуатировать уязвимость можно через передачу превышающего 80 символов имени устройства в процессе обмена информацией на стадии инициализации.
Обнаружившие ошибку исследователи уже подготовили рабочий прототип USB-устройства, подключение которого к компьютеру приводит к эксплуатации уязвимости. Для создания устройства можно использовать отладочные USB-платы на базе микроконтроллеров серии AT90USB или ATMEGA32U4, стоимость которых составляет приблизительно 20$. Именно эти платы в прошлом году использовались для организации взлома Sony PlayStation 3 через USB-порт.
Приводящая к уязвимости ошибка была исправлена в коде ядра в середине февраля. Исправления вошли в состав ядер 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, RHEL, Debian, Ubuntu (вышедшие несколько дней назад обновления ядра для RHEL и Ubuntu не содержат исправления обсуждаемой уязвимости).
Месяц назад Джон Лаример (Jon Larimer) из подразделения IBM X-Force выступил на одной из конференций с докладом, в котором подробно рассмотрел теоретическую возможность совершения подобных атак. Тем не менее в своем докладе Лаример акцентировал внимание на взлом систем через функции автоматического запуска и индексации программ файловым менеджером десктоп-окружений, считая маловероятным взлом через уявзимость в USB-драйвере. Взлом системы через пользовательское приложение усложняется наличием таких средств защиты, как SElinux, AppArrmor и ASLR (рандомизация адресного пространства), которые не применяются для защиты от ошибок в linux-ядре.
источник
Драйвер caiaq, разработанный в рамках проекта ALSA для звуковых плат компании Native Instruments, входит в базовую поставку linux-ядра и загружается автоматически в большинстве linux-дистрибутивов, включая серверные системы. Приводящая к уязвимости ошибка представляет собой наиболее тривиальный вариант инициирования переполнения буфера, связанный с использованием для копирования содержимого строки небезопасной функции strcpy(), вместо учитывающего длину строки варианта strlcpy(). Эксплуатировать уязвимость можно через передачу превышающего 80 символов имени устройства в процессе обмена информацией на стадии инициализации.
Обнаружившие ошибку исследователи уже подготовили рабочий прототип USB-устройства, подключение которого к компьютеру приводит к эксплуатации уязвимости. Для создания устройства можно использовать отладочные USB-платы на базе микроконтроллеров серии AT90USB или ATMEGA32U4, стоимость которых составляет приблизительно 20$. Именно эти платы в прошлом году использовались для организации взлома Sony PlayStation 3 через USB-порт.
Приводящая к уязвимости ошибка была исправлена в коде ядра в середине февраля. Исправления вошли в состав ядер 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, RHEL, Debian, Ubuntu (вышедшие несколько дней назад обновления ядра для RHEL и Ubuntu не содержат исправления обсуждаемой уязвимости).
Месяц назад Джон Лаример (Jon Larimer) из подразделения IBM X-Force выступил на одной из конференций с докладом, в котором подробно рассмотрел теоретическую возможность совершения подобных атак. Тем не менее в своем докладе Лаример акцентировал внимание на взлом систем через функции автоматического запуска и индексации программ файловым менеджером десктоп-окружений, считая маловероятным взлом через уявзимость в USB-драйвере. Взлом системы через пользовательское приложение усложняется наличием таких средств защиты, как SElinux, AppArrmor и ASLR (рандомизация адресного пространства), которые не применяются для защиты от ошибок в linux-ядре.
источник
ВНИМАНИЕ !
Возможно что-то уже неактуально. Обращайте внимание на даты !
Эта статья опубликована 8 марта 2011-го года !
Прочитано 24867 раз и оставлено 94 комментариев.
#1.pavel2403