Журнал "Компьютерра" №705
Шрифт:
Во времена первых вирусов основным средством борьбы с ними был сигнатурный вирусный сканер. То есть, брался образец (sample) зараженного файла, создавалась сигнатура на основе уникальных последовательностей байтов вирусного кода нем, а по обратному восстановлению логики инфицирования - процедура лечения пораженных файлов. В дальнейшем, когда началась эра полиморфных вирусов, были созданы эвристические методы детектирования и лечения их, основанные на методах эмуляции кода и нечетких вердиктах (типичный пример такого нечеткого вердикта: "Возможно, вариант вируса XXX"). Стелсвирусы породили общие методы их детектирования на основе сравнения данных, полученных через сканирование высокого и низкого уровней и резидентные (постоянно находящиеся в памяти) антивирусные мониторы, проверяющие открываемые и запускаемые файлы на лету.
Сегодняшняя индустрия защиты от зловредного ПО представляет собой экстенсивное развитие технологий
Malware сегодня пишется так, чтобы обходить эвристические анализаторы антивирусов, а сигнатурные сканирующие модули обманываются путем модифицирования исполняемого кода (морфирование, перепаковка). Для усложнения получения антивирусными лабораториями образцов и усложнения процесса детектирования используются rootkit-технологии (аналог стелс-вирусов 90-х) для сокрытия своихпроцессов и модулей. Кроме того, пути распространения зловредного ПО претерпевают серьезные изменения. Если раньше это были постоянные массовые почтовые рассылки с прикрепленными программными модулями, то сейчас это массовые рассылки с ссылками на сайты, распространяющими инфекцию, взлом и внедрение подобных ссылок на легитимные страницы в Интернете, почтовые черви, самостоятельно модифицирующие свое тело от рассылки к рассылке для обхода антивирусов на почтовых серверах.
Счет в этой войне идет буквально на дни, если не на часы. Антивирус начал детектировать зловредный модуль на сайте, распространяющем заразу? Производитель зловреда в течение нескольких часов модифицирует его так, чтобы он больше не обнаруживался, и выкладывает обратно на сайт! Теперь вы понимаете, надеюсь, что стандартное тестирование антивирусных движков на качество обнаружения уже известных образцов зловредного ПО со стандартным 90-99% результатом с реальной ситуацией, с которой сталкивается пользователь при заражении, имеет мало общего? Ахиллесова пята современных антивирусных технологий - их реактивность. То есть, сначала зараза, а лишь потом - средства ее обнаружения и зачистки. Все то время, пока образец не попал в антивирусную лабораторию, идет инфицирование. Единственная надежда - на эвристик, но уровень его детектирования не дотягивает даже до 70%. Кроме того, ложные срабатывания становятся головной болью для производителей легитимного ПО (знаю по собственному опыту!) и обычных пользователей.
Так какие же технологии будут занимать умы пользователей в ближайшем будущем? Безусловно, это технологии, основанные на анализе поведения (так называемые HIPS) и белых списках. Рассмотрим каждую из них.
Исторически первая технология анализа поведения была основана на модели детекторов аномалий (на ней же базируются файрволлы) и имеет общее название classic HIPS. То есть, если приложение совершает потенциально опасное действие (запись в автозагрузку, например), защита выдает предупреждение об оном и просит пользователя принять решение (например, разрешить, запретить или внести в локальную базу правил как разрешенное). Для уменьшения количества подобных окон с вопросами обычно используется режим обучения (как и у файрволлов) либо онлайновая база знаний (community HIPS). Все подобные схемы имеют одну неразрешимую проблему: они перекладывают принятие решения на самого пользователя со всеми вытекающими. Такие защиты сложны в каждодневном использовании простым юзером и не получили сколь-нибудь массового распространения. Их ниша - суперпрофессиональные пользователи, считающие контроль синонимом слова "защита" (и наоборот). Примеры - почивший в бозе ProcessGuard, ProSecurity, SSM.
Следующее поколение защит основывается на модели "поведенческих сигнатур", имеет общее название blacklisting HIPS или expert HIPS и является невольным продолжением традиций антивирусных решений. То есть защита анализирует последовательность поведенческих шагов программ с шаблонами (сигнатурами) поведения известных зловредов и выносит вердикт. Защита практически не мешает обычной повседневной работе, но имеет типичные недостатки всех антивирусных решений - ложные срабатывания на легитимном ПО и несрабатывания на зловредном. Кроме того, подобные системы все же перекладывают принятие окончательного решения на самого пользователя (не все из них, но ложные срабатывания тогда хуже контролируются) и предъявляют некоторые требования к его технической подготовленности. Типичные примеры - Kaspersky PDM, Norton Antibot, PC Tools Threatfire.
Модель "белых списков" в мире
мир программного обеспечения довольно давно. Кроме того, есть несколько реализаций данной модели для систем HIPS, имеющих общее название whitelisting HIPS и основанных на контроле запускаемых приложений. То есть при запуске нового приложения, которого нет в белом списке разрешенных, выдается окно с предупреждением (обычно доступно несколько действий - "разрешить", "запретить", "добавить в список разрешенных"), как с возможностью уменьшения выдачи оных за счет проверки их цифровых подписей (например, Comodo Anti-virus, Comodo Firewall v3), так и без (например, Anti-Executable). Несколько компаний собирают цифровые отпечатки заведомо легитимных файлов в единую базу данных (например, Bit9). Недостатки подобных систем в том, что не все файлы можно подписать (скажем, cmd-скрипты, doc-файлы), а попытка создать базу всех легитимных исполняемых файлов в мире заведомо обречена на провал из-за гигантских размеров базы и необходимости обрабатывать громадный, постоянно растущий объем данных ежедневно (и, как следствие, обречена на провал попытка защитить пользователя от запуска вредоносных программ на сто процентов). Кроме того, скорость реакции whitelisting HIPS… такая же, как у антивирусов (но с другим знаком, конечно, - система не успевает за выходом "хорошего" ПО). Единственно правильное решение для применения идеологии "белого списка", которое я видел, - добавление данного элемента к уже существующим решениям в области защиты (например, упрощение анализа логов зараженных компьютеров с помощью программы AVZ и базы заведомо чистых элементов автозагрузки и системных библиотек).
Если все описанные выше поведенческие защиты были основаны на переработанных, но уже известных и апробированных моделях из мира PC security, то следующий класс продуктов безопасности пришел, скорее, из мира разработки ПО. Речь идет о системах, общее название которых - sandbox HIPS (Host Intrusion Prevention System), "песочница". В основе их построения - модель разделения всех приложений в системе на "доверенные" и "недоверенные" и предположение о том, что зловредное ПО проникает лишь через процессы, работающие с небезопасными сегментами Интернета и потенциально опасными файлами оттуда: то есть через браузеры, почтовые, IM-, IRC-, P2P- и мультимедиа-клиенты. Доверенные приложения (например, системные процессы) работают как обычно, недоверенные - ограничены в правах на потенциально опасные операции (например, установка драйвера). Никаких всплывающих окон с вопросами, перекладывающими принятие решения на пользователя, здесь нет, потенциально опасные действия недоверенных приложений просто блокируются согласно внутренним предустановленным правилам.
Максимум, что можно увидеть, - редкие короткие уведомительные сообщения (на самом деле, и такие системы могут заблокировать "хороший" софт, ошибочно отнеся его к "недоверенным", поскольку четких критериев разделения, увы, не существует.
– Прим. ред.). Требования к технической подготовке пользователя практически отсутствуют. Также, ограниченно, можно безопасно устанавливать неизвестное, новое ПО как недоверенное для его пробы. Разделяют sandbox HIPS с виртуализацией файловой системы и реестра и без оных (или имеющих их в минимальном объеме). Те "песочницы", что имеют виртуализацию файловой системы и реестра, нуждаются в постоянной очистке контейнера виртуализации из соображений безопасности. Sandbox HIPS без виртуализации проще в повседневной эксплуатации.
Недостатки подобных систем - необходимость помнить, как именно будет запущен только что выкачанный из Интернета инсталлятор нового приложения. Типичные примеры - DefenseWall HIPS (без виртуализации), SandboxIE (с виртуализацией).
Если же мы вспомним Windows Vista UAC, то эта модель есть не самый удачный, с моей точки зрения, вариант смеси модели classical HIPS и sandbox HIPS. Так что же предложат нам антивирусные компании для защиты от зловредного ПО в ближайшие несколько лет? По моему личному мнению, это будет смесь из sandbox HIPS и элементов "белого списка". Дело в том, что основная проблема антивирусной индустрии - временной лаг между началом распространения новой модификации зловредного ПО и добавлением соответствующей сигнатуры в базу данных. Если заполнять его blacklisting HIPS, получится то же самое, что есть сейчас, только вид сбоку, поскольку данный вид также зависит от (да, поведенческих, но тем не менее!) сигнатур, да и зачастую будет забрасывать пользователя своими вердиктами с просьбой подтвердить их или опровергнуть. Если же это будут whitelisting HIPS, то постоянные всплывающие окна на неподписанных приложениях также сведут эффективность данной системы на нет. Только системы, построенные на основе sandbox HIPS, могут похвастаться отсутствием раздражающих окон с вопросами, отсутствием перекладывания ответственности за принятие окончательного решения на пользователя и очень высоким интегральным уровнем защиты, способной удерживать зловредное ПО внутри "недоверенной" зоны до тех пор, пока соответствующая сигнатура не будет добавлена в антивирусную базу.