С помощью WSUS системные администраторы координируют обновления программного обеспечения на серверах и рабочих станциях. По умолчанию компания Microsoft применяет для WSUS незащищенный протокол HTTP, и чтобы включить HTTPS, администратору необходимо осуществить ряд манипуляций. Но их осуществляют далеко не всегда. Воспользовавшись отсутствием SSL-шифрования, специалисты британской компании Context Information Security смогли загрузить и установить на целевую систему поддельные обновления. Подобные апдейты могут быть использованы злоумышленниками для загрузки любой вредоносной программы и получения доступа с правами администратора.
Исследователи осуществили MITM-атаку при помощи ARP-спуфинга (возможен вариант и с WPAD-инъекцией), перехватив и изменив SOAP-запросы между клиентами и сервером WSUS, а также модифицировав метаданные в обновлениях.
Сегодня к подобным атакам уязвим любой компьютер на базе Windows, загружающий обновления с сервера WSUS не по HTTPS, утверждают британские специалисты, и рекомендуют компаниям проверить действующие у них политики безопасности в отношении WSUS.
Чтобы определить наличие SSL-шифрования в WSUS, необходимо посмотреть следующие ключи реестра:
HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate
WUServer — это URL-адрес сервера обновлений. Если этот адрес (например,
HTTP: / /wsus-server.local: 8530
) не начинается с HTTPS, значит компьютер уязвим для атаки.HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU
Если стоит 0, тогда параметр WUServer будет игнорироваться. Если стоит 1, SSL во WSUS будет работать. Другие ключи реестра Windows Update можно посмотреть тут.
Администраторы могут проверить настройки групповой политики WSUS по следующему адресу:
Windows Components > Windows Update > Specify intranet Microsoft update
Процедура включения SSL в службах WSUS описана на сайте Microsoft.
Чтобы предотвратить загрузку фальсифицированных апдейтов, эксперты советуют Microsoft использовать отдельный сертификат для Windows Update. Как пишут авторы данного исследования, сейчас любой файл, подписанный Microsoft, может быть принят за обновление. Кроме того, британские специалисты рекомендуют подписывать и метаданные обновлений, так как в них содержится основная информация об обновлениях, включая теги handler. Подписанные сертификатом Microsoft теги позволят избежать необходимости создания доверенного канала между клиентом и сервером WSUS.
В последние дни опасений по поводу оригинальности обновлений Windows добавила и новая p2p-система в Windows 10 под названием WUDO (Windows Update Delivery Optimization). Она позволяет загружать обновления Windows с компьютеров других пользователей. Отключить пиринговую загрузку в целях безопасности (или экономии трафика) можно из раздела «Выберите способ загрузки обновлений» (Центр обновления Windows-> Дополнительные параметры-> Выберите способ загрузки обновлений):
Подробности исследования «Compromising the Windows Enterprise via Windows Update» можно прочитать здесь.
Комментарии (17)
EnterSandman
10.08.2015 21:28+5Не вспомню как назывался, но еще во времена winxp был скрипт, который позволял посредством arp-спуффинга отдавал нагрузку на атакуемую машину.
То есть какой-нибудь винамп долбится на сервер обновлений — мы ему говорим мол вот, вышла версия 777 — и он её сам «down and execute»
там были и winamp, и notepad++, и WSUS. Всего около 40 приложений
нашёл. Evilgrade — и входит в Kalivsb
10.08.2015 23:37Вообще практически во всех системах кроме Linux с обновлениями жуткий бардак. Нет единой централизованной системы обновлений всех приложений, каждый суслик лепит своё гениальное решение, в итоге такие вот проблемы вылазят, не говоря уже об отвратительной эргономике, когда после небольшого перерыва сразу куча программ тебе надоедает своими уведомлениями.
amarao
11.08.2015 04:44+1В линуксах тоже норовят присобачить какой-нибудь bundler, pip, cargo и прочие штуки. Начинается как «для разработчиков», а заканчивается методом деплоя в продакшен.
Tonkonozhenko
11.08.2015 16:53-1Расскажите пожалуйста, чем так плох тот же bundler? Я как разработчик пока лучше не встречал.
amarao
11.08.2015 18:03+1Для разработчика — да. Для стабильного сервера — нет, потому что бандлы качаются хер знает откуда хер знает каких версий и никто за ними не приглядывает. Сотня серверов поднялась нормально, а потом автор ololoxml меняет что-то, и оно всё начинает страшно обваливаться на серверах с сотого по двухсотый, и никто не может понять почему.
evg_krsk
11.08.2015 20:01Ничего не знаю про bundler, но как админу и майнтайнеру пакетов мне очень важна т.н. воспроизводимость сборки. Т.е. возможность в любой момент времени вернуться к старому исходнику и собрать идентичный до бита бинарник/пакет. В этом отношении каждый изобретающий свой гениальный тул (для разработчика, когда оно долетает до админа, ему обычно это кажется бардаком) мне только добавляет головной боли, т.к. «собирать рекурсивно исходники из интернетов» — невоспроизводимый подход. В огромном интернете всегда кто-то ошибается просто в силу размеров :-)
Последнее время этой темой озаботился и Дебиан (что не может не радовать), как я понимаю идут к цели полной воспроизводимости любого пакета на любой момент времени.
amarao
Простите, я не очень хорошо с виндовой частью знаком, но, разве, апдейты не подписаны цифровой подписью MS? То есть взлом транспорта не должен повлиять на то, согласна система ставить апдейт или нет.
По-крайней мере у debian/RHEL именно так — транспорт нешифрованный, апдейты подписанные gpg. Взлом или mitm на мирроре не влияет на уровень доверия обновлениям. Худшее, что может сделать mitm — это оставить систему без апдейтов.
akamajoris
Проверка подписи есть.
… они как британские учёные.amarao
У вас есть претензии к британской науке? Или к чему этот комментарий?
realscorp
Очевидно, имелся ввиду известный мем.
Gordon01
Можно установить не обновление, а любой софт, подписанный MS.
Nikobraz
А как подписать у MS криптер?
realscorp
В презентации, опубликованной по этой проблеме, написано несколько подробнее, чем в статье. Служба Windows Update проверяет только то, что устанавливаемое обновление имеет подпись Microsoft CA.
Кроме того, обновления могут быть разных типов, в том числе и CommandLineInstallation — что-то вроде скрипта, выполняемого над любым подписанным Майкрософтом исполняемым файлом.
Таким образом можно создать фальшивое обновление, которое будет запускать, например, подписанный PsExec с таким набором параметров, что будет получен шелл с удаленным доступом.
В-общем, проблема, получается, действительно есть :(
amarao
А сам скрипт не проходит проверку подписи? Тогда это лицо, на которое не хватает пальм.
realscorp
Там, в-общем, не скрипт на самом деле, а XML с параметрами установки. Вот он и не подписан. Увы, да, это фейспалм. Хотя не все так плохо — сервера Майкрософта отдают обновления только через HTTPS, так что домашние пользователи этой атаке не подвержены. Проблема касается только корпоративных сетей, где админы не настроили HTTPS на WSUS.