Борьба за выживание Эдайн Гхэллах Спецвыпуск Xakep, номер #035, стр. 035-060-1 Способы защиты от антивирусов Антивирус – враг каждого вирусописателя, по определению. Мы создаем вирусы, они находят и убивают их. Вирусописатели создают все более и более сложные вирусы, а антивирусники – все более и более совершенствуют свои продукты. Эта постоянная гонка ведет к усложнению технологий. Сейчас, если вирус не является полиморфным, его шансы выжить равны нулю. Вирусам необходимо защищаться. Эта статья - попытка описать и обобщить способы выживания вирусов. Основные принципы На распространение вируса требуется какое-то время. На написание “лечилки” для вируса также нужно время. Причем, чем меньше первое время и больше второе, тем лучше (для вирусописателей, конечно). На этом основываются все приемы защиты. Существует множество видов защит вирусов, но оптимальной стопроцентной защиты не существует, и вообще, сколько вирусописателей – столько и мнений на этот счет. Я постараюсь выделить самые основные виды и как-то их классифицировать. Защита может быть двух видов: активная и пассивная. К пассивной защите можно отнести принципы сложности и незаметности. К активной – различные механизмы обновления через Сеть. Также активным способом являются приемы защиты от отладчиков и дизассемблеров, которые будут рассмотрены в конце статьи. Есть еще одна классификация защит - по этапам. Время жизни вируса можно условно разделить на следующие этапы: Распространение вируса. Попадание в антивирусную контору. Выпуск антивируса. Защита принципиально отличается на каждом этапе. Распространение вируса Главное правило выживания на этом этапе – незаметность. Многие вирусописатели любят вставлять в свои творения красочные эффекты, картинки, надписи, а иногда просто деструктивные функции. Они не понимают, что этим укорачивают им жизнь. Необходимо применять различные способы сокрытия вируса в системе, если он резидентен. Иногда очень эффективны простые ограничения на заражаемые системы: установлен SoftIce – не заражать, установлен AVP – не заражать и т.д. Конечно, так многие компьютеры просто не будут заражены. Но зато и вирус почти наверняка не будет обнаружен. Еще лучше сделать такие ограничения временными. К примеру, проходит месяц, вирус заразил большое количество машин, но лишь простых пользователей, не беспокоящихся о безопасности, потом все ограничения снимаются, и вирус начинает полноценно размножаться, но уже не с одной машины, как в начале, а с нескольких тысяч. Этап второй – попадание в антивирусную контору Рано или поздно вирус будет обнаружен, и какой-нибудь особо “умный” пользователь отошлет его антивируснику. Теперь игра идет на минуты, чем дольше антивирусник разбирается в алгоритме вируса, тем больше и больше распространяется вирус. Главный принцип защиты на этом этапе – сложность. Простейший вирус будет определен с помощью эвристического анализа еще на первом этапе. Хороший полиморфный вирус потребует нескольких часов работы специалистов из антивирусной конторы. Анализ сложного пермутируещего вируса может занять несколько дней. Этап третий – выпуск антивируса |