Существуют прочие способы заражения удаленных компьютеров, например:
- копирование червя на сетевые ресурсы;
- проникновение червя на компьютер через уязвимости в операционных системах и приложениях;
- проникновение в сетевые ресурсы публичного использования;
- паразитирование на других вредоносных программах.
Первый способ заключается в том, что червь ищет удаленные компьютеры и копирует себя в каталоги, открытые на чтение и запись (если такие обнаружены). При этом черви данного типа или перебирают доступные сетевые каталоги, используя функции операционной системы, и/или случайным образом ищут компьютеры в глобальной сети, подключаются к ним и пытаются открыть их диски на полный доступ.
Для проникновения вторым способом черви ищут в сети компьютеры, на которых используется программное обеспечение, содержащее критические уязвимости. Для заражения уязвимых компьютеров червь посылает специально оформленный сетевой пакет или запрос (эксплойт уязвимости), в результате чего код (или часть кода) червя проникает на компьютер-жертву. Если сетевой пакет содержит только часть кода червя, он затем скачивает основной файл и запускает его на исполнение.
Отдельную категорию составляют черви, использующие для своего распространения веб- и FTP-сервера. Заражение происходит в два этапа. Сначала червь проникает в компьютер-сервер и необходимым образом модифицирует служебные файлы сервера (например, статические веб-страницы). Затем червь «ждет» посетителей, которые запрашивают информацию с зараженного сервера (например, открывают зараженную веб-страницу), и таким образом проникает на другие компьютеры в сети.
Существуют сетевые черви, паразитирующие на других червях и/или троянских программах удаленного администрирования (бэкдорах). Данные черви используют тот факт, что многие бэкдоры позволяют по определенной команде скачивать указанный файл и запускать его на локальном диске. То же возможно с некоторыми червями, содержащими бэкдор-процедуры. Для заражения удаленных компьютеров данные черви ищут другие компьютеры в сети и посылают на них команду скачивания и запуска своей копии. Если атакуемый компьютер оказывается уже зараженным «подходящей» троянской программой, червь проникает в него и активизирует свою копию.
Следует отметить, что многие компьютерные черви используют более одного способа распространения своих копий по сетям, использующие два и более методов атаки удаленных компьютеров.
P2P-Worm — черви для файлообменных сетей
Механизм работы большинства подобных червей достаточно прост — для внедрения в P2P-сеть червю достаточно скопировать себя в каталог обмена файлами, который обычно расположен на локальной машине. Всю остальную работу по распространению вируса P2P-сеть берет на себя — при поиске файлов в сети она сообщит удаленным пользователям о данном файле и предоставит весь необходимый сервис для скачивания файла с зараженного компьютера.
Существуют более сложные P2P-черви, которые имитируют сетевой протокол конкретной файлообменной системы и на поисковые запросы отвечают положительно — при этом червь предлагает для скачивания свою копию.
55. DDOS –атаки: механизмы и последствия.
Перед тем, как переходить к рассмотрению особенностей DDoS (Distributed DoS) атаки, следует подробнее остановиться на том, что же представляет из себя обычная DoS атака. Аббревиатура DoS или «Denial-of-Service» в переводе с английского означает «Отказ-в-обслуживании».
Целью большинства атак является либо несанкционированый доступ в систему, либо получение прав «суперпользователя» или администратора, либо другие неправомерные действия пользователя, такие как подмена документов и кража конфиденциальной информации.
Для DoS атаки характерно достижение того самого «отказа-в-обслуживании», т.е. приведения сетевого или иного ресурса в такое состояние, когда он не может обрабатывать запросы легальных пользователей. Вариантов проведения такой атаки множество. Самыми популярными являются наводнение (flood) сети пакетами различных протоколов (например, ICMP, UDP или TCP), в результате которого почти все вычислительные и сетевые ресурсы уходят на создание бесполезных ICMP-ответов или TCP-сессий. В общем случае, целью DoS атак могут стать любые ограниченные ресурсы, будь то количество одновременных подключений к компьютеру или число попыток входа в систему.
Например, если в вашей сети установлено ограничение на 5 попыток неправильного ввода пароля с последующей блокировкой учетной записи до принудительного разблокирования её администратором, то в таком случае злоумышленник может провести DoS атаку на учетные записи и в результате вы получите множество заблокированных учетных записей, для разблокирования которых необходимо вмешательство администратора. Другим примером может стать ошибка в ОС, приводящая к аварийной остановке компьютера. Например, атака «teardrop» на Windows 95/98 (использующая ошибку реализации протокола NetBIOS) приводит к практически мгновенному «падению» ОС. А теперь представьте, что это ошибка в вашем Web сервере и злоумышленник не в вашей сети? Потери при таких атаках могут достигать астрономических цифр.
Так чем же DDoS атака принципиально отличается от DoS? Долгое время стандартным вариантом реализации атаки была атака типа «один-к-одному» или «один-ко-многим», т.е. один атакующий производил атаку на один или несколько узлов. Для реализации атаки типа ICMP flood ему нужно было иметь достаточно «толстый» канал. Т.е. если пропускная способность канала злоумышленника оказывалась меньше, чем канала жертвы, то такая атака в большинстве своем оказывалась нерезультативной. Да и найти злоумышленника, так же как и защититься от подобной атаки, было намного легче, поскольку она велась из одной точки. Ситуация начала меняться в 1998 году, когда появились первые DDoS-средства и были проведены первые распределенные атаки. Таким образом, к DoS атакам добавилась еще одна буква «D», т.е. «Distributed» или «Распределенные». С появлением подобных средств изменилась сама концепция проведения атак и многие средства обнаружения атак (Intrusion Detection System или IDS) оказались бессильны. Вместо старого отношения «один-к-одному» и «один-ко-многим» новые атаки уже имели отношение «многие-к-одному» и «многие-ко-многим»
Ко всему прочему, атаки стали 3-х уровневыми. Рассмотрим стандартную модель DDoS атаки
Как видно, злоумышленник напрямую более не взаимодействует с жертвой. Он действует при помощи «мастеров» (master) и «демонов» (daemon). «Мастеров» обычно несколько и их стараются разместить на машинах с большим трафиком. Например, на серверах имен (NS) провайдера. Такие серверы имеют достаточно широкий канал в Internet, и небольшое увеличение передаваемой/принимаемой информации остается незаметным. Еще одним из важных моментов является то, что такие серверы не должны выключатся ни на минуту, а для удаления «мастера» зачастую необходима перезагрузка компьютера. После того, как установлены один или несколько «мастеров» наступает момент установки «демонов».
«Демон» – это обычная программа типа «троянский конь», которая устанавливается на чужую машину (чаще всего путем использования известных ошибок в ПО).. После установки на машину «демон» связывается с одним из «мастеров» и получает от него команды. Помимо списка атакуемых узлов, «демон» может получить адреса новых «мастеров», время начала DDoS атаки и т.д. Такая структура создает множество проблем. Теперь для того, чтобы прекратить атаку, необходимо нейтрализовать большинство «демонов». Проблема состоит в том, что каждый исполнитель (компьютер, на котором установлен «демон») ничего не знает о других. Единственно возможным вариантом является перехват управления над «мастером», но в новых версиях ПО для проведения распределенных атак, «демон» после начала атаки может более не подчиняться командам «мастера». Это увеличивает вероятность успешного проведения атаки, но есть и недостаток для хакера, так как в этом случае он не сможет повторно использовать эту сеть «демонов» для новой атаки. Учитывая, что атака происходит одновременно с нескольких тысяч компьютеров, для реализации атак типа «flood» больше не нужно наличие высокоскоростного канала. Достаточно обычного модемного соединения. К тому же, большинство межсетевых экранов не могут самостоятельно блокировать адреса, с которых идет атака. И если в случае обычной DoS атаки было достаточно добавить одно правило фильтрации пакетов межсетевым экраном, то в случае распределенных атак таких правил должно быть несколько тысяч! Многие межсетевые экраны просто не в состоянии обработать такое количество правил. Можно конечно просто перекрыть весь ICMP трафик (как было сделано в случае атак на Yahoo.com в феврале 2000 г.), но многие средства позволяют использовать одновременно несколько типов атак, например, генерацию ложных запросов к Web серверу. А отсутствие доступа к Web серверу – это как раз тот результат, которого добивались злоумышленники. Не следует так же забывать, что многие средства для проведения DDoS атак позволяют производить подмену IP-адреса, и межсетевой экран с фильтрацией по IP-адресу просто бесполезен.
После такой «радужной» картины хотелось бы рассмотреть имеющиеся на данный момент средства для проведения DDoS атак, а также дать некоторые рекомендации по их предотвращению.
Первыми средствами для проведения DDoS атак были Trin00, TFN (Tribe Flood Network) и Stacheldraht. Trin00 был первым средством для проведения DDoS атак, в нем не было большого выбора типа атаки и подмены адресов. Все это появилось в TFN. Ко всему прочему, в TFN появилась возможность шифрования хранящегося у «демона» файла с адресами жертв. В версии TFN2K появилась возможность шифрования управляющего трафика. Продолжением развития средств DDoS стал Stacheldraht (колючие провода). Это средство было синтезом Trin00 и TFN2K. Все вышеперечисленные версии работали исключительно под UNIX-системами, но в феврале 2000 года фирма ISS (Internet Security Systems) сообщила о появлении «демона» Trin00 под Windows. На настоящий момент в мире существует множество средств для проведения DDoS атак. Основной задачей каждого средства является возможность заражения (установки «демонов») как можно большего числа машин. К сожалению, неосведомленность конечных пользователей о возможной угрозе и их беспечность часто приводит к тому, что их машина становится плацдармом для проведения DDoS атаки.
Так как же избежать DDoS атаки? Начнем с плохого. На сегодняшний день не существует эффективных мер по защите от атак такого типа. То, что вы исключите возможность проникновения «демонов» на вашу машину не гарантирует того, что другие пользователи сделают то же. К сожалению, в мире существует огромное количество компьютеров имеющих различные «дыры». Причем производители ПО уже давно выпустили соответствующие «заплатки» для них, но пользователи просто либо не знают об этом, либо относятся беспечно к различным предупреждениям. А если учесть количество новых пользователей сети Internet… Картина далеко не радостная.
Вообще говоря, очень сложно построить абсолютно надежную защиту от атак такого типа. Например, от вредоносного HTML кода можно очень просто избавиться, применив простую программу, вырезающую все скрипты из тела кода (такой метод можно применять для коллективной защиты – на межсетевом экране) или просто их отключив в настройках Internet-броузера (годится для индивидуальной защиты), оставляя там только статические данные. От опасностей, таящихся в макровирусах, можно тоже очень просто себя обезопасить, отключив их в настройках офисных приложений. DoS-атаки «отключить» совсем непросто, в основном из-за сложности их обнаружения, поскольку отличие начала атаки подобного типа от нормальной напряженной работы сервера определяется огромным числом факторов, учесть которые в обычном алгоритме построения защиты довольно затруднительно. Только опытный эксперт может вычислить развитие DoS-атаки по таким признакам, как время между обращениями к серверу, изменение активности его работы, диапазон адресов, с которых идёт обращение, их тип, время суток и т.д., да и то лишь интуитивно.
Приведём простой пример – обнаружение атаки, целью которой является резкое снижение производительности операционной системы, вплоть до полного отказа. Суть атаки заключается в посылке по сети множества IP-пакетов со случайными идентификаторами фрагментов. Сетевой модуль системы при получении такого пакета должен дождаться остальных пакетов с тем же идентификатором, чтобы собрать фрагментированный блок данных. Естественно, такие пакеты никогда не приходят, а память начинает заполняться ненужными данными. Если система использует виртуальную память, то такой процесс приводит к постепенному разрастанию файла подкачки до недопустимых размеров. Понятно, что такую атаку может обнаружить специалист, но очень сложно было бы настроить программу защиты, чтобы она определила момент начала атаки. «Ложное срабатывание» такой программы чревато нарушениями в работе сети. Отметим, что атака подобного типа давно известна и современным операционным системам не страшна.
Постоянно держать высококвалифицированного специалиста только для слежения за трафиком для предотвращения DoS-атак не то что неразумно, согласитесь – глупо. Но применить знания эксперта можно и без непосредственного его присутствия. Это можно сделать, используя нейросетевые технологии. Нейросети как раз и предназначены для решения таких сложноформализуемых задач, как классификация и распознавание образов, диагностика, прогнозирование. Наверное, кому-то знакомы программы, прогнозирующие ситуацию на фондовом рынке, выявляющие факторы, более всего влияющие на прибыль, или уж хотя бы предсказывающие курс доллара. Как ни кажется с первого взгляда странным, такие программы (конечно, при условии корректной разработки и использования), способны действительно успешно предсказывать «будущее».
Нейронная сеть сама по себе не способна выполнять какие-либо задачи. Для начала ее необходимо правильно спроектировать и обучить. Обучением занимается эксперт, «передавая» знания сети и контролируя их «получение». Это довольно тонкий процесс, выполняемый при содействии специалиста соответствующего профиля – инженера по знаниям.
Так как же устроено такое «чудо»? Как известно, все гениальное – просто, и нейронная сеть не является исключением. Она состоит из простейших логических устройств – нейронов – элементов, имеющих один выход и несколько входов, каждый из которых имеет свой «вес», влияющий на принятие «решения» нейроном. Выход нейрона («решение») является некоторой, довольно простой (например, экспонентой) функцией его входов. Нейроны обычно собирают в сети послойно, т.е. входы нейрона одного слоя связывают с выходами предыдущего слоя. На входы первого слоя подаётся входной образ, другими словами, вектор параметров (например, параметры фондового рынка, выраженные в цифрах). С выходов снимается и интерпретируется «решение». Процесс обучения сводится к предъявлению сети обучающих образов с последующей итерационной настройкой внутренних параметров сети с целью получения правильного ответа. Как только сеть перестает ошибаться, считается, что она обучена и годна к использованию. Если процесс обучения затягивается, значит, либо сеть попала в локальный минимум многомерной функции нейронной сети (тогда процесс обучения надо повторить), либо спроектирована неправильно.
В качестве «бонуса» нейросети могут предоставлять защиту и от спама (нежелательных почтовых сообщений), что в последнее время становится тоже довольно актуальной задачей.
В настоящий момент уже существуют работающие прототипы подобных интеллектуальных средств защиты, и в скором времени следует ожидать выхода работающих образцов. Разработаны также специализированные микросхемы, позволяющие фильтровать сетевой трафик с производительностью несколько миллионов пакетов в секунду. Вопрос только в том, сколько будет стоить такая система?
Так что же можно сделать сейчас для предотвращения DDoS атак и минимизации их последствий?
Обычным пользователям можно посоветовать поставить хороший антивирус и персональный межсетевой экран, а также регулярно обновлять свою ОС (например, с помощью компонента Windows Update).
Для корпоративных пользователей и провайдеров Internet (ISP – Internet Service Provider)
56. Бот-сети: механизм создания и управления сетью. Возможные последствия.
Ботнет (англ. botnet от robot и network) — это компьютерная сеть, состоящая из некоторого количества хостов, с запущенными ботами — автономным программным обеспечением. Чаще всего бот в составе ботнета является программой, скрытно устанавливаемой на компьютере жертвы и позволяющей злоумышленнику выполнять некие действия с использованием ресурсов заражённого компьютера. Обычно используются для нелегальной или неодобряемой деятельности — рассылки спама, перебора паролей на удалённой системе, атак на отказ в обслуживании.
Статьи к прочтению:
Галилео. Черви
Похожие статьи:
-
Механизмы распространения сетевых червей
Все механизмы распространения червей делятся на две группы: 1. Использование уязвимостей и ошибок администрирования в программном обеспечении,…
-
Атаки на уровне сетевого программного обеспечения
СПО является наиболее уязвимым, потому что канал связи, по которому передаются сообщения, чаще всего не защищен, и всякий, кто имеет доступ к этому…