55% предприятий все равно стали объектами агрессивных действий, а 95% столкнулись с несанкционированным доступом к их системам.
Согласно другому исследованию, подразделения Computer Security Division (CSD) Национального института стандартов и технологий США, 98% уязвимостей связаны с программным обеспечением. Причем 73% «дыр» выявлены на уровне приложений, а 14% — на уровне операционных систем.
Но скоро сетевые администраторы вздохнут с облегчением. Многие «дыры» будут закрыты с помощью методики проверки целостности сервисов с помощью встроенного ПО. Прототип этого подхода, SIS (System Integrity Services — сервисы проверки целостности системы), уже реализован и испытан на 32-разрядной Intel ОС Linux и Windows. Он основан на использовании изолированной вычислительной среды и интеллектуальных механизмов проверки целостности. Последние предназначены для обнаружения атак, осуществляемых с помощью обмана, подделки или отключения важных программных агентов вычислительных систем.
Понять врага
Эффективность работы систем обнаружения и предотвращения сетевых атак сильно зависит от программного обеспечения, работающего на хост-системах и предназначенного для мониторинга их состояния. Программный агент в хост-системе может быть драйвером устройства, агентом безопасности ядра (межсетевым экраном), сервисом безопасности (клиентом VPN), частью ядра операционной системы и др. «Нарушители», подобные последним версиям червей Bagle и Lion, пытаются отключить эти защитные компоненты на самых ранних стадиях вторжения, чтобы атака прошла незамеченной. Другие виды атак рассчитаны на получение злоумышленником расширенных привилегий. Это позволяет, в том числе, завладеть ключами шифрования информации.
Агентскому ПО на хост-системах всегда присуща уязвимость, поскольку оно не изолировано от других программ, работающих под управлением той же операционной системы. Фактически, все бреши в системе защиты серверов, определенные в 2003-2004 годах корпорацией Microsoft как «критические», были связаны с возможностями прямого обращения к памяти, где работают средства защиты ОС. Некоторые механизмы обнаружения и предотвращения сетевых атак уязвимы для malware-программ (таких как червь Witty), способных получать неограниченный доступ к системе с помощью rootkit-технологий. Другие решения, основанные на эвристических алгоритмах, характеризуются частыми ложными срабатываниями.
Ответные меры
Итак, пользователям нужна эффективная система обнаружения вторжений и защиты от них, которую невозможно вводить в заблуждение. Она должна противостоять множеству типов атак, обеспечивать надежную проверку целостности и присутствия программных агентов. Исследователи Intel создали прототип системы на основе встроенного ПО, который:
- гарантированно обнаруживает попытки изменить состояние контролируемого программного агента и принудительно прекратить его работу;
- обеспечивает надежный механизм защиты критически важной информации от других программ во время их выполнения;
- предотвращает атаки с устройств, имеющих прямой доступ к памяти;
- оказывает минимальное влияние на производительность системы.
Спроектированная Intel платформа безопасности является системно-независимой. Она функционирует в изолированной вычислительной среде на контролируемой хост-системе, недоступной для основной ОС. Подход Intel обеспечивает эффективную защиту динамических данных приложений, таких как правила фильтрации пакетов на межсетевых экранах или информация о версии антивирусного ПО. Разработанный корпорацией прототип неуязвим к атакам, нацеленным на взлом самой системы защиты.
Основы работы
Программные агенты на хост-системах задействуют несколько важных областей памяти, которые требуется постоянно проверять на предмет целостности. Это позволяет убедиться в том, что агент не подвергся принудительным изменениям. В таких областях памяти находятся исполняемый код, статические и динамические данные защитного ПО. Для проверки памяти и самого агента прототип сервиса SIS использует защищенные от подделки технологии проверки целостности и местоположения.
Сервисы проверки целостности основаны на выполнении трех важнейших процедур:
- определении местоположения агента (области памяти, в которую загружены программа, в том числе исполнимый код, а также ее статические и динамические данные);
- проверке целостности агента (отсутствия модификаций программного кода по сравнению с его исходным состоянием);
- оценке работоспособности агента.
SIS использует информацию о местоположении, чтобы определить целостность программы, выдавшей запрос на поддержание целостности. Доступ к секретной информации ограничен: она может вызываться только командами (инструкциями), загруженными в принадлежащую агенту область памяти. Попытки доступа к этой информации из других областей памяти отвергаются. Если SIS контролирует все три параметра, система гарантирует, что ее программный агент не подвергается опасности и может получить доступ к любой защищенной секретной информации.
Архитектура решения
Принцип действия SIS (см. рисунок) базируется на режиме System management mode (SMM), который поддерживается процессорами Intel с 32-разрядной архитектурой. Архитектура систем проверки целостности представляет собой изолированную вычислительную среду, содержащую три основных компонента: менеджер контроля над целостностью (Integrity measurement manager, IMM), описатель целостности (Integrity manifest, IM), модуль сервисов целостности (Integrity services module, ISM).
Менеджер контроля над целостностью выполняет необходимые проверки целостности и состояния защищенного хост-агента. Первая проверка выполняется во время регистрации агента, когда тот загружается в память хост-системы. Затем агент проверяется в моменты его активизации.
Агент должен периодически генерировать определенное сообщение и отправлять его IMM, чтобы система убедилась в его активности. Для устранения присущей этому процессу уязвимости модуль сервисов целостности проверяет, с какого адреса памяти сгенерирован запрос на сообщение. Это позволяет убедиться в том, что запрос не подделан злоумышленником. Затем ISM генерирует электронную подпись и отправляет агенту, который добавляет ее к сообщению для IMM. Получив сообщение, IMM сверяет подписи. Если сообщение пытается сгенерировать злоумышленник, подделка обнаруживается, и IMM запускает предусмотренную политикой безопасности корректирующую процедуру.
Описатель целостности тоже нужен для проверки целостности хост-агента. Он включает в себя информацию, которая идентифицирует защищаемый хост-агент (содержание и распределение памяти). Точнее, описатель целостности — это описание важнейших компонентов агента, подписанное производителем продукта с помощью асимметричного ключа и проверенное IMM при загрузке агента в память хост-системы. IM содержит заголовок с информацией о смещениях и размерах таблицы сегментов, таблиц переадресации и имен, используемых для идентификации агента, а также другие сведения, которые необходимы для проверки целостности самого описателя.
Модуль сервисов целостности отвечает за проверку местоположения программ в памяти ПК. Эта процедура позволяет убедиться в том, что агент, запросивший сервисы ISM, — тот же самый, который был изначально зарегистрирован в системе. ISM следит за регистрацией агента, состоянием проверки, обновлениями динамических данных приложения и т.п.
Модуль работоспособен и в SMM — привилегированном режиме процессоров Intel x86. В нем процессор выполняет код и обрабатывает данные, которые расположены в области оперативной памяти, защищенной на уровне микросхем SMRAM. Данная область недоступна для программ, выполнявшихся на процессоре перед прерыванием, а также для программируемых устройств с прямым доступом к памяти. В этом режиме все прерывания запрещены, а информация о состоянии системы (в том числе содержимое регистров) записывается в соответствующую область памяти, входящую в SMRAM. Такая информация служит для восстановления состояния системы при выходе из режима SMM.
Защита от серьезных угроз
Благодаря проверке целостности и местоположения защищаемых агентов сервисы SIS позволяют эффективно обнаруживать ряд угроз, которые не идентифицируются иными методами. Например, если злоумышленник проник в пределы ядра системы и получил высший уровень привилегий, обнаружить его вторжение практически невозможно. SIS позволяет эффективно бороться с этим и многими другими типами атак.
- Изменение злоумышленником исполнимого кода агента, загруженного в память. Это приводит к прекращению его нормального функционирования (например, к остановке фильтрации пакетов межсетевым экраном). SIS обнаруживает такое изменение при следующей проверке целостности.
- Отключение агента и прерывание работы одного из защитных приложений. Если агент отключен, злоумышленник не может генерировать правильные сообщения агента, и IMM обнаруживает вторжение.
- Изменение злоумышленником динамических данных (например, правил фильтрации межсетевого экрана), которые может менять только программный агент. SIS отслеживает события и проверяет источники запросов на изменение динамических данных, а также административные права.
- Атаки через устройства с прямым доступом к памяти. В виртуализированной системе злоумышленник может перепрограммировать устройство ввода/вывода для получения прямого доступа к памяти, принадлежащей другой виртуальной машине. При этом в вычислительную среду, которая предположительно была «изолирована», может быть загружен атакующий код. Такие атаки обнаруживаются при проверке целостности, выполняемой IMM.
- Хищение криптографической информации, применяемой авторизованным агентом, и ее использование для имитации этого агента. При работе SIS секретная информация хранится в области памяти SMRAM, которая недоступна программам даже с наивысшими привилегиями. ISM задействует сочетание проверок точки входа и кода, которое позволяет убедиться в том, что к секретной информации не получили доступа неавторизованные приложения.
Вместе и по отдельности
Сервисы SIS, сами по себе являющиеся эффективными инструментами, служат дополнением к другим решениям для защиты вычислительных систем, таким как IPS или аппаратные межсетевые экраны. Новый подход Intel может пригодиться для шифрования и других криптографических операций, для которых необходима секретность какой-либо части используемой в них информации.
SIS не только обнаруживает множество опасностей, не определяемых действующими системами, но и требует относительно небольших вычислительных ресурсов и времени работы системы. Сочетание эффективной проверки целостности агентов и защищенной от подделки проверки их присутствия позволяет значительно сократить число способов проникновения в систему червей и «троянцев», а значит, повысить общий уровень безопасности корпоративной сети.