Брандмауэры и специальное программное обеспечение 8 Часть 4
Вид материала | Реферат |
СодержаниеДругие службы Что такое ping flooding |
- Муниципальное общеобразовательное учреждение средняя общеобразовательная школа №12, 174.77kb.
- Управление экономикой и создание экономических информационных систем Изучив данную, 148.93kb.
- Программное обеспечение ЭВМ, 209.59kb.
- Программное обеспечение вычислительной системы, 824.71kb.
- Учебная программа (Syllabus) Дисциплина: Интерфейсы компьютерных систем (iks 3304), 321.31kb.
- Реферат по Информационной безопасности Тема: «Антивирусы», 711.1kb.
- Пк программный комплекс; по программное обеспечение; ппо прикладное программное обеспечение, 208.41kb.
- Лекция 4 Обеспечивающие подсистемы асу. Математическое, программное, лингвистическое,, 59.3kb.
- Математическое и программное обеспечение систем оперативной оценки характеристик сложных, 247.51kb.
- Учебная программа (Syllabus) Дисциплина «Инструментальные средства разработки программ», 374.12kb.
Другие службы
На вашей системе вы можете запустить множество других служб. Запуская службу, вы должны обратить внимание на следующие детали.
- Работает ли служба от лица привилегированного пользователя? Сокеты с номерами ниже 1024 могут быть связаны только пользователем root, поэтому соответствующие службы должны быть запущены от лица пользователя root. Сокеты с номерами выше 1024 могут использоваться любыми пользователями, включая root.
- Может ли служба работать от лица непривилегированного пользователя? Если да, то запустите ее именно в таком режиме.
- Можно ли разместить службу в тюрьме с измененным корнем (change root jail)? (Более подробно об этом рассказывается в главе 14.)
- Можете ли вы блокировать или как-либо ограничить доступ к порту?
- Существует ли надобность в этой службе? Если нет или вы не уверены, отключите ее.
Заключение
В данной главе мы рассмотрели некоторые традиционные службы и связанные с ними уязвимые места. В главе также продемонстрирована работа двух коммуникационных протоколов (все коммуникационные протоколы функционируют сходным образом).
13Атаки DoS и как они работают
В данной главе рассматриваются следующие вопросы:
- что такое атака DoS (Denial of Service — отказ обслуживания);
- что такое ping-затопление (ping flooding);
- что такое атака TCP ACK;
- что такое ping-атаки;
- смягчение последствий атак DoS.
DoS означает Denial of Service — отказ в обслуживании. Атаки этой категории могут иметь множество форм, однако суть одна и та же: вы не можете получить доступ к ресурсу, за который вы заплатили. Все ресурсы, имеющие отношение к компьютерам, оплачиваются, не существует ничего бесплатного. Возможно, оплата осуществляется неявно и не вами, однако так или иначе кто-то должен платить. Атаки категории DoS, как правило, совершаются озлобленными или разочарованными людьми, которые не находят иного способа нанести ущерб. Такие атаки могут быть как низкотехнологичными, так и более совершенными в техническом смысле — все зависит от типа атаки и способов, применяемых для того, чтобы скрыть, кто именно является автором нападения. Существует одна чрезвычайно сложная в техническом смысле атака DoS, однако количество инженеров, способных организовать доменное нападение (doinam hijacking), не так велико.
Атаки DoS могут принимать множество форм, однако вне зависимости от формы их эффективность сложно подвергать сомнению. Некоторые интернет-провайдеры были вынуждены закрыть свой бизнес из-за того, что один очень озлобленный бывший клиент решил отомстить, используя атаку DoS. Атака DoS делает провайдера неспособным обеспечивать доступ к Интернету для своих клиентов. А когда провайдер не способен обслужить своих клиентов, рано или поздно его клиенты разбегутся кто куда. Если провайдер является небольшой только начинающей свое развитие компанией, он может лишиться всех своих клиентов в течение буквально пары дней. Очень многие небольшие и даже средние по размеру предприятия не в состоянии бороться с атаками этой категории. В подобной ситуации очень важно знать, что именно надо делать, так как если вы не знаете этого, значит, ваш сервер становится недоступным для клиентов, а вы теряете доступ к сети.
Что такое ping flooding
Несколько форм атаки DoS обозначаются общим названием ping flooding (ping-затопление). В нормальных условиях утилита ping посылает на целевой узел один пакет ICMP в секунду. Однако если заставить ping посылать пакеты ICMP настолько быстро, насколько позволяет самая медленная линия связи, входящая в состав маршрута от localhost до целевого узла, то происходит ping-затопление. Это означает, что если линия связи достаточно быстрая, то через канал передается настолько много пакетов ICMP, что передача всего остального трафика существенно замедляется. Еще одним способом создания подобной нагрузки на линию связи является программа spray, которая разработана для измерения пропускной способности канала путем максимального заполнения этого канала передаваемыми данными. Однако для работы spray необходимы клиентская и серверная части, поэтому spray можно использовать только между двумя специально подготовленными для этой цели компьютерами.
Осуществить ping-затопление чрезвычайно просто. В Интернете можно найти множество специально предназначенных для этой цели инструментов, ориентированных на использование в отношении самых разных операционных систем. В операционной среде Linux выполнить ping-затопление позволяет сама утилита ping, для этого используется специальный ключ -f. Однако воспользоваться этим ключом может только пользователь с UID 0. По очевидным причинам обычным пользователям запрещается использовать этот режим работы ping.
Затопление ping воздействует не только на цель, но и на клиента. Многие модифицированные программы специально переписывают заголовок ICMP-пакета таким образом, чтобы изменить адрес-источник. Благодаря этому злоумышленник подвергает нападению две системы одновременно, однако при этом он обязан продолжать посылать пакеты ping. В процессе ping-затопления на экране могут отображаться сведения, показанные в листинге 13.1.
Листинг 13.1. ping-затопление смежного узла
volcan# ping -f chiriqui
PING chiriqui.pananix.com (192.168.0.2): 56 data bytes
...............................
--- chiriqui.pananix.com ping statistics ---
7321 packets transmitted, 7299 packets received, 0% packet loss round-trip min/avg/max = 0.4/3.3/21.6 ms
Данные результаты получены на никем другим не используемой сети между двумя системами, соединенными 10-мегабитным каналом связи. Несколько иные результаты можно получить, если направить ping на локальный узел localhost. Вывод подобной команды показан в листинге 13.2. Обратите внимание на скорость пакетов и количество потерянных пакетов. Атаки типа Denial of Service основаны на потере пакетов.
Листинг 13.2. ping-затопление локального узла localhost
volcan# ping -f localhost
PING localhost (127.0.0.1): 56 data bytes
...........................................................................
................................................................................
--- localhost ping statistics - --
5448 packets transmitted, 1022 packets received. 81% packet loss
round-trip min/avg/max = 0.3/122.3/342.1 ms
Еще один прием, который может как сработать, так и не сработать, это использование ping в отношении широковещательного адреса. Этот трюк может не сработать, так как большинство современных маршрутизаторов не передают пакеты ping, направленные на широковещательный адрес. Успешность подобной атаки зависит также от того, соответствует ли IP-стек целевой системы всем требованиям стандарта, определенного в RFC.
ПРИМЕЧАНИЕ
RFC (Request For Comments) — это документы, в которых содержится информация о том, каким образом функционирует Интернет. Иными словами, в документах RFC определяется стандарт — несоответствие документам RFC означает, что используемое вами программное обеспечение ведет себя не так, как все остальные программы Интернета, при этом возможно, что вы не сможете взаимодействовать с другими системами. Следует отметить, что Linux является одной из немногих систем, поддерживающих IP-стек, на все 100 % совместимый с требованиями RFC.
Чтобы пояснить сказанное, приведу пример. Представьте, что у вас есть сеть, в которой работает несколько систем Linux (или других систем, совместимых с Unix, таких как SCO OpenServer, HP-UX, AIX или Solaris, — обо всех этих системах известно, что они в достаточной степени совместимы с RFC), а также несколько систем Microsoft (Windows 9х или NT 4). В подобной среде вы можете легко протестировать различие в поведении утилиты ping.
Для этого в сети выполните следующую команду:
ping -с 2 <широковещательный_адрес_сети>
На экране появится информация, подобная показанной в листинге 13.3.
Листинг 13.3. Сведения о выполнении ping в отношении широковещательного адреса
64 bytes from 192.168.0.1: icmp_seq=0 ttl=255 time=0.3 ms
64 bytes from 192.168.0.2: icmp_seq=0 ttl=255 time=0.6 ms (DUP!)
64 bytes from 192.168.0.1: icmp_seq=l ttl=255 time=0.2 ms
Если вы осуществляете однократный ping-тест, вы увидите только один адрес, так как локальная система всегда отвечает на запрос быстрее, чем любая другая. Утилита ping ожидает только один ответ, поэтому она завершит работу до того, как получит ответ от остальных систем. Однако если вы будете ожидать несколько ping-ответов, вы увидите ответы от всех сетевых узлов, не являющихся узлами Microsoft.
ПРИМЕЧАНИЕ
Если запустить ping с одного из узлов Microsoft, вы получите ответы только от сетевых узлов Microsoft. Дело в том, что только IP-стек, разработанный Microsoft, отвечает на ping-запросы подобным образом (ответ на широковещательные сообщения не осуществляется). Это означает, что IP-стек, разработанный Microsoft, не соответствует стандарту, определенному в RFC. Это наиболее ярко выраженная несовместимость между стеками Microsoft и стандартом RFC, однако она в значительной степени влияет на сетевой обмен данными по протоколу IP. Таким образом, не следует ожидать, что сетевомузел Microsoft будет корректно вести себя в рамках сети.
Только что описанный тест не сработает в сетях категории «точка-точка», а также его нельзя осуществить через маршрутизатор. Например, если вы попытаетесь использовать данный трюк для того, чтобы определить, какие еще системы, не являющиеся системами Microsoft, работают в такой сети, как @home (американская кабельная сеть), вы увидите только одну вашу систему. Дело в том, что кабельный модем является маршрутизатором и не пропускает широковещательные ping-запросы. Однако если маршрутизатор настроен неправильно или на нем отключен механизм блокирования широковещательных ping-запросов, описанный прием сработает.
Атаки типа ping flood не являются эффективными. Подобные атаки нельзя поддерживать в течение длительного времени. Злоумышленник вынужден запускать ping на системе, которая в последующем не сможет использоваться в сети. Дело в том, что подобную систему легко идентифицировать, и одного телефонного звонка провайдеру, как правило, достаточно для того, чтобы отключить эту систему от Интернета. Даже если адрес-источник модифицирован, пересылку таких модифицированных пакетов требуется продолжать с изначального адреса-источника. Нападающему сложно определить, была ли атака успешной, кроме того, к системе, с которой осуществляется атака, привлекается слишком много внимания.
Существует одно исключение: атака, которая, как правило, срабатывает. Эта атака обозначается английским термином smurf. Атака выполняется при помощи программы с таким же именем, которую легко найти в Интернете. Если в распоряжении злоумышленника находится несколько систем (как правило, злоумышленник использует для этой цели несколько чужих взломанных им систем), нападающий может использовать их все для совместного нападения на цель. Программа smurf поддерживает широкие возможности по модификации заголовка IP, благодаря чему нападающий может организовать весьма эффективную атаку, к тому же его будет очень сложно выследить.