Информационные технологииStfw.Ru 🔍
🕛

UAC в Windows 7 все еще уязвим

Очередной раунд борьбы Лонга Ченга (Long Zheng) с разработчиками Windows 7. В этот раз Лонг говорит об ущербности UAC и, в частности, наличии уязвимости в этой функции, позволяющей инъекцию
Очередной раунд борьбы Лонга Ченга (Long Zheng) с разработчиками Windows 7. В этот раз Лонг говорит об ущербности UAC и, в частности, наличии уязвимости в этой функции, позволяющей инъекцию произвольного кода в список "дозволенных" приложений ОС.


Для начала Марк объяснил появление диалогов подтверждения:


    Диалоги с предложением подтвердить привилегии администратора имеют дополнительное преимущество - они уведомляют пользователя, когда какое-то приложение пытается внести изменения в систему, предоставляя пользователю возможность запретить действия приложения. Так, например, если приложение, которому вы по каким-то причинам не доверяете и не хотите, чтобы это приложения вносило изменения в систему, требует привилегий администратора, вы можете отклонить запрос.




Принимая во внимание, что многие из вас слышали о том, что пару месяцев назад в Windows 7 присутствовала возможность незаметного для пользователя отключения диалогов UAC, которую Microsoft исключила (правда, не без давления со стороны сообщества). Но едва ли кто из вас знал о существовании еще более серьезной уязвимости в UAC, которая направлена именно на то, о чем пишет Марк.



Еще один эксплойт UAC, обнаруженный и продемонстрированный Лео Дэвидсоном (Leo Davidson), представляет собой уязвимость с инъекцией кода, которая стала возможной благодаря новой для Windows системе автоматического повышения прав. Если опустить технические подробности, уязвимость позволяет приложениям, не требующим диалогов подтверждения UAC (среднего уровня) запускать код или иные приложения с администраторскими привилегиями (высокого уровня) при условии стандартных настроек безопасности Windows 7.


Изначально я не планировал публично рассказывать об этом до тех пор, пока работа над Windows 7 не будет завершена, предоставив Microsoft возможность ее устранить, но статья Марка показала, что ничего не изменится.


Зная о наличии уязвимости, я совершенно не удивился, когда в конце статьи я увидел прямую ссылку на эксплойт.


    Некоторые пользователи отметили, что сторонние приложения, запущенные в режиме администратора со стандартными правами, могут воспользоваться автоматическим повышением прав для получения администраторских привилегий. Например, приложение может использовать WriteProcessMemory API для инъекции кода в Explorer и CreateRemoteThread API для последующего выполнения кода, то есть выполнить, по сути, инъекцию DLL.


Дальше Марк пишет, что с помощью этой техники вредоносное ПО может получить привилегии администратора. Это так, но как я говорил ранее, вредоносное ПО может подвергнуть систему опасности и через диалоги подтверждения. С точки зрения вредоносного ПО стандартные настройки Windows 7 не менее и не более безопасны, чем режим "Всегда уведомлять" (режим Vista), и вредоносное приложение, обладающее правами администратора, все равно может нанести вред системе в стандартном для Windows 7 режиме.


И хотя Марк отверг сам эксплойт, он признал, что кроме этой уязвимости, существует ряд других известных способов нанести вред системе через эксплойты, повышающие права пользователя через уязвимость в дизайне UAC. Однако, при этом он упустил из внимания, что уязвимость в Windows 7 куда более серьезна, нежели в Windows Vista.

Все эти способы основаны на использовании приложений с COM-объектами, которые могут быть использованы для запуска функций с повышенными привелегиями. В Windows Vista приложение, требующее повышенных прав, в любом случае вызывало диалог подтверждения UAC, тогда как в Windows 7 есть так называемый "белый список" исполняемых файлов Windows, которые могут запускаться без диалога подтверждения, и, в частности, "explorer.exe".

Более того, техника применима не только к вредоносному ПО, но и к программному обеспечению в целом. Под этим я понимаю, что разработчики смогут использовать технику инъекции для создания приложений, которые смогут работать с правами администратора без инициализации диалога UAC. Конечно, вероятность такого исхода мала, но она все же присутствует. Так, например, разработчики смогут используть эту технику, чтобы сделать свои продукты менее назойливыми. Если вы начнете сомневаться в правильности приложений, то это может нанести тяжкий урон репутации всей экосистемы.

Оставив в стороне жаргон экспертов по безопасности, я заявляю, что прямым следствием наличия "белого листа" для автоматического повышения прав является ущербность UAC в Windows 7. Поэтому настройки по умолчанию в Windows 7 делают систему менее защищенной, чем Windows Vista при стандартных настройках. Я понимаю, что UAC не разрабатывался с целью стать основной функцией обеспечения безопасности ОС, но с выходом каждой новой версии система не должна становиться менее защищенной, подвергая пользователей большему риску.


Учитывая нежелание Microsoft превращать Windows 7 в ОС с бесконечным числом диалогов подтверждения, появляющихся то тут, то там, единственным, что может делать Microsoft в этой ситуации - это донести до пользователей, что между стандартными настройками UAC в Windows 7 и режимом "Всегда уведомлять" с точки зрения безопасности есть разница. Если пользователи согласны на возросший риск, тогда они смогут насладиться менее навязчивой Windows.

Также по теме:
Новые программы для Windows, Linux и Android.