Как тестеры перехитрили UAC в ранних версиях Windows Vista
Этот случай мне с одной стороны показался забывным, а с другой - демонстрирующим насколько серьезно Microsoft подходит к вопросу тестирования и безопасности системы.
Для тех кто еще не знает, что такое UAC, советую почитать мой пост на эту тему http://blogs.technet.com/vitalipro/archive/2006/06/23/438573.aspx. В то время когда я его писал, этот компонент назывался UAP.
Вкратце суть в том, что пользовательский интерфейс по умолчанию работает без администраторских привелегий, даже если пользователь является администратором. Если программа хочет запуститься с административными привелегиями, система спросить разрешения у пользователя. При этом появляется окошко с кнопками "Да"/"Нет".
Так вот что придумали тестеры.
Как известно в Windows можно переопределить как отображается курсор мышки. Два интересных параметра курсора это его картинка для отображения курсора и координаты точки внутри этой картинки, которая является "активной" точкой. Координаты этой точки на экране используются как место в котором мышка находится.
Так вот тестеры сделали курсор мышки, в котором слева достаточно много пустого пространства "прозрачного цвета", а потом нарисован стандартный курсор мышки. При этом активная точка по прежнему находилась в левом верхнем углу курсора.
В результате пользователь подводил видимую мышку к кнопке "Нет" и как ему казалось нажимал "Нет", но на самом деле нажимал кнопку "Да". Важным моментом конечно являлось еще и то, что программа с ограниченными привелегиями тоже могла подменить курсор.
Конечно с тех пор это уже починили. Более того, это окно работает теперь в своем собственно "невидимом" рабочем столе. Тем самым все остальные программы, работающие с ограниченными привелегиями никак не могут повлиять на то, что происходит в этом диалоговом окне.