Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo

1

Тандемные DDoS-атаки
Артём Гавриченков
<ag@highloadlab.com>

2

Проблема марсохода
Создавая Web-приложение,
90% разработчиков* программируют марсоход.
Как это происходит?
* – по данным сайта http://lurkmore.ru

3

Устройство Интернета
Прикладной уровень
HTTP, HTTPS, FTP, ...
Транспортный уровень
TCP, UDP, ...
Сетевой уровень
IP, ...
Канальный уровень
Ethernet, ...

4

Протокол TCP
 Придуман DARPA
 Используется для всего
 От задач Минобороны и NASA
 До гражданских приложений
 TCP – основа протокола HTTP

5

 Задачи:
 Целостность данных
 Устранение дубликатов
 Порядок
 Гарантия доставки
 Борьба с перегрузкой сети
Протокол TCP

6

Накладные расходы!

7

 TCP – это соединение
 Автомат TCP-соединения
Протокол TCP

8

Пример 1: установление соединения
«Без TCP» TCP
send();
recv();

9

Много SYN-запросов
=> много занятых ресурсов
=> ресурсы заканчиваются
Такая атака называется SYN Flood
Проблема!

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

Пример 2: закрытие соединения
«Без TCP» TCP
nop;

12

Проблема!
После получения ACK атакующий
может не высылать FIN
=> соединение не закрывается
=> ресурсы не освобождаются
Так называемая «FIN-WAIT-2 атака»

13

Sockstress
 2008 г.
 Стресс-тестирование сетевого
приложения
 Обнаружили FIN-WAIT-2 атаку

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

Следите за руками.

16

Атакуем!
1. SYN Flood на машину
 Устанавливаем много соединений
 Переполняем stateful firewall

17

Атакуем!
1. SYN Flood на машину
 Устанавливаем много соединений
 Переполняем stateful firewall
2. Когда отслеживание соединений
отключается – FIN-WAIT-2

18

Атакуем!
1. SYN Flood на машину
 Устанавливаем много соединений
 Переполняем stateful firewall
2. Когда отслеживание соединений
отключается – FIN-WAIT-2
3. PROFIT!

19

Как же так?
 Как они могут ошибаться?

20

Как же так?
 Как они могут ошибаться?
 А они и не ошибаются.

21

Протокол TCP
 Придуман DARPA
 Используется для всего
 От задач Минобороны и NASA
 До гражданских приложений
 TCP – основа протокола HTTP

22

Протокол TCP
 Придуман DARPA
 Используется для всего
 От задач Минобороны и NASA
 До гражданских приложений
 TCP – основа протокола HTTP

23

TCP – швейцарский нож
 Делать можно всё
 Но не одновременно

24

Параметры TCP
 У автомата TCP есть мно-о-о-го
параметров
 Не путать с TCP options!
 Таймауты
 Размеры временных окон
 Фрагментация
 ...

25

Параметры TCP
 Вендоры используют стандартные
значения параметров TCP
 Стандартные значения одинаково [не]
работают для всех приложений

26

Один TCP – на всех
 Web-сервер
 Телеметрия
 Марсоход
 BitTorrent
 MMS-гейт
 VPN
 Электронное голосование
 Комплекс ПВО

27

Но у нас не марсоход!
1. ОС с параллельными SYN Cookies
2. Параметры автомата TCP
Linux: net.ipv4.tcp_fin_timeout=5
Windows: HKLMSystemCurrentControlSet
ServicesTcpipParameters
TcpFinWait2Delay [?]

28

Now it works!
 «Кончил, не кончил – 3 минуты!»
– М. С. Горбачев
 Отключаем connection tracking
 Боремся с SYN Flood, как привыкли

29

Счастье!

30

...ага, щас.

31

Sockstress
 2009 г.
 Фундаментальная уязвимость
в автомате TCP

32

Sockstress
 Тёмная лошадка
 Можем делать предположения
 Имитация SYN Cookies в ботнете
 Атака на механизмы борьбы с
перегрузкой сети

33

Выводы?
 Протокол TCP был создан в 1970-х годах
 Автомат TCP-соединения описан
недостаточно подробно
 Исследуя автомат TCP, можно находить
актуальные уязвимости

34

Прогноз
 Анализ автомата TCP-соединения даст
информацию о новых атаках
 Чтобы быть готовым к будущему,
необходимо проводить такой анализ

35

Сейчас?
 Outpost24 тестирует протокол TCP
 Это даёт результаты
 Highload Lab занимается моделированием
автомата TCP-соединения по
спецификации
 Сложно, но перспективнее

36

Что же делать?
 Мы научились бороться с тандемной
атакой. Уже хорошо
 Ждём новостей о новых проблемах

37

Встретимся через год

38

Спасибо за внимание!
Вопросы?

More Related Content

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