Как червь находил новые компьютеры

В 1988 году интернет ещё был сравнительно небольшой сетью университетов, исследовательских центров и государственных учреждений. Червь Морриса — программа, которая сама переходила с одного компьютера на другой, — использовал несколько способов проникновения в системы Unix. Среди них были ошибки в сетевых службах и подбор слабых паролей.

Заразив компьютер, программа искала другие машины, с которыми тот связывался, и пыталась скопировать себя дальше. Так одна заражённая система становилась отправной точкой для новых заражений: червю не требовалось, чтобы человек открывал файл или запускал его вручную.

Почему заражение повторялось

В программе была предусмотрена проверка: если на компьютере уже находилась копия червя, новую следовало не устанавливать. Но проверка не была безусловной. Моррис опасался, что системный администратор сможет обмануть программу, заставив её ошибочно решить, будто машина уже заражена. Поэтому иногда червь всё равно запускал ещё одну копию.

Это решение превратило распространение в лавину. На одной машине могли работать несколько экземпляров червя, каждый из которых тратил процессорное время, память и сетевые ресурсы и продолжал искать новые цели. Даже компьютер, уже «заражённый», не обязательно был защищён от повторного запуска.

Почему пострадала сеть

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

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