Глобальная сеть становится все более опасной — редкий месяц обходится без новых вирусных эпидемий и появления новых программ для нападения. Все они используют ошибки, допущенные разработчиками программного обеспечения, и от своевременного их исправления часто зависит безопасность целых корпоративных сетей
Стивен Адлер: «В SP2 для Windows XP предусмотрено несколько уровней защиты. Прежде всего, это защита на уровне сети, на котором используется техника межсетевых экранов»

Современные хакеры зачастую уже не тратят время на самостоятельный поиск ошибок для проникновения в информационные системы — они анализируют исправления, которые публикуют производители программного обеспечения, и организуют атаки на те системы, которые еще не обновились. Особенной популярностью пользуются исправления от Microsoft. Какие действия в связи с этим собирается предпринять корпорация, обозреватель еженедельника Computerworld Россия Валерий Коржов попытался узнать у Стивена Адлера, руководителя по разработке стратегии безопасности в Microsoft EMEA.

Как исправления влияют на безопасность программ?

Когда исправления опубликованы, хакеры ищут, что именно было изменено и как. На основании полученных данных они и пытаются построить свои атаки. Средства использования исправленных ошибок для нападения появляются достаточно оперативно, и оставшиеся без обновлений системы становятся беззащитными перед новыми угрозами. Предотвратить это можно, выстроив такую защиту, которая не зависела бы от того, исправлена ошибка или нет. Такие принципы построения защиты Microsoft реализует в пакете обновлений SP2 для Windows XP.

Что именно будет реализовано в SP2 для Windows XP?

В пакете предусмотрено несколько уровней защиты. Прежде всего, это защита на уровне сети, на котором используется техника межсетевых экранов. В частности, применяется принцип гранулярности, который позволяет установить и контролировать правила взаимодействия приложений с сетью. Можно установить три степени защиты: полный запрет взаимодействия, фильтрацию определенных действий и разрешение взаимодействия. Этот уровень защиты не зависит от установленных исправлений.

Следующий уровень — защита памяти. Microsoft перекомпилировала ключевые компоненты Windows XP с опцией /GS компилятора Visual C/C++, что позволяет породить код, устойчивый к переполнению буфера. Сделано это с помощью специальных библиотек, которые контролируют выделение памяти и запись в нее. Фактически это означает, что Windows XP будет отныне устойчива к любым ошибкам переполнения буфера.

Microsoft также использует аппаратную технологию защиты для 64-разрядных процессоров AMD Opteron и будущих процессоров Intel, для которых предусмотрено расширение набора команд Non eXecute. Эти процессоры позволяют на аппаратном уровне отделить страницы памяти, отведенные для исполнимых команд, а на все остальные страницы установить специальный флаг, благодаря которому процессор будет знать, что данные с маркированной страницы не могут быть командами. Процессор попросту не станет считывать команды с указанных страниц памяти в регистр команд. Таким образом, переполнение буфера можно будет заблокировать уже на уровне процессора. Эта технология защиты в SP2 для Windows XP будет использоваться для тех процессорных платформ, которые ее поддерживают.

Еще один уровень защиты — приложения. Так, в новой версии Web-сервера IIS многие потенциально опасные функции по умолчанию отключены. Эту же стратегию минимизации возможностей мы будем распространять и на другие приложения. Так, в отношении Outlook Express в SP2 появится контроль вложенных файлов, который не использовался в ранних версиях. Все перечисленные уровни защиты будут блокировать атаки, даже если обновления не были установлены.

Есть ли дальнейшие планы усиления защиты?

Да. В частности, именно для этого корпорация купила компанию GeCAD, выпускающую антивирусные средства, а также компанию Pelican, которая специализировалась на разработке поведенческих анализаторов. Инвестиции в эти компании были сделаны по двум причинам. Во-первых, Microsoft хочет упростить установку антивирусных драйверов в систему. Корпорация собирается предоставить «скелетный» антивирус производителям антивирусных средств, чтобы они могли встраивать в него свои модули. Таким способом Microsoft надеется помочь сделать антивирусы более стабильными и производительными. Аналогичная работа была в свое время проделана в отношении сетевых и дисковых драйверов. Во-вторых, корпорация пытается улучшить базовый уровень антивирусной защиты всех своих продуктов. Например, в Windows XP интегрирован достаточно простой межсетевой экран с ограниченным набором функций. Для простых правил защиты этого хватает, а если нужна чуть более сложная защита, то лучше установить какой-нибудь профессиональный межсетевой экран. Подобный сценарий стоит реализовать и для антивирусов.

Во-вторых, мы хотим внедрить технологии анализа поведения. К примеру, если какое-то приложение начинает рассылать сообщения по 10 тыс. адресов, то, очевидно, что это ненормальное поведение, и его нужно блокировать. Когда операционная система замечает странное поведение то может остановить подозрительный процесс. А если в сети вдруг обнаруживается машина, одно из приложений которой работает с десятками тысяч IP-адресов, то, заметив это, можно ее блокировать и приступить к выяснению причин такого поведения.

Дальнейшее развитие будет связано с совершенствованием купленных антивирусных технологий и механизмов анализа поведения приложений. Планируется начать работу над SP1 для Windows 2003 Server. Одной из его функций будет сканирование клиентских машин удаленных пользователей, которые подключаются по виртуальной частной сети, проверяя, работает ли у них антивирус и межсетевой экран, установлены ли последние обновления. Этот сценарий защиты необходим для тех случаев, когда пользователи подключают к Internet свои мобильные компьютеры из дома или по дороге и заражаются каким-нибудь вирусом. При подключении к корпоративной сети этот вирус может проникнуть внутрь ее. Поэтому в SP1 для Windows 2003 Server будет предусмотрен режим карантина для мобильных пользователей, во время которого будет проверяться адекватность поведения удаленного клиента.

Следующий этап — внедрение «новой защищенной компьютерной базы» Next-Generation Secury Computing Base (NGSCB), которая предполагает включение в аппаратуру компьютера специальной микросхемы защищенного хранилища Trusted Platform Module (TPM), в которое будет помещаться необходимая для защиты информация. В частности, в ней будут храниться «сигнатуры» приложений, которые формируются во время установки ПО на компьютер. Скажем, чтобы гарантировать, что приложение для Internet-банкинга не было изменено, для него генерируется сигнатура, связывающая его с конкретной операционной системой. При запуске приложения операционная система получит возможность проверить неизменность файлов и правил доступа, связанных с приложением, и только после этого исполнить его. Так выстраивается защита от самых разнообразных атак на уровне сети, отдельного ее узла, коммерческих аппаратных и программных продуктов, памяти.

Кто, помимо Microsoft, участвует в разработке NGSCB?

Разработкой аппаратной части занимается консорциум Trusted Computing Group (TCG), куда входят компании IBM, HP, Dell, Intel, AMD, производители смарт-карт и многие другие производители. В частности, для защищенного хранилища TPM уже есть версия спецификации 1.2, и все производители оборудования, входящие в TCG, уже приступили к созданию продуктов на ее базе. В частности, появились прототипы соответствующих графических плат, клавиатур и USB-адаптеров.

Ошибку в библиотеке ASN.1 корпорация исправляла в течение шести месяцев, в то же время программные продукты с открытыми кодами исправляются очень быстро. Как можно объяснить такую ситуацию?

Библиотека ASN.1 использовалась в большом количестве протоколов — SNMP, X.400 и других, поэтому исправления могли сказаться на их корректной работе. В то же время заплатка, которая была бы сделана без тестирования, могла навредить. Такое, например, случалось с библиотекой OpenSSL, исправления к которой в свою очередь содержали ошибку. Лучше полностью протестировать вносимые изменения, чем потом исправлять допущенные ошибки. Другой такой пример из мира Open Source — исправление ошибки в ядре Linux, касающейся функции управления памятью mmap. В течение нескольких недель было выпущено два или три исправления, относящиеся к одной и той же ошибке. Плохо проверенные исправления могут оказаться очень опасными для пользователей. Наш подход предполагает доскональное изучение возникающей проблемы, в том числе с анализом выпущенных ранее исправлений, локализацию фрагментов кода, где возникает ошибка, полноценное решение проблемы и анализ поведения исправленного ПО. Быстрые исправления не гарантируют, что все будет работать правильно. Мы же должны снизить риски своих пользователей.