Тандемные DDoS-атаки
Артём Гавриченков
<ag@highloadlab.com>
Проблема марсохода
Создавая Web-приложение,
90% разработчиков* программируют марсоход.
Как это происходит?
* – по данным с...
Устройство Интернета
Прикладной уровень
HTTP, HTTPS, FTP, ...
Транспортный уровень
TCP, UDP, ...
Сетевой уровень
IP, ...
К...
Протокол TCP
 Придуман DARPA
 Используется для всего
 От задач Минобороны и NASA
 До гражданских приложений
 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-
att...
Пример 2: закрытие соединения
«Без TCP» TCP
nop;
Проблема!
После получения ACK атакующий
может не высылать FIN
=> соединение не закрывается
=> ресурсы не освобождаются
Так...
Sockstress
 2008 г.
 Стресс-тестирование сетевого
приложения
 Обнаружили FIN-WAIT-2 атаку
Решение
 Stateful firewall
 Помним уже установленные соединения
 Ограничиваем количество новых
 Ссылки:
 http://www.m...
Следите за руками.
Атакуем!
1. SYN Flood на машину
 Устанавливаем много соединений
 Переполняем stateful firewall
Атакуем!
1. SYN Flood на машину
 Устанавливаем много соединений
 Переполняем stateful firewall
2. Когда отслеживание сое...
Атакуем!
1. SYN Flood на машину
 Устанавливаем много соединений
 Переполняем stateful firewall
2. Когда отслеживание сое...
Как же так?
 Как они могут ошибаться?
Как же так?
 Как они могут ошибаться?
 А они и не ошибаются.
Протокол TCP
 Придуман DARPA
 Используется для всего
 От задач Минобороны и NASA
 До гражданских приложений
 TCP – ос...
Протокол TCP
 Придуман DARPA
 Используется для всего
 От задач Минобороны и NASA
 До гражданских приложений
 TCP – ос...
TCP – швейцарский нож
 Делать можно всё
 Но не одновременно
Параметры TCP
 У автомата TCP есть мно-о-о-го
параметров
 Не путать с TCP options!
 Таймауты
 Размеры временных окон
...
Параметры TCP
 Вендоры используют стандартные
значения параметров TCP
 Стандартные значения одинаково [не]
работают для ...
Один TCP – на всех
 Web-сервер
 Телеметрия
 Марсоход
 BitTorrent
 MMS-гейт
 VPN
 Электронное голосование
 Комплекс...
Но у нас не марсоход!
1. ОС с параллельными SYN Cookies
2. Параметры автомата TCP
Linux: net.ipv4.tcp_fin_timeout=5
Window...
Now it works!
 «Кончил, не кончил – 3 минуты!»
– М. С. Горбачев
 Отключаем connection tracking
 Боремся с SYN Flood, ка...
Счастье!
...ага, щас.
Sockstress
 2009 г.
 Фундаментальная уязвимость
в автомате TCP
Sockstress
 Тёмная лошадка
 Можем делать предположения
 Имитация SYN Cookies в ботнете
 Атака на механизмы борьбы с
пе...
Выводы?
 Протокол TCP был создан в 1970-х годах
 Автомат TCP-соединения описан
недостаточно подробно
 Исследуя автомат ...
Прогноз
 Анализ автомата TCP-соединения даст
информацию о новых атаках
 Чтобы быть готовым к будущему,
необходимо провод...
Сейчас?
 Outpost24 тестирует протокол TCP
 Это даёт результаты
 Highload Lab занимается моделированием
автомата TCP-сое...
Что же делать?
 Мы научились бороться с тандемной
атакой. Уже хорошо
 Ждём новостей о новых проблемах
Встретимся через год
Спасибо за внимание!
Вопросы?
Upcoming SlideShare
Loading in …5
×

Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаментальные уязвимости), Артём Гавриченков

1,751 views
1,600 views

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,751
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Тандемные DDoS-атаки. Проблематика уязвимостей в спецификации TCP IP (фундаментальные уязвимости), Артём Гавриченков

  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 firewall 2. Когда отслеживание соединений отключается – FIN-WAIT-2
  18. 18. Атакуем! 1. SYN Flood на машину  Устанавливаем много соединений  Переполняем stateful firewall 2. Когда отслеживание соединений отключается – FIN-WAIT-2 3. 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 – на всех  Web-сервер  Телеметрия  Марсоход  BitTorrent  MMS-гейт  VPN  Электронное голосование  Комплекс ПВО
  27. 27. Но у нас не марсоход! 1. ОС с параллельными SYN Cookies 2. Параметры автомата 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. Спасибо за внимание! Вопросы?

×