От каких угроз может, а от каких не может защитить механизм UAC
Принцип «тысячи глаз» всегда упоминают сторонники программного обеспечения с открытыми исходными кодами, подчеркивая, что продукты категории Open Source просматривает множество разработчиков, которые обязательно найдут ошибку, если она есть. Поэтому, по их словам, открытые коды более безопасны, чем закрытые, которые никто кроме разработчиков не видел. Между тем, существует огромное количество открытого кода, который фактически вообще не анализировался с точки зрения безопасности, в то время как самый известный коммерческий программный продукт — операционная система Windows — напротив, активно анализируется на предмет ее защищенности. С новой остротой вопросы безопасности операционной системы обсуждаются сегодня в связи с выпуском корпорацией Microsoft новой версии своего флагманского продукта, Windows Vista.
Действительно, в Microsoft представляли Vista как первую операционную систему, в которой требования безопасности учитывались с самого начала — в рамках так называемого безопасного цикла разработки (Secure Development Livecycle, SDL). В ней предусмотрены механизмы, которые призваны защитить от различных угроз. Поэтому, уже первую бета-версию своего программного продукта в корпорации активно предлагали для анализа на защищенность, распространяя ее среди авторитетных специалистов по безопасности. Одним из рьяных бета-тестировщиков была Джоанна Рутковская, специализирующаяся на защите от программ-«призраков». Уже тогда, анализируя бета-версию, Рутковская сделала вывод о возможности написать программный призрак для Vista. Результаты своих исследований она передала в Microsoft. Аналогичные исследования проводила, в частности, и компания Symantec, публиковавшая критические замечания относительно защищенности Vista. Таким образом, принцип тысячи глаз — в определенном смысле — удалось реализовать и для коммерческих продуктов, исходные тексты которых хотя и закрыты, но сами продукты тем не менее привлекают самое пристальное внимание исследователей. В Microsoft пообещали закрыть все найденные уязвимости. Одним из убедительных примеров того, что «оборонительный потенциал» Vista был в процессе разработки операционной системы значительно расширен, является появление механизма защиты ядра от изменений PatchGuard.
Еще один характерный пример решения проблем безопасности Vista — история с User Account Control (UAC). Данная технология по задумке разработчиков Microsoft призвана защищать операционную систему от, пожалуй, самых опасных атак, основанных на ошибке переполнения буфера. Чтобы этот механизм заработал, необходимо, чтобы производитель программного продукта для Vista сформулировал правила поведения для своей разработки и описал их в специальном файле, так называемом «манифесте». Операционная система, сверяясь с этим манифестом, должна блокировать поведение программы, которое не укладывается в описанные правила, предполагая, что такие изменения в поведении произошли из-за внедрения в нее некоего постороннего кода.
Однако UAC совершенно не защищает от троянских программ, манифесты для которых составляют сами их авторы. Действительно, в этом случае именно разработчик заинтересован в том, чтобы у созданной программы не было никаких ограничений. Для этого злоумышленнику достаточно составить такой манифест, который позволял бы программе все. Поскольку для установки троянца используются методы социальной инженерии и прямого обмена, то защититься от них с помощью манифеста невозможно. В результате складывается парадоксальная ситуация — легитимные программы работают с ограниченными полномочиями, а вредоносные — с полными. Тем самым, UAC, защищая от переполнения буфера, фактически потакает троянцам. Марк Руссинович, еще один авторитетный борец с программами-«призраками» (его компанию Winternals Software летом прошлого года купила Microsoft), ответил Рутковской, что «проблемы UAC не являются проблемами безопасности».
Справедливости ради стоит отметить, что UAC — далеко не единственный механизм защиты в Vista. В нее также встроен антивирус, который просто не запустит вредоносный код, который обнаружится в его базе. Есть также уже упоминавшийся PatchGuard, защищающий ядро операционной системы от модификаций. Есть встроенный сетевой экран, который может защитить от сетевой активности вредоносного кода. Поэтому нельзя сказать, что операционная система беззащитна перед атакой троянских программ. Просто следует помнить, что UAC не спасает от подобной атаки, но является дополнительным защитным инструментом. К тому же есть защитные системы сторонних производителей, которые действуют аналогично UAC, но правила поведения приложений определяет разработчик системы защиты, а не создатель самого приложения. Такие системы называются HIPS (Host Intrusion Prevention Systems); сейчас соответствующая функциональность появляются в различных антивирусных продуктах.