Поимеем Интернет
АрхивКомментарий дняВозможно ли создание вируса, способного заразить всю Сеть за считанные секунды? И чем чревато появление такой программы для общества?
Затронув во вчерашней колонке тему компьютерных вирусов, давайте сегодня продолжим её, доведя до логического завершения. Что произойдёт, если какой-либо вирус - а именно, червь, распространяющийся в Сети - захватит власть над значительной частью составляющих её компьютеров, и возможно ли вообще такое развитие событий? На эту тему можно просто фантазировать, но можно воспользоваться и данными - без преувеличения - уникального и увлекательного исследования, проведённого тремя специалистами по компьютерной безопасности (Staniford, Paxson, Weaver) при содействии DARPA, LBNL и Xilinx. Работа их (под выразительным заголовком "Как поиметь Интернет в свободное время" - How to 0wn the Internet in Your Spare Time), представленная на последнем симпозиуме USENIX Security, посвящена анализу уже случившихся сетевых эпидемий и разработке путей оптимизации механизмов работы червей с целью превращения их в идеальные вирусы - противодействовать которым человек не в состоянии.
Прежде всего, история помнит несколько примеров работы червей, заразивших практически все подверженные заражению цели в Сети. Это двойная эпидемия Code Red, пришедшаяся на лето прошлого года, и эпидемия вируса Nimda, случившаяся прошлой осенью. И Code Red, и Nimda были червями, использовавшими для заражения уязвимости в защите программного обеспечения (MS IIS). Заразив одну цель, червь начинал сканировать адресное пространство в поисках новых. Nimda, впрочем, выгодно отличался от Code Red тем, что был червём мультивекторным, использовавшим не только "дыры" в программе, но и репликацию через электронную почту, заражение компьютеров по локальной сети, через веб-странички и даже лазейки, оставленные самим Code Red. Оба случая можно считать классическими в смысле демонстрации практически достигнутых скоростей распространения: так документы свидетельствуют, что 18 сентября, в первый день проявления Nimda, вирусу потребовалось лишь два часа для того, чтобы размножиться в количестве, достаточном для доведения числа пробных HTTP-соединений с одним, случайно выбранным сервером в Сети, до сотни в секунду.
Однако, два часа - отнюдь не предельная скорость. Существует два простых, но ещё не задействованных вирусописателями, способа повышения вирулентности зловредных компьютерных созданий. Проистекают они из известных проблем существующих червей: чрезвычайно медленной скорости распространения на начальном этапе (когда количество заражённых машин исчисляется единицами) и повторного сканирования одних и тех же целей, снижающего эффективность репликации вируса на этапе, когда его численность уже сравнительно велика (вспомните Nimda, тысячи копий которого слепо тыкались по случайным IP-адресам, ежесекундно приводя к появлению сотен соединений с одним и тем же узлом). Решить эти проблемы можно соответственно применением механизмов hit-list scanning и permutation scanning. Первый заключается в предварительной подготовке автором вируса списка из нескольких десятков тысяч потенциально подверженных заражению целей и предоставлению вирусу этих данных. Второй способ состоит в жёстком разделении сканируемого адресного пространства Сети между копиями вируса - дабы каждая последующая копия не перекрывалась с предыдущей. Объединение этих техник в одном вирусе позволит получить т.н. червь Вархола (Warhol worm), который - согласно результатам моделирования - способен заразить подавляющее большинство подверженных заражению целей в Сети всего за четверть часа.
Можно сделать и ещё более быстрого, т.н. моментального червя (flash worm), который покроет всю Сеть за полминуты. Для этого атакующему потребуется лишь быстрый канал (в данном примере - OC-12, 622 Мбит/с) и два часа на то, чтобы перебрать всё адресное пространство Сети, составив список целей для атаки. Кроме этого списка вирус нужно наделить сведениями о том, какие цели обладают самыми быстрыми подключениями к Сети - дабы заражать их в первую очередь.
Впрочем, есть и ещё один путь к созданию идеального червя: отказаться от скорости, уделив внимание маскировке. Вирус, сумевший заразить миллионы машин (пусть за несколько дней или даже недель) и оставшийся при этом незамеченным - столь же опасная штука, сколь и его моментальные коллеги.
Чем чревато появление идеального червя? Автор такого вируса получит контроль над миллионами машин - обретя возможность устраивать неотразимые распределённые DOS-атаки, уничтожая как рядовые серверы, так и важные для функционирования всей Сети системные узлы. Он получит в свои руки полную власть над информацией десятков миллионов пользователей. В руках государств такие черви - инструмент, отлично дополняющий военные конфликты. В руках террористов - самое страшное оружие.
Бороться с идеальными червями в кульминационные моменты эпидемий практически невозможно: скорость их действий на этой стадии заведомо выше скорости человеческой реакции. Но минимизировать потери и попытаться предупредить нападение на ранних стадиях можно - для этого необходимо создать единый для всей Сети центр по компьютерным инфекциям (Cyber-Center for Disease Control - в определении авторов работы). Несмотря на название, это должен быть децентрализованный орган, собирающий информацию по всему сетевому пространству, и анализирующий её в реальном времени. Помимо этого, CDC должен будет заняться определением направлений будущих вирусных ударов: это вполне разрешимая задача, требующая лишь тщательной технической проработки.
Обсудите материал в форуме