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. DDoS 101
    Artyom Gavrichenkov

    View Slide

  2. Преданья старины глубокой
    •Первые атаки: 1999-2000
    •2005: модель STRIDE от Microsoft
    • Spoofing Identity
    • Tampering with Data
    • Repudiation
    • Information Disclosure
    • Denial of Service
    • Elevation of Privileges

    View Slide

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

    View Slide

  4. [D?]DoS
    Поэтому удобнее использовать иной подход.
    • DoS (как подразумевается в STRIDE):
    уязвимость в ПО
    (разыменование нулевого указателя, Ping of Death и пр.)
    • DDoS: исчерпание вычислительных ресурсов

    View Slide

  5. Управление рисками
    Основные концепции в основе STRIDE и других подходов –
    анализ, моделирование и управление рисками.

    View Slide

  6. Probability/Impact Matrix
    Trivial Minor Moderate Significant Severe
    Rare
    Unlikely
    Moderate
    Likely
    Very Likely

    View Slide

  7. Probability/Impact Matrix
    Trivial Minor Moderate Significant Severe
    Rare
    Unlikely
    Moderate
    Likely
    Very
    Likely
    DDoS attack,
    2018
    • Impact:
    Severe
    • Probability:
    ?

    View Slide

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

    View Slide

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

    View Slide

  10. View Slide

  11. Исчерпание сетевого ресурса
    • Сегодняшняя* компьютерная сеть состоит из уровней
    • Сетевой ресурс недоступен пользователям,
    если хотя бы один уровень сети не справляется с работой
    • Таким образом, DDoS-атака может быть
    ассоциирована с тем уровнем сети,
    который она выводит из строя

    View Slide

  12. L2-3:
    L4-6:
    L7:
    исчерпание полосы пропускания
    Согласно модели ISO/OSI:
    использование узких мест в TCP/TLS
    бутылочные горлышки
    в прикладном сервисе
    Классификация DDoS

    View Slide

  13. Примеры атак
    • L2-3
    • Volumetric-атаки: UDP-флуд,
    SYN-флуд, амплификация…

    View Slide

  14. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  19. BGP Flow Spec
    решает
    проблемы?

    View Slide

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

    View Slide

  21. Но не всё так просто!
    • ICMP
    • Amplification
    without
    a fixed port
    (Bittorrent?)
    • NTP
    • DNS
    • SNMP
    • SSDP
    • ICMP
    • NetBIOS
    • RIPv1
    • PORTMAP
    • CHARGEN
    • QOTD
    • Quake
    • …
    Фильтрация

    View Slide

  22. memcached
    •Быстрый in-memory-кэш
    •Активно используется в Web-разработке
    (хотя зачастую неправильно)

    View Slide

  23. memcached
    •Быстрый in-memory-кэш
    •Активно используется в Web-разработке
    (хотя зачастую неправильно)
    •«Слушает» все интерфейсы
    на порту 11211по умолчанию

    View Slide

  24. memcached
    •ASCII-протокол не умеет в аутентификацию
    •2014, Blackhat USA:
    “An attacker can inject arbitrary data into memory”

    View Slide

  25. 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”

    View Slide

  26. import memcache
    m = memcache.Client([
    ‘reflector.example.com:11211’
    ])
    m.set(’a’, value)
    – строка произвольного
    размера записывается
    по ключу “a”

    View Slide

  27. print ’\0\x01\0\0\0\x01\0\0gets a\r\n’
    – чтобы извлечь строку

    View Slide

  28. print ’\0\x01\0\0\0\x01\0\0gets a a a a a\r\n’
    – чтобы извлечь строку 5 раз.

    View Slide

  29. print ’\0\x01\0\0\0\x01\0\0gets a a a a a\r\n’
    – чтобы извлечь строку 5 раз.
    Или 10 раз.
    Или сто.

    View Slide

  30. Умолчания в 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 и пр.

    View Slide

  31. View Slide

  32. Коэффициент амплификации
    0
    200
    400
    600
    NTP
    CharGEN
    QotD
    RIPv1
    Quake
    LDAP
    Source: https://www.us-cert.gov/ncas/alerts/TA14-017A
    • Типичный КА – порядка нескольких сотен
    • В случае memcached, миллионы
    • Amplification-атаки часто недооценивают, а зря

    View Slide

  33. 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

    View Slide

  34. ...
    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

    View Slide

  35. Proof of Source Address Ownership
    См. QUIC:
    • Initial handshake packet padded to 1280 bytes
    • Source address validation

    View Slide

  36. Примеры атак
    • L2-3
    • Volumetric-атаки: UDP-флуд,
    SYN-флуд, амплификация…

    View Slide

  37. Интернет вещей
    •2014: LizardStresser
    •2015: SOHO-роутеры становятся целью malware
    •2016: Mirai
    •2017: Persirai, Hajime, …

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  44. Комбинированные атаки
    • Пример: NTP Amplification + SYN flood
    • Задача: отвлечение внимания людей,
    настраивающих защиту,
    от реального поражающего фактора

    View Slide

  45. 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

    View Slide

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

    View Slide

  47. SYN
    SYN/ACK
    ACK
    Data
    1)
    2)
    Сервер

    View Slide

  48. SYN
    SYN/ACK
    ACK
    Data
    SYN
    SYN/ACK
    ACK
    Защита Сервер
    1)
    2)
    3)

    View Slide

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

    View Slide

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

    View Slide

  51. L4+: защита
    • Неверно думать, что L4 – это только TCP
    (хотя UDP сам по себе можно не рассматривать)
    • Появляются новые транспортные протоколы
    • Протоколы вендоров
    • Встроенный транспорт приложений
    • Спецификации IETF
    • Серверы конечных пользователей?
    • Бэк-офис?
    • Операторы и провайдеры?

    View Slide

  52. Проблемы с IPv6
    • 128-битные IP-адреса
    • Возможно: выдать адрес каждому атому на лице Земли
    • Невозможно: хранить в памяти большое число адресов
    • Около 10 лет назад бан подсетями
    уже считался плохой практикой
    • С приходом IPv6 этот метод
    переживает второе рождение

    View Slide

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

    View Slide

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

    View Slide

  55. 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

    View Slide

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

    View Slide

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

    View Slide

  58. Другой пример L7-атаки: DNS
    • DNS основан на UDP*,
    и DNS-запрос помещается в один пакет
    • Структура DNS-запроса очень проста

    View Slide

  59. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  63. L7: защита

    View Slide

  64. L7: защита
    ВСЁ СЛОЖНО

    View Slide

  65. • Активная:
    • HTTP/JS-проверки
    • CAPTCHA
    • Пассивная:
    • Анализ сессий
    • Big Data
    • Корреляция, machine learning
    • Мониторинг, экстренное реагирование
    L7: защита
    ВСЁ СЛОЖНО

    View Slide

  66. False P/N
    • Всё, что основано на обучении, не даёт 100% гарантии
    • False positive (ошибка I рода): ложное срабатывание
    • False negative (ошибка II рода): пропуск события
    • Любой алгоритм можно настроить на 0% FP или 0% FN
    • Истина – посредине
    • Баланс определяется задачами бизнеса

    View Slide

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

    View Slide

  68. Однако
    Интернет – сложная штука.

    View Slide

  69. Старая задачка для собеседования
    • “Что происходит, когда я набираю www.google.com?”
    • https://github.com/alex/what-happens-when:

    View Slide

  70. “What happens when…”?
    • DNS lookup
    • Открытие сокета
    • TLS-рукопожатие
    • HTTP
    • HTTP Server Request Handle

    View Slide

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

    View Slide

  72. “What happens when…”?
    • DNS lookup
    • Выбор IPv4/IPv6
    • Открытие сокета
    • Deep packet inspection
    • TLS-рукопожатие
    • CRL/OCSP
    • HTTP
    • Load balancer
    • HTTP Server Request Handle
    • CDN
    • Пример Dyn показывает:
    сервер может не быть
    прямой целью атаки
    • Каждый шаг может
    быть атакован
    • Inventory management
    • Мониторинг
    инфраструктуры

    View Slide

  73. Архитектура
    • Безопасность – это не продукт, это процесс
    • Возможность защиты от DDoS закладывается
    в дизайн протоколов и приложений
    • Защищающийся должен следовать политикам:
    • Обновления
    • Управление рисками
    • Реагирование на инциденты

    View Slide

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

    View Slide

  75. What’s next?
    •Проблема не в Интернете вещей.
    Это небезопасность сетей в целом,
    ошибки эксплуатации и безответственность
    отдельных игроков.
    •Кажется, мы нашли первопричину…
    но ничего не можем с этим поделать

    View Slide

  76. What’s next?
    •Взаимодействие
    •Своевременное
    реагирование
    •Работа с CERT/CSIRT,
    получение рекомендаций

    View Slide

  77. Q&A
    mailto: Artyom Gavrichenkov

    View Slide