Тандемные ddos-атаки / Проблематика уязвимостей в...
DESCRIPTION
Презентация к докладу Артёма Гавриченкова (ximaera), ведущего разработчика сети фильтрации трафика Qrator, для конференции HighLoad++ (25-26 октября 2010, Москва). В данном докладе описывается потенциальная тандемная атака, включающая в себя одновременно SYN flood и одну из атак на FIN-WAIT-2 или Sockstress. Широко известная атака на отказ в обслуживании протокола TCP — SYN Flood — хорошо изучена, существуют популярные методы борьбы с ней, включая, например, технологию SYN cookies [1]. Важным свойством этого вида атак является их влияние на модули отслеживания соединений (connection tracking). Даже при использовании SYN cookies каждый входящий TCP-сегмент с выставленным флагом SYN создаёт запись в базе отслеживаемых соединений, что спустя некоторое время может привести к переполнению базы и потере новых запросов на соединения. Менее известная атака, носящая кодовое название FIN-WAIT-2 attack, эксплуатирует особенности алгоритма закрытия TCP-соединения. Данная атака подробно разбирается в CPNI Technical Note 3/2009: Security Assessment of the Transmission Control Protocol. Её основная цель — исчерпание памяти, используемой TCP-соединениями, находящимися в фазе FIN-WAIT-2 закрытия соединения. При определённых условиях соединение может находиться в этом состоянии продолжительное время, при этом все ресурсы, задействованные соединением, не будут доступны активным компонентам атакуемой системы. 1. Dave Dittrich, Some TCP/IP Vulnerabilities: Weaknesses, attack tools, defenses [HTML] (http://staff.washington.edu/dittrich/talks/agora/index.html).TRANSCRIPT
Тандемные DDoS-атаки
Артём Гавриченков<[email protected]>
Проблема марсоходаСоздавая Web-приложение,90% разработчиков* программируют марсоход.
Как это происходит?
* – по данным сайта http://lurkmore.ru
Устройство ИнтернетаПрикладной уровень
HTTP, HTTPS, FTP, ...
Транспортный уровень TCP, UDP, ...
Сетевой уровень IP, ...
Канальный уровень Ethernet, ...
Протокол TCP Придуман DARPA Используется для всего
От задач Минобороны и NASA До гражданских приложений
TCP – основа протокола HTTP
Задачи: Целостность данных
Устранение дубликатов Порядок Гарантия доставки
Борьба с перегрузкой сети
Протокол TCP
Накладные расходы!
TCP – это соединение Автомат TCP-соединения
Протокол TCP
Пример 1: установление соединения
«Без TCP» TCP
send(); recv();
Много SYN-запросов
=> много занятых ресурсов
=> ресурсы заканчиваются
Такая атака называется SYN Flood
Проблема!
Решение SYN Cookies, SYN Cache, TCPMaxHalfOpen
http://www.symantec.com/connect/articles/hardening-tcpip-stack-syn-attacks
http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_9-4/syn_flooding_attacks.html
http://people.redhat.com/sgrubb/files/hardening-rhel5.pdf
http://support.microsoft.com/kb/324270
Пример 2: закрытие соединения
«Без TCP» TCP
nop;
Проблема! После получения ACK атакующий может не высылать FIN
=> соединение не закрывается
=> ресурсы не освобождаются
Так называемая «FIN-WAIT-2 атака»
Sockstress
2008 г. Стресс-тестирование сетевого приложения Обнаружили FIN-WAIT-2 атаку
Решение Stateful firewall
Помним уже установленные соединения Ограничиваем количество новых
Ссылки: http://www.microsoft.com/technet/security/Bulletin/MS09-048.mspx
http://kbase.redhat.com/faq/docs/DOC-18730
http://www.cisco.com/warp/public/707/cisco-sa-20090908-tcp24.shtml
Следите за руками.
Атакуем!1. SYN Flood на машину
Устанавливаем много соединений Переполняем stateful firewall
Атакуем!1. SYN Flood на машину
Устанавливаем много соединений Переполняем stateful firewall
2. Когда отслеживание соединений отключается – FIN-WAIT-2
Атакуем!1. SYN Flood на машину
Устанавливаем много соединений Переполняем stateful firewall
2. Когда отслеживание соединений отключается – FIN-WAIT-2
3. PROFIT!
Как же так?
Как они могут ошибаться?
Как же так?
Как они могут ошибаться? А они и не ошибаются.
Протокол TCP Придуман DARPA Используется для всего
От задач Минобороны и NASA До гражданских приложений
TCP – основа протокола HTTP
Протокол TCP Придуман DARPA Используется для всего
От задач Минобороны и NASA До гражданских приложений
TCP – основа протокола HTTP
TCP – швейцарский нож
Делать можно всё Но не одновременно
Параметры TCP У автомата TCP есть мно-о-о-го параметров
Не путать с TCP options! Таймауты Размеры временных окон Фрагментация ...
Параметры TCP Вендоры используют стандартные значения параметров TCP Стандартные значения одинаково [не] работают для всех приложений
Один TCP – на всех
Web-сервер Телеметрия
Марсоход
BitTorrent MMS-гейт
VPN
Электронное голосование
Комплекс ПВО
Но у нас не марсоход!1. ОС с параллельными SYN Cookies
2. Параметры автомата TCP Linux: net.ipv4.tcp_fin_timeout=5
Windows: HKLM\System\CurrentControlSet\ Services\Tcpip\Parameters\ TcpFinWait2Delay [?]
Now it works! «Кончил, не кончил – 3 минуты!» – М. С. Горбачев Отключаем connection tracking Боремся с SYN Flood, как привыкли
Счастье!
...ага, щас.
Sockstress
2009 г. Фундаментальная уязвимость в автомате TCP
Sockstress Тёмная лошадка Можем делать предположения
Имитация SYN Cookies в ботнете Атака на механизмы борьбы с
перегрузкой сети
Выводы? Протокол TCP был создан в 1970-х годах Автомат TCP-соединения описан недостаточно подробно Исследуя автомат TCP, можно находить актуальные уязвимости
Прогноз Анализ автомата TCP-соединения даст информацию о новых атаках Чтобы быть готовым к будущему, необходимо проводить такой анализ
Сейчас? Outpost24 тестирует протокол TCP
Это даёт результаты Highload Lab занимается моделированием автомата TCP-соединения по спецификации
Сложно, но перспективнее
Что же делать? Мы научились бороться с тандемной атакой. Уже хорошо Ждём новостей о новых проблемах
Встретимся через год
Спасибо за внимание! Вопросы?