Альтернативная защита от злоумышленного кода
Роберт Вамози, ZDNet Reviews & Solutions
28 мая, 2001, 0:00
Введение Вирусы и другая онлайновая нечисть становятся все изощреннее. К счастью, совершенствуются и методы защиты ПК. Мы познакомим вас с теми из них, которые выходят за рамки традиционного антивирусного ПО.
Можно ли побороть вирус, не зная его имени и еще не имея противоядия? Научившись этому, можно было бы безбоязненно путешествовать в вебе, не опасаясь, что какой-нибудь шальной Java- или ActiveX-код удалит данные с жесткого диска. Подобные возможности предоставляет эвристическое ПО, и неудивительно, что производители традиционных антивирусных программ стали включать в последние версии своих продуктов эвристические методы.
В переводе с греческого слово heuristic означает <отыскивать>. По отношению к вычислительной технике оно обычно применяется для обозначения ПО, способного решать задачу альтернативными методами с целью сокращения общего времени обработки. Антивирусные компании применяют эвристические методы для сканирования файлов и программ на наличие подозрительного кода, который, скорее всего, не относится к полезной программе, а представляет собой вирус.
В настоящей статье обсуждаются преимущества эвристических методов по сравнению с подходом сравнения с образцами, который традиционно используется антивирусными компаниями, а также речь пойдет о том, какие методы борьбы со злоумышленным кодом могут использоваться в будущем. Недостатки традиционного антивирусного ПО Еще в начале 1990-х, когда компьютерные вирусы, такие как Stone.Michaelangelo, распространялись медленно, часто через зараженные дискеты, антивирусные компании обнаружили, что известные вирусы можно определять по характерному байт-коду (или сигнатуре). Метод сравнения с образцами - простейшая форма эвристики - работал успешно, но теперь, когда вирусная эпидемия может охватить весь мир за считанные часы, антивирусным компаниям приходится подыскивать другую тактику.
Чтобы найти определенный вирус, программе сравнения с образцами нужно иметь его сигнатуру. Нет сигнатуры - не с чем сравнивать. Чтобы ускорить доставку обновленных файлов с сигнатурами вирусов, многие производители предлагают сервисы динамического апгрейда по интернету, но это, к сожалению, не помогает в тех случаях, когда компания еще не выпустила обновленного файла. Взять, к примеру, две самые крупные эпидемии вирусов за последнее время: ILOVEYOU и Anna. В обоих случаях, когда произошли сотни первых заражений, у производителей антивирусного ПО еще не было файлов с новыми сигнатурами. В случае с ILOVEYOU эти файлы появились с задержкой на 4-6 часов.
Почему потребовалось так много времени? Сначала производителям антивирусного ПО нужно убедиться, что их файл сигнатур обнаруживает уникальную последовательность байтов, характерную для вируса. Затем необходимо создать версии ПО для разных операционных систем, на котором оно должно работать. Наконец, требуется провести испытания: не может же производитель разослать средство, которое приносит больше вреда, чем пользы!
Но даже если бы быстрота обновления и не являлась ограничивающим фактором, то от адаптируемости вирусов уже не отмахнуться. Сегодня типичный зашифрованный вирус может распространиться по всему миру за несколько часов, изменяя от компьютера к компьютеру свой размер и характеристики байт-кода. Принципиальный недостаток антивирусного ПО на основе сравнения с образцами заключается в том, что оно действует слишком буквально; чтобы совпадение с образцами обнаруживалось, оно должно быть полным.
Типичный файл .dat антивирусной программы содержит уникальные характеристики около полумиллиона известных вирусов. Однако злоумышленник может создавать новые варианты, просто компрессируя файл. Доступные в интернете инструменты, такие как Shrinker, PKlite, AS-pack, Petite и Wwpack, позволяют модифицировать файлы вирусов таким образом, что они будут легко проскакивать антивирусную защиту, действующую по принципу сравнения с образцами. Число возможных комбинаций компрессии для каждого известного вируса измеряется сотнями. Наконец, модель борьбы с вирусами методом сравнения с образцами становится слишком громоздкой, чтобы устанавливать и поддерживать ее на обычном компьютере. Новое эвристическое антивирусное ПО Для нового эвристического антивирусного ПО конкретные характеристики того или иного вируса не важны. Оно обнаруживает последовательности байтов, которые характерны только для вирусов и не используются в доброкачественных программах. Например, эвристическая программа обратила бы внимание на любой код, который вносит изменения в системный реестр. Или на такой, который способен модифицировать или удалять файлы .exe.
Но эвристическое ПО может подавать ложные сигналы. Это и удерживало антивирусные компании, удовлетворенные успехом более надежных методов сравнения с образцами, от его широкого применения. Здесь важно отметить, что ни один метод обнаружения вирусов не дает 100%-ной точности. Сегодня многие популярные антивирусные программы, хотя и включают элементы эвристики, на самом деле сочетают в своих последних релизах методы эвристического сканирования с методами сравнения с образцами. Пользователям этих комбинированных антивирусных программ все равно приходится загружать последние обновления файлов сигнатур, однако эвристическая часть ПО способна обнаруживать новые вирусы, обеспечивая заказчикам немедленную защиту от некоторых быстро распространяющихся в интернете эпидемий.
Но есть компании, которые вообще отказались от программ сравнения с образцами и занялись созданием чисто эвристического ПО. Один из эвристических методов называется контент-фильтрацией. Этот статический метод проверяет весь входящий код по набору правил (это во многом напоминает сравнение с образцами). Другой эвристический метод, динамический, называется sandboxing. Он позволяет исполнять подозрительный код внутри виртуальной <песочницы> (sandbox), как это принято для Java-апплетов. Третий метод, анализ поведения, распознает вирус или хакерскую атаку не столько по самому коду, сколько по его влиянию на общую производительность системы. ПО анализа поведения позволяет системе сохранять стабильность, изолируя и прекращая работу злоумышленного кода.
По мере стирания граней, отделяющих просто вирусы от хакерских атак с использованием вирусов, эти компании, отказавшиеся от традиционного антивирусного ПО на базе сравнения с образцами, оказываются в лучшем положении, предлагая средства, обнаруживающие любые формы злоумышленного кода. Программы с контент-фильтрацией ПО с контент-фильтрацией можно рассматривать как более гибкую версию антивирусных программ на базе сравнения с образцами. Программист может выбрать разные способы выполнения программой одной и той же инструкции, например модификации системного реестра. ПО сравнения с образцами искало бы специфическую последовательность байтов, используемую для создания такой инструкции в конкретном вирусе. ПО с контент-фильтрацией содержит список всех возможных последовательностей команд, приводящих к изменению содержимого системного реестра Windows. Так как системный реестр может изменяться и при установке нового ПО, контент-фильтры, прежде чем бить тревогу, обычно проверяют некоторые дополнительные критерии.
Контент-фильтры способны читать и компрессированные файлы. Их можно сравнить с рентгеновским аппаратом на пунктах контроля в аэропортах: они точно так же просвечивают содержимое входящих в сеть пакетов.
В области контент-фильтров определились два лидера. Один из них - нью-йоркская компания Sybari, выпускающая продукт Antigen для пользователей систем электронной почты Microsoft Exchange и Lotus Domino. С 1995 года Sybari установила свое ПО на 2,5 млн систем во всем мире. Им пользуются столь различные организации, как Amazon и правительство США.
Компания Baltimore Technologies производит семейство эвристических продуктов MIMEsweeper, которое включает специальные версии для Exchange и Domino, а также другие продукты, блокирующие порнографию, зашифрованные сообщения e-mail и т.п. Эта ирландская компания, учрежденная в 1975 году, приобрела MIMEsweeper в 2000 году у Content Technologies; в разношерстном списке своих заказчиков она указывает правительства многих государств.
Работая на уровне корпоративного интернет-шлюза, Antigen и MIMEsweeper уменьшают потребность в сканировании каждого файла на каждом настольном ПК. При этом повышается и эффективность защиты. На системном уровне подозрительные файлы можно перепроверить или переслать в определенное подразделение, например в отдел кадров. Часто конечные пользователи получают e-mail с сообщением о том, что вложенный в него файл проверен контент-фильтром.
Как и ПО сравнения с образцами, программы на основе контент-фильтров опираются на скрипты, или сигнатуры. Но их списки правил доступны для редактирования пользователем. Например, если системный администратор узнал о новом вирусе или новом виде быстро распространяющейся угрозы, он может немедленно настроить ПО контент-фильтра на блокировку этой угрозы, защитив сеть до появления более точного определения. Так, администратор может заблокировать все сообщения со словами I love you в поле subject или с вложенными файлами *.vbs.
Более полный пример системных правил, которые может устанавливать пользователь, приводит на своем веб-сайте Baltimore Technologies. Динамическое ПО типа sandboxing Еще один метод выявления злоумышленного кода - исполнение программ в безопасном месте. Динамическое ПО типа sandboxing создает в компьютере защищенное пространство, в котором может выполняться подозрительный код. Эта концепция аналогична использованию среды виртуальной машины в программировании на языке Java. Так как злоумышленный код ничего не может добиться, не обратившись к операционной системе, sandbox следит за всеми его системными вызовами и проверяет их по установленным пользователем правилам. В случае любого нарушения пользователю будет доложено, что это подозрительное приложение, выполнять которое опасно.
Преимущество данного метода состоит в том, что проверяется только код, так что никаких вопросов по поводу намерений интерпретации или даже цензуры каких-то видов контента не возникает. Вместо перечисления всех возможных вариантов программирования известных вирусов динамическое ПО типа sandboxing содержит лишь набор основных правил, охватывающий наиболее фундаментальные категории:
- Доступ к файлам: не читает (записывает, удаляет) ли код какие-нибудь файлы?
- Сети: не ищет ли код другие подключенные к сети диски?
- Операционная система: не изменяет ли код какие-нибудь параметры ОС?
- Системный реестр: не заносит ли код сам себя в системный реестр с тем, чтобы он каждый раз запускался?
Эвристическую технологию sandboxing уже несколько лет развивают две компании: Pelican и Finjan. Продукт Pelican SafeTNet работает на уровне интернет-шлюза, а Finjan предлагает как версию для интернет-шлюза, так и настольную версию для индивидуальных пользователей.
А теперь отвлекитесь от e-mail вирусов. Вы думаете, что вам не страшен злоумышленный код из веба? Тако вот, на сайте Finjan имеется несколько онлайновых тестов, которые демонстрируют возможности распространенных хакерских приемов. Если вы не защищены, то эти программы создадут в вашем компьютере папку под названием You have been hacked и продемонстрируют, какие файлы они могут скопировать. Я нашел в этой папке случайно выбранные документы Word и даже файл .wav, содержащий звуковую запись, сделанную со встроенного в мой компьютер микрофона. Если бы в этот момент проходило важное совещание, в этом файле оказался бы фрагмент его записи. ПО анализа на поведенческом уровне Недавно появилось новое ПО, которое не обнаруживает определенных угроз и не ищет специфический код, а анализирует общую производительность системы. В начале 2001 года основанная группой специалистов по защите информации компания Okena, что по-гавайски означает <достижение>, выпустила свой первый продукт Stormwatch.
Okena Stormwatch сочетает статические и динамические эвристические методы с анализом на поведенческом уровне. В прошлом такого анализа избегали, так как вероятность ошибки часто сводила его преимущества на нет. В данном случае анализ на поведенческом уровне опирается на предположение о полномасштабной атаке. Stormwatch располагается в центре Windows, проверяет все команды и обращения к сети или системному реестру и может реагировать на любое отклонение от нормального поведения. Выпускаются версии для настольных ПК, ноутбуков и систем Windows NT и 2000. Собираем все вместе Каждый в отдельности из этих программных продуктов, защищающих от злоумышленного кода, не заменяет традиционных средств защиты; многие из них предназначены для использования наряду с традиционными средствами обеспечения безопасности, такими как брандмауэры и антивирусное ПО. В общем случае для надежной защиты системы необходимы следующие меры:
- Система обнаружения проникновений (для корпоративных пользователей)
Фундаментальная система обнаружения проникновений остается лучшим средством контроля запросов, поступающих в сеть, и выявления попыток масштабной атаки или проникновения злоумышленников администратором крупной сети.
- Брандмауэр (для индивидуальных и корпоративных пользователей)
Брандмауэр необходим для защиты операций с портом как в сети, так и в настольной системе. Проблема в том, что брандмауэры пассивны. Вы можете открыть порт или закрыть его, но контент, пропускаемый этим портом, останется неконтролируемым.
- Фильтры злоумышленного кода для интернет-шлюза (для корпоративных пользователей)
Программы Balitmore Technologies WebSweeper, Sybari Antigen и Finjan SurfinGate позволяют контролировать активный код, загружаемый с веб-сайтов в крупных сетях.
- Фильтры злоумышленного кода для ПК (для индивидуальных пользователей)
Программа Finjan SurfinSheild создает <песочницу> для активного кода, в большинстве случаев позволяя безопасно выполнять его.
- Антивирусное ПО (для индивидуальных и корпоративных пользователей)
Задача программных продуктов, анализирующих поведение, - защищать от неизвестных атак, но они предназначены для работы на пару с традиционным антивирусным ПО.
Защита компьютера больше не является одношаговой процедурой. Чтобы сохранять свой ПК в безопасности, необходимо использовать целый комплекс программных средств защиты.
|