### ВИРУСЫ И ЧЕРВИ: ЧТО ДАЛЬШЕ

ВИРУС - несколько килобайт, распространяющихся через машинные носители.

ЧЕРВЬ - несколько десятков килобайт, распространяющихся через Интернет.

Основные признаки: САМОРАСПРОСТРАНЕНИЕ и НЕЗАВИСИМОСТЬ.

При переходе к более сложным структурам происходит переопределение понятий.

Поясню на примере. Пусть червь состоит из двух составляющих: из
1. локальной части, заражающей несколько системных файлов, и из
2. сетевой части, копирующей червя на удаленную машину.
Что следует называть вирусом/червем в таком случае? Ни одна из частей не является самостоятельной и саморазмножающейся; однако, вирусный эффект производит их совместная работа. В случае же, если таких частей-модулей несколько сотен, причем половина из них -- необязательные (присутствие в общем наборе опционально), то уже нельзя строго определить, какой из наборов модулей является конкретным вирусом.

Поэтому далее мы будем рассматривать вирусы не как код, а как алгоритмы, то есть те задачи, действия, на которые они ориентированы.

Старые вирусы/черви мы объединим в одно общее понятие: локальный, или компактный вирус, то есть тот вариант, когда носителем "идеи" является всегда один и тот же кусок кода.

Вирус же, состоящий из независимых блоков, часть из которых присутствует опционально, назовем модульным, или ПЛУГИННЫМ ВИРУСОМ.

В результате имеем два следующих уровня сложности: компактные вирусы (вирусы,черви) и плугинные вирусы. То есть произошло разбиение вирусного алгоритма на части, и теперь можно независимо от кода, работать на уровне алгоритма, изменяя и дополняя вирус по мере необходимости.

Например, весьма мощная штука -- апгрейт полиморфного движка и/или метода заражения файлов. Более того, в приходящих в вирус плугинах может содержаться информация о новейших антивирусах, и о том, что и как с ними делать.

А теперь настало время провести аналогию с естественными природными формами.

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

2. Черви -- животные. Обладают много большей мобильностью, сами производят необходимые для размножения действия.

3. Модульный вирус -- человек. Обладает более сложным алгоритмом (мышлением) и передаваемым набором знаний; также способен к обмену знаниями (плугинами,блоками информации).

4. Распределенный вирусный алгоритм (РВА) -- общество.

Вот тут мы и подходим к самой сути. Общество представляет из себя набор _идей_, которые циркулируют среди его носителей (людей), причем носители обеспечивают надежность хранения этих идей, а также их обработку со временем. Заметим, что на этом уровне сами носители уже не имеют никакого значения.

Исходя из модели общества, сформулируем концепцию распределенного вирусного алгоритма (РВА):

- две основных сущности: НОСИТЕЛИ и ИДЕИ
- носители и идеи обладают модульной структурой (гены и мемы)
- носители и идеи взаимодействуют; три уровня взаимодействия: Н-Н, И-И, Н-И
- идея первична, носитель вторичен;
  задача носителя:
  - размножение, т.е. обеспечение надежности хранения идей
  - обработка и передача идей (т.е. <блоков информации>)
  задача "идеи" -- иррациональна

Другими словами, множество модульных вирусов образуют единую сеть, поддерживают необходимое на данные момент количество машин, а главное - передают и обрабатывают <блоки информации>, и обеспечиват надежность их хранения, т.е. резервное копирование и прочее.

Заметим, что разница между блоками носителя и блоками информации весьма эфемерна; просто в первом случае это скорее код, чем данные, а во втором наоборот.

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

В чем плюс модульной структуры носителя? ("идеи" модульны по определению) - минимизируется число передаваемой информации - возможны изменения носителей на алгоритмическом уровне

Еще раз о носителе. Это не компьютер. Компьютер -- это только свободная кочка в болоте информации; и с кочки на кочку перепрыгивает носитель-вирус, коий "несет" в себе идею, мысль, <блоки информации>, тратит машинное время на их обработку, передает другим носителям.

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

Так называемая "Проблема GMT": заключается физически - во вращении земного шара, а точнее - в "перемещении" зоны большинства включенных компьютеров, причем наибольшая плотность включенных машин в один момент времени предположительно занимает треть оборота (т.к. 8 часов рабочий день). Это значит, что если в РВА задействовано N машин, географический разброс коих случаен, то примерно 2/3 из них сейчас выключены, и только 1/3 включена. Однако, это не совсем так, если мы ориентируемся на определенный тип машин, а также учитываем, что число этих машин в разных временных зонах сильно различается.

Шаги, необходимые для создания РВА:

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

Как обычно, замечу, что все здесь сказанное до отвращения реально; поэтому возникает резонный вопрос: что же делать когда все это будет реализовано? Вот, кстати, интересная маза: надо создать такой РВА,