DDos: Практическое руководство к выживанию
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

DDos: Практическое руководство к выживанию

  • 372 views
Uploaded on

Protection against ddos attacks

Protection against ddos attacks

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
372
On Slideshare
372
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
1
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. DDoS: практическоеруководство к выживанию.Александр Лямин<la@highloadlab.com
  • 2. Часть 2: Работа над ошибками.Александр Лямин
  • 3. Q1 2012• Всего атак: 365• Макс. в день: 12• Средний размер ботнета: 2637• Макс. размер ботнета: 37834
  • 4. По дням недели15.89%14.52%17.26%14.25%16.71%9.59%11.78%0.00%2.00%4.00%6.00%8.00%10.00%12.00%14.00%16.00%18.00%20.00%Пон Вт Ср Чeтв Пят Суб Вос
  • 5. По дням01234567891011121/1/12 1/8/12 1/15/12 1/22/12 1/29/12 2/5/12 2/12/12 2/19/12 2/26/12 3/4/12 3/11/12 3/18/12 3/25/12
  • 6. По месяцам41.37%32.88%25.75%ЯнварьФевральМарт
  • 7. Скоростные атаки3.56%96.44%> 1Gbps < 1Gbps
  • 8. Типы атак22.74%77.26%Cетевой флуд Приложение
  • 9. Особые случаи• DNS: NIC, Masterhost, FastVPS.• Хостинги: Крок, WAhome.• «Невидимые» ботнеты.• Minerbot.
  • 10. Новая коньюктура• 1k ботов - 100-160 USD.• Доступный готовый инструментарий.• Падение цен - 20 USD/сутки.
  • 11. Новая коньюктура
  • 12. Apache mod_evasive
  • 13. Apache mod_evasive<IfModule mod_evasive20.c>DOSHashTableSize 3097DOSPageCount 8DOSSiteCount 100DOSPageInterval 2DOSSiteInterval 2DOSBlockingPeriod 600DOSEmailNotify secure@adminmail.com</IfModule>
  • 14. Apache mod_evasiveПлюсы МинусыРаботает Apache
  • 15. Iptables --string
  • 16. Iptables --stringiptables -A INPUT -p tcp -m tcp --dport 80 -m string --string "GET / HTTP" --algo kmp --to1024 -m recent --set --name httpddos --rsourceiptables -A INPUT -p tcp -m tcp --dport 80 -m string --string "GET / HTTP" --algo kmp --to1024 -m recent --update --seconds 10 --hitcount 2 --name httpddos --rsource -j DROP
  • 17. Iptables --stringПлюсы МинусыРаботает.Быстро.Не всегда работает. (фрагментация)Не всегда быстро. (kmp по телу пакета)Открытые сокеты + retransmit.Требует conntrack.
  • 18. NGINX testcookie_module
  • 19. JS
  • 20. Cookie/Redirect
  • 21. NGINX testcookie_moduletestcookie_name BPC;testcookie_secret keepmescret;testcookie_session $remote_addr;testcookie_arg attempt;testcookie_max_attempts 3;testcookie_fallback /cookies.html?backurl=http://$host$request_uri;testcookie_get_only on;location / {testcookie on;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_pass http://127.0.0.1:8080;}ДАЛЕЕ: http://habrahabr.ru/post/139931/
  • 22. NGINX testcookie_moduleПлюсы МинусыРаботает.NGINX.Быстро.Предсказуемо.Расширяемо.Не осуществляет блокировку.*Изменяет UX.Не работает против FBS.* И не должно.
  • 23. Нейронная сеть PyBrain
  • 24. Нейронная сеть PyBrainЗапрос:0.0.0.0 - - [20/Dec/2011:15:00:03 +0400] "GET /forum/rss.php?topic=347425 HTTP/1.0" 200 1685 "-" "Mozilla/5.0(Windows; U; Windows NT 5.1; pl; rv:1.9) Gecko/2008052906 Firefox/3.0»Cловарь:[__UA___OS_U, __UA_EMPTY, __REQ___METHOD_POST, __REQ___HTTP_VER_HTTP/1.0, __REQ___URL___NETLOC_, __REQ___URL___PATH_/forum/rss.php, __REQ___URL___PATH_/forum/index.php, __REQ___URL___SCHEME_, __REQ___HTTP_VER_HTTP/1.1, __UA___VER_Firefox/3.0, __REFER___NETLOC_www.mozilla-europe.org, __UA___OS_Windows, __UA___BASE_Mozilla/5.0, __CODE_503, __UA___OS_pl, __REFER___PATH_/, __REFER___SCHEME_http, __NO_REFER__, __REQ___METHOD_GET, __UA___OS_Windows NT5.1, __UA___OS_rv:1.9, __REQ___URL___QS_topic, __UA___VER_Gecko/2008052906’Далее: http://habrahabr.ru/post/136237/
  • 25. Нейронная сеть PyBrainПлюсы МинусыРаботает.Приз зрительских симпатий.Может и не работать.Нет истории запросов.
  • 26. tcpdump
  • 27. tcpdumptcpdump -v -n -w attack.log dst port 80 -c 250tcpdump -nr attack.log |awk {print $3} |grep -oE [0-9]{1,}.[0-9]{1,}.[0-9]{1,}.[0-9]{1,} |sort |uniq -c |sort -rn
  • 28. tcpdumpПлюсы МинусыРаботает. Зачем tcpdump?
  • 29. Итого• Работает все.• Но не всегда.• И не для всех.• РАБОТАЕТ > НЕ_РАБОТАЕТ.
  • 30. СЧАСТЬЕ• Минимальные FALSE POSITIVES.• Отсутствие очевидных уязвимостей.• Адекватность текущим вызовам.
  • 31. NGINX testcookie_module
  • 32. One last thing…3.56%96.44%> 1Gbps < 1Gbps22.74%77.26%Cетевой флудПриложение
  • 33. Прокатимся?
  • 34. Домашнее задание.1. Настроенные nginx/ipset на сервере.2. Выключенный conntrack.3. Выделенный ip для публикуемых сервисов4. Представление о связности хостера.