Оригинал материала находится по адресу old.computerra.ru/think/sentinel/37641/
16.02.2005

Синдром врожденного иммунодефицита, или Вирус для антивируса

История, о которой сегодня пойдёт речь, во многом парадоксальна. Она приключилась на прошлой неделе, но в то же время стара как сам компьютерный мир. Её последствия могут обернуться миллионными потерями для тысяч пользователей, но вы вряд ли сдержите улыбку, когда узнаете подробности. Да и начиналась она с малого. 8 февраля компания Internet Security Systems (ISS) опубликовала отчёт своих специалистов, обнаруживших в одной популярной антивирусной программе "дыру", а попросту - недоработку, потенциально чреватую известного рода неприятностями. Анализировали работники ISS антивирус компании Symantec, а если быть точным, то входивший в её состав модуль DEC2EXE.

Здесь стоит сделать лирическое отступление и вспомнить, как работают антивирусы. Принцип, положенный в основу большинства таких инструментов, предельно прост: когда операционная система пытается прочесть очередной файл, антивирус сканирует его на предмет наличия подозрительных включений. Чаще всего сканируемый код просто сравнивается с сигнатурами из базы данных и, если совпадение обнаружено, можно говорить о поимке вируса. Безусловно, есть и иные, более хитрые методы, позволяющие, в частности, обнаруживать зловредный код даже не зная его "в лицо", но в данном случае это не существенно. Вернёмся к нашим баранам, а именно - к модулю DEC2EXE.

Хитрый этот элемент предназначался как раз для помощи в разборе подозрительных файлов. Всякий раз, когда антивирусу попадались исполняемые файлы, упакованные популярной (и не только в среде Windows) утилитой UPX, за работу принимался DEC2EXE. Проблема в том, что в коде самого модуля имеются ошибки, из-за чего в некоторых случаях DEC2EXE может вести себя некорректно по отношению к системе. Заслуга специалистов ISS заключается в том, что они показали, как именно следует изменить заголовки сжатого с помощью UPX файла, чтобы заставить DEC2EXE ошибиться, вызвать переполнение буфера и в конце концов уступить контроль. Постарайтесь не запутаться в софтверных переплетениях: DEC2EXE предназначается для защиты системы от вирусов, но сам того не ведая, может вирусы запускать.

Вначале были вирусы. Потом антивирусы для вирусов. Потом вирусы для антивирусов для вирусов. Потом антивирусы для вирусов для антивирусов для вирусов. Может быть хватит?

Теперь самое время перейти от частностей к общему. Следите за руками: модуль DEC2EXE входит в состав программной библиотеки под названием Symantec AntiVirus Library. В свою очередь эта библиотека включена в состав нескольких программных продуктов, выпускаемых компанией Symantec. В их числе Norton и Symantec AntiVirus, Symantec Mail Security, Symantec BrightMail, Symantec Gateway Security и некоторые другие, предназначенные для защиты компьютеров от вирусов, спама и хакерских атак на всём спектре вычислительной техники от десктопа до серверов, работающих под управлением различных операционных систем (MS Windows, Linux, Solaris и др.). Одно только перечисление всех уязвимых пакетов и версий занимает пять страниц! А оценить масштабы трагедии в полной мере позволяет простой мысленный эксперимент.

Представьте себе компьютер, на котором работает, к примеру, тот же Symantec AntiVirus. Счастливый пользователь мнит себя в безопасности, ибо и не подозревает, что его антивирус теперь - распахнутая дверь, воспользоваться которой может всякий желающий злоумышленник. Для заражения такой машины вирусом достаточно изготовить тот самый некорректный UPX-файл, в тело которого внедрить зловредный код. После чего выслать файл жертве электронным письмом, передать на компакт-диске или через Сеть - не суть важно, какой протокол или механизм будет задействован: антивирус контролирует все входы и выходы из компьютера, так что он обязательно попытается проверить полученный файл и, конечно, запустит вирус.

А теперь попробуйте догадаться, что было дальше - не считая, конечно, обычного для таких историй выпуска патчей, которые следует срочно установить всем пользователям уязвимых программ. Представьте, если у какого-нибудь черношляпого хакера всё же достанет ума и терпения написать вирус, эксплуатирующий дыру в DEC2EXE. Догадались? Да, почти одновременно и ISS, и Symantec добавили в свои продукты защиту от такого, пока несуществующего вируса. И получился - правильно! - антивирус для вируса для антивирусов! И, пожалуйста, не думайте, что цепочка на этом оборвётся. Печально, но факт: ни один из существующих механизмов противодействия цифровым вирусным инфекциям не способен на превентивный удар. Иначе говоря, разработчики антивирусов действуют по факту: есть вирус (или, по крайней мере, его алгоритм) - будет и антивирус. Но ни словарные проверки, ни эвристический анализ, ни виртуальные машины не в состоянии решить проблему в полной мере, защитив от заразы, которая пока не придумана, и вирусописатели остаются на шаг впереди, а авторы антивирусов - в роли догоняющих. Нужны как воздух свежие идеи!

P.S. В статье использована иллюстрация Peter Hellberg.


антивирус,Symantec,DEC2EXE,чёрный_хак,ZDV




Евгений Золотов, 1999-2018. Личный архив. Некоторые права защищены