На протяжение двух десятилетий в системах Windows существует уязвимость, позволяющая устанавливать на компьютеры вредоносное ПО через принтеры или выдающие себя за принтеры устройства в локальной сети. Во вторник Microsoft выпустила закрывающий эту уязвимость патч. Она находится в сервисе печати Windows Print Spooler, который управляет процессом подключения к принтерам и печати файлов. Протокол Point-and-Print позволяет впервые подключающимся к сетевым принтерам компьютерам автоматически скачивать нужный драйвер, который хранится на сервере печати.
Исследователи из компании Vectra Networks установили, что Windows Print Spooler имеет изъяны в процедуре аутентификации драйверов при дистанционной установке. Атакующие благодаря этому могут использовать несколько методов по доставке модифицированных драйверов. В результате принтеры и выдающие себя за принтеры сетевые устройства могут использоваться как эксплоит для инфицирования компьютеров.
Исследователи пишут, что хакеры смогут инфицировать компьютеры неоднократно и источник проблемы найти будет сложно, поскольку принтеры не являются в таких случаях подозреваемыми. Такая ситуация возникла, поскольку хранение драйверов было отдано на откуп принтерам, оказавшимся не столь неуязвимыми, как хотелось бы.
Есть много вариантов использования этой уязвимости. Один - подключить портативное устройство вроде ноутбука, выдающего себя за сетевой принтер. Когда пользователи локальной сети подключаются к нему, устройство автоматически может рассылать вредоносный драйвер. Другой вариант - мониторинг трафика настоящего сетевого принтера, обнаружение подключения компьютеров, перехват запроса и отправка поддельного драйвера.
Атака типа «человек посередине» может быть выполнена в открытых сетях Wi-Fi или с применением ARP-спуфинга в проводных сетях. Также методом обратной инженерии хакеры могут изменить прошивку принтера для доставки поддельного драйвера, что сумели показать исследователи Vectra. Ещё один баг протокола Point-and-Print позволяет пользователям повышать привилегии в системе до уровня администратора.
Специалисты Vectra проверяли свои открытия на разных устройствах и системах, включая Windows XP 32 бит, Windows 7 32 бит, Windows 7 64 бит, Windows 2008 R2 AD 64, Ubuntu CUPS и на сервере печати на Windows 2008 R2 64. Уязвимость относится к версиям вплоть до Windows 95.
Следует отметить, что вторничный патч не закрывает уязвимость в коде, а скорее добавляет предупреждение, так что он мало что меняет. К счастью, такие атаки не работают в корпоративных сетях с Microsoft Active Directory с настройками по умолчанию. Того же нельзя сказать о сетях небольших компаний и домашних пользователях.