Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Митчелл.doc
Скачиваний:
19
Добавлен:
15.03.2016
Размер:
1.2 Mб
Скачать

Самовоспроизведение и мутации

Эти принципы можно экстраполировать на метауровень: процесс копирования и рассредоточения может сам копироваться, рассредоточиваться и передвигаться, становясь таким образом более жизнеспособным, чем процесс, привязанный к одному потенциально уязвимому комплексу оборудования. Образцом такого поведения служат паразиты, бактерии и вирусы: попав в благоприятные условия, они начинают размножаться и распространяться по множеству различных каналов, отчего от них очень непросто избавиться.

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

На этой стадии худшим исходом неконтролируемого размножения было зависание одного компьютера, и чтобы исправить положение, достаточно было перезагрузиться. Объединение компьютеров в сети моментально изменило ситуацию. Появилась возможность посылать разрушительные программы с компьютера на компьютер в открытую — или же более коварным способом, незаметно прикрепляя их к имейлам или другим передаваемым данным. Более того, несложно было переписать их таким образом, чтобы они не просто размножались на новом месте, но и самостоятельно прикреплялись к исходящим имейлам для дальнейшего распространения. Так в эру интернета компьютерные вирусы научились имитировать поведение своих биологических предшественников.

Подвижный самовоспроизводящийся программный код может (как и многие биологические вирусы) бьпъ безвредным, даже приносить огромную пользу, но зато как он умеет вредить! Многим интернет–пользователям знакомо отчаяние, которое вызывают компьютерные вирусы. Они переполняют память, стирают файлы, портят программы, выводят на монитор оскорбительные надписи, рассылают вирус другим пользователям или просто форматируют жесткий диск. Разнообразие ущерба тут ограничивается лишь воображением и техническими навыками (а среднего уровня для этого дела более чем достаточно) программистов с дурными наклонностями и сетевым подключением.

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

С помощью воспроизведения программного кода можно не только распространять вирусы. Это еще и способ накопить силы для внезапной крупномасштабной атаки из множества разных точек сети. Для организации атаки DDoS (Distributed Denial of Service) хакеры, тайно взяв под контроль большое количество машин, в какой‑то момент дают всем им команду спать запросы на определенный сервер, таким образом перегружая его и выводя из строя. Более того, атаковать можно не один, а сразу несколько серверов одновременно, что дает потенциальную возможность преодолеть защитную избьп’очность всемирной сети. К примеру, в октябре 2002 года DDoS–атакам подверглись девять из тринадцати разбросанных по миру корневых серверов интернетаЗО. Длительная, успешная DDoS–атака на все тринадцать корневых серверов обрушила бы всю сеть.