На прошлой неделе Лонг Ченг (Long Zheng) опубликовал описание проблемы, доказывающее наличие серьезной уязвимости в Windows 7. Как выяснилось, в Microsoft были осведомлены об этой проблеме, по крайней мере, еще в октябре прошлого года, и один из разработчиков утверждал, что в бета-версии она будет исправлена.
Однако, сегодня компания заявила, что решение проблемы перенесено на более позднее время и пока не будет доступно для пользователей текущей бета-версии.
Как заявляют блоггеры Рафаэль Ривьера (Rafael Rivera) и Лонг Ченг (Long Zheng), хакеры могут легко изменить код "предварительно одобренных" компанией Microsoft приложений и заставить Windows 7 предоставить вредоносному коду полный доступ к компьютеру. "Это по-настоящему опасно" — заявил сегодня в интервью Ривьера.
Проблема затрагивает подсистему UAC - функцию, призванную запрашивать подтверждение пользователей всякий раз, когда производится установка программы или драйвера. Впервые UAC была представлен в Windows Vista в 2007 году, а в Windows 7 технология подверглась модификации с целью сделаться более дружелюбной, поскольку многие пользователи находили ее чрезвычайно назойливой.
В Windows 7 система UAC беспокоит пользователя несколько реже, частично потому, что сначала проверяет, является ли приложение, собирающееся произвести изменения, предварительно проверенным на "благонадежность", сообщают Ривьера и Ченг. Если приложение считается безопасным — Microsoft использует для подтверждения этого комбинацию цифрового сертификата и нового, недокументированного маркера проверенного кода — UAC "дает добро" и "автоматически" повышает права такого приложения, не выводя никакого предупреждения.
Как заявляют Ривьера и Ченг, проблема состоит прежде всего в том, что злоумышленники могут использовать несколько таких предварительно одобренных приложений для того, чтобы обвести Windows 7 вокруг пальца и вынудить ее предоставить вредоносному коду всю полноту административных прав. Этого не случилось бы, если бы пользователи неукоснительно следовали рекомендации Microsoft работать в операционной системе с учетной записью стандартного пользователя.
"Windows автоматически предоставит процессу административные полномочия, если он сможет имитировать поведение администратора" — пишет Ривьера в своем блоге.
Опасность, настаивают Ривьера и Ченг, вполне реальна и весьма внушительна. "Существующие вредоносные программы могут быть легко адаптированы для использования новой уязвимости в Windows 7" — сообщает Ривьера.
Как оказалось, перед компанией не впервые ставятся вопросы о реализации подсистемы UAC в Windows 7. Еще в конце октября, спустя несколько дней после того, как Microsoft на конференции разработчиков (PDC) представила раннюю сборку своей новой операционной системы, пользователи, установившие ее, начали обсуждать уязвимости нового варианта UAC на собственном сайте Microsoft — Channel 9.
В ветке обсуждения под заголовком "UAC в Windows 7 захромал — я только что его сломал!" пользователи критически отзываются об изменениях, сделанных Microsoft в UAC. "Они ударились теперь в другую крайность" — говорит Свен Гроот (Sven Groot). "Теперь ситуация такова, что у вас как будто вовсе нет UAC, а вместо этого — вывеска "Добро пожаловать, дорогие вирусы и черви!" или что-то в этом роде". В тот же день Ричард Тернер (Richard Turner), инженер-программист из группы разработчиков Microsoft Visual Studio, защищая реализацию UAC в Windows 7, заявил, что надлежащие изменения будут внесены в систему до того, как начнется публичное бета-тестирование.
"Что касается вашей особой озабоченности автоматическим повышением прав в UAC", — сказал Тернер, — "в настоящей версии для участников PDC любому приложению могут быть повышены права, если регулятор уровня UAC находится в положении "по умолчанию". Но в (публичной) бета-версии так не будет. В бета-версии для компонентов Windows, способных запускать критические приложения и/или команды (например, CMD, CSCRIPT, WSCRIPT, PowerShell, и др.), возможность автоматического повышения прав будет отключена".
"Таким образом, ваш пример не будет работать в бета- и последующих версиях. Мы уже убедились в этом на компьютерах, работающих под управлением новейших версий", — пообещал Тернер.
Лонг Ченг, который пристально наблюдает за ходом дискуссии на Channel 9 с октября и ссылки на который размещены в его блоге, добавил: "Они явно просмотрели этот момент".
Ривьера также обращает внимание на ответ из Microsoft, в котором компания отрицает первоначальное сообщение о проблемах с UAC. Оба блоггера полагают, что хакерам ничего не стоит отключить UAC незаметно для пользователя, подкопавшись под одну из самых агрессивно рекламируемых функций по обеспечению безопасности в операционной системе. Со своей стороны, Microsoft пытается представить проблему как незначительную. Сотрудник пресс-службы компании заявляет: "Для того, чтобы запустить вредоносный код на компьютере, необходимо, чтобы было уже взломано что-то еще, кроме UAC, или пользователь намеренно запустил опасное приложение".
По словам Ривьеры, в Vista обычный домашний пользователь защищен уведомлениями UAC. "В случае, если вредоносная программа преодолела внешние барьеры безопасности — например, пользователь уже загрузил и запустил на первый взгляд безобидное приложение к электронной почте, — опасная программа в общем случае не может преодолеть ограничений, которые существуют для этого пользователя".
"Понятно, что должно быть взломано что-то еще. В этом я согласен с Microsoft" — говорит Ривьера. "Но проблема состоит в том, что в Windows 7 такой же пользователь в таком же случае может столкнуться с вредоносной программой, которая окажется способной обойти ограничения, присвоить себе административные права и причинить вред компьютеру".
Это, по его словам, открывает оба пути для атаки на UAC: сначала UAC будет отключена, а затем ей подсунут сертификат, свидетельствующий о безопасности вредоносной программы.
Решение, по словам Ривьеры, заключается в том, чтобы поведение UAC стало таким же, как и в Vistа. "Некоторые полагают, что мы находимся в цугцванге (ситуация в шахматах, когда любой следующий ход автоматически ведет к ухудшению положения игрока. — прим. перев.), и я понимаю, почему", — говорит он. — "Я полагаю, что UAC по умолчанию должен работать так же, как он работает в Windows Vista. Это серьезная проблема и просто так ее не решить".
Однако, похоже, Microsoft не собирается следовать рекомендациям Ривьеры. 3 февраля сотрудник пресс-службы передвинул сроки возможного исправления уязвимости в UAC на более поздние версии Windows 7. "Microsoft не собирается заставлять UAC в Windows 7 копировать поведение в Windows Vista" — заявил он в ответ на вопросы.
Он также попытался снизить значимость уязвимости для тех, кто загрузил и установил бета-версию Windows 7, ставшую доступной для широкого круга пользователей с 10 января. "Мы ничего не слышали о том, чтобы кто-то пострадал из-за указанной проблемы" — добавил он.
Если предположить, что Microsoft уже закрыла эту брешь, то подавляющее большинство пользователей получит обновленную версию UAC не раньше, чем компания выпустит RC-сборку. О точной дате этого релиза RC нет никаких достоверных сведений, но Стивен Синофски (Steven Sinofsky) на прошлой неделе подтвердил, что релиз RC последует за бета-версией без промежуточных выпусков. Судя по слухам в сети, релиз RC должен состояться уже в апреле.