Компьютерра - Журнал "Компьютерра" №705
ТЕХНОЛОГИИ: Больной бизнес
Автор: Рабинович, Илья
Спроектированные еще десять-пятнадцать лет назад антивирусы отважно защищают пользователей от компьютерных вирусов. Только вот пользователям угрожают вовсе не вирусы.
ВЧЕРАОБ АВТОРЕ
хакер, системный программист и владелец стартапа SoftSphere Technologies, специализирущегося в области создания инновационных средств безопасности
Чтобы понять причины такого несовпадения и решить, что с этим делать, давайте вспомним, как развивалась индустрия защитного ПО. Первые вирусы появились в конце восьмидесятых, и название свое они получили от того, что распространялись путем самореплицирования своего тела в незараженные исполняемые или интерпретируемые файлы. Писали вирусы довольно профессиональные люди (ассемблер халатного подхода к кодированию не приемлет), причем цели их были далеки от меркантильных. Создатель вируса корпел ночами либо ради славы, либо потому, что ему нравился сам процесс написания и отладки довольно-таки сложных программ. Существовал даже негласный конкурс на самый маленький вирус для MS-DOS.
Примерно в то же время появились и первые антивирусные утилиты - относительно простенькие наборы инструментов для автоматического обнаружения и удаления (лечения) вирусов. Парадоксально, но появление и развитие антивирусов в какойто мере спровоцировало следующий виток антивирусных технологий: вирусы начали прятаться, появились стелсы и полиморфы. Стелс - это вирусная технология перехвата системных вызовов так, чтобы антивирус полагал, что инфицированный файл вовсе не заражен. Полиморфы использовали другой подход - они изменяли собственное бинарное тело от заражения к заражению так, чтобы антивирусные компании, получив образец вируса, не могли бы на основе этого образца построить подходящую модель детектирования и лечения его в других файлах.
Но и стелсы, и полиморфы - это вчерашний день. В Сеть пришли простые люди. Простые люди с простыми деньгами. Люди, которые совершали покупки в интернет-магазинах и управляли банковскими счетами через глобальную сеть. А вслед за ними потянулись искатели быстрой и легкой наживы, благодаря которым понятие зловредного ПО (сокращенно - зловреды, на некоторых интернет-форумах по безопасности такие программы еще называют "зверьками")было существенно расширено. Сегодня под malware (от английского malicious software) понимают adware (ПО, показывающее пользователям рекламу), spyware (ПО, которое шпионит за пользователями), dialers (этот вымирающий класс программ пользуется обычным телефонным модемом для звонков на платные телефонные номера), rootkits (этот класс программ используется для сокрытия присутствия в системе зловредного программного обеспечения, вспоминаем стелс-вирусы!), backdoors (это программы для удаленного управления компьютером), trojans (этот класс программ выдает себя не за то, чем на самом деле является), ransomeware (шифруют данные пользователей и вымогают деньги за дешифровку), worms (черви, делятся на почтовые и сетевые по методу распространения). Все эти программы часто путают с вирусами, хотя к вирусам они не имеют никакого отношения, так как не могут самостоятельно инфицировать файлы.
Сегодняшняя индустрия зловредного ПО - это громадный, многомиллиардный бизнес. Основные методы получения денег на зловредном ПО - кража банковских данных, реквизитов кредитных карт, показ несанкционированной либо не соответствующей действительности рекламы, сдача в аренду сетей зараженных компьютеров для организации спамрассылок и атак на сайты.
Традиционные же вирусы встречаются в диком виде (то есть, на компьютерах пользователей) все реже и реже. Основная причина - нерентабельность: слишком высоки затраты на разработку (требуется высококвалифицированный программист, время которого стоит очень дорого) и отладку по сравнению с обычным зловредным ПО. Более того, теперь можно не разрабатывать зловредов самому, а купить генератор, ткнуть пару раз мышкой - и все готово! Бизнес, однако!
Во времена первых вирусов основным средством борьбы с ними был сигнатурный вирусный сканер. То есть, брался образец (sample) зараженного файла, создавалась сигнатура на основе уникальных последовательностей байтов вирусного кода нем, а по обратному восстановлению логики инфицирования - процедура лечения пораженных файлов. В дальнейшем, когда началась эра полиморфных вирусов, были созданы эвристические методы детектирования и лечения их, основанные на методах эмуляции кода и нечетких вердиктах (типичный пример такого нечеткого вердикта: "Возможно, вариант вируса XXX"). Стелсвирусы породили общие методы их детектирования на основе сравнения данных, полученных через сканирование высокого и низкого уровней и резидентные (постоянно находящиеся в памяти) антивирусные мониторы, проверяющие открываемые и запускаемые файлы на лету.
СЕГОДНЯСегодняшняя индустрия защиты от зловредного ПО представляет собой экстенсивное развитие технологий конца 80-х начала 90-х годов. Сигнатурные сканеры, эвристика, резидентные антивирусные мониторы. Конечно, общий уровень организации работ и качество реализации пользовательского интерфейса поднялись на небывалую высоту, но под капотом у них все по-старому. И если еще в начале 2000 года эти методы работали относительно эффективно, то уже в 2007 году многим становится очевидно, что старые технологии борьбы больше не справляются с потоком зловредного ПО, захлестнувшим Интернет. Ибо бизнес диктует простое правило - деньги капают лишь до тех пор, пока твой зловред не начал детектироваться антивирусами. А значит, надо всеми силами предотвратить это!
Malware сегодня пишется так, чтобы обходить эвристические анализаторы антивирусов, а сигнатурные сканирующие модули обманываются путем модифицирования исполняемого кода (морфирование, перепаковка). Для усложнения получения антивирусными лабораториями образцов и усложнения процесса детектирования используются rootkit-технологии (аналог стелс-вирусов 90-х) для сокрытия своихпроцессов и модулей. Кроме того, пути распространения зловредного ПО претерпевают серьезные изменения. Если раньше это были постоянные массовые почтовые рассылки с прикрепленными программными модулями, то сейчас это массовые рассылки с ссылками на сайты, распространяющими инфекцию, взлом и внедрение подобных ссылок на легитимные страницы в Интернете, почтовые черви, самостоятельно модифицирующие свое тело от рассылки к рассылке для обхода антивирусов на почтовых серверах.
Счет в этой войне идет буквально на дни, если не на часы. Антивирус начал детектировать зловредный модуль на сайте, распространяющем заразу? Производитель зловреда в течение нескольких часов модифицирует его так, чтобы он больше не обнаруживался, и выкладывает обратно на сайт! Теперь вы понимаете, надеюсь, что стандартное тестирование антивирусных движков на качество обнаружения уже известных образцов зловредного ПО со стандартным 90-99% результатом с реальной ситуацией, с которой сталкивается пользователь при заражении, имеет мало общего? Ахиллесова пята современных антивирусных технологий - их реактивность. То есть, сначала зараза, а лишь потом - средства ее обнаружения и зачистки. Все то время, пока образец не попал в антивирусную лабораторию, идет инфицирование. Единственная надежда - на эвристик, но уровень его детектирования не дотягивает даже до 70%. Кроме того, ложные срабатывания становятся головной болью для производителей легитимного ПО (знаю по собственному опыту!) и обычных пользователей.
Так какие же технологии будут занимать умы пользователей в ближайшем будущем? Безусловно, это технологии, основанные на анализе поведения (так называемые HIPS) и белых списках. Рассмотрим каждую из них.
Исторически первая технология анализа поведения была основана на модели детекторов аномалий (на ней же базируются файрволлы) и имеет общее название classic HIPS. То есть, если приложение совершает потенциально опасное действие (запись в автозагрузку, например), защита выдает предупреждение об оном и просит пользователя принять решение (например, разрешить, запретить или внести в локальную базу правил как разрешенное). Для уменьшения количества подобных окон с вопросами обычно используется режим обучения (как и у файрволлов) либо онлайновая база знаний (community HIPS). Все подобные схемы имеют одну неразрешимую проблему: они перекладывают принятие решения на самого пользователя со всеми вытекающими. Такие защиты сложны в каждодневном использовании простым юзером и не получили сколь-нибудь массового распространения. Их ниша - суперпрофессиональные пользователи, считающие контроль синонимом слова "защита" (и наоборот). Примеры - почивший в бозе ProcessGuard, ProSecurity, SSM.