Next lvl Dota или DDoS[UPD]

Вспомните 2010 год, Какой-нибудь Asus Spring с призовым в 200$. Могли бы вы представить, что кто-то станет мешать проведению такого турнира? К сожалению, сейчас с данной проблемой мы сталкиваемся все чаще. Кто, зачем и ответы на другие вопросы внутри.

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

Итак, для начала зайдем в Википедию и узнаем, что такое DDoS-атака: 
DoS (от англ.Denial of Service — отказ от обслуживания) — хакерская атака на вычислительную систему (обычно совершенная хакерами) с целью довести её до отказа, то есть создание таких условий, при которых легальные пользователи системы не могут получить доступ к предоставляемым системным ресурсам (серверам), либо этот доступ затруднён. Если атака выполняется одновременно с большого числа компьютеров, говорят о DDoS-атаке Отказ «вражеской» системы может быть и шагом к овладению системой (если в нештатной ситуации ПО выдаёт какую-либо критическую информацию — например, версию, часть программного кода и т.д.). Но чаще это мера экономического давления: простой службы, приносящей доход, счета от провайдера и меры по уходу от атаки ощутимо бьют «цель» по карману. В настоящее время DoS и DDoS-атаки наиболее популярны, так как позволяют довести до отказа практически любую систему, не оставляя юридически значимых улик.

Теперь постараемся интерпретировать написанное выше для Доты.  DDoS - это атака с целью вывести из строя ПК  отдельного игрока/стримера/команду/провайдера. Зачем? Возможно преследование двух целей:

1) Личная неприязнь к определенному человеку/группе людей/организации.
2) Получение определенного рода выгоды. (Зрители, деньги, спонсоры и тд. )

Рассмотрим первый пункт на двух случаях. Довольно известный стример СНГ Россия, Russia, RUVjLink, проводя так называемый "48 часовой марафон"  неприрывного стима, подвергся атаке и стрим оборвался, спустя 30 с лишним часов.   В этом случае очевидно, что никто не преследовал никакие материальные мотивы, а лишь хотел пошутить/поржать/обломать парня. В итоге, воспламенение стула VjLink'а и всеми известное видео, которое приложено ниже (звук на минимум)



Пострадал и Украина, Ukraine, UAVersuta. Тут комментарии излишни, просто смотрим видео, предварительно убрав детей от экрана: 



Одно дело мешать играть пабы, но тут кто-то явно пересек черту. Едем дальше. 

Тяжело не вспомнить не безызвестного игрока Россия, Russia, RUCleave.XaKoH, стрим которого регулярно "падает" из за ДДоСа. Ниже приведено несколько скринов из его паблика по этому поводу: 






 Не надо быть доктором наук, что бы понять,  систематический DDoS Хакона никому прибыли не несет.  Возможно, кому-то насолил,  возможно, кто-то считает такого рода "шутки"  очень забавными.   Однозначного ответа нет. 
Мы связались С Женей и узнали его взгляд на данную ситуацию:

"Да мне особо нечего сказать) Я не знаю кто и зачем... Как с этим борюсь рассказывать никому не хочу. Всё-таки сам понимаешь... Если человек не знает, как я защитился, то и подкопаться ко мне труднее, чем если бы он знал.
Так что меня уже давно не беспокоят)

Теперь, его будет интересовать вопрос "На долго ли?"
Думаю, вы догадались, что нельзя просто так взять и  положить чей-то стрим, пока идет поиск игры. Необходимо располагать большими мощностями и знать IP жертвы.   Итак, как же узнать IP-адрес?  Вариантов несколько. Самый простой и малозаметный - через скайп. Да, этот чудо софт палит ваш ИП на раз-два.  Любая программа для мониторинга сетевой активности и дело в шляпе. Само собой, для этого необходимо иметь нужного человека в списке контактов.  
Второй способ еще банальней. Во время проведения G-1 лиги(о ней мы поговорим позже) выяснилось, что узнать нужный адрес можно используя Steam! Обычный звонок используя стим и мошенники могут ликовать. Опять же необходимо иметь жертву в списке друзей.   
Остальные способы более извращенные и, скорее всего, жертва заподозрит неладное.   Поэтому, одним из способов борьбы со злоумышленниками можно считать полную очистку списка контактов Skype и Steam.  И это уже давало результаты. На этом рассмотрение первой причины DDoS-атаки мы завершили. 
Теперь, начинается самое интересное. DDoS  целых команд или отдельных турниров. 
Начнем одним из последних и самых ярких примеров того, когда цель ддоса была достигнута на все 100% Да, многие уже догадались, речь пойдет о  Excellent Moscow Cup



Напомним, что в течении первого игрового дня было сыграно аж 2 игры одного Bo3 противостояния! Но, даже такие задержки не могли переплюнуть провалы Техлабса до заявления организаторов турнира в котором было принято решение закончить проведение LAN-финала турнира в Онлайне. Вы просто задумайтесь, насколько были беспомощны и не готовы организаторы к DDoS-атаке.   Итог, турнир и всего его следующие сезоны напрочь запятнаны слюной и другими выделениями недовольных зрителей и таких же недовольных игроков.   
И в данной ситуации уже улавливается мотив. Чувствуется конкуренция и желание  "убрать противника". Чувствуете? 
Поехали дальше,  не столь масштабный  провал G1 лиги.
DDoS’а оказались сорваны западные квалификационные игры лиги G-1 плюс один матч серии WePlay. После двух попыток переноса встреч китайские организаторы G-1 опубликовали заявление, в котором объявили о том, что отборочные матчи дальше проводиться не будут. 
Мало того, китайские организаторы не постеснялись назвать имена предполагаемых  организаторов сего беспредела.  По их мнению,  это был либо знаменитый сервис Pinnaclesports, который манипулировал коэффициентами, либо  Dota2lounge. Вторые хоть и в качестве валюты используют внутриигровые косметические предметы, но по мнению китайцев это не мешает придумать интересную схему, так как оборот  предметов там довольно большой. 
Ниже представлены коэффициенты на некоторые игры от pinnaclesports в рамках G1 лиги:


Справедливы такие резкие обвинения или нет - мы никогда не узнаем.  Факт остается фактом. И единственное, что смогли придумать организаторы, так это "подождать пару недель и все пройдет".  Становится ясно, что  DDoS-атаки не прекратятся, а организаторам нужно уделять подготовке к такому варианту развития событий больше времени и денег.   

Данная тема очень заинтересовала руководителя нашего проекта Go0o0ogle.  Он охотно поделился информацией по этому поводу и дал несколько советов,  как организаторам турниров избежать повтора EMC, а проигрокам не переживать что их стрим в любой момент может пропасть. 

Немного технической информации. 
В интернете широко распространены 2 протокола передачи данных TCP и UDP.  
UDP это такой протокол когда сервер с клиентом общается одинаковыми пакетами, если пакетов долго нет, то соединение разрывается. 
TCP - это почти как UDP, но сначала нужно устанавливать соединение, а потом гарантировать доставку пакетов. 
В UDP никакой гарантии доставок пакетов нет и поэтому UDP получается быстрее чем TCP и следовательно на этом протоколе работают почти все онлайн игры (использующие сервер/клиент). Dota 2 не является исключением =)
Вернемся к DDOS атакам. 
В каждом пакете прописано от кого он и куда его нужно доставить. Так как, в случае UDP, соединение не устанавливается, то проверять отправителя никто не будет, а значит можно смело подменять значение ip отправителя на любое другое и сервер ничего не заподозрит, правда отвечать на пакет он будет уже не вам. 
А если вы будете постоянно подменять ип, то и забанить вас не смогут, ведь ип то постоянно меняется, только уже более мощными фильтрами по содержимому пакета. 

О защите серверной части.
Успешная DDOS атаки обычно идет с расчетом забить весь интернет канал, или использовать все ресурсы сервера (процессор/память).
В случае если вам забивают интернет канал, то настройками на вашем сервере вы ничего не добьетесь. Вместо нужного входящего трафика вам идет 100мбит или 1гбит флуда. Вам нужно писать вашему провайдеру/датацентру чтобы отфильтровали как-то трафик. Это могут быть геофильтры, фильтры по содержимому, фильтры по каким-то определенным портам, в крайнем случае можно сделать белым списки ip адресов, с которых будет доступ к серверу.
В случае если канал забит не полностью, то есть вероятность отбиться от атаки. Нужно проанализировать пакет и посмотреть, что и куда приходит. В общем случае правильная фильтрация должна спасти. Не нужно забывать, что чем сложнее фильтр то тем больше он расходует ресурсы сервера, и вы можете опять упереться в мощность процессора или объем памяти.

И самое интернесное о защите клиентcкой части (стримеры, игроки и т.п.).
Вся суть в том чтобы никто не узнал ваш ip адрес. 
Определитесь с вашим ip. Если он статический, то вам обязательно нужно выяснить как его сделать динамеческим, или сменить провайдера. Ведь засветив свой ip хоть раз, он у вас будет на всегда. C динамическим ip чуть проще. Чтобы быть в относительной безопасности, вам нужно переподключиться к интернету и проверить что вам выдался новый ip адрес. Узнать свой ip можно на сайте 2ip.ru. 
Чтобы скрыть свой ip никогда не используйте почтовые сервисы, skype, steam, teamspeak, заходите только на самые проверенные сайты. 
Идеальный вариант будет использование дополнительного интернет подключения, которое будет использоваться только во время стрима, игры и других важных дел. 
А если у вас есть много врагов, то даже название своего провайдера никому не называйте. В современное время злоумышленники обладают достаточными мощностями, чтобы уложить какого-нибудь местного провайдера целиком. 

Для организаторов турниров.
Всегда нужно учитывать, что если вы играете на серверах открытых в интернете, то возможность узнавания именно нужного сервера увеличивается в разы. Например, в случае с CS серверами, эти сервера могут быть в каких-то глобальных мониторингах, зная провайдера, перебирая ip:port и опрашивая список игроков или название сервера, можно наткнуться на тот на котором идет финал турнира и уложить его. 
Нужно по возможности проводить игру на локальных серверах без подключения к глобальному интернету, которые будут доступны только нужным игрокам. Если же на сервере будет глобальный интернет, то судьи или игроки, или стримеры, или зрители, подлючившись к этому серверу, обязательно узнают его реальный ип и передадут DDOSерам.
Если же без подключения к глобальному интернету не обойтись, то нужно поднимать свои proxy-udp серверы или NAT, и фильтровать реальный ip адрес сервера.

[UPD]Друзья, стоило мне заняться написанием этой статьи, как Valve Сразу же фиксят  эти недочеты и теперь,  узнать IP  жертвы с помощью Steam практически невозможно:
Fixed various methods by which the IP of the game server you are playing on could be revealed to a third party.
* In the latest Steam Beta client, your IP is no longer revealed via unaccepted Voice Call requests.
* The Game Info feature on the Steam Friends List no longer shows the IP of the gameserver you are on.


На  этом мы будем заканчивать, всем удачных каток и маленького пинга :)



Источник: dota2.net