Записки исследователя компьютерных вирусов
Шрифт:
ВНИМАНИЕ
Наличие двух таблиц импорта в файле – верный признак его заражения!
Расширение уже существующей таблицы импорта менее заметно, но при наличии опыта работы с РЕ-файлами его все-таки можно разоблачить. Так, большинство линкеров упорядочивают импортируемые функции по алфавиту, и функции, дописанные вирусом в конец таблицы импорта, сразу же обращают на себя внимание. Даже если импорт и не отсортирован, повышенная концентрация характерных для вируса API-функций не останется незамеченной.
ПРИМЕЧАНИЕ
Перечисление имен всех импортируемых функций обычно идет сплошным потоком от первой
…Вот мы и рассмотрели основные способы выявления зараженных файлов и теперь можем смело приступать к расширению и углублению полученных знаний и навыков. Чем больше вирусов пройдет через ваши руки, – тем легче будет справиться с каждым из них. В конце концов, не так страшны вирусы, как люди…
Глава 2Вирусы в Unix, или гибель титаника IIиз которой читатель узнает, что в UNIX-системах вирусы не только живут, но даже очень бурно размножаются, пожирая скрипты и демонстрируя с десяток различных способов внедрения в elf/coff/a.out файлы
…ночью 14 апреля 1912 года принадлежавший Британии непотопляемый океанский лайнер «Титаник» столкнулся с айсбергом и утонул, унеся с собой более пятнадцати сотен из двух тысяч двухсот пассажиров… Поскольку «Титаник» был непотопляем, на нем не хватило спасательных шлюпок…
Джозеф Хеллер. «Вообрази себе картину»…считается, что в UNIX-системах вирусы не живут – они там дохнут. Отчасти это действительно так, однако не стоит путать принципиальную невозможность создания вирусов с их отсутствием как таковых. В действительности же UNIX-вирусы существуют, и на начало 2004 года их популяция насчитывает более двух десятков. Немного? Не торопитесь с выводами. «Дефицит» вирусов носит субъективный, а не объективный характер. Просто в силу меньшей распространенности UNIX-подобных операционных систем и специфики их направленности в юниксоидном мире практически не встречается даунов и вандалов. Степень защищенности операционной системы тут ни при чем. Надеяться, что UNIX сможет справиться с вирусами и сама несколько наивно, и, чтобы не разделить судьбу «Титаника», держите защитные средства всегда под рукой, тщательно проверяя каждый запускаемый файл на предмет наличия заразы. О том, как это сделать, и рассказывает следующая глава.
От древнего мира до наших дней
Исторически сложилось так, что первым нашумевшим вирусом стал Червь Морриса, запущенный им в Сеть 2 ноября 1988 года и поражающий компьютеры, оснащенные 4 BSD UNIX. Задолго до этого, в ноябре 1983 года, доктор Фредерик Коэн (Dr. Frederick Cohen) доказал возможность существования саморазмножающихся программ в защищенных операционных системах, продемонстрировав несколько практических реализаций для компьютеров типа VAX, управляемых операционной системой UNIX. Считается, что именно он впервые употребил термин «вирус».
На самом деле между этими двумя событиями нет ничего общего. Вирус Морриса распространялся через дыры в стандартном программном обеспечении (которые, кстати говоря, долгое время оставались незаткнутыми), в то время как Коэн рассматривал проблему саморазмножающихся программ в идеализированной операционной системе без каких-либо дефектов в системе безопасности вообще. Наличие дыр просто увеличило масштабы эпидемии и сделало размножение вируса практически неконтролируемым.
А теперь перенесемся в наши дни. Популярность UNIX-подобных систем стремительно растет, и интерес к ним со стороны вирусописателей все увеличивается. Квалификация же системных администраторов (пользователей персональных компьютеров и рабочих станций), напротив, неуклонно падает. Все это создает благоприятную среду для воспроизводства и размножения вирусов, и процесс их «производства» в любой момент может принять лавинообразный характер, – стоит только соответствующим технологиям попасть в массы. Готово ли UNIX-сообщество противостоять этому? Нет! Судя по духу, витающему в телеконференциях, и общему настроению администраторов, UNIX считается непотопляемой системой и вирусная угроза воспринимается крайне скептически.
Между тем качество тестирования программного обеспечения (неважно – распространяемого в открытых исходных текстах или без таковых) достаточно невелико, и, по меткому выражению одного из хакеров, один единственный SendMail содержит больше дыр, чем все Windows-приложения, вместе взятые. И хотя огромное количество различных дистрибьютивов UNIX-систем многократно снижает влияние каждой конкретной дырки, ограничивая ареал обитания вирусов сравнительно небольшим количеством машин, в условиях всеобщей глобализации и высокоскоростных Интернет-каналов даже чрезвычайно избирательный вирус способен поразить тысячи компьютеров за считанные дни или даже часы!
Распространению вирусов невероятно способствует тот факт, что в подавляющем большинстве случаев система конфигурируется с довольно демократичным уровнем доступа. Иногда это происходит по незнанию и/или небрежности системных администраторов, иногда по «производственной» необходимости. Если на машине постоянно обновляется большое количество программного обеспечения (в том числе и создаваемого собственными силами), привилегии на модификацию исполняемых файлов становятся просто необходимы, в противном случае процесс общения с компьютером из радости рискует превратиться в мучение.
Антивирусные программы, в том виде, в котором они есть сейчас, категорически не справляются со своей задачей, да и не могут с ней справиться в принципе. Это не означает, что они полностью бесполезны, но надеяться на их помощь было бы по меньшей мере наивно. Как уже отмечалось выше, в настоящий момент жизнеспособных UNIX-вирусов практически нет. И, стало быть, антивирусным сканерам сканировать особо и нечего. Эвристические анализаторы так и не вышли из ясельной группы детского сада и к реальной эксплуатации в промышленных масштабах явно не готовы.
Ситуация усугубляется тем, что в скриптовых вирусах крайне трудно выделить устойчивую сигнатуру – такую, чтобы не встречалась в «честных» программах и выдерживала хотя бы простейшие мутации, отнюдь не претендующие на полиморфизм. Антивирус Касперского ловит многие из существующих скриптовых вирусов, но… как-то странно он их ловит. Во-первых, вирусы обнаруживаются далеко не во всех файлах, а во-вторых, простейшее переформатирование зараженного файла приводит к тому, что вирус остается незамеченным.