Рубрикатор | ![]() |
![]() |
Статьи | ![]() |
![]() |
Алексей АБРАМОВИЧ  | 30 октября 2014 |
Защита от DoS-атаки: просто о сложном
166,6 тыс. долларов «стоит» владельцу сайта в среднем одна DoS-атака сегодня.
Такую статистику приводят эксперты компании Ponemon Institute, занимающейся изучением управления конфиденциальной информацией. С каждым годом DoS-атаки становятся всё дороже по мере того, как владельцы сайтов всё более изощрённо от них защищаются. Но кто и зачем совершает DoS-атаки, и как можно подготовиться к их отражению собственными силами?
С чего начинались DoS-атаки
Первая атака типа «Отказ в обслуживании» («Denial of Service» или сокращённо «DoS») была зарегистрирована в сентябре 1996 года. Она была совершена на сайт Panix.com -первого Интернет-провайдера Нью-Йорка.
Однако эта первая DoS-атака была не такой яркой, как устроенная 15-летним канадцем под псевдонимом «MafiaBoy» атака на коммерческие сайты в 2000 году. Одни за другим он «обвалил» крупнейшие американские порталы - eBay.com, Amazon.com и Yahoo.com, - показав тем самым, какими уязвимыми были на то время веб-сайты.
Следующая волна популярности DoS-атак пришлась на 2010 год, когда хакеры стали одну за другой взламывать крупнейшие системы электронной коммерции: PayPal, Visa, MasterCard. С каждым годом DoS-атаки только «наращивают мощности». Если в 2005 году «сила» DoS-атаки составляла не более 100 гбит/c, то в текущем году самая мощная атака достигает уже показателя 400 гбит/c.
И «атакующие», и «защищающиеся» тратят миллиарды долларов на свою «виртуальную войну». Но чтобы понимать, как защищаться от DoS-атак, нужно осознавать их природу.
Виды DoS-атак и защита от них
Итак, DoS (Denial of Service, «отказ в обслуживании») - это злонамеренная активность, которая блокирует сайт для легитимных пользователей. Выделяют также DDoS атаки (Distributed Denial of Service - «распределённый отказ в обслуживании»), когда в ней участвует множество компьютеров под единым управлением. DoS-атаки направляются обычно на один из трёх ресурсов. Рассмотрим подробнее каждый из них.
Атака на канал - скорая помощь в пробке
Самые сложные и дорогие для хакеров, и при этом наиболее опасные для владельца сайта - DoS-атаки на сетевое подключение сервера. Используя ботнет (сеть…… ) или уязвимые серверы, злоумышленник может сгенерировать огромный поток вредоносного трафика на сайт выбранной им жертвы. Из-за большого объёма «лишней» нагрузки на канал соединения легитимные пользователи проходят в него с трудом, а то и вовсе могут быть заблокированы. Эту ситуацию можно сравнить с пробкой на дороге, где стоящие автомобили - вредоносный трафик, а скорая помощь, (которой необходимо срочно из неё выехать) - пользователь, заходящий на атакуемый сайт.
Как защищаться: предотвращение таких атак стоит достаточно дорого из-за необходимости закупки специального оборудования для их обнаружения и блокирования. В ином случае придётся привлекать сторонние организации (дата-центры, провайдеров). Эффективным будет также создание вне сервера (у провайдера) «чёрной дыры» для трафика - своего рода дополнительных полос движения, которые разгружали бы пробку. Эти «чёрные дыры» активируется владельцем сайта в случае начала DoS-атаки. Пока весь трафик перенаправляется в «чёрную дыру», у владельцев ресурса есть время перенести свое приложение на другой ip-адрес.
Атака на процессорное время - растерянный ученик
При атаке на процессорное время целью атакующего становится получение максимального уровня загрузки центрального процессора сервера. Представим ученика, которому на уроке за время, отведённое для одной задачи, дают решить сразу десять. Не имея возможности сконцентрироваться на одной, он в итоге вообще не может выполнить задание.
Как защищаться: лучше всего от такого рода атак защитит специальное программное обеспечение (например, WAF - Web Application Firewall, оно устанавливается на сервер). Оно фильтрует потенциально опасные запросы.
Атака на память - покупатели вне очереди
Результатом атаки на память, становится недоступность сервера. При такой DoS-атаке хакеры заполняют всю оперативную память, жёсткий диск или очень критичную область памяти. Можно провести аналогию с продавцом в магазине, который ещё не успел рассчитать одного покупателя, как без очереди подходит следующий, и продавец просто не успевает обслуживать всех «внеочередников». TCP SYN flood - классическая атака такого рода. Она исчерпывает лимит возможности подключения к серверу через создание множества полуоткрытых соединений (схожая с ней атака TCP FIN flood создаёт множество полузакрытых соединений).
Несколько иначе работают «медленные» атаки на протокол HTTP. Наиболее подвержен им веб-сервер Apache. При такой атаке злоумышленник подключается к серверу и начинает медленно принимать или отправлять данные. Для отказа в обслуживании создается множество таких соединений. В результате, память сервера перегружается из-за огромного количества созданных протоколов.
Как защищаться: для борьбы необходима правильная настройка сервера, при которой информация о новом соединении будет храниться не в памяти сервера, а в ответе от сервера, который должен получить инициатор соединения. При получении ответа от клиента сервер проверяет наличие этой информации в пакете. Такая технология называется syncookies. Уязвимость TCP FIN flood «лечится» обновлением для ПО от производителя.
Для защиты от «медленных» атак необходимо чётко обозначить минимальный и максимальный период времени, в течение которого возможна отправка запроса или принятие ответа. Если клиент превышает лимит - соединение обрывается. Для настройки подобной защиты существуют специальные модули.
Защита от дурака
Помимо специализированных видов защиты от DoS-атак существуют несколько правил, выполнение которых поможет уберечь сайт от стандартных атак. Администратору стоит начать с правильной настройки и своевременного обновления программного обеспечения. Причём обновлять следует не только операционную систему сервера, но и программное обеспечение веб-приложения. Эти простые шаги позволят серверу выдержать атаки, которые используют широко известные уязвимости.
Также для противодействия атакам можно создавать распределённую архитектуру для приложения. При таком подходе происходит наращивание ресурсов по горизонтали. В этом случае у злоумышленника нет определённой цели, поскольку приложение расположено «везде и нигде» одновременно. В случае отказа одной из машин, в работу включается вторая. Атакующему потребуется намного больше ресурсов для успешной атаки, чем в случае с одним сервером.
Несмотря на все передовые методы защиты от хакеров, методы проведения атак на шаг опережают тех, кто разрабатывает защиту от уязвимостей. Поэтому владельцам веб-приложений необходимо быть начеку вследствие постоянного появления новых угроз.