Valve выпустила блог «Между линий» о борьбе с DDOS-атаками на The International 2015

В новом выпуске блога «Между линий» Valve рассказала о борьбе с DDOS-атаками на The International 2015. Статья от разработчиков Dota 2 опубликована на официальном сайте игры.

[Публикуется с сохранением орфографии и пунктуации источника]

Между линий: как отказать отказу в доступе

Это история об интернете и о том, как он не работает как нужно, если вообще работает (но на самом деле не работает). Мы расскажем, как у наших клиентов переставал работать интернет и как мы это исправили.

Интернет — не такая уж и обузданная территория, как нам кажется. Стоит выйти за безопасные пределы двухфакторной идентификации и доверенных файлов cookie, и вы окажетесь на диких просторах. Тут с лёгкостью можно наткнуться на вездесущих троллей, которые желают (и всё чаще получают возможность) испортить вам жизнь просто так, забавы ради.

В далёком 2014 году эти тролли использовали распределённые атаки типа «отказ в обслуживании» (DDoS-атаки) — «распределёнными» их называют потому, что в их ходе злоумышленник с помощью множества интернет-хостов заваливает трафиком определённый IP-адрес, чтобы перегрузить стек протоколов. Такие атаки ещё называются «объёмными», и с их помощью пытаются не проникнуть в сеть, а вызвать отказ в доступе к ней. Соответственно, распределённый отказ в доступе — это когда поток постороннего трафика мешает реальным людям пользоваться той или иной службой.

Проблема DDoS-атак заключалась в том, что к концу 2014 года их совершали не суперхакеры с учёной степенью в информационной сфере, занимающиеся похищением данных. Их совершали практически все, кто хотел заплатить за услугу, а всем остальным занимались боты. И причина была очевидна. Кто-то занимался этим исключительно из любви к вандализму, но у некоторых был мотив: DDoS-атака позволяла гарантированно прервать матч, в котором проигрывали вы или тот, за кого вы болели. Из досадного неудобства атаки превратились в прямую угрозу для любой игры, где можно соревноваться.

В первые месяцы 2015 года мы наблюдали огромный всплеск числа DDoS-атак на Dota и CS:GO, и другие компании также сообщали о том, что атак стало значительно больше. Кто-то неожиданно упростил этот процесс и сделал его доступным кому угодно.

В августе 2015 года DDoS-атаки помешали ходу The International. Они никак не повлияли на соревнующихся игроков, но на протяжении более двух часов мешали студийным комментаторам и аналитикам присоединиться к матчу и провести качественную трансляцию. Онлайн-трансляция матчей была под угрозой. Игры в одночасье стали проходить будто в вакууме. Профессиональный турнир с миллионами зрителей и миллионами долларов на кону пострадал из-за того, что невесть кто запустил программку за пять долларов. Такую проблему нельзя было игнорировать.

Прежде чем прийти к рабочему решению, мы перепробовали многое. Сначала мы попытались отфильтровать трафик с помощью мощного сетевого коммутатора. К сожалению, подобная фильтрация плохо подходит для игрового трафика. Для игровых серверов принятие незапрошенного UDP-трафика от различных IP-адресов — обычное дело. Представьте, что ваше отделение почты отсеивает нежелательные письма, но в то же время вы ведёте рубрику «Советы читателям» в местной газете, и поэтому вам постоянно пишут незнакомые люди. В таких условиях почтовому отделению никак не понять, какие письма настоящие, а какие нет. Примерно так же игровые серверы воспринимают трафик. Более того, IP-адреса отправителей в протоколе UDP не защищены, и их можно легко подделать, так что даже обратный адрес не может служить признаком важности письма, ведь злоумышленники могут сфальсифицировать эти данные.

Через Steam проходит крупный поток игровых данных, и для этого была выстроена большая сеть. Мы активно пользовались этой сетью, чтобы отправлять игровой трафик по специальным маршрутам, обеспечивать хороший обмен данными, задействовать передовые технологии и так далее. В результате игроки получали хорошее время отклика в сетевых играх, но не были защищены от DDoS-атак. Незащищённость UDP-протокола не позволяла сделать частной даже нашу собственную сеть.

Чтобы нашу же сеть не использовали для атак на наши сервера, нам нужно было контролировать и защищать все входы и выходы. Для этого мы создали серверы-посредники, которые направляли через ретрансляторы абсолютно весь игровой трафик вплоть до последнего пакета. В результате все клиенты, которые пытались связаться с игровыми серверами, стали проходить аутентификацию и перенаправляться с помощью ретрансляторов. А значит, IP-адреса серверов всегда были скрыты от конечного пользователя, и злоумышленники уже не знали, какие адреса нужно атаковать.

Возвращаясь к нашему старомодному сравнению, злоумышленникам больше не было известно, какой адрес заваливать письмами. Они могли отправить письмо хоть в каждое почтовое отделение с просьбой переслать его дальше, но без подтверждения личности письмо никуда бы не ушло (более того, почтовому отделению показалось бы немного подозрительным, что кто-то пытается отправить одному человеку сто тысяч писем).

Но разве нельзя атаковать ретрансляторы? Технически — можно. Но мы создали их именно для этого, и у нас их практически безграничное количество. «Ретранслятор» — это, по сути, компьютер с запущенной программой. Его можно атаковать или вывести из сети, но протокол разрабатывался с учётом такой возможности. Если во время игры клиент теряет связь с ретранслятором, просто задействуется другой. Ретрансляторы — словно сотни игральных фишек, разбросанных по миру с единственной целью: защищать игровые серверы. (Кстати говоря, остановить работу ретранслятора сложнее, чем кажется. Они довольно хорошо спроектированы и расположены в определённой части сети, поэтому, хоть они и созданы, чтобы принимать на себя удар, ещё ни один из них не вышел из строя.)

Решение оказалось простым, но эффективным. Раньше, чтобы помешать игре, достаточно было одолеть один игровой сервер (и сделать это крайне легко). Теперь же, по сути, нужно остановить работу всего дата-центра (и сделать это гораздо, гораздо, гораздо сложнее). Существуют ли атаки, которым это под силу? Разумеется. Существуют ли атаки, которым это под силу и которые кто угодно может купить за пять долларов? Нет. Столь изощренная атака официально стала слишком дорогой для большинства людей.

Мы запустили новую систему, и у нас случилось прозрение: мы не будем привязаны к правилам обычного интернета, если станем управлять собственной частной сетью. С её помощью мы можем ещё сильнее улучшить качество обслуживания. Пользуясь обычным интернетом и отправляя пакет с одного IP-адреса на другой, вы получаете маршрут от протокола граничного шлюза (англ. Border Gateway Protocol или BGP). Этот алгоритм маршрутизации определяет, как ваш пакет будет перемещаться по сети, и вы не можете на него повлиять.

Но благодаря виртуальной частной сети, состоящей из сотен ретрансляторов и дата-центров по всему миру, мы, по сути, можем выбрать собственный маршрут от клиента до игрового сервера — и зачастую он быстрее, чем маршрут по умолчанию. Пользователям Steam Datagram Relay (SDR) мы показываем время отклика и выделенный нами маршрут, чтобы они могли сами увидеть, как он оптимизируется.

Функция, изначально защищавшая серверы одной игры, превзошла все ожидания. Сеть SDR без проблем доставляет до 140 миллионов пакетов и 550 гигабит данных в секунду. Наши ретрансляторы в 31 дата-центре могут хранить более 5 терабит информации. Эта система не только предоставляет защиту от DDoS-атак, но и повышает скорость подключения и снижает время отклика у всех игроков — не только в Доте, но и в любой другой игре в Steam, которая захочет воспользоваться этой возможностью.

Надеемся, вас порадовал очередной взгляд за кулисы Доты. В этот раз было много технических подробностей, так что спасибо, что дочитали до конца! И не стесняйтесь сказать нам, о чём вы хотите услышать в следующий раз.

Читайте также

В комментариях под материалами на сайте действуют все правила портала, с которыми можно ознакомиться на специальной странице — https://dota2.ru/forum/rules/. Помимо этого, в комментариях к новостям существуют дополнительные ограничения:

  • Запрещены прямые и косвенные оскорбления авторов материалов, как и любые комментарии, не относящиеся к сути новости;
  • Указание на ошибки в материале происходит с помощью специального функционала. Комментарии с таким содержанием будут удалены;
  • Критика — это нормально, но выражать ее нужно без злоупотреблений. Ваши слишком грубые комментарии про личностей, представленных в новостях, могут быть удалены.
Аватар пользователя

а шо с вкладкой лента, 403 блокед
p.s. много что не работает

Аватар пользователя
Аватар пользователя

Валв рассказали как защититься от ddos, но оказалось поздно

Аватар пользователя
Аватар пользователя

Сайт, по "мертвой" игре, собрался на покойcoffinPLZ.gif
Или быть дозор... Ой, Позорники взбунтоыались, когда не увидели патча с героемPepeKeyboardRage.gif

Аватар пользователя

Ааа, я прозрел
Сайт Dota2.ru - ретранслятор.
Вот почему, при выходе БП и прочих крупных обнов, сайт лежит.
И сейчас, кто-то решил испытать DDoS защиту, и сайт глючит с ошибкой 403

Аватар пользователя

актуально и главное интересно
лучше бы бп сделали годный чем постить эти важные победы 10 летней давности

Аватар пользователя

всегда нравился слог вальв -- человек, отвечающий за написание/перевод статей у них определенно крутой

Аватар пользователя

Ну с точки зрения айти сделали всё достаточно очевидно и хорошо.

Аватар пользователя
Аватар пользователя

Вот бы увидеть блог про производству патча, а то как будто ещё с лета обещают патч, а его нет и нет.

Аватар пользователя
Аватар пользователя

А в 2024 краши с головочом пофиксить не хотите? pekaReally.png

Аватар пользователя

За его базар, я бы на места Вальв ему стим заблочил и запретил им пользоваться.

Аватар пользователя
Аватар пользователя

бездарям довольно-таки интересную инфу на голову высыпали а они еще жалуются, что это не арканы / новый патч (когда патчи как из пулемета летят)

Аватар пользователя

Последний герой в доте был выпущен ровно год назад. В лиге за это время выпустили пять чемпионов и при этом продолжают выпускать крупные патчи.
Я не знаю конечно, что для тебя есть пулемёт, но скорость работы вальв над патчами удручающая, это при учёте того, что они отказались от боевого пропуска в пользу более внимательной и быстрой разработки патчей (которых нет в общем-то)

Аватар пользователя

"Из пулемета"
(нормальный патч раз в полгода и микровысеры раз в два 2 месяца)

Аватар пользователя

очень интересная инфа 10летней давности, приправленная сундуком и двумя недофичами
это бездари вечно виноваты, а не кальве кормили обещаниями про двух героев в год, регулярные патчи, обнуления рейтинга

Аватар пользователя

А большинство юзеров ноют в любом случае. Обнова есть обнова. Не важно что там. Всегда рад когда включаешь комп, а там загрузка обновы)

Комментарии
Форум