Математическая
морфология.
Электронный
математический и медико-биологический журнал. - Т. 7. -
Вып. 4. - 2008. -
URL:
http://www.smolensk.ru/user/sgma/MMORPH/TITL.HTМ
http://www.smolensk.ru/user/sgma/MMORPH/N-20-html/TITL-20.htm
http://www.smolensk.ru/user/sgma/MMORPH/N-20-html/cont.htm
УДК 004.056
Ó 2008 г. Малашенкова И. В., Панкратова Е. А., Семенова О. В.
В статье
предложена классификация DoS-атак, рассмотрены причины, делающие возможным
проведение той или иной атаки (уязвимости приложений) и предложены методы
тестирования разрабатываемых приложений с целью ликвидации уязвимостей на этапе
разработки.
Ключевые
слова: DoS-атаки.
От атак типа «Отказ в обслуживании» (Denial of Service, DoS) защититься сложнее всего и зачастую полностью решить данную проблему невозможно.
Причиной Dos-атак обычно бывает некачественно написанный программный код. Следовательно, для предотвращения DoS-атак необходимо тщательно протестировать проект приложения на возможность проведения атак данного типа.
На рис.1 приведены часто встречающиеся одиночные DoS-атаки.
Рассмотрим причины, позволяющие осуществить данные атаки.
Атаки, вызывающие
крах приложения почти всегда используют недостатки программного кода, а именно,
возможность
передачи сообщений, размер,
которых превышает размер отведенного для них буфера. Примерами данных атак
являются –
«UDP bomb» и «Ping Death».
В [1] авторы обосновывают невозможность проведения атаки типа «Ping Death».
Действительно, «Ping Death» невозможно провести, используя сетевые утилиты ОС, такие, например, как утилита ping, но
при программировании в сокетах
можно создать фрагментированную IP-датаграмму,
размер, которой превышает 216.
Следовательно, для защиты от DoS-атак, вызывающих крах приложения, необходимо всегда проверять размер передаваемого
сообщения соотносительно размера входного буфера данных.
Цель атак,
вызывающих перегрузку процессора, -
заставить приложение зависнуть в цикле
ресурсоемких
вычислений. Примером атаки
данного типа является атака на WEB-сервер,
основанная на том, что многие
серверы
содержат неэффективный код,
удаляющий дублирующие символы "/". Для защиты от Dos-атак этого типа необходимо оценить
алгоритмическую сложность приложения.
Атаки, вызывающие
нехватку памяти приводят к выгрузке содержимого физической памяти в страничный
файл и
загрузке требуемых данных из
страничного файла в физическую память. Если физической памяти недостаточно
данный
процесс может войти в бесконечный цикл. Для предотвращения данных атак следует проверять корректность выделения памяти функцией new и освобождать блоки памяти, которые больше не нужны для работы приложения.
При атаках, вызывающих нехватку ресурсов в системе,
ресурсы расходуются вплоть до полного
их истощения. Одним
из методов борьбы с подобными атаками является применение квот. Например, приложение порождает новый поток для каждого нового подключения к сокету. Если не ограничивать число потоков, то злоумышленник создаст тысячи потоков и спровоцирует нехватку памяти процессорного времени.
Для реализации атак,
вызывающих снижение пропускной способности сети, злоумышленнику достаточно
создать шторм широковещательных запросов. Одним из методов борьбы с атаками данного вида является анализ
поступающих запросов и
игнорирование бессмысленных запросов. Атакам, вызывающим
снижение пропускной способности сети в большей степени
подвержены датаграммные сервисы, то есть сервисы, работающие без установления соединения. Например, ICMP и UDP-протоколы.
Очень
сложно противостоять DoS-атакам. Тем не менее противостояние таким атакам должно стать
частью общей
процедуры обеспечения безопасности.
1. Медведовский И.Д., Семьянов П.В., Платонов В.В. Атаки через INTERNET. —СПб.: НПО "Мир и семья 95" Серия учебной литературы "МАГИСТР", 1997.
2. Ховард М., Лебланк Д. Защищенный код. Пер. с англ. – 2-е изд., испр. М.: Издательско-торговый дом «русская редакция», 2004. – 704 стр.: ил.
Malashenkova
I. V., Pankratova H. A., Semenova O. V.
This article offers DoS-attacks classification, and considers causes, which make this or that application vulnerability attack possible, and offers techniques of testing developed programs in order to eliminate the vulnerability on the development stage.
Key words: DoS-attacks.
Поступила в редакцию 8.12.2008.