Share via


Уязвимость User Account Control (UAC) в Windows 7

5-го февраля я выступал на семинарах Techdays в Казани. Темой первого выступления были улучшения в механизмах безопасности Windows 7.  Усовершенствований в этой сфере достаточно много, поэтому Windows 7 можно по праву считать более безопасной системой, чем Windows Vista, и тем более, чем Windows XP. Среди прочих я затронул тему улучшений UAC в Windows 7. В частности показал, что UAC стал менее “надоедливым” и более гибким в настройке. Что позволило снизить количество вопросов задаваемых системой пользователям во время работы.

настройка по умолчанию UAC Windows 7

Один из слушателей задал вопрос, в курсе ли я, что уже существует возможность атаковать Windows 7 и отключить UAC. Схема атаки такова. По умолчанию UAC не выдает приглашения и никак не уведомляет пользователя если приложение запущенное пользователем пытается изменить настройки самого UAC. Таким образом атакующее приложение может снизить уровень “тревожности” UAC до минимального. В таком состоянии UAC не предупреждает пользователя вообще ни о какой подозрительной активности.

Отключен UAC в Windows 7

Это открывает достаточно большие перспективы для вредоносного кода, позволяя развивать дальнейшие атаки на ОС и приложения пользователя незаметно для самого пользователя. На тот момент я не был в курсе деталей того, как работает данная атака и решил не комментировать этот вопрос до тех пор пока не разберусь в нем. Подробно разобравшись в проблеме сейчас я могу сказать следующее.

Да, подобная атака существует и может быть успешно осуществлена. Но я не считаю, что она представляет серьезную опасность.

Почему? А потому что для ее осуществления нужно заставить пользователя скачать и запустить вредоносный код. При этом пользователь получит предупреждение от UAC и должен будет одобрить запуск неизвестной программы. Варианта удаленной атаки не существует. Так же обратите внимание, что код, осуществляющий атаку, по крайней мере на данный момент не может успешно работать, если пользователь, запустивший его, не входит в группу локальных администраторов. После того, как код запустился, на экране появляется панель настроек UAC и вредоносный код с помощью функции Sendkeys имитирует многократные нажатия клавиши “DOWN” снижая уровень UAC прямо на глазах удивленного пользователя. Затем панель настроек UAC закрывается. После того как UAC отключается система должна быть перезагружена для того, чтобы изменения вступили в силу. При этом пользователь получает предупреждения об отключении UAC.

UAC5 UAC6

Думаю что подобная цепь событий насторожит даже самого доверчивого пользователя и заставит включить UAC назад, ведь он лично не отключал ничего. А если не насторожит, то этому человеку никакие меры безопасности в самой ОС уже не помогут. Единственное, что его спасёт, – это принудительное обучение основам работы с ОС. Согласитесь, данный сценарий выглядит малореалистичным и вероятность успешного завершения атаки очень мала.

Что делается сейчас, чтобы исправить положение и когда  эта потенциальная проблема будет исправлена?  С выходом версии RC1 контрольная панель UAC будет работать в процессе с пометкой “high integrity”. Таким образом любые обращения к функциям данного процесса будут вызывать срабатывание UAC и должны быть одобрены пользователем. При срабатывании UAC функция Sendkeys перестанет работать – и это гарантировано прервет атаку. Пользователь должен будет собственноручно отключить UAC, чтобы злоумышленник добился своего. При изменении настроек UAC пользователь будет получать повторный запрос UAC на подтверждение. Это значит что незаметно от пользователя изменить настройки UAC будет невозможно.

В связи с тем что Windows 7 пока что используется в основном технически грамотными людьми, а не простыми пользователями, можно считать, что  данная проблема не несет сколько-нибудь существенной опасности. Исправления  выйдут следующей бета версии OC т.е в RC1.