Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Тандемные DDoS-атаки (Артём Гавриченков)

697 views

Published on

  • Be the first to comment

  • Be the first to like this

Тандемные DDoS-атаки (Артём Гавриченков)

  1. 1. Тандемные DDoS-атаки Артём Гавриченков <ag@highloadlab.com>
  2. 2. Проблема марсоходаСоздавая Web-приложение,90% разработчиков* программируют марсоход.Как это происходит?* – по данным сайта http://lurkmore.ru
  3. 3. Устройство Интернета Прикладной уровеньHTTP, HTTPS, FTP, ... Транспортный уровеньTCP, UDP, ... Сетевой уровеньIP, ... Канальный уровеньEthernet, ...
  4. 4. Протокол TCP Придуман DARPA Используется для всего  От задач Минобороны и NASA  До гражданских приложений TCP – основа протокола HTTP
  5. 5. Протокол TCP Задачи:  Целостность данных  Устранение дубликатов  Порядок  Гарантия доставки  Борьба с перегрузкой сети
  6. 6. Накладные расходы!
  7. 7. Протокол TCP TCP – это соединение Автомат TCP-соединения
  8. 8. Пример 1: установление соединения«Без TCP» TCP send(); recv();
  9. 9. Проблема!Много SYN-запросов=> много занятых ресурсов=> ресурсы заканчиваютсяТакая атака называется SYN Flood
  10. 10. Решение 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
  11. 11. Пример 2: закрытие соединения«Без TCP» TCP nop;
  12. 12. Проблема!После получения ACK атакующийможет не высылать FIN=> соединение не закрывается=> ресурсы не освобождаютсяТак называемая «FIN-WAIT-2 атака»
  13. 13. Sockstress 2008 г. Стресс-тестирование сетевого приложения Обнаружили FIN-WAIT-2 атаку
  14. 14. Решение 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
  15. 15. Следите за руками.
  16. 16. Атакуем!1. SYN Flood на машину  Устанавливаем много соединений  Переполняем stateful firewall
  17. 17. Атакуем!1. SYN Flood на машину  Устанавливаем много соединений  Переполняем stateful firewall2. Когда отслеживание соединений отключается – FIN-WAIT-2
  18. 18. Атакуем!1. SYN Flood на машину  Устанавливаем много соединений  Переполняем stateful firewall2. Когда отслеживание соединений отключается – FIN-WAIT-23. PROFIT!
  19. 19. Как же так? Как они могут ошибаться?
  20. 20. Как же так? Как они могут ошибаться? А они и не ошибаются.
  21. 21. Протокол TCP Придуман DARPA Используется для всего  От задач Минобороны и NASA  До гражданских приложений TCP – основа протокола HTTP
  22. 22. Протокол TCP Придуман DARPA Используется для всего  От задач Минобороны и NASA  До гражданских приложений TCP – основа протокола HTTP
  23. 23. TCP – швейцарский нож Делать можно всё Но не одновременно
  24. 24. Параметры TCP У автомата TCP есть мно-о-о-го параметров  Не путать с TCP options!  Таймауты  Размеры временных окон  Фрагментация  ...
  25. 25. Параметры TCP Вендоры используют стандартные значения параметров TCP Стандартные значения одинаково [не] работают для всех приложений
  26. 26. Один TCP – на всех  VPN  Web-сервер  Телеметрия  MMS-гейт Комплекс ПВО BitTorrent  Электронное голосование Марсоход  
  27. 27. Но у нас не марсоход!1. ОС с параллельными SYN Cookies2. Параметры автомата TCP Linux: net.ipv4.tcp_fin_timeout=5 Windows: HKLMSystemCurrentControlSet ServicesTcpipParameters TcpFinWait2Delay [?]
  28. 28. Now it works! «Кончил, не кончил – 3 минуты!» – М. С. Горбачев Отключаем connection tracking Боремся с SYN Flood, как привыкли
  29. 29. Счастье!
  30. 30. ...ага, щас.
  31. 31. Sockstress 2009 г. Фундаментальная уязвимость в автомате TCP
  32. 32. Sockstress Тёмная лошадка Можем делать предположения  Имитация SYN Cookies в ботнете  Атака на механизмы борьбы с перегрузкой сети
  33. 33. Выводы? Протокол TCP был создан в 1970-х годах Автомат TCP-соединения описан недостаточно подробно Исследуя автомат TCP, можно находить актуальные уязвимости
  34. 34. Прогноз Анализ автомата TCP-соединения даст информацию о новых атаках Чтобы быть готовым к будущему, необходимо проводить такой анализ
  35. 35. Сейчас? Outpost24 тестирует протокол TCP  Это даёт результаты Highload Lab занимается моделированием автомата TCP-соединения по спецификации  Сложно, но перспективнее
  36. 36. Что же делать? Мы научились бороться с тандемной атакой. Уже хорошо Ждём новостей о новых проблемах
  37. 37. Встретимся через год
  38. 38. Спасибо за внимание!Вопросы?

×