Раздел: Документация
0 ... 30 31 32 33 34 35 36 ... 102 с умом, то перегрузку сети можно легко предотвратить. Заразив все уязвимые уы. червь впадет в глубокую спячку, уменьшив свою активность до минимума. Можно пойти и дальше, выделив каждому из червей определенное пространство IP-адресов для заражения, автоматически наследуемое новорожденным потомством. Тогда процесс заражения сети займет рекордно короткое время, н при этом ни один из IP-адресов не будет проверен дважды. Исчерпав запас IP-адресов, червь обратит свои внутренние счетчики в исходное положение, вызывая вторую волну заражения. Часть ранее инфицированных узлов к этому моменту уже будет исцелена (но не залатана), а часть может быть инфицирована повторно. Как бы там ни было, грамотно спроектированный червь вызывать перегрузку сети не должен, и лишь досадные программистские ошибки мешают привести этот план в исполнение. Внешне такой червь может показаться вполне безопасным, и подавляющее большинство администраторов, скорее всего, проигнорируют сообщения об угрозе (ибо негласное правило предписывает не трогать систему, пока она работает). Дыры останутся незалатанными и... в один прекрасный момент Всемирная сеть рухнет. Вэтом свете весьма показателен процесс распространения вируса Code Red, в пике своей эпидемии заразившего свыше 359 ООО узлов в течение 24 часов. Как были получены эти цифры? Программа-монитор, установленная в локальной сети Лаборатории Беркли, перехватывала все проходящие через нее IP-пакеты и анализировала их заголовки. Пакеты, адресованные несуществующим узлам и направляющиеся на 80-й порт, были, очевидно, отправлены зараженным узлом (Code Red распространялся через уязвимость в MS US-сервере). Подсчет уникальных IP-адресов узлов-отправителей позволил надежно установить нижнюю границу численности популяции вируса. При желании процесс расползания вируса по Всемирной сети можно увидеть и в динамике (рис. 3.2) — v.caida.org/analysis/serurity/roТам же, на странице http://www.caida.org/analysis/security/code-red/coderedv2 analysis.xml, содержится текст, комментирующий происходящее зрелище. А зрелище и впрямь получилось впечатляющим и... поучительным. Всем, особенно разработчикам вирусов, настоятельно рекомендую посмотреть. Быть может, это научит кое-кого не ронять сеть своим очередным... ммм... творением. ни сите.*r*tmм • • Зависимость удепьной скорости распространения червя от времени КАК ОБНАРУЖИТЬ ЧЕРВЯ —Это знак червя? —Червь. И большой. Френк ХерРерт. «Дк- Грамотно сконструированный и не слишком прожорливый программный обнаружить не так-то просто! Есть ряд характерных признаков червя, но • они ненадежны, и гарантированный ответ дает лишь дизассемблнрованис.! что именно нужно дизассемблировать? В случае с файловыми вирусами : более или менее ясно. Подсовываем системе специальным образом подго ленные «дрозофиллы» и смотрим — не окажется ли какая-нибудь из них и:- нена. Хороший результат дает и проверка целостности системных файл** заранее сформированному эталону. В операционных системах семейс Windows на этот случай припасена утилита sfc.exe, хотя, конечно, спешил" рованный дисковый ревизор справится с этой задачей намного лучше. Черви же могут вообще не дотрагиваться до файловой системы, оседая в ош-тивной памяти адресного пространства уязвимого процесса. Распознать вредный код по внешнему виду нереально, а проанализировать весь слепок мяти целиком — чрезвычайно трудоемкий и затруднительный процесс более что явных команд передачи управления машинному коду червя м0" и не быть (подробнее см. ранее раздел «Структурная анатомия червя»)-Однако где вы видели вежливого и во всех отношениях корректного чер1 Ничуть ие собираясь отрицать тот факт, что среди червей попадаются и коинтеллектуальные разработки, созданные талантливыми и, бесспор"0-г Сначала червь размножался крайне медленно, можно даже сказать - .1е„ Впрочем, на поражение ключевых нервных центров сети у вируса уш.ю „ несколько часов, по истечении которых он успел оккупировать практик все развитые страны мира. Нагрузка на сеть стремительно росла, однако вайдеры с этим еще справлялись. Приблизительно через 12 часов, когда чг вступил во взрывную стадию своего размножения, объем перекачиваемого фика скачкообразно возрос в тысячи раз, и большинство сетевых ресурсов, залось недоступно, что затормозило распространение червя, но было уже здно, так как львиная часть уязвимых серверов к тому времени оказа... поражена. Испещренный характер спада кривой отражает периодическое -легание» различных сегментов Интернета, загибающихся от чудовищной: грузки, и их мужественное восстановление самоотверженными администр рами. Вы думаете, они устанавливали заплатки? А вот и нет! Через четыре ц. когда вирус окончил свое распространение и перешел к массированной аъ на кривой наблюдается небывалый всплеск, по сравнению с которым предг щий пик не тянет даже на жалкий холмик. 12 ООО искажаемых web-странш. минуту — это ли не результат?! —м„ программистами, автор этой книги вынужден признать, что фессн0"3" в1110Вленныс в живой природе, содержали те или иные конструкте черв"- демаскирук)Щие присутствие чего-то постороннего. гнвиьк чсрвя — большое количество исходящих TCP/IP-пакетов, рас- Церньи IP" все« сети и в большинстве своем адресованных несуществу-„нядакя чателяМ Рассылка пакетов либо происходит постоянно, либо со- """М ся через более или менее регулярные и при том очень короткие "РшаСТ)тКИ Времени, например через 3-5 с. Причем соединение устанавлива- "без использования доменного имени, непосредственно по IP-адресу. Не "Анализаторы трафика способны распознать этот факт, поскольку на уровне Т нии connect соединение всегда устанавливается именно по IP-адресам, возвращаемым функцией gethostbyname по их доменному имени. [I мвда как уже отмечалось, червь может сканировать локальные файлы жертвы на предмет поиска подходящих доменных имен. Это может быть и адресная книга почтового клиента, и список доверенных узлов, н просто архив HTML-юкументов (странички со ссылками на другие сайты для HTTP-червей в высшей степени актуальны). Ну, факт сканирования файлов распознать нетрудно. Достаточнопоместитьнаживку — файлы, которые при нормальных обстоятельствах никогда и никем не открываются (в том числе и антивирусными демонами, установленными в системе), но с ненулевой вероятностью будут замечены н проглочены червем. Достаточно лишь периодически контролировать время последнего доступа к ним. Другой верный признак червя — ненормальная сетевая активность. Подавляющее большинство известных на сегодняшний день червей размножается с неприлично высокой скоростью, вызывающей характерный взлет исходящего трафика. Также могут появиться новые порты, которые вы не открывали и которые непонятно кто прослушивает. Впрочем, прослушивать порт можно и без го открытия — достаточно лишь внедриться в низкоуровневый сетевой сер-ровоОЭТОМ К показаииям анализаторов трафика следует относиться со здо-i долей скептицизма, если, конечно, они не запущены на отдельной маши-. которую червь гарантированно не сможет атаковать. кстом»М ")Изнаком слУжат пакеты с подозрительным содержимым. Под «па-чой почт1ССЬ Понимаются не толькоTCP/IP-пакеты, по и сообщения электрон-К,Роватьс СОДержаЦ[ие откровенно «левый» текст (впрочем, червь может мас-"е хватит Я И Спама тщательно исследовать каждое снамСУерское письмо "Рсдпочтц1111 Нервов ни вРемени). ТСР-накеты в этом смысле намного более • — «чштельны, поскольку их анализ удается ав1°Т,".!Гие наметки дать все-т-ки можно. В частности, применительно к web-серверам аРактерным признаком shell-кода являются:библиотек типа % »«енакома„д„ЫхиитерпРетаторов(сгпс1.ехе,з1),системныхбибл "Wi.dll и подобных им файлов;записываемая * Деятельность из трех и более машинных команд NOP, РЧблизительно так: *и9090; 0 ... 30 31 32 33 34 35 36 ... 102
|