Стратегия защиты типа "шито-крыто" [ Редагувати ]

Специалист по компьютерной безопасности вызвал новую волну споров по поводу надежности защиты операционной системы Windows, утверждая, что ошибка в ее архитектуре является причиной уязвимости множества Windows-приложений.
В четверг, 22 августа, независимый консультант по защите данных Крис Паджет опубликовал документ, демонстрирующий то, что он называет "подрывными атаками" (Shatter Attack) - когда пользователь может повысить свои привилегии в системе и получить полный контроль над ней. Это достигается благодаря пробелу в защите, который, как утверждает Паджет, может присутствовать во многих Windows-приложениях, так как вызван конструктивной особенностью интерфейса прикладных программ Win32.
В последнее время надежность защиты Windows API широко обсуждается в связи с антимонопольным процессом против Microsoft. По условиям мирового соглашения Microsoft должна обнародовать скрытые ранее детали конструкции API - и этот процесс уже начался. Однако компания оставила за собой право не раскрывать те API, которые важны для безопасности Windows, что дало повод критикам говорить о стратегии "защиты типа "шито-крыто".
Паджет уверяет, что его исследование доказывает эффективность обратной стратегии: чем меньше сокрыто, тем лучше защита. "Если об этих проблемах станет известно, их можно будет решить, - говорит он. - В противном случае уязвимость неизбежна. Это возвращает нас к вопросу о том, полезна ли полная гласность".
Подрывная атака по Паджету опирается на механизм обмена сообщениями (messaging), который Windows использует для управления такими функциями, как регистрация нажатия клавиш. Согласно Паджету, этот механизм уязвим, так как приложения могут использовать обмен сообщениями для управления любым окном на экране, и эти действия не распознаются.
Риски безопасности, связанные с механизмом обмена сообщениями, известны давно, но Паджет претендует на то, что это первая демонстрация практической реализации подобных атак. В его примере атакующий применяет антивирусную программу Network Associates VirusScan v4.5.1, установленную в системе Windows 2000 Professional. Так как этому приложению требуются высокие привилегии доступа, оно работает в так называемом защищенном режиме - LocalSystem. Атакующий, зарегистрированный в системе как гость, может заставить программу с более высокими привилегиями LocalSystem выполнить небольшой фрагмент кода, который передаст эти привилегии пользователю.
Чтобы повысить привилегии пользователя, нужна программа, сама обладающая такими привилегиями, такая как антивирус или персональный брандмауэр. Эта программа должна открывать окно, которое использует эти высокие привилегии и непосредственно взаимодействует с пользователем, реализуя режим interactive service. Паджет утверждает, что количество таких уязвимых приложений невозможно определить без индивидуального исследования каждого из них: "Фактически любая программа, выполняющая нечто, что требует высоких привилегий в системе, может работать и в режиме interactive service".
Однако круг приложений, которые можно использовать для атак, основанных на механизме сообщений, не обязательно ограничивается программами, реализующими режим interactive service. Если, например, персональный брандмауэр разрешает доступ к корпоративной сети только через Internet Explorer, атакующий может обойти его, заставив IE предоставить ему доступ на уровне командной строки. "На самом деле любое приложение, которое работает на Windows, можно обмануть тем или иным способом, - говорит Паджет. - Атаки с повышением привилегий - это только один из примеров".
Microsoft в своем заявлении, присланном в ZDNet UK в ответ на публикацию, уверяет, что эти примеры атак с использованием механизма messaging "не попадают под определение уязвимости защиты, принятое в Microsoft".
"Предложенный сценарий атак подразумевает, что атакующий уже пересек границу системы защиты или получил доступ к программе, использующей интерактивные сервисы в режиме LocalSystem", - говорится в заявлении. Microsoft утверждает, что данная ситуация не опасна, так как атакующий, чтобы воспользоваться этим методом, должен иметь «неограниченный физический доступ к компьютеру".
Паджет предупреждает, что умалять значение его эксплойтов неразумно. Для их реализации достаточно иметь всего лишь типичный для любой корпоративный сети доступ к системе. К тому же атаку можно реализовать и дистанционно через клиент с доступом к Terminal Services, каким пользуются сотрудники компаний для удаленной работы или операторы call-центров для связи с центральной системой. "Таким способом можно получить полный контроль над сервером терминалов", - говорит Паджет.
Документ вызвал дискуссию и в списке рассылки для секьюрити-профессилоналов Bugtraq, одни утверждают, что ответственность за такие пробелы в защите лежит на разработчиках приложений, а другие согласны с Паджетом, что Microsoft создала API, способствующий появлению уязвимого ПО. По мнению одного из обсуждающих, на ком бы ни лежала вина, эксплойты, использующие Windows messages, могут стать реальной проблемой. "С этими уязвимостями можно бороться, как, скажем, и с уязвимостями переполнения буфера, которые, тем не менее, всплывают то тут, то там", - пишет он.