В 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 не содержат исправления обсуждаемой уязвимости).
Месяц назад Джон
Лаример
из подразделения IBM X-Force выступил на одной из конференций с
докладом, в
котором подробно рассмотрел теоретическую возможность совершения
подобных атак.
Тем не менее в своем докладе Лаример акцентировал внимание на взлом
систем через
функции автоматического запуска и индексации программ файловым
менеджером
десктоп-окружений, считая маловероятным взлом через уязвимость в
USB-драйвере.
Взлом системы через пользовательское приложение усложняется наличием
таких
средств защиты, как SELinux, AppArrmor и ASLR (рандомизация адресного
пространства), которые не применяются для защиты от ошибок в Linux-ядре.
|