Я хочу поговорить о том ,
что начали применять
недавно , и что , я уверен ,
станет весьма
распространено в будущем -
о подкачке вирусом
дополнений из интернета.Для
чего это нужно и как это
можно сделать?
На первый вопрос
ответить довольно легко.
Во-первых , таким образом
можно закачать на
пораженный комп сколько
угодно , не заботясь о
размерах своего кода.
Во-вторых , апдейты могут
быть двух видов - апдейт
самого тела вируса , или
модуль расширения. В
первом случае заменяется
вирус на аналогичный , но с
измененной сигнатурой ,
либо вообще на совершенно
другой , т.о. затрудняется
обнаружение вируса
антивирусными
программами. Во втором
случае модуль расширения
может быть инфектором для
другого типа файлов или
чем-то более специфичным ,
типа password sender-а или
backdoor.Так вирус кроме
размножения сможет
выполнять и какие-то
служебные задачи , что , на
мой взгляд , является
революционным шагом. А
представьте себе
определение антивирусного
софта на компе и докачку
специализированого
анти-антивирусного модуля!
Т.о. мы получаем новый
уровень адаптируемости
вируса. Можно даже назвать
эти модули генами , что
должно ласкать слух
любителям генной модели
вирусов. Можно пойти
дальше и представить себе
сообщества вирусов ,
каждый из которых ,
оказавшись на компе ,
закачивает из инета другие
, "дружественные"
вирусы.Скорость
распространения вируса ,
входящего в такую группу
будет аналогична скорости
таких известных кроликов
как Melissa :)
Теперь о реализации.
Первое , что требуется - это
соответствующая
архитектура
вируса.Очевидно , что вирус
должен иметь в своем
составе т.н. серверную
часть , которая полностью
резидентна , отвечает за
поиск , доставку и запуск
дополнений. Т.о. в
заражаемом файле ,
независимо от типа , должны
быть две части , загрузчик
и сам сервер. Загрузчик
сбрасывает сервер на диск
и запускает его , а далее
передает управление
жертве . Сервер должен
иметь в себе процедуру
сканирования диска и
инфицирования хотя бы
одного типа файлов
(подумайте сами , почему).
Т.о. после замены самого
сервера залитым апдейтом
все последующие заражения
будут новыми , с иной
сигнатурой , а возможно и
способом.Тут надо
проследить , что когда
загрузчик сбрасывает
сервер , не произошло
замены новой версии
сервера более старой , из
предыдущих заражений.
Модули дополнений скорее
всего будут представлять
из себя dll , интерфейс может
быть различным.
Сканирование диска можно
сделать централизованным ,
в сервере , т.е. целевые (для
определенного типа файлов)
модули расширения должны
лишь экспортировать ф-ию
заражения. НО! При этом в
инфицируемый файл
прописывается
соответствующий загрузчик
и ТЕКУЩИЙ сервер.
А теперь мы подошли к
самому сложному - откуда
слить дополнения? Тут есть
несколько вариантов.
Первый , самый простой -
фиксированный адрес. Это
так просто , что и говорить
не о чем. Но , конечно ,
работает эта схема недолго
, как только аверы получили
ваш вирь в свои
кровожадные :) руки они
узнают и этот адрес. А
закрыть сайт , а тем более
страничку несложно.И все ,
ваш звИрек остался один в
этом жестоком мире! Он
сможет размножаться , но
при этом это уже вирь
старой волны , он уже
ничего не может слить из
инета.
Я подумал пару дней и
нашел более красивое
решение - использование
поисковых серверов. Вирус
в таком случае знает
ключевую фразу и поисковый
сервер. Ваше дело залить
дополнения на какой-то
сайт и внести его адрес в
базу поискового сервера.
Даже если страничку
закроют , вы можете открыть
новую и вновь
зарегистрировать ее на
поисковике! Всего-то!
Поначалу мне идея очень
понравилась , хорошая
защита от аверов и
довольно просто
реализуется... Но мир так
жесток !:) Эта метода тоже
имеет слабое место - если
вирус станет достаточно
известен , то на поисковике
могут поставить фильтр на
вашу ключевую фразу.
Вариацией предыдущего
метода является
использование поисковика
по фтп-серверам , там можно
задавать просто имя файла ,
а поиск ведется по
фтп-шникам , большая часть
которых являются
публичными , т.е. залить
туда может кто угодно и что
угодно.Вы спросите , а чем
же тогда этот сповоб
отличается от предыдущего?
А отличие радикальное!!
Залить может КТО УГОДНО!!
Т.е. тот же вирь!! Таким
образом можно
организовать мигрирующую
(хотя и не обновляющуюся)
базу модулей. Например ,
вирус отсчитывает
поколения , и при
достижении какого-то числа
с помощью поисковика ищет
какойто распространенный
файл , чтоб получить список
фтп-серверов. Среди них
ищет публичный , заливает
туда все что он имеет , под
НОВЫМИ именами, а в
последующие заражения
прописывает ЭТИ имена!
Красивая картинка , не
правда ли?:) Надеюсь аверы
заценят идею...:) Минус все
тот же - на поисковике
могут поставить фильтр...Но
в данном случае это
сделать уже сложней ,
слишком много фильтров
ставить придется. Кстати ,
вот пока писал мне пришла в
голову новая идея! Аверы
ведь не могу проверить ВСЕ
версии виря , т.е если
произошла миграция базы
модулей , то она уже
защищена от них !! Да ,
скажете вы , но и я не знаю
где и под какими именами
вся эта ботва лежит! А вот и
нет , скажу я!! Можно
организовать обратную
связь - вирус может
намылить , например , вам
все необходимые реквизиты
:). Конечно , мыло тоже надо
менять ,например через те
же обновления...Уже по ходу
написания этой статьи мне
пришло в голову отличное
усовершенствование этого
способа. Представьте себе ,
что в вирусе есть простой
командный интерпретатор,
который считывает команды
из файла , который и лежит
на фтп. А в командном файле
вы уже можете прописать
любые варианты апдейта.
Так вот , мигрировать может
только этот командный файл
, его расположение
передается вам по
дополнительному каналу
связи , а далее вы можете
его отредактировать. Т.о.
чтоб аверы могли отловить
все поколения ваших вирей
им нужно получить в свои
руки по одному экземпляру
из КАЖДОГО! Конечно , и это
не абсолютная защита , но
если вы вдумаетесь , то
поймете , что ловить такие
вирусы аверам будет весьма
сложно.
И , наконец , апофеоз
воспаленного воображения -
системы instant messaging , типа ICQ,
AIM, а также IRC. Реализация
несколько сложнее, но
вполне реальна , особенно в
последнем случае. Размер -
поверьте мне , несколько
килов всего! Зато ПОЛНАЯ
интерактивность!!! Просто
сказка...Представьте себе
вирусы разных авторов ,
сидящие на канале и
обменивающиеся модулями!!!
Аверам такое может
присниться только в
кошмарном сне!:) Проблемы -
все те же , вы не можете
просто прописать в вире
название канала в ирке или
номер в асе , его узнают
аверы и абзац! Но и решение
возможно аналогичноетому ,
что я предлагал для
предыдущего способа.
Например , тот же сервер
может после определенного
числа поколений может
генерить новое имя канала
или регистрировать новый
номер в асе для связи со
своим хозяином и сообщать
его вам. Так же можно
применить шифрование с
открытими ключами , так что
даже если аверы и
перехватят письмо с новыми
реквизитами ничего они не
узнают и весьма полезно
было бы применять цифровую
подпись во всем , что
заливает ваш вирь из инета.
Как видите , выбрать есть
из чего. Но самое сложное ,
лично для меня , выбрать
лучший метод..:)
Еще , что я хотел
отметить. Аверы тоже
апдейтят свои продукты. И у
них нет проблемы с тем ,
откуда слить обновление.
НО! Они не могут
контролировать
своевременность
обновлений , все зависит от
юзера. А я видел компы , на
которых был антивирус и ВО
, ПЕРВОЙ версии!!! Т.е. той ,
которой уже более полутора
лет, которая определяется
чем угодно , чуть ли не
калькулятором (calc.exe:))!!! То
ли эти юзеры вообще не
занют про обновления , то
ли считают , что достаточно
установить антивирус на
комп и вирусы будут
бояться этого компа!:) Так
вот , отвлекся , в отличие
от аверов вирус сам
обновляется и может это
делать хоть каждый день!
Неужели мы упустим такое
преимущество?!
В заключение хочу
сказать , что написание
такого вируса задача
непростая , это не батники
строчить(хотя и тут есть
место для творчества ,
конечно. Отвлекусь и скажу
, что лично я не люблю
батники т.к. просто считаю
их неэффективными). Но я
уверен , что есть люди
способные реализовать это
, в одиночку или вместе. Так
же не могу не сказать , что
на мой взгляд , что
подтверждает и эта статья ,
вирусы усложняются и это
приводит к тому что все
более актуальным
становится применение
языка высокого уровня при
написании вируса ,
например С/С++ , но это уже
тема другой статьи!:)
Сравнение современных
способов мутации вирусов и
мутации через сетевые
апдейты, на мой взгляд ,
показывает , что первое
если и не умрет , то
останется лишь
вспомогательным
средством. А на сцену
выйдут вирусы нового
поколения - метавирусы! И
они радикально отличаются
от вирусов старой волны !
Метавирус - это
динамическая структура
модулей , различных по
функциям, но объединенных
одной целью . А цель такова
- выживание структуры в
целом и служение своему
хозяину! Одно поколение
метавируса может
отличаться от другого
абсолютно всем , кроме
хозяина (хотя и это при
желании можно изменить:))
Через апдейт вы можете
менять сигнатуру , целевую
платформу (тип заражаемого
файла), алгоритм , способ
связи с хозяином, функции и
т.д. Все , что вы можете
придумать , все это можно
изменить! А теперь
подумайте , что могут
противопоставить этому
аверы? Ничего , только
пассивно ждать , когда
каким-то образом они
получат какое-то поколение
метавируса , внести его
сигнатуру в свою базу и
опять ждать...(Вы скажете ,
что есть еще и эвристика?
Да , это сильный ход с их
стороны , но и с этим можно
успешно бороться , об этом ,
в частности , в другой моей
статье.) Почему эта схема
так сильна? Потому , что
вирус действует не один , а
во взаимодействии со своим
хозяином! Конечно , это
требует от хозяина
каких-то усилий , но за все
нужно платить , тут уж
ничего не поделать. Совсем
независимый метавирус
возможен только при
наличии у него
искусственного интеллекта
, но мне это пока не под
силу :)
Я написал "выйдут на
сцену" и тут же
засомневался...Дело в том ,
(вынужден повториться) что
написание метавируса -
задача на порядок сложнее ,
чем написать обычный вирь.
Тут требуется уже
системный подход , если
можно так выразиться . Лишь
единицы в мире способны в
полной мере реализовать
такую идею в одиночку , а
групповые проекты в
вирусном мире (успешные)
мне пока не известны.
(кстати , метавирус удобней
для группового проекта ,
чем обычный вирус , т.к
состоит из нескольких
достаточно независимых
частей). Хотя есть еще один
вариант - кибероружие...А
где появляется оружие ,
появляются и деньги...Но
это в будущем..(хотя мы его
застанем, я думаю).
По поводу идей и
предложений по этой статье
пишите на мыло [email protected]
P.S. Одна из моих следующих
статей - что гадкого могут
сделать аверы. На мой
взгляд , есть довольно
радикальные решения ,
способные положить конец
вирусам , в их нынешнем
виде.
|