#1
|
|||
|
|||
[FWD] "В будущем каждый получит шанс на 15 минут славы" Энди Уорхол [1/
Alexey Haritonov написал(а) к All в Feb 04 00:45:00 по местному времени:
Subject: [FWD] "В будущем каждый получит шанс на 15 минут славы" Энди Уорхол [1/ ============================================================================= * Переслал Alexey Нaritonov (2:5015/10.50) * Обл. : SU.CM (SU.CM) * От : Igor Dikshev, 2:5020/400 (Четверг, 05 Февраля 2004г. 18:16) * Кому : All * Тема : "В будущем каждый получит шанс на 15 минут славы" Энди Уорхол [1/2] ============================================================================= From: "Igor Dikshev" <dik@isf.rwth-aachen.de> http://www.pop3.ru/~drmad/warhol.htm ------------------------------------ Червь Уорхола: поражение Интернета за 15 минут! Nicolas C. Weaver nweaver@cs.berkeley.edu ------------------------------------------------------------------------------- - Нижеприведенные материалы - это анализ наихудшего развития событий при инфицировании компьютерным червем с использованием существующих механизмов и модифицированной стратегии заражения. Черви, подобные "Червю Уорхола", могут инфицировать каждую уязвимую машину в течение 15 минут, опередив любые человеческие защитные меры. Необходимо осознать возможную угрозу для того, чтобы разработать лучшие средства защиты. "В будущем каждый получит шанс на 15 минут славы" Энди Уорхол ------------------------------------------------------------------------------- - Недавняя вспышка активного червя Red Code доказала, насколько уязвима наша сеть. Но червь мог быть в тысячу раз ужасней. Он мог содержать злонамеренные фрагменты: перепрограммирование FLASН-BIOS, что потенциально привело бы к разрушению машин. Он мог бы включать атаки на различные сервера или на вторичную электронную почту, чтобы увеличить распространение. Вирусу потребовалось 12 часов, чтобы достичь эпидемического порога, и за это время было организовано сопротивление ему. Но простым изменением способа заражения червя Уорхола злонамеренный программист может нанести ущерб всем уязвимиым машинам мира всего за 15 минут. Ответная реакция человека потерпела бы неудачу перед таким напором. Это важное свидетельство в пользу того, насколько мы уязвимы. Активный червь, такой как Code Red или оригинальный червь Морриса, использует дыры в защите серверов. Он сканирует Интернет в поиске машин, на которых запущен этот сервис. Затем он пытается взломать этот сервис. При успехе он инфицирует машину-жертву другой копией себя. По истечении периода в несколько часов он следует с исходной машины в Интернет и поражает его. Различие между активным червем и червем Уорхола заключается лишь в стратегии поиска целей инфицирования. Существует 4 миллиарда интернетовских адресов и, допустим, что 1 миллион машин уязвимы перед вирусом Уорхола. Допустим, что вирус имеет размер примерно 100К и выполняется в виде нескольких параллельных потоков, что позволяет ему зондировать и атаковать одновременно многие машины. Далее предположим, что атакуемые сервера имеют качественную сетевую связь, так что работающая копия червя зондирует 100 машин в секунду и инфицирует 10 машин в секунду, и затрачивает 1 секунду для того, чтобы перенести червя к новой цели. Окончательно примем, что автор Уорхолова червя заранее спланировал и подготовил список из 50000 компьютеров с хорошей сетевой связью и работающей копией уязвимого серверного софта, так что хотя бы 25% из них действительно были бы подвержены заражению червем. Червь стартует с единственой машины, имея в виду список из 50000 целей. Червь обходит список в определенном порядке, зондирует и инфицирует машины. Когда он успешно заражает машину, то делит список пополам, посылает половину на только что инфицированную машину, а сам работает с другой половиной. Это разделение труда позволяет червю инфицировать каждую уязвимую машину из списка в течение минуты. Теперь ориентировочно 12000 машин будут инфицированы и начнется вторая стадия. Червь первоначально попытается инфицировать все хосты в подсети перед началом поиска новых целей в Большом Интернете. Но вместо выборки случайных машин или сканирования сети в последовательном порядке червь использует псевдослучайный порядок. Червь Уорхола содержит генератор для псевдослучайного перемешивания всех 4 миллиардов Интернетовских адресов. Каждая новая копия червя, порожденная во время фазы обхода фиксированного списка, стартует со своего адреса и просматривает список в поиске новых целей для инфицирования, в то время как каждая копия червя, порожденная во время второй фазы, сразу начинает работу со случайного адреса. Если она обнаруживает другую функционирующую копию себя, то она выбирает новый случайный адрес и продолжает работу с него. Это приведет к двум разновидностям червя: одна зондирует сеть случайным образом (скачет по сети), другая перебирает адреса последовательно (чем минимизируются усилия и гарантируется, что какой-нибудь конкретный адрес когда-нибудь все равно будет затронут). Даже если черви и не инфицируют новых машин во время этой фазы, они должны затратить 50-100 часов, чтобы просканировать весь Интернет со скоростью 100 сканов за секунду с определенной машины. Если компьютеры включены в список целей за свое быстродействие и хорошую связь, то это время может быть существенно меньше. Но имея 1 миллион уязвимых машин, любой конкретный акт сканирования дает 0.25% вероятности заражения. Поэтому, выполняя 1.2 миллиона попыток в секунду, исходная копия червя реально поразит за одну попытку не более 300 целей. Ко второй минуте после запуска червь заразит около 30000 машин. К третьей минуте будет около 70000 зараженных машин. Понятно, что полное инфицирование сети будет завершено в пределах 15 минут. В нормальных условиях червь, который использует случайное зондирование, инфицирует около половины доступных хостов, после чего количество новых заражений начнет заметно снижаться. Полностью сбалансированный червь, который в совершенстве разделяет задачи сканирования Интернета, будет замедляться при каждом новом инфицировании. Псевдослучайная или случайная комбинация является компромиссом, позволяющим червю всесторонне сканировать Интернет без потерь на передачу информации между копиями, кроме необходимости проверить, действительно ли потенциальная цель уже инфицирована. Интернет будет притормаживать во время этого процесса, но не так сильно, как можно было бы ожидать. Используя только несколько байтов при сканировании цели для обнаружения, действительно ли сервер работает, приблизительно 5К для инфицирования и 100К для передачи при успешном инфицировании, общее количество передаваемых данных оказывается неожиданно маленьким: даже на пике инфицирования, когда заражено миллион машин, происходит только сто миллионов сканирований в секунду по всему миру, что для сети лишь чуть-чуть больше, чем это имело место при Code Red. В настоящее время не существует защиты против злонамеренного червя Уорхола. Автор такого червя должен легко вызвать сотни миллиардов реальных разрушений, включая разрушенные данные, уничтоженные машины и потерянное время. К тому времени, когда мир осознает, что случилось, все разрушения уже будут завершены. Приложение 1. Обоснование предположений Размер червя 100К. 100 Кб данных - это обоснованная длина червя. Этого достаточно для инфицирующего и компактного, но эффективного злонамеренного кода. С некоторой осторожностью этот размер может быть снижен до 50К и менее. 100 сканирований за секунду. Сканирование единичной машины с целью определить, работает ли на ней уязвимый сервис, требует килобитной скорости передачи и приема данных, что соответствует качеству связи 100 килобит/с для каждого активного червя. Поскольку серверная машина, выбранная для заражения, по определению снабжена хорошей сетью, это легко достижимо. Многие машины способны делать до 1000 сканирований в секунду. 10 атак за секунду. 10 атак за секунду потребуется, чтобы разослать всего червя. Для серверов со скоростью доступа 1 мегабайт в секунду это немножко многовато, но многие машины легко перекрывают этот уровень. Нижний предел в одну атаку за секунду должен быть достаточным, поскольку самая медленная фаза распространения, вероятно, займет менее минуты. Во время второй фазы инфицирования скрость ограничена скоростью зондирования, а не скоростью атаки. 1 секунда для инфицирования машины. Обзор и инфицирование машины требует, чтобы зондирование было успешным как при передаче червя, так и в момент старта. Поскльку червь имеет размер только 100К, то он легко выполнится в течение секунды для машин, связанных непосредственно. Обратите внимание, что период спячки в несколько секунд лишь незначительно уменьшает распространение в фазе случайного сканирования, но зметен лишь в фазе прохода по списку. 1 миллион уязвимых хостов. Code Red I и II, вроде бы инфицировали от 500000 до 1000000 машин в сети. Меньшее количество потенциальных хостов должно незначительно замедлить скорость инфицирования, но даже с 500000 уязвимых машин время распространения должно составлять порядка 15 минут. Она длжна увеличиваться каждые 2 минуты вместо каждой минуты пока все уязвимые машины не будут инфицированы. Начальный список сканирования. Сканирование по первоначальному списку - это медленное сканирование, которое может быть выполнено только на основе заранее подготовленного списка потенциально уязвимых машин. В случае, если веб-сервер еле ползает, надо использовать какую-то другую форму сканирования. Собрать такой список можно в течении нескольких недель, даже если сканировать сервера только на работоспособность, без учета уязвимости. Много иформации доступно в опубликованном виде. На практике должно быть довольно трудно обнаружить и оттрассировать такое сканирование. Проект Нoneynet позволяет обнаружить только общее количество совершенных попыток сканирования за период времени. Медленное, но вдумчивое сканирование для определения версии веб-сервера и его времени отклика может быть замаскировано шумом, создаваемым специальными отвлекающими скриптами. Также подобный список может быть создан перед тем, как изучена реальная уязвимость адресов. Злоумышленник просто собирает каталог машин с потенциально уязвимыми сервисами и конструирует червя с кодом, предназначенным исключительно только для исследования. Финальный червь может использовать результаты работы этого предварительного червя. Псевдослучайное сканирование. Псевдослучайное перемешивание очень легко делается. Достаточно иметь 32-битовый блочный шифр и выбрать ключ. Для генерации N-го шага перемешивания достаточно зашифровать N. Для получения индекса определенной машины K достаточно расшифровать K. http://crader.narod.ru email: redarc@trojan.ru -+- ifmail v.2.15dev5.3 + Origin: FidoNet Online - http://www.fido-online.com (2:5020/400) ============================================================================= Привет All! До свидания, Alexey. ... NP:-[DEAD!]──[WWW.SVALKA.TK]──[ICQ: 324575753] --- [GoldED+/W32 1.1.5-040120]-[Radius]-[IDC-5614BXL/VR+] |