Вводный курс о проблематике DDoS-атак, современных тенденциях и угрозах, а также о методах борьбы с атаками и том, как они, по всей видимости, будут развиваться в дальнейшем.
Преданья старины глубокой •Первые атаки: 1999-2000 •2005: модель STRIDE от Microsoft • Spoofing Identity • Tampering with Data • Repudiation • Information Disclosure • Denial of Service • Elevation of Privileges
[D?]DoS Разница между распределённой атакой и нераспределённой, мягко говоря, нестрогая. Традиционное значение: распределённая атака организуется с нескольких источников (больше одного. Или двух?..). • А что такое источник? Это IP-адрес или устройство? • Если это устройство, виртуальная машина считается? А если это несколько VM в одном гипервизоре? А если VM мигрируют между физическими серверами? И если я жертва, как мне это понять и какая для меня разница? • Если это IP, то, что, spoofed-трафик нераспределённый?!
[D?]DoS Поэтому удобнее использовать иной подход. • DoS (как подразумевается в STRIDE): уязвимость в ПО (разыменование нулевого указателя, Ping of Death и пр.) • DDoS: исчерпание вычислительных ресурсов
Мотивация злоумышленника • Fun! • Шантаж, вымогательство • Самореклама • Политическая позиция • Месть • Конкуренция • Отвлечение внимания (скажем, от кражи данных) • Ограничение доступа к нежелательной информации
Мотивация злоумышленника • Fun! • Шантаж, вымогательство • Самореклама • Политическая позиция • Месть • Конкуренция • Отвлечение внимания (скажем, от кражи данных) • Ограничение доступа к нежелательной информации Тяжело оценить и управлять Поддаётся оценке и контролю!
Исчерпание сетевого ресурса • Сегодняшняя* компьютерная сеть состоит из уровней • Сетевой ресурс недоступен пользователям, если хотя бы один уровень сети не справляется с работой • Таким образом, DDoS-атака может быть ассоциирована с тем уровнем сети, который она выводит из строя
L2-3: L4-6: L7: исчерпание полосы пропускания Согласно модели ISO/OSI: использование узких мест в TCP/TLS бутылочные горлышки в прикладном сервисе Классификация DDoS
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
• Старые серверы постепенно обновляются, или заменяются, или отправляются на помойку. • Поэтому число амплификаторов в Интернете обычно снижается Уязвимые серверы Source: Qrator.Radar network scanner
• Снижается и доступная злоумышленнику мощность атаки • Однако, периодически обнаруживаются новые уязвимые протоколы Коэффициент амплификации Source: Qrator.Radar network scanner
• Большинство amplification-атак легко обнаружить, так как UDP-порт источника фиксирован • Но не всё так просто! • NTP • DNS • SNMP • SSDP • ICMP • NetBIOS • RIPv1 • PORTMAP • CHARGEN • QOTD • Quake • … Фильтрация
Но не всё так просто! • ICMP • Amplification without a fixed port (Bittorrent?) • NTP • DNS • SNMP • SSDP • ICMP • NetBIOS • RIPv1 • PORTMAP • CHARGEN • QOTD • Quake • … Фильтрация
memcached •Быстрый in-memory-кэш •Активно используется в Web-разработке (хотя зачастую неправильно) •«Слушает» все интерфейсы на порту 11211по умолчанию
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”
Умолчания в 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 и пр.
Коэффициент амплификации 0 200 400 600 NTP CharGEN QotD RIPv1 Quake LDAP Source: https://www.us-cert.gov/ncas/alerts/TA14-017A • Типичный КА – порядка нескольких сотен • В случае memcached, миллионы • Amplification-атаки часто недооценивают, а зря
L2-3: защита С точки зрения конечного пользователя: • Anycast-сеть с вычислительными ресурсами, достаточными для анализа любого возможного входящего трафика • Карта сети, чтобы отбрасывать трафик в направлении несуществующих/закрытых адресов, протоколов и портов (например, UDP-датаграммы в направлении HTTP-сервера) • Rate-limit для трафика, не являющегося ключевым • Активные проверки (см. далее)
L2-3: защита С точки зрения конечного пользователя: • Anycast-сеть с вычислительными ресурсами, достаточными для анализа любого возможного входящего трафика • Карта сети, чтобы отбрасывать трафик в направлении несуществующих/закрытых адресов, протоколов и портов (например, UDP-датаграммы в направлении HTTP-сервера) • Rate-limit для трафика, не являющегося ключевым • Активные проверки (см. далее) С точки зрения провайдера: • Эвристики для распространённых простых атак • RTBH (и переложить проблему на пользователя)
Примеры атак • L2-3 • Volumetric-атаки: UDP-флуд, SYN-флуд, амплификация, и так далее (не так важно, что именно) • Атаки на инфраструктуру • L4-6 • SYN-флуд, флуд TCP-соединениями, Sockstress, и так далее • Атаки на TLS
Примеры атак • L2-3 • Volumetric-атаки: UDP-флуд, SYN-флуд, амплификация, и так далее (не так важно, что именно) • Атаки на инфраструктуру • L4-6 • SYN-флуд, флуд TCP-соединениями, Sockstress, и так далее • Атаки на TLS Из-за атаки может деградировать сразу несколько уровней
Комбинированные атаки • Пример: NTP Amplification + SYN flood • Задача: отвлечение внимания людей, настраивающих защиту, от реального поражающего фактора
L4+: защита • SYN-флуд: SYN cookies и SYN proxy. Механизмы, основанные на тройном рукопожатии и дающие возможность проверить подлинность IP-адреса источника
L4+: защита • SYN-флуд: SYN cookies и SYN proxy. • Прочий пакетный флуд вне сессий: соответствующие рукопожатия и проверки • Остальное: анализ сессий, статистика, эвристики и чёрные списки IP-адресов • Чрезвычайно опасно использовать чёрные и/или белые списки IP-адресов (ACL) до проверки IP-адреса источника! • Карта сети по-прежнему важна!
L4+: защита • L2-L4-атаки могут осуществляться не только на серверное, но и на клиентское оборудование • Наиболее распространённые случаи: • Гейминг и влияние на результат игр • Вмешательство в ход электронных экзаменов • Борьба с конкурентами в ходе торгов • https://www.v3.co.uk/v3-uk/news/2478411/ec-offices-taken-offline-by- large-scale-ddos-attack • Принцип защиты по сути тот же (карта сети и приоритизация) • Проблема – в масштабировании
L4+: защита • Неверно думать, что L4 – это только TCP (хотя UDP сам по себе можно не рассматривать) • Появляются новые транспортные протоколы • Протоколы вендоров • Встроенный транспорт приложений • Спецификации IETF • Серверы конечных пользователей? • Бэк-офис? • Операторы и провайдеры?
Проблемы с IPv6 • 128-битные IP-адреса • Возможно: выдать адрес каждому атому на лице Земли • Невозможно: хранить в памяти большое число адресов • Около 10 лет назад бан подсетями уже считался плохой практикой • С приходом IPv6 этот метод переживает второе рождение
Примеры атак • L2-3 • Volumetric-атаки: UDP-флуд, SYN-флуд, амплификация, и так далее (не так важно, что именно) • Атаки на инфраструктуру • L4-6 • SYN-флуд, флуд TCP-соединениями, Sockstress, и так далее • Атаки на TLS
Примеры атак • L2-3 • Volumetric-атаки: UDP-флуд, SYN-флуд, амплификация, и так далее (не так важно, что именно) • Атаки на инфраструктуру • L4-6 • SYN-флуд, флуд TCP-соединениями, Sockstress, и так далее • Атаки на TLS • L7 • Атаки на особенности приложения
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
Другой пример L7-атаки: FBS • Бот может быть и умнее обычного Wordpress-сервера • Продвинутые ботнеты могут использовать headless browser: браузер, не создающий окон на рабочем столе (IE/Edge или Chrome) => “full browser stack” (FBS)-ботнеты • FBS-бот может обходить даже сложные проверки, такие, как Javascript-вызовы • Последним бастионом остаётся CAPTCHA, но она также небезупречна (приходите завтра)
Другой пример L7-атаки: FBS • В отличие от атаки Wordpress pingback, FBS-атаки (как и большинство L7-атак на HTTP/HTTPS) не провоцируют деградацию нижних уровней сети. • Поэтому оператор связи (справедливо) не рассматривает такие атаки в своей зоне ответственности.
DNS lookup • DNS основан на UDP*, и DNS-запрос помещается в один пакет • Структура DNS-запроса очень проста • Атакующий, способный генерировать запросы с поддельных IP-адресов, заставит жертву обрабатывать их внутри прикладного DNS-сервера, исчерпывая его ресурсы.
DNS lookup • Атакующий, способный генерировать запросы с поддельных IP-адресов, заставит жертву обрабатывать их внутри прикладного DNS-сервера, исчерпывая его ресурсы. • “Water torture” • Это случилось в октябре 2016 года с Dyn.
DNS lookup • Атакующий, способный генерировать запросы с поддельных IP-адресов, заставит жертву обрабатывать их внутри прикладного DNS-сервера, исчерпывая его ресурсы. • К счастью, DNS может работать поверх TCP • Однако, требуется полоса пропускания и вычислительные мощности для анализа
False P/N • Всё, что основано на обучении, не даёт 100% гарантии • False positive (ошибка I рода): ложное срабатывание • False negative (ошибка II рода): пропуск события • Любой алгоритм можно настроить на 0% FP или 0% FN • Истина – посредине • Баланс определяется задачами бизнеса
Примеры атак • L2-3 • Volumetric-атаки: UDP-флуд, SYN-флуд, амплификация, и так далее (не так важно, что именно) • Атаки на инфраструктуру • L4-6 • SYN-флуд, флуд TCP-соединениями, Sockstress, и так далее • Атаки на TLS • L7 • Атаки на особенности приложения Классификация: • Mutually exclusive * • Collectively exhaustive
“What happens when…”? • DNS lookup • Выбор IPv4/IPv6 • Открытие сокета • Deep packet inspection • TLS-рукопожатие • CRL/OCSP • HTTP • Load balancer • HTTP Server Request Handle • CDN • Пример Dyn показывает: сервер может не быть прямой целью атаки • Каждый шаг может быть атакован • Inventory management • Мониторинг инфраструктуры
Архитектура • Безопасность – это не продукт, это процесс • Возможность защиты от DDoS закладывается в дизайн протоколов и приложений • Защищающийся должен следовать политикам: • Обновления • Управление рисками • Реагирование на инциденты
What’s next? •memcached: • В газете: ноябрь 2017 • В куплете: февраль 2018 •Три месяца – это очень мало. • В следующий раз может быть и того меньше •Meltdown/Spectre: подход «эмбарго» для большой группы не работает
What’s next? •Проблема не в Интернете вещей. Это небезопасность сетей в целом, ошибки эксплуатации и безответственность отдельных игроков. •Кажется, мы нашли первопричину… но ничего не можем с этим поделать