Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DDoS 101 (2018, PaymentSecurity RU 2018)

DDoS 101 (2018, PaymentSecurity RU 2018)

Вводный курс о проблематике DDoS-атак, современных тенденциях и угрозах, а также о методах борьбы с атаками и том, как они, по всей видимости, будут развиваться в дальнейшем.

More Decks by Artyom "Töma" Gavrichenkov

Other Decks in Technology

Transcript

  1. Преданья старины глубокой •Первые атаки: 1999-2000 •2005: модель STRIDE от

    Microsoft • Spoofing Identity • Tampering with Data • Repudiation • Information Disclosure • Denial of Service • Elevation of Privileges
  2. [D?]DoS Разница между распределённой атакой и нераспределённой, мягко говоря, нестрогая.

    Традиционное значение: распределённая атака организуется с нескольких источников (больше одного. Или двух?..). • А что такое источник? Это IP-адрес или устройство? • Если это устройство, виртуальная машина считается? А если это несколько VM в одном гипервизоре? А если VM мигрируют между физическими серверами? И если я жертва, как мне это понять и какая для меня разница? • Если это IP, то, что, spoofed-трафик нераспределённый?!
  3. [D?]DoS Поэтому удобнее использовать иной подход. • DoS (как подразумевается

    в STRIDE): уязвимость в ПО (разыменование нулевого указателя, Ping of Death и пр.) • DDoS: исчерпание вычислительных ресурсов
  4. Управление рисками Основные концепции в основе STRIDE и других подходов

    – анализ, моделирование и управление рисками.
  5. Probability/Impact Matrix Trivial Minor Moderate Significant Severe Rare Unlikely Moderate

    Likely Very Likely DDoS attack, 2018 • Impact: Severe • Probability: ?
  6. Мотивация злоумышленника • Fun! • Шантаж, вымогательство • Самореклама •

    Политическая позиция • Месть • Конкуренция • Отвлечение внимания (скажем, от кражи данных) • Ограничение доступа к нежелательной информации
  7. Мотивация злоумышленника • Fun! • Шантаж, вымогательство • Самореклама •

    Политическая позиция • Месть • Конкуренция • Отвлечение внимания (скажем, от кражи данных) • Ограничение доступа к нежелательной информации Тяжело оценить и управлять Поддаётся оценке и контролю!
  8. Исчерпание сетевого ресурса • Сегодняшняя* компьютерная сеть состоит из уровней

    • Сетевой ресурс недоступен пользователям, если хотя бы один уровень сети не справляется с работой • Таким образом, DDoS-атака может быть ассоциирована с тем уровнем сети, который она выводит из строя
  9. L2-3: L4-6: L7: исчерпание полосы пропускания Согласно модели ISO/OSI: использование

    узких мест в TCP/TLS бутылочные горлышки в прикладном сервисе Классификация DDoS
  10. Amplification-атака • Интернет-серверы обычно посылают клиентам больше данных, чем получают

    от них • UDP-серверы обычно не проверяют IP-адрес источника • Это позволяет организовывать amplification DDoS Attacker Victim Src: victim (spoofed) Dst: amplifier “ANY? com.” 1 Gbps Src: amplifier Dst: victim ”com. NS i.gtld-...” 29 Gbps
  11. • NTP • DNS • SNMP • SSDP • ICMP

    • NetBIOS • RIPv1 • PORTMAP • CHARGEN • Quake • Steam • … Уязвимые протоколы Их много. • В основном, это устаревшие протоколы (RIPv1!) • Но не всегда: например, гейминг
  12. • Старые серверы постепенно обновляются, или заменяются, или отправляются на

    помойку. • Поэтому число амплификаторов в Интернете обычно снижается Уязвимые серверы Source: Qrator.Radar network scanner
  13. • Снижается и доступная злоумышленнику мощность атаки • Однако, периодически

    обнаруживаются новые уязвимые протоколы Коэффициент амплификации Source: Qrator.Radar network scanner
  14. • Большинство amplification-атак легко обнаружить, так как UDP-порт источника фиксирован

    Фильтрация • NTP • DNS • SNMP • SSDP • ICMP • NetBIOS • RIPv1 • PORTMAP • CHARGEN • QOTD • Quake • …
  15. • Большинство amplification-атак легко обнаружить, так как UDP-порт источника фиксирован

    • Но не всё так просто! • NTP • DNS • SNMP • SSDP • ICMP • NetBIOS • RIPv1 • PORTMAP • CHARGEN • QOTD • Quake • … Фильтрация
  16. Но не всё так просто! • ICMP • Amplification without

    a fixed port (Bittorrent?) • NTP • DNS • SNMP • SSDP • ICMP • NetBIOS • RIPv1 • PORTMAP • CHARGEN • QOTD • Quake • … Фильтрация
  17. memcached •ASCII-протокол не умеет в аутентификацию •2014, Blackhat USA: “An

    attacker can inject arbitrary data into memory” •2017, Power of Community: “An attacker can send data from memory to a third party via spoofing victim’s IP address”
  18. import memcache m = memcache.Client([ ‘reflector.example.com:11211’ ]) m.set(’a’, value) –

    строка произвольного размера записывается по ключу “a”
  19. print ’\0\x01\0\0\0\x01\0\0gets a a a a a\r\n’ – чтобы извлечь

    строку 5 раз. Или 10 раз. Или сто.
  20. Умолчания в Red Hat • memcached listens on all network

    interfaces • both TCP and UDP transports are enabled • no authentication is required to access Memcached • the service has to be manually enabled or started • the default firewall configuration does not allow remote access to Memcached •См. тж. Zimbra и пр.
  21. Коэффициент амплификации 0 200 400 600 NTP CharGEN QotD RIPv1

    Quake LDAP Source: https://www.us-cert.gov/ncas/alerts/TA14-017A • Типичный КА – порядка нескольких сотен • В случае memcached, миллионы • Amplification-атаки часто недооценивают, а зря
  22. ipv4 access-list exploitable-ports permit udp any eq 11211 any !

    ipv6 access-list exploitable-ports-v6 permit udp any eq 11211 any ! class-map match-any exploitable-ports match access-group ipv4 exploitable-ports end-class-map ! policy-map ntt-external-in class exploitable-ports police rate percent 1 conform-action transmit exceed-action drop ! set precedence 0 set mpls experimental topmost 0 ! Source: http://mailman.nlnog.net/pipermail/nlnog/2018-March/002697.html
  23. ... class class-default set mpls experimental imposition 0 set precedence

    0 ! end-policy-map ! interface Bundle-Ether19 description Customer: the best customer service-policy input ntt-external-in ipv4 address xxx/x ipv6 address yyy/y ... ! interface Bundle-Ether20 service-policy input ntt-external-in ... ... etc ... Source: http://mailman.nlnog.net/pipermail/nlnog/2018-March/002697.html
  24. Proof of Source Address Ownership См. QUIC: • Initial handshake

    packet padded to 1280 bytes • Source address validation
  25. Примеры атак • L2-3 • Volumetric-атаки: UDP-флуд, SYN-флуд, амплификация, и

    так далее (не так важно, что именно) • Атаки на инфраструктуру
  26. L2-3: защита С точки зрения конечного пользователя: • Anycast-сеть с

    вычислительными ресурсами, достаточными для анализа любого возможного входящего трафика • Карта сети, чтобы отбрасывать трафик в направлении несуществующих/закрытых адресов, протоколов и портов (например, UDP-датаграммы в направлении HTTP-сервера) • Rate-limit для трафика, не являющегося ключевым • Активные проверки (см. далее)
  27. L2-3: защита С точки зрения конечного пользователя: • Anycast-сеть с

    вычислительными ресурсами, достаточными для анализа любого возможного входящего трафика • Карта сети, чтобы отбрасывать трафик в направлении несуществующих/закрытых адресов, протоколов и портов (например, UDP-датаграммы в направлении HTTP-сервера) • Rate-limit для трафика, не являющегося ключевым • Активные проверки (см. далее) С точки зрения провайдера: • Эвристики для распространённых простых атак • RTBH (и переложить проблему на пользователя)
  28. Примеры атак • L2-3 • Volumetric-атаки: UDP-флуд, SYN-флуд, амплификация, и

    так далее (не так важно, что именно) • Атаки на инфраструктуру
  29. Примеры атак • L2-3 • Volumetric-атаки: UDP-флуд, SYN-флуд, амплификация, и

    так далее (не так важно, что именно) • Атаки на инфраструктуру • L4-6 • SYN-флуд, флуд TCP-соединениями, Sockstress, и так далее • Атаки на TLS
  30. Примеры атак • L2-3 • Volumetric-атаки: UDP-флуд, SYN-флуд, амплификация, и

    так далее (не так важно, что именно) • Атаки на инфраструктуру • L4-6 • SYN-флуд, флуд TCP-соединениями, Sockstress, и так далее • Атаки на TLS Из-за атаки может деградировать сразу несколько уровней
  31. Комбинированные атаки • Пример: NTP Amplification + SYN flood •

    Задача: отвлечение внимания людей, настраивающих защиту, от реального поражающего фактора
  32. 21:30:01.226868 IP 94.251.116.51 > 178.248.233.141: GREv0, length 544: IP 184.224.242.144.65323

    > 167.42.221.164.80: UDP, length 512 21:30:01.226873 IP 46.227.212.111 > 178.248.233.141: GREv0, length 544: IP 90.185.119.106.50021 > 179.57.238.88.80: UDP, length 512 21:30:01.226881 IP 46.39.29.150 > 178.248.233.141: GREv0, length 544: IP 31.173.79.118.42580 > 115.108.7.79.80: UDP, length 512
  33. L4+: защита • SYN-флуд: SYN cookies и SYN proxy. Механизмы,

    основанные на тройном рукопожатии и дающие возможность проверить подлинность IP-адреса источника
  34. L4+: защита • SYN-флуд: SYN cookies и SYN proxy. •

    Прочий пакетный флуд вне сессий: соответствующие рукопожатия и проверки • Остальное: анализ сессий, статистика, эвристики и чёрные списки IP-адресов • Чрезвычайно опасно использовать чёрные и/или белые списки IP-адресов (ACL) до проверки IP-адреса источника! • Карта сети по-прежнему важна!
  35. L4+: защита • L2-L4-атаки могут осуществляться не только на серверное,

    но и на клиентское оборудование • Наиболее распространённые случаи: • Гейминг и влияние на результат игр • Вмешательство в ход электронных экзаменов • Борьба с конкурентами в ходе торгов • https://www.v3.co.uk/v3-uk/news/2478411/ec-offices-taken-offline-by- large-scale-ddos-attack • Принцип защиты по сути тот же (карта сети и приоритизация) • Проблема – в масштабировании
  36. L4+: защита • Неверно думать, что L4 – это только

    TCP (хотя UDP сам по себе можно не рассматривать) • Появляются новые транспортные протоколы • Протоколы вендоров • Встроенный транспорт приложений • Спецификации IETF • Серверы конечных пользователей? • Бэк-офис? • Операторы и провайдеры?
  37. Проблемы с IPv6 • 128-битные IP-адреса • Возможно: выдать адрес

    каждому атому на лице Земли • Невозможно: хранить в памяти большое число адресов • Около 10 лет назад бан подсетями уже считался плохой практикой • С приходом IPv6 этот метод переживает второе рождение
  38. Примеры атак • L2-3 • Volumetric-атаки: UDP-флуд, SYN-флуд, амплификация, и

    так далее (не так важно, что именно) • Атаки на инфраструктуру • L4-6 • SYN-флуд, флуд TCP-соединениями, Sockstress, и так далее • Атаки на TLS
  39. Примеры атак • L2-3 • Volumetric-атаки: UDP-флуд, SYN-флуд, амплификация, и

    так далее (не так важно, что именно) • Атаки на инфраструктуру • L4-6 • SYN-флуд, флуд TCP-соединениями, Sockstress, и так далее • Атаки на TLS • L7 • Атаки на особенности приложения
  40. GET /whatever User-Agent: WordPress/3.9.2; http://example.com/; verifying pingback from 192.0.2.150 •

    150 000 – 170 000 уязвимых серверов в одной атаке • SSL/TLS-запросы Wordpress Pingback Data from Qrator monitoring engine
  41. Другой пример L7-атаки: FBS • Бот может быть и умнее

    обычного Wordpress-сервера • Продвинутые ботнеты могут использовать headless browser: браузер, не создающий окон на рабочем столе (IE/Edge или Chrome) => “full browser stack” (FBS)-ботнеты • FBS-бот может обходить даже сложные проверки, такие, как Javascript-вызовы • Последним бастионом остаётся CAPTCHA, но она также небезупречна (приходите завтра)
  42. Другой пример L7-атаки: FBS • В отличие от атаки Wordpress

    pingback, FBS-атаки (как и большинство L7-атак на HTTP/HTTPS) не провоцируют деградацию нижних уровней сети. • Поэтому оператор связи (справедливо) не рассматривает такие атаки в своей зоне ответственности.
  43. Другой пример L7-атаки: DNS • DNS основан на UDP*, и

    DNS-запрос помещается в один пакет • Структура DNS-запроса очень проста
  44. 10:00:34.510826 IP (proto UDP (17), length 56) 192.168.1.5.63097 > 8.8.8.8.53:

    9508+ A? facebook.com. (30) 10:00:34.588632 IP (proto UDP (17), length 72) 8.8.8.8.53 > 192.168.1.5.63097: 9508 1/0/0 facebook.com. A 31.13.72.36 (45) DNS lookup
  45. DNS lookup • DNS основан на UDP*, и DNS-запрос помещается

    в один пакет • Структура DNS-запроса очень проста • Атакующий, способный генерировать запросы с поддельных IP-адресов, заставит жертву обрабатывать их внутри прикладного DNS-сервера, исчерпывая его ресурсы.
  46. DNS lookup • Атакующий, способный генерировать запросы с поддельных IP-адресов,

    заставит жертву обрабатывать их внутри прикладного DNS-сервера, исчерпывая его ресурсы. • “Water torture” • Это случилось в октябре 2016 года с Dyn.
  47. DNS lookup • Атакующий, способный генерировать запросы с поддельных IP-адресов,

    заставит жертву обрабатывать их внутри прикладного DNS-сервера, исчерпывая его ресурсы. • К счастью, DNS может работать поверх TCP • Однако, требуется полоса пропускания и вычислительные мощности для анализа
  48. • Активная: • HTTP/JS-проверки • CAPTCHA • Пассивная: • Анализ

    сессий • Big Data • Корреляция, machine learning • Мониторинг, экстренное реагирование L7: защита ВСЁ СЛОЖНО
  49. False P/N • Всё, что основано на обучении, не даёт

    100% гарантии • False positive (ошибка I рода): ложное срабатывание • False negative (ошибка II рода): пропуск события • Любой алгоритм можно настроить на 0% FP или 0% FN • Истина – посредине • Баланс определяется задачами бизнеса
  50. Примеры атак • L2-3 • Volumetric-атаки: UDP-флуд, SYN-флуд, амплификация, и

    так далее (не так важно, что именно) • Атаки на инфраструктуру • L4-6 • SYN-флуд, флуд TCP-соединениями, Sockstress, и так далее • Атаки на TLS • L7 • Атаки на особенности приложения Классификация: • Mutually exclusive * • Collectively exhaustive
  51. “What happens when…”? • DNS lookup • Открытие сокета •

    TLS-рукопожатие • HTTP • HTTP Server Request Handle
  52. “What happens when…”? • DNS lookup • Выбор IPv4/IPv6 •

    Открытие сокета • Deep packet inspection • TLS-рукопожатие • CRL/OCSP • HTTP • Load balancer • HTTP Server Request Handle • CDN
  53. “What happens when…”? • DNS lookup • Выбор IPv4/IPv6 •

    Открытие сокета • Deep packet inspection • TLS-рукопожатие • CRL/OCSP • HTTP • Load balancer • HTTP Server Request Handle • CDN • Пример Dyn показывает: сервер может не быть прямой целью атаки • Каждый шаг может быть атакован • Inventory management • Мониторинг инфраструктуры
  54. Архитектура • Безопасность – это не продукт, это процесс •

    Возможность защиты от DDoS закладывается в дизайн протоколов и приложений • Защищающийся должен следовать политикам: • Обновления • Управление рисками • Реагирование на инциденты
  55. What’s next? •memcached: • В газете: ноябрь 2017 • В

    куплете: февраль 2018 •Три месяца – это очень мало. • В следующий раз может быть и того меньше •Meltdown/Spectre: подход «эмбарго» для большой группы не работает
  56. What’s next? •Проблема не в Интернете вещей. Это небезопасность сетей

    в целом, ошибки эксплуатации и безответственность отдельных игроков. •Кажется, мы нашли первопричину… но ничего не можем с этим поделать