Метавирусы
Меза
[февраль 2000]

Я хочу рассказать о теме, которая была использована недавно, и которая, я уверен, получит широкое распространение в будущем - загрузка вирусных дополнений из Интернета.
в будущем - скачивание вирусных дополнений из Интернета.

Зачем это нужно и как это возможно?

На первый вопрос ответить просто. Во-первых, поскольку на зараженный компьютер можно загрузить сколько угодно, мы можем больше не беспокоиться о размере кода. Во-вторых
обновления могут быть двух типов - обновление всего тела вируса или модуля расширения.
В первом случае вирус заменяется аналогичным, но с другой сигнатурой, или вообще
вообще другим вирусом, что затрудняет поиск вируса антивирусными программами. В
втором случае, модуль расширения может быть инфектором для других типов файлов, или
что-то более специфическое: кейлогер/отправитель паролей или бэкдор. Таким образом, вирусы, за исключением
дублирования, смогут выполнять полезную работу, что, на мой взгляд, является
революционным шагом в эволюции вирусов. Или вы можете представить себе определение антивирусного
программного обеспечения на зараженном компьютере, путем загрузки целевого антивирусного модуля! Таким образом,
мы получаем новый уровень адаптации вирусов. Можно даже назвать эти модули по
генам, что должно навести любителей на мысль о генетических моделях вирусов. Можно пойти
дальше и представить себе сообщества вирусов, каждый из которых, находясь на зараженных компьютерах,
загружают из Интернета другие вирусы-"друзья". Распространение такого вируса будет происходить так быстро.
как такие известные кролики, как Мелисса :)

Теперь о реализации этого. Первое, что требуется - соответствующая архитектура
вируса. Очевидно, что этот вирус должен состоять из серверной части, которая, будучи полностью
резидентна, отвечает за поиск, доставку и выполнение дополнений. Таким образом, в
зараженном файле, независимо от типа, должно быть две части: загрузчик и сам сервер - двойная архитектура.
двойная архитектура. Загрузчик забрасывает сервер на диск и запускает себя, а затем передает
управление обратно жертве. Сервер должен иметь в себе процедуру сканирования диска и
заразить хотя бы один тип файла (подумайте сами, зачем). Таким образом, после изменения большей части сервера
обновлением, все следующие поколения будут новыми, с другой сигнатурой или, возможно.
с другим алгоритмом .Здесь необходимо сказать, что когда загрузчик запускает сервер, он
не должен менять новую версию сервера со старой версией предыдущего поколения.
поколения. Модули могут быть dlls, интерфейсы могут быть разными. Сканирование диска - это можно сделать с сервера, т.е. модуль целевого расширения (для определенного типа файлов)
должен только экспортировать процедуру заражения. НО! Он должен заражать с помощью соответствующего загрузчика и
КУРРЕНТНЫЙ сервер !

Теперь мы готовы рассмотреть самый сложный вопрос - где проводить дополнения? Существует
есть несколько вариантов. Первый, и самый простой - фиксированный url. Это настолько просто, что нет необходимости
говорить об этом. Но, конечно, долго эта схема работать не будет - как только аверы
получат ваш вирус в свои кровожадные :) руки, они закроют этот сайт. И теперь ваш
ребенок останется один в этом жестоком мире! Он сможет размножаться, но это будет старая волна
вируса.

Я подумал пару дней, и нашел более красивый вариант - использовать
поисковые системы, например yahoo.com . Вирус в таком случае знает ключевую фразу и поисковый
сервер. Ваша проблема загрузить дополнения на какой-нибудь сайт и добавить его url в базу
поискового сервера. Даже если страница будет закрыта, вы можете открыть новую и зарегистрировать ее в поисковой системе!
в поисковой системе! В целом это то, что нужно! Сначала эта идея мне очень понравилась, хорошая
защита от аверов и федералов и достаточно простое кодирование... Но мир так жесток !:) Этот
метод имеет и слабое место - если вирус станет достаточно известным, аверы могут установить
фильтр для вашей ключевой фразы в поисковой системе.

Другой вариацией предыдущего метода является использование поисковой системы ftp, здесь можно
просто задать имя файла и искать его на ftp-серверах, которые в большинстве своем являются публичными, т.е.
любой может загружать на них файлы. Вы можете спросить, а чем этот метод отличается от предыдущих?
Отличие радикальное!!! Загрузить может любой!!! Т.е. даже ваш вирус!!! Таким образом, можно
организовать миграцию базы модулей (пусть и не обновленных). Например, вирус считает
поколения, и при достижении некоторого числа, он ищет какой-нибудь широко распространенный
файл, чтобы получить список ftp-серверов. Среди них он ищет публичный, загружает туда все, что у него есть.
имеет, под НОВЫМИ именами, но в будущих поколениях прописывает ТО САМОЕ имя! Красивая
Красивая картина, не правда ли?:) Надеюсь, Аверсу понравятся эти идеи...:) Минус тот же - фильтр на
поисковой системе...Но в данном случае это сделать сложнее - слишком много фильтров нужно ставить в случае с
много поколений. Кстати, пока я это писал, мне пришла в голову новая идея! В конце концов, Avers не может
не могут проверить ВСЕ версии вируса, т.е. если произошла миграция базы модулей, то новые поколения уже защищены от них!
новые поколения уже защищены от них !!! Да, скажете вы, я тоже не знаю, где
и под какими названиями все это лежит! И да и нет - отвечу я!!! Можно организовать
обратную связь - вирусы могут прислать, например, вам по электронной почте всю необходимую информацию :). Конечно, нужно
нужно менять и адрес электронной почты... Уже в процессе написания этой статьи я
придумал еще одно отличное усовершенствование этого метода. Представьте себе командный интерпретатор
в вирусе, который читает команды из файла, лежащего на ftp. В этом случае вы можете
прописать любой вариант обновления. Так и здесь, перемещаем только этот пакетный файл, его местоположение передается
вам по дополнительному каналу связи, и в дальнейшем вы можете редактировать этот файл. Таким образом
должны иметь копию вируса КАЖДОГО поколения, чтобы быть уверенными, что они знают все о
всех поколениях! Конечно, это тоже не абсолютная защита, но если вы немного подумаете, то поймете, что поймать такие вирусы невозможно.
поймете, что поймать такие вирусы очень сложно.

И, наконец, апофеоз разгулявшегося воображения - системы мгновенного обмена сообщениями, такие как ICQ,
AIM, а также IRC. Реализация немного сложнее, но вполне реальна и
возможна, особенно в последнем случае. Размер - поверьте, всего несколько кб! Но вы получаете ПОЛНУЮ
интерактивность!!! Просто сказка... Представьте себе вирусы разномастных писателей, сидящих на
канале и обмениваются модулями!!! Кошмар для аверса !:) Проблемы - те же самые, вы не можете
нельзя просто прописать в вирусе имя канала для IRC или UIN для ICQ, потому что это легко для
аверс может найти! Но решение такое же, как я предлагал для предыдущего метода. Например,
один и тот же сервер может, после определенного числа поколений, сгенерировать новое имя для
канала или зарегистрировать новый UIN для взаимодействия с его хозяином и сообщить об этом вам. В настоящее время
можно применить кодирование с помощью открытых ключей, поэтому даже если аверы получат письмо с новыми
свойствами, они ничего не узнают, а это было бы весьма полезно для применения цифровой
подпись во всех загрузках вашего вируса из инета.
Как видите, выбор у вас есть. Но самое сложное, лично для меня, это выбрать
лучший метод...:)
Еще один момент, который я хочу отметить. Аверы тоже обновляют свои продукты. И у них нет
проблем с тем, где проводить обновления. НО! Они не могут контролировать время обновления, все зависит от пользователя. И я видел компьютеры, на которых стоял антивирус.
и BO (Back Orifice), ПЕРВАЯ версия!!! Т.е. BO, который уже известен около двух лет.
сейчас, который определяется всем, почти калькулятором (calc.exe:))!!! Неужели эти
пользователи вообще не знают об обновлении, то ли они считают, что достаточно установить на компьютер антивирус и вирусы будут бояться !:) Так что в противовес avers , вирус
обновляется сам и может делать это хоть каждый день! Разве можно упустить такое преимущество?!

Подводя итог, хочу сказать, что написание такого вируса - задача не из легких. Но я уверен, что
есть люди, способные реализовать ее, в одиночку или вместе. Как я уже сказал, эта статья, на мой взгляд.
подтверждает и то, что вирусы становятся все сложнее, а также делает вывод о том, что все больше и больше находится
и большее применение для написания вируса язык высокого уровня, например ?/? ++,
но это уже тема другой статьи!:)

Сочетание современных способов мутации в вирусах и мутации через сетевые
обновления, на мой взгляд, демонстрирует, что первое если и не умрет, то останется только вспомогательными
средствами. И на сцене появятся вирусы нового поколения - метавирусы! И они
радикально отличаются от старых вирусов! Метавирусы - это динамические каркасы из модулей, разных
функций, но объединенных одной целью. И цель эта - выживание каркаса как единого целого и служение своему хозяину!
в целом и служение своему хозяину! Один метавирус из одного поколения может абсолютно отличаться от
от другого, кроме хозяина (хотя и это, при желании, можно изменить:)). Через
обновления можно изменить сигнатуру, целевую платформу (тип заражаемого файла), алгоритм,
способ связи с хозяином, функции и т.д. Все, что вы можете придумать, может быть
изменить! А теперь подумайте, что противники могут этому противопоставить? Ничего. Только пассивно ждать,
когда каким-то образом они получат любое поколение метавируса, найти его сигнатуру и снова
ждать... (Вы можете сказать, а как же эвристика? Да, это сильный шаг со стороны их группы, но
несмотря на это, можно успешно бороться). Почему эта схема так сильна? Потому что
вирус действует не один, а во взаимодействии с хозяином! Конечно, для этого необходимо
усилия со стороны мастера, но для всех этих вещей, это необходимая жертва. Сайт
абсолютно независимый метавирус возможно создать только тогда, когда искусственный интеллект будет полностью готов 
но я пока не могу этого сделать:)

Я написал "уйдет со сцены" и тут я начал сомневаться в этом... Дело в том, что
написать метавирус - сложнее, чем написать обычный вирус. Системные подходы здесь
требуются уже  совсем иные, если можно так выразиться. Только единицы в вирусном мире способны
реализовать такую идею в отдельности, а успешные групповые проекты в вирусном мире мне пока неизвестны.
 (кстати, метавирусы больше подходят для группового проекта, чем
обычный вирус, потому что он состоит из нескольких существенно независимых частей). Хотя есть еще один
еще один вариант - кибероружие... А где есть оружие, там есть и деньги... Но это
это в будущем... (хотя мы его достигнем, я думаю).

По поводу идей и предложений по этой статье пишите на почту [email protected]