Тандемные DDoS-атаки (Артём Гавриченков)
Transcript of Тандемные DDoS-атаки (Артём Гавриченков)
Тандемные 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-соединения по спецификации
Сложно, но перспективнее
Что же делать? Мы научились бороться с тандемной атакой. Уже хорошо Ждём новостей о новых проблемах
Встретимся через год
Спасибо за внимание! Вопросы?