Меня зовут Мэттью Принс, я один из соучредителей и генеральный директор сервиса CloudFlare. Не думайте, что я буду настолько же интересен, как директор АНБ, но я хотя бы постараюсь быть менее противоречивым. На самом деле я частный профессор права, так что я читал Конституцию и могу завязать на эту тему длинную дискуссию. Когда-нибудь мы обсудим это очень подробно, надеюсь, что смогу рассказать вам историю судебных исков, которые мы в настоящее время ведём против правительства Соединенных Штатов, чтобы оспорить некоторые происходящие вещи, поскольку это совершенная чушь.
Я расскажу вам менее интересную, но зато драматическую историю, которая происходила с 18 по 25 марта, когда один из наших клиентов подвергся сильнейшей DDoS-атаке. Не буду много говорить о CloudFlare, если вы хотите узнать о нашем сервисе, просто зайдите на сайт. Но когда наш клиент подвергся атаке, это стало событием из рода тех, о которых любят писать журналисты, и эта атака в течение 4-х дней подряд освещалась газетой New York Times. Это была действительно мощная атака, поэтому я хочу о ней рассказать.
Итак, существует некоммерческая организация под названием Spamhaus, которая отслеживает спамеров и их деятельность. Я знаю этих ребят очень давно, еще с 2006-2007 годов, когда на них подал в суд предполагаемый спамер из Иллинойса. Тогда основатель этой организации Стив Линфорд позвонил мне и спросил, не могу ли я выступить их бесплатным адвокатом. Я ответил, что раньше был частным юристом, это означает, что я преподавал ученикам в классе, но я никогда не выступал в суде. Я очень быстро нашёл им настоящего адвоката, который вскоре помог им «разрулить» ситуацию, так что я знаю, что Spamhaus – очень приличная организация, они действуют достаточно открыто.
Нашими клиентами являются многие организации, но они не любят открыто говорить о своих проблемах, однако ребята из Spamhaus не такие закрытые, и когда они подверглись атаке, то позвонили нам и сказали: «Эй, мы можем рассказать вам свою историю»! Так что это история про нападение на Spamhaus и про то, что происходило за кулисами, когда их «обрушили».
Я разбил эту историю на 3 части. Первая – это природа атаки, что она собой представляет и кто за ней стоит. Если вы хотите узнать об этом более подробно, то приходите на DefCon, где я собираюсь выступать на следующей неделе.
Вторая часть – что нужно сделать, чтобы остановить атаку, как создать сеть, которая действительно на это способна. Это не рассказ о великом интеллекте или невероятном программном обеспечении, это действительно история конструирования умной сети.
Последняя часть – это то, что вы можете сделать в ваших собственных сетях, чтобы остановить атаку такого типа. Я обещаю, что итогом выступления не станет агитация пользоваться сервисом CloudFlare как наиболее защищенным, вместо этого я расскажу вам о передовых вещах, проделав которые, вы станете менее уязвимыми к подобным DDoS-атакам.
Итак, в понедельник, 18 марта мы получили звонок от одного из волонтеров Spamhaus, который сообщил нам об атаке. Вот как в то время выглядел их сайт – атакующие привели его в состояние «оффлайн», фактически отключив от сети Интернет.
Позже СМИ писали, что атаку совершил некто Фенн, живущий в бункере где-то в Нидерландах. Этот парень не был настоящим инициатором данной акции, вероятно, он просто был тем, кто готов дать интервью New York Times. Скорее уж настоящий вдохновитель атаки — это тот 15-ти летний подросток из Лондона, который сейчас находится под арестом, однако по этому поводу пресса не поднимает шума.
В статье от 23.03.2013 года газета New York Times писала, что атака была совершена датской компанией Cyberbunker в ответ на то, что организация Spamhaus занесла её в черный список за распространение спама. Штаб-квартира Cyberbunker действительно располагалась в заброшенном бункере НАТО (примеч. переводчика).
Скорее всего, подоплекой акции послужило то, что Spamhaus объявили кого-то спамером. Эта организация делает много хорошего, однако случается, что они прищемляют кому-то хвост, и в этом случае обиженная сторона принимает ответные меры, в данном случае — организовывает атаку. Spamhaus достаточно подкованы в техническом отношении, чтобы отражать множество различных видов атак, но в этом случае массированный групповой удар пришелся на их DNS-инфраструктуру и просто выбил сайт из сети. Подобное может случиться с любой организацией, и они хотели это остановить. Они знали, что мы оказываем помощь в предотвращении таких атак, поэтому обратились к нам.
Итак, с 18 марта по 21 марта происходило то, что мы называем «дразнящими атаками». Такие атаки как бы наш хлеб, еженедельно у нас случается несколько подобных атак. Чтобы вы имели представление об их масштабах, скажу, что на прошлой недели мы зафиксировали 162 атаки на наших клиентов, и мы довольно успешно их остановили. Эти DoS-атаки происходят с интенсивностью от 10 до 80 Гигабит в секунду. Для некоторых организаций, например, финансовых, атаки, происходящие с такой интенсивностью, могут быть опасны. Так, в прошлом году некоторые финансовые организации пострадали от DoS атак интенсивностью 60-80 Гбит/с, однако повторюсь – это довольно распространённые атаки, привычные для нас, и в них нет ничего, что заслуживает упоминания на конференции BlackHat.
Еще одна вещь, которую следует отметить, это то, что DoS-атаки не все одинаковые, большое значение имеет объём нападения, то есть количество пакетов, которыми атакуют сайт. То, о чем мы поговорим сегодня, относится к атакам 3 уровня, то есть к атакам на сетевой уровень модели OSI. Это чисто атака объёмом. Но она не самая скверная, намного хуже атака 7-го, прикладного уровня, которая не настолько объёмная, но создаёт намного больше проблем конкретным приложениям. Но сегодня я не собираюсь обсуждать атаки, для которых необходимо специальное программное обеспечение.
То же самое относится к DoS-атакам 4-го уровня, когда атакующий использует Syn-пакеты небольшого объёма, причиняя жертве значительный ущерб, потому что её операционная система не в состоянии справиться с этими запросами.
В нашем случае атака базируется исключительно на большом объёме, который старается уничтожить вас на 3 уровне, выбить вас из сети и перенасытить порт трафиком. В среду, 20 марта, был атакован один из портов нашей сети, вернее, совокупность портов, на одном из которых «сидел» сайт Spamhaus.
На этом слайде изображен кеш прокси, синяя линия — это трафик, исходящий из нашей сети, а зеленая область – входящий трафик. Высокий пик в конце графика – это атака, которая полностью пришлась на Spamhaus и обрушила нашу сеть. Наша сеть спокойно выдерживает атаки интенсивностью 75 Гбит / с, потому что рассчитана на то, чтобы «переварить» такой объём трафика.
Однако во время атаки 20 марта был достигнут «потолок» интенсивности DoS – 100 Гбит / с. Это выглядело исключительным случаем, потому что если вы покупаете или создаёте базовый маршрутизатор, то связываетесь с кем-то вроде Cisco или Juniper, а самая крутая и большая «коробка», которую у них можно купить, имеет порт пропускной способностью 100 Гиг. Теоретически вы можете использовать несколько 100-гигабитных портов и пропустить их через один интерфейс, однако потолок DoS-атак обычно не превышает указанного объёма.
Вскоре после этого мне позвонил Том, один из наших сетевых инженеров, и сказал, что интенсивность атаки возросла. Она может выбиваться за граничные значения, поэтому я спросил, насколько она выросла, думая, что речь идёт о небольшом превышении. На следующем слайде показано, какой интенсивности достигали новые атаки, имевшие место 24-25 марта.
На графике приведено универсальное координированное время UTC, я живу в Сан-Франциско, у нас в это время было ещё 23 число, так что вы можете себе представить, каким был мой ужин 23 марта. Мне звонили и говорили, что атака превысила потолок в 100 Гигабит, но мы не думали, что совсем скоро сможем увидеть нечто подобное! Внезапно поступили 4 звонка от провайдера одной из наших входящих сетей и сетевых инженеров о том, что сейчас у нас наблюдается трафик интенсивностью более 300 Гбит/с, который достигает предел возможности нашей сети.
На графике видно, что на протяжении 24-25 марта показатели атаки падали до 90 Гбит / с и повышались до 300 Гбит / с, вызывая отказ от обслуживания входящего трафика одного из наших провайдеров, у которого полностью была исчерпана пропускная способность сети.
Вопрос – как? Как хакеру удалось проделать такое, если известно, что потолок оборудования равен 100 гигабитам? Как этому парню из Лондона, этому 15-ти летнему подростку удалось организовать такую беспрецедентно интенсивную атаку?
Множество людей, и СМИ в том числе, высказывали неправильное мнение, что для такой атаки нужен ботнет. Но в данном конкретном случае не было никакого настоящего трафика из сети ботнет. Другие люди говорили, что это сделали Anonymous, потому что в этом сообществе множество людей, которые скоординированы и могут работать совместно для реализации атак определенного рода. Нет, это не так. Атаку осуществили 3, возможно 4 человека, один из которых был настоящим техническим вдохновителем, однако очень ограниченным в плане ресурсов и исполнителей.
Многие люди посчитали, что для осуществления подобной атаки необходимы выдающиеся технические навыки. Скажу, что я видел код, который спровоцировал данную атаку, это около 50 строк на языке C, не включая заголовки, которые обычно включаются в такой эксплойт, так что это совсем немного информации.
Буквально через секунду я покажу вам, как можно запустить подобную атаку. Что действительно для этого необходимо, так это список открытых клиентов DNS, или DNS-resolvers, позже я расскажу, что это такое. Второе, что вам нужно – это несколько серверов, или просто компьютеров небольшой мощности, работающих в сетях, которые позволяют подмену исходных IP.
Это основные компоненты для осуществления атаки, и если у вас есть эти две вещи, как оказывается, даже в очень небольшом количестве, то вы можете запустить очень и очень большую атаку. До сих пор ничего из того, что ослабляет подобные атаки, не изменилось, и это немного жутковато.
Давайте поговорим об открытых DNS-резолверах. DNS – это что-то вроде небольших чистых страниц для интернета, это система кэширования, создающая возможность отвечать на запросы, которые были посланы серверу.
Неправильно сконфигурированный DNS-резолвер, также называемый открытым DNS-резолвером, отвечает на вопросы независимо от того, кто его спрашивает. Этот «распутный» DNS-резолвер отвечает каждому, кто бы его ни спросил. Он работает без всяких ограничений. У него нет ограничений ни на количество запросов, ни на то, от кого принимать запросы.
Вы можете спросить: «А как же Google? Ведь он использует открытый DNS-резолвер»! Однако такие организации, как Google, делают очень много для ограничения количества запросов, обращенных к резолверам, чтобы затруднить запуск атак, они ограничивают размер ответов, которые предоставляют по запросам. Буквально на прошлой неделе ребята из Bind анонсировали новое расширение, позволяющее устанавливать лимит скорости запросов, это именно то, чего нам не хватало долгое время. Потому что больше всего пугает то, что для атак всё чаще используются авторитетные открытые DNS-серверы.
При проведении любой атаки хакер стремиться усилить её любым доступным способом, например, используя ботнет. Если у меня очень мало собственных ресурсов, я стремлюсь использовать их для создания дополнительных ресурсов. На конференции BlackHat говорилось, что DDoS это идеально асимметричное нападение, потому что один маленький человечек может создать огромные проблемы, и открытые DNS-резолверы явно это демонстрируют.
На этом слайде показана ключевая команда для запуска атаки через терминал Windows, или консоль.
Эта команда была запущена в 2 часа ночи с открытого DNS-резолвера 63.217.84.76, работавшего в сети PCCW. Если вы отправите этот запрос, то сервер вам ответит.
digANY – это просто DNS-запрос, инициирующий поиск любых имён домена NS, isc. org означает, что они хотели показать вам каждый возможный тип записи DNS, так что их DNS-файл просто огромен, далее следует IP-адрес резолвера и флаг edns=0, который говорит: «Верни мне всё, включая dns.sec и множество других типов флагов», которые вы по умолчанию можете не получить. Флаг notcp является важным элементом, так как приказывает резолверу не использовать TCP для обмена данными, а пересылать их все по UDP, а bufsize устанавливает размер буфера равным 4096, то есть стремиться сделать буфер как можно большим, чтобы отправлять очень «жирные» пакеты.
Итак, вы запускаете этот милый маленький запрос размером 64 байта и получаете в ответ то, что сейчас бежит на экране. То есть на 64-х байтовый запрос вы получаете ответ размером 3363 байта.
Итак, если вам удается найти открытый DNS-резолвер, вы отправляете ему 64 байта и получает ответ размером более 3300 байтов. Вот что я имею в виду, когда говорю, что можно использовать крохотные ресурсы для создания большой проблемы. В данном случае мы получаем коэффициент усиления атаки порядка х50.
Однако усиление не работает по умолчанию, и если я отправлю маленький запрос для получения большого ответа, то просто направлю DDoS атаку сам на себя. Поэтому вторым обязательным компонентом для такой атаки является сеть, которая позволяет спуфинг IP-адреса источника.
То есть я стараюсь притвориться, что DNS-запрос послан с IP-адреса, с которого он не посылался. Я отправляю DNS-резолверу сообщение, и так как UDP представляет собой протокол «сожги и забудь» без рукопожатия, то после получения запроса он просто посылает ответ тому, кого считает его отправителем.
Хорошо устроенные сети такого не позволяют, они не разрешают, чтобы пакеты исходили от IP-адресов, которые не принадлежат этой сети – это рекомендации BCP38. Этим рекомендациям при создании сетей следует большинство интернет-провайдеров, однако существуют сети, игнорирующие это правило.
Итак, если у нас имеется два нужных ингредиента, то поскольку UDP не использует рукопожатия, можно легко подменить IP-адрес источника запроса. Для атаки на Spamhaus использовался конкретный DNS, показанный на слайде, и уверенность в том, что связь осуществляется через UDP, который не требует никакого рукопожатия. Затем ответы всех этих открытых DNS-резолверов, расположенных по всему миру, отправляются обратно вашей или любой другой целевой сети.
Вторичные последствия этих DDoS-атак отражаются на техподдержке клиентов, потому что в этой атаке задействованы сотни тысяч открытых DNS-серверов. Их пользователи отслеживают путь к атакующему адресу 190.93.243.93, из которого исходят тонны пакетов, наносящих удар по их инфраструктуре, и начинает заваливать вас гневными обращениями типа «вы не знаете, что вы делаете, вы не знаете, как запустить нормальную сеть, ваши компьютеры взломаны, как вы посмели на меня напасть!» и тому подобное. И вы должны очень вежливо им объяснить, что на самом деле это они атакуют вас, а страдают от этого сами, потому что не правильно настроили свой DNS-резолвер, ответы на запросы возвращаются назад, и всё это, в конечном счете, влияет на вас самих.
Собственно, это возможность научить людей «чистить» свои сети, и в этом заключается положительный аспект подобных атак, так как люди не представляют себе, что из-за неправильной настройки открытых DNS-серверов такое происходит постоянно, только в небольших масштабах. И лишь когда интенсивность атак значительно усиливается, они начинают обращать на это внимание.
Думаю, все вы знакомы с такими старыми типами атак, как Smurf, где вы используете через роутеры передачу в сеть широковещательных запросов ICMP, и используете спуфинг источника, в результате чего компьютеры отвечают жертве вашего спуфинга, забивая каналы связи.
Положительно то, что индустрия маршрутизации научилась очень эффективно бороться с этой атакой. Они всё ещё встречаются, но запустить атаку Smurf довольно сложно. Однако в целом атаки методом отражения ответов DNS очень легко организовать.
Насколько распространены составляющие подобных атак? На следующем слайде изображен Open Resolver Project, это довольно революционный продукт. Многие из присутствующих здесь долгое время спорили, стоит ли публиковать в сети список всех открытых DNS-резолверов, запущенных в интернете. Дело в том, что этот список может быть использован как «хорошими парнями», чтобы они смогли указать клиентам на неправильно настроенные сети, так и «плохими парнями», которые могут использовать его для организации DoS-атак.
Не случайно, что этот проект был запущен в понедельник, последовавший за выходными, в течение которых мы выдерживали весь этот ад. Таким образом, крупнейшие интернет-провайдеры первого уровня смогли убедиться, что «плохие парни» давно имеют этот список и поэтому нужно начинать его чистку, избавляясь от открытых серверов. Благодаря этому сайту вы можете ввести диапазон своих IP-адресов и проверить, имеются ли в вашей сети открытые DNS-резолверы. Таким образом, если PCCW проделают подобную проверку, то смогут очистить сеть до того, как у них появятся проблемы. Мы привлекли СМИ к освещению роли этого проекта, чтобы все провайдеры узнали об этом списке, потому что количество открытых DNS-резолверов, используемых в интернете, составляет 28 миллионов. Я был бы рад сообщить вам, что на сегодня это число равно 30, 40 или 50 миллионов, однако, к сожалению, на момент запуска оно было всего 21 миллион, так что мы явно двигаемся не в том направлении.
Следующее, о чем я хочу упомянуть – это совершенно ненормальный процентаж сетей, позволяющих спуфинг. На слайде показан проект MIT, позволяющий отслеживать спуфинг сетей. Было трудновато проверить их удалённо, но тесты показывают, что почти 25% интернета позволяют спуфинг.
В 2013 году не может быть никаких оправданий тому, что вы не используете BCP 38 для пограничных маршрутизаторов. Нельзя допускать, чтобы пакеты, которые рождаются не в вашей сети и которые приходят с неизвестных вам IP-адресов, увеличивали нагрузку на маршрутизаторы. Любой роутер, выпущенный после 2002 года, позволяет очень просто включить такую функцию, так что не пользоваться этим – просто леность!
Хорошая новость заключается в том, что в основном большие ботнет-сети не поддерживают подобный спуфинг. Мировые сети преимущественно закрыты для спуфинга, поэтому катастрофический сценарий возможен, если хакерам удастся спуфинг, например, китайской сети China Telecom. В этом случае можно было бы использовать ботнет для генерации трафика на DNS-серверы для осуществления потенциальной атаки огромного размера. Вероятно, присутствующим легко понять, как трудно избавиться от всех открытых резолверов. Но вы можете реализовать в собственных сетях возможность игнорировать чужие пакеты, чтобы не подвергнуться подобной атаке.
Давайте рассмотрим два конкретных инцидента, имевших место при атаке на Spamhaus. Первый был 24 марта и заключался в атаке интенсивность около 309 Гбит / с на протяжении 28 минут. Паника началась со звонка Тома, который сказал, что у нас атака более 300 Гбит / с. Я спросил, работает ли наша сеть, и Том сказал, что мы пока держимся, мы можем обеспечить Spamhous и других клиентов. И хотя наблюдаются небольшие потери пакетов и задержки в передаче трафика, но в целом сеть держится. Тогда я сказал, чего же вы так испугались? Они ответили – потому что атакующие используют всего лишь 0,1% открытых резолверов, которые существуют в мировом интернете! Но если они смогут использовать хотя бы 1%, у нас будет не 300-гигабитная, а 3-х терабитная атака. Если они будут использовать 10% открытых DNS-резолверов, мы получим 30-терабитную атаку. Я думаю, что сегодня мы могли бы выдержать до 3 терабит трафика, но в марте у нас не было такой возможности, мы не могли победить 30-ти терабитную атаку и я не знаю никого, кто смог бы её выдержать. Это было очень серьезным вызовом работоспособности сети.
Когда мы стали разбираться, откуда исходит атака и просмотрели кучу сетевых провайдеров первого уровня, то обнаружили всего 3 сети, которые позволяли спуфинг адресов, и возможно, их обслуживало от 5 до 7 скомпрометированных серверов. Один был в Сан-Хосе, другой находился в Миннесоте и третий в Германии. Было задействовано всего 3 сети, и эти скромные ресурсы привели к относительной большой атаке.
Следующий пик пришёлся на 25 марта, когда был зафиксирован трафик со скоростью 287 Гбит/с на протяжении 72 минут. Использовалось практически такое же количество открытых резолверов – 31154, и те же три спуфинговые сети. Ещё раз повторюсь – атакующий задействовал очень ограниченные ресурсы.
Отмечу, что у нас был всего 1 атакующий с одним ноутбуком, у нас есть скриншот, который я покажу позже. Он контролировал от 5 до 7 скомпрометированных серверов, 3 сети, позволяющие подмену оригинальных IP-адресов, которые генерировали трафик интенсивностью около 9 Гбит/с, направленный на 0,1% открытых DNS-резолверов. И всё это привело к возникновению 300 Гбит/с DDoS-трафика.
Многие люди считают, что это была самая большая атака в истории сетей, не могу сказать, правда ли это, но она действительно была самой большой из всего того, что мы видели.
Это история о великом организаторе, которому удалось проделать то, о чем раньше даже не догадывались. Мы все знали проблеме открытых резолверов, это не было каким-то умным новым взломом, порчей сетевых протоколов, атакой фрагментации пакетов и так далее, это выглядело так, как будто пещерный человек просто долбит огромной дубиной тебе по башке.
Повторю снова – то, что произошло, было невероятно эффективной атакой и на Земле очень мало сетей, которые способны ей противостоять. Опять же, мы очень гордимся тем фактом, что мы сделали тогда и что мы продолжаем делать каждый день, и тем, что продолжаем инвестировать в нашу сеть, чтобы сделать её больше.
Немного расскажу о том, что мы сделали для того, чтобы иметь возможность сопротивляться атаке, что мы предприняли, чтобы её остановить. Некоторые из наших мер применимы в общем случае, некоторые являются уникальными. На этом слайде вы видите, что мы предоставляем услуги по всему миру, имея 23 точки подключения к сервису CloudFlare, а к концу года их количество увеличится до 50. Так что на сегодня у нас имеется развитая сеть X-класса.
Мы изначально подумали о целесообразности нашей сети, но то, что было заложено в неё в начале, на сегодня превратилось в очень мощный инструмент. Мы используем протокол под названием Anycast для передачи пакетов методом BGP через множество поставщиков DNS, которые также используют Anycast. Фактически мы используем его для HTTP-трафика, как наиболее стабильного. Скажу, что это большая головная боль – обеспечить нормальную работу такой сети, как наша.
Если вы не знакомы с протоколом Anycast, то вот что он собой представляет. В обычной схеме сети имеется один источник и один пункт назначения, а в Anycast один источник связан с несколькими пунктами назначения, при этом для доставки пакетов адресату выбирается кратчайший путь. Таким образом, если у нас имеется 23 дата-центра по всему миру, то все они имеют один и тот же IP-адрес, например, адрес Spamhous. Поэтому, когда мы имеет дело с атакой интенсивностью 300 Гбит / с, она распределяется между всеми дата-центрами таким образом, что на каждый дата-центр приходится порядка 13 Гбит / с трафика.
Проблема состоит в том, что атакующий тоже может заняться математическими подсчётами и очень быстро перенаправить атаку прямо на край нашей сети. Это немного дурацкая затея, так как в результате атакующий может получить эффект, обратный усилению. То есть вместо того, чтобы усилить атаку увеличением её поверхности, он вынужден сократить эту поверхность и уменьшить интенсивность атаки.
29:00 мин
Конференция BLACK HAT. Уроки выживания при DDOS-атаке 300 Гбит / с. Часть 2
Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).
VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps до весны бесплатно при оплате на срок от полугода, заказать можно тут.
Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 ТВ от $249 в Нидерландах и США! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки?
Я расскажу вам менее интересную, но зато драматическую историю, которая происходила с 18 по 25 марта, когда один из наших клиентов подвергся сильнейшей DDoS-атаке. Не буду много говорить о CloudFlare, если вы хотите узнать о нашем сервисе, просто зайдите на сайт. Но когда наш клиент подвергся атаке, это стало событием из рода тех, о которых любят писать журналисты, и эта атака в течение 4-х дней подряд освещалась газетой New York Times. Это была действительно мощная атака, поэтому я хочу о ней рассказать.
Итак, существует некоммерческая организация под названием Spamhaus, которая отслеживает спамеров и их деятельность. Я знаю этих ребят очень давно, еще с 2006-2007 годов, когда на них подал в суд предполагаемый спамер из Иллинойса. Тогда основатель этой организации Стив Линфорд позвонил мне и спросил, не могу ли я выступить их бесплатным адвокатом. Я ответил, что раньше был частным юристом, это означает, что я преподавал ученикам в классе, но я никогда не выступал в суде. Я очень быстро нашёл им настоящего адвоката, который вскоре помог им «разрулить» ситуацию, так что я знаю, что Spamhaus – очень приличная организация, они действуют достаточно открыто.
Нашими клиентами являются многие организации, но они не любят открыто говорить о своих проблемах, однако ребята из Spamhaus не такие закрытые, и когда они подверглись атаке, то позвонили нам и сказали: «Эй, мы можем рассказать вам свою историю»! Так что это история про нападение на Spamhaus и про то, что происходило за кулисами, когда их «обрушили».
Я разбил эту историю на 3 части. Первая – это природа атаки, что она собой представляет и кто за ней стоит. Если вы хотите узнать об этом более подробно, то приходите на DefCon, где я собираюсь выступать на следующей неделе.
Вторая часть – что нужно сделать, чтобы остановить атаку, как создать сеть, которая действительно на это способна. Это не рассказ о великом интеллекте или невероятном программном обеспечении, это действительно история конструирования умной сети.
Последняя часть – это то, что вы можете сделать в ваших собственных сетях, чтобы остановить атаку такого типа. Я обещаю, что итогом выступления не станет агитация пользоваться сервисом CloudFlare как наиболее защищенным, вместо этого я расскажу вам о передовых вещах, проделав которые, вы станете менее уязвимыми к подобным DDoS-атакам.
Итак, в понедельник, 18 марта мы получили звонок от одного из волонтеров Spamhaus, который сообщил нам об атаке. Вот как в то время выглядел их сайт – атакующие привели его в состояние «оффлайн», фактически отключив от сети Интернет.
Позже СМИ писали, что атаку совершил некто Фенн, живущий в бункере где-то в Нидерландах. Этот парень не был настоящим инициатором данной акции, вероятно, он просто был тем, кто готов дать интервью New York Times. Скорее уж настоящий вдохновитель атаки — это тот 15-ти летний подросток из Лондона, который сейчас находится под арестом, однако по этому поводу пресса не поднимает шума.
В статье от 23.03.2013 года газета New York Times писала, что атака была совершена датской компанией Cyberbunker в ответ на то, что организация Spamhaus занесла её в черный список за распространение спама. Штаб-квартира Cyberbunker действительно располагалась в заброшенном бункере НАТО (примеч. переводчика).
Скорее всего, подоплекой акции послужило то, что Spamhaus объявили кого-то спамером. Эта организация делает много хорошего, однако случается, что они прищемляют кому-то хвост, и в этом случае обиженная сторона принимает ответные меры, в данном случае — организовывает атаку. Spamhaus достаточно подкованы в техническом отношении, чтобы отражать множество различных видов атак, но в этом случае массированный групповой удар пришелся на их DNS-инфраструктуру и просто выбил сайт из сети. Подобное может случиться с любой организацией, и они хотели это остановить. Они знали, что мы оказываем помощь в предотвращении таких атак, поэтому обратились к нам.
Итак, с 18 марта по 21 марта происходило то, что мы называем «дразнящими атаками». Такие атаки как бы наш хлеб, еженедельно у нас случается несколько подобных атак. Чтобы вы имели представление об их масштабах, скажу, что на прошлой недели мы зафиксировали 162 атаки на наших клиентов, и мы довольно успешно их остановили. Эти DoS-атаки происходят с интенсивностью от 10 до 80 Гигабит в секунду. Для некоторых организаций, например, финансовых, атаки, происходящие с такой интенсивностью, могут быть опасны. Так, в прошлом году некоторые финансовые организации пострадали от DoS атак интенсивностью 60-80 Гбит/с, однако повторюсь – это довольно распространённые атаки, привычные для нас, и в них нет ничего, что заслуживает упоминания на конференции BlackHat.
Еще одна вещь, которую следует отметить, это то, что DoS-атаки не все одинаковые, большое значение имеет объём нападения, то есть количество пакетов, которыми атакуют сайт. То, о чем мы поговорим сегодня, относится к атакам 3 уровня, то есть к атакам на сетевой уровень модели OSI. Это чисто атака объёмом. Но она не самая скверная, намного хуже атака 7-го, прикладного уровня, которая не настолько объёмная, но создаёт намного больше проблем конкретным приложениям. Но сегодня я не собираюсь обсуждать атаки, для которых необходимо специальное программное обеспечение.
То же самое относится к DoS-атакам 4-го уровня, когда атакующий использует Syn-пакеты небольшого объёма, причиняя жертве значительный ущерб, потому что её операционная система не в состоянии справиться с этими запросами.
В нашем случае атака базируется исключительно на большом объёме, который старается уничтожить вас на 3 уровне, выбить вас из сети и перенасытить порт трафиком. В среду, 20 марта, был атакован один из портов нашей сети, вернее, совокупность портов, на одном из которых «сидел» сайт Spamhaus.
На этом слайде изображен кеш прокси, синяя линия — это трафик, исходящий из нашей сети, а зеленая область – входящий трафик. Высокий пик в конце графика – это атака, которая полностью пришлась на Spamhaus и обрушила нашу сеть. Наша сеть спокойно выдерживает атаки интенсивностью 75 Гбит / с, потому что рассчитана на то, чтобы «переварить» такой объём трафика.
Однако во время атаки 20 марта был достигнут «потолок» интенсивности DoS – 100 Гбит / с. Это выглядело исключительным случаем, потому что если вы покупаете или создаёте базовый маршрутизатор, то связываетесь с кем-то вроде Cisco или Juniper, а самая крутая и большая «коробка», которую у них можно купить, имеет порт пропускной способностью 100 Гиг. Теоретически вы можете использовать несколько 100-гигабитных портов и пропустить их через один интерфейс, однако потолок DoS-атак обычно не превышает указанного объёма.
Вскоре после этого мне позвонил Том, один из наших сетевых инженеров, и сказал, что интенсивность атаки возросла. Она может выбиваться за граничные значения, поэтому я спросил, насколько она выросла, думая, что речь идёт о небольшом превышении. На следующем слайде показано, какой интенсивности достигали новые атаки, имевшие место 24-25 марта.
На графике приведено универсальное координированное время UTC, я живу в Сан-Франциско, у нас в это время было ещё 23 число, так что вы можете себе представить, каким был мой ужин 23 марта. Мне звонили и говорили, что атака превысила потолок в 100 Гигабит, но мы не думали, что совсем скоро сможем увидеть нечто подобное! Внезапно поступили 4 звонка от провайдера одной из наших входящих сетей и сетевых инженеров о том, что сейчас у нас наблюдается трафик интенсивностью более 300 Гбит/с, который достигает предел возможности нашей сети.
На графике видно, что на протяжении 24-25 марта показатели атаки падали до 90 Гбит / с и повышались до 300 Гбит / с, вызывая отказ от обслуживания входящего трафика одного из наших провайдеров, у которого полностью была исчерпана пропускная способность сети.
Вопрос – как? Как хакеру удалось проделать такое, если известно, что потолок оборудования равен 100 гигабитам? Как этому парню из Лондона, этому 15-ти летнему подростку удалось организовать такую беспрецедентно интенсивную атаку?
Множество людей, и СМИ в том числе, высказывали неправильное мнение, что для такой атаки нужен ботнет. Но в данном конкретном случае не было никакого настоящего трафика из сети ботнет. Другие люди говорили, что это сделали Anonymous, потому что в этом сообществе множество людей, которые скоординированы и могут работать совместно для реализации атак определенного рода. Нет, это не так. Атаку осуществили 3, возможно 4 человека, один из которых был настоящим техническим вдохновителем, однако очень ограниченным в плане ресурсов и исполнителей.
Многие люди посчитали, что для осуществления подобной атаки необходимы выдающиеся технические навыки. Скажу, что я видел код, который спровоцировал данную атаку, это около 50 строк на языке C, не включая заголовки, которые обычно включаются в такой эксплойт, так что это совсем немного информации.
Буквально через секунду я покажу вам, как можно запустить подобную атаку. Что действительно для этого необходимо, так это список открытых клиентов DNS, или DNS-resolvers, позже я расскажу, что это такое. Второе, что вам нужно – это несколько серверов, или просто компьютеров небольшой мощности, работающих в сетях, которые позволяют подмену исходных IP.
Это основные компоненты для осуществления атаки, и если у вас есть эти две вещи, как оказывается, даже в очень небольшом количестве, то вы можете запустить очень и очень большую атаку. До сих пор ничего из того, что ослабляет подобные атаки, не изменилось, и это немного жутковато.
Давайте поговорим об открытых DNS-резолверах. DNS – это что-то вроде небольших чистых страниц для интернета, это система кэширования, создающая возможность отвечать на запросы, которые были посланы серверу.
Неправильно сконфигурированный DNS-резолвер, также называемый открытым DNS-резолвером, отвечает на вопросы независимо от того, кто его спрашивает. Этот «распутный» DNS-резолвер отвечает каждому, кто бы его ни спросил. Он работает без всяких ограничений. У него нет ограничений ни на количество запросов, ни на то, от кого принимать запросы.
Вы можете спросить: «А как же Google? Ведь он использует открытый DNS-резолвер»! Однако такие организации, как Google, делают очень много для ограничения количества запросов, обращенных к резолверам, чтобы затруднить запуск атак, они ограничивают размер ответов, которые предоставляют по запросам. Буквально на прошлой неделе ребята из Bind анонсировали новое расширение, позволяющее устанавливать лимит скорости запросов, это именно то, чего нам не хватало долгое время. Потому что больше всего пугает то, что для атак всё чаще используются авторитетные открытые DNS-серверы.
При проведении любой атаки хакер стремиться усилить её любым доступным способом, например, используя ботнет. Если у меня очень мало собственных ресурсов, я стремлюсь использовать их для создания дополнительных ресурсов. На конференции BlackHat говорилось, что DDoS это идеально асимметричное нападение, потому что один маленький человечек может создать огромные проблемы, и открытые DNS-резолверы явно это демонстрируют.
На этом слайде показана ключевая команда для запуска атаки через терминал Windows, или консоль.
Эта команда была запущена в 2 часа ночи с открытого DNS-резолвера 63.217.84.76, работавшего в сети PCCW. Если вы отправите этот запрос, то сервер вам ответит.
digANY – это просто DNS-запрос, инициирующий поиск любых имён домена NS, isc. org означает, что они хотели показать вам каждый возможный тип записи DNS, так что их DNS-файл просто огромен, далее следует IP-адрес резолвера и флаг edns=0, который говорит: «Верни мне всё, включая dns.sec и множество других типов флагов», которые вы по умолчанию можете не получить. Флаг notcp является важным элементом, так как приказывает резолверу не использовать TCP для обмена данными, а пересылать их все по UDP, а bufsize устанавливает размер буфера равным 4096, то есть стремиться сделать буфер как можно большим, чтобы отправлять очень «жирные» пакеты.
Итак, вы запускаете этот милый маленький запрос размером 64 байта и получаете в ответ то, что сейчас бежит на экране. То есть на 64-х байтовый запрос вы получаете ответ размером 3363 байта.
Итак, если вам удается найти открытый DNS-резолвер, вы отправляете ему 64 байта и получает ответ размером более 3300 байтов. Вот что я имею в виду, когда говорю, что можно использовать крохотные ресурсы для создания большой проблемы. В данном случае мы получаем коэффициент усиления атаки порядка х50.
Однако усиление не работает по умолчанию, и если я отправлю маленький запрос для получения большого ответа, то просто направлю DDoS атаку сам на себя. Поэтому вторым обязательным компонентом для такой атаки является сеть, которая позволяет спуфинг IP-адреса источника.
То есть я стараюсь притвориться, что DNS-запрос послан с IP-адреса, с которого он не посылался. Я отправляю DNS-резолверу сообщение, и так как UDP представляет собой протокол «сожги и забудь» без рукопожатия, то после получения запроса он просто посылает ответ тому, кого считает его отправителем.
Хорошо устроенные сети такого не позволяют, они не разрешают, чтобы пакеты исходили от IP-адресов, которые не принадлежат этой сети – это рекомендации BCP38. Этим рекомендациям при создании сетей следует большинство интернет-провайдеров, однако существуют сети, игнорирующие это правило.
Итак, если у нас имеется два нужных ингредиента, то поскольку UDP не использует рукопожатия, можно легко подменить IP-адрес источника запроса. Для атаки на Spamhaus использовался конкретный DNS, показанный на слайде, и уверенность в том, что связь осуществляется через UDP, который не требует никакого рукопожатия. Затем ответы всех этих открытых DNS-резолверов, расположенных по всему миру, отправляются обратно вашей или любой другой целевой сети.
Вторичные последствия этих DDoS-атак отражаются на техподдержке клиентов, потому что в этой атаке задействованы сотни тысяч открытых DNS-серверов. Их пользователи отслеживают путь к атакующему адресу 190.93.243.93, из которого исходят тонны пакетов, наносящих удар по их инфраструктуре, и начинает заваливать вас гневными обращениями типа «вы не знаете, что вы делаете, вы не знаете, как запустить нормальную сеть, ваши компьютеры взломаны, как вы посмели на меня напасть!» и тому подобное. И вы должны очень вежливо им объяснить, что на самом деле это они атакуют вас, а страдают от этого сами, потому что не правильно настроили свой DNS-резолвер, ответы на запросы возвращаются назад, и всё это, в конечном счете, влияет на вас самих.
Собственно, это возможность научить людей «чистить» свои сети, и в этом заключается положительный аспект подобных атак, так как люди не представляют себе, что из-за неправильной настройки открытых DNS-серверов такое происходит постоянно, только в небольших масштабах. И лишь когда интенсивность атак значительно усиливается, они начинают обращать на это внимание.
Думаю, все вы знакомы с такими старыми типами атак, как Smurf, где вы используете через роутеры передачу в сеть широковещательных запросов ICMP, и используете спуфинг источника, в результате чего компьютеры отвечают жертве вашего спуфинга, забивая каналы связи.
Положительно то, что индустрия маршрутизации научилась очень эффективно бороться с этой атакой. Они всё ещё встречаются, но запустить атаку Smurf довольно сложно. Однако в целом атаки методом отражения ответов DNS очень легко организовать.
Насколько распространены составляющие подобных атак? На следующем слайде изображен Open Resolver Project, это довольно революционный продукт. Многие из присутствующих здесь долгое время спорили, стоит ли публиковать в сети список всех открытых DNS-резолверов, запущенных в интернете. Дело в том, что этот список может быть использован как «хорошими парнями», чтобы они смогли указать клиентам на неправильно настроенные сети, так и «плохими парнями», которые могут использовать его для организации DoS-атак.
Не случайно, что этот проект был запущен в понедельник, последовавший за выходными, в течение которых мы выдерживали весь этот ад. Таким образом, крупнейшие интернет-провайдеры первого уровня смогли убедиться, что «плохие парни» давно имеют этот список и поэтому нужно начинать его чистку, избавляясь от открытых серверов. Благодаря этому сайту вы можете ввести диапазон своих IP-адресов и проверить, имеются ли в вашей сети открытые DNS-резолверы. Таким образом, если PCCW проделают подобную проверку, то смогут очистить сеть до того, как у них появятся проблемы. Мы привлекли СМИ к освещению роли этого проекта, чтобы все провайдеры узнали об этом списке, потому что количество открытых DNS-резолверов, используемых в интернете, составляет 28 миллионов. Я был бы рад сообщить вам, что на сегодня это число равно 30, 40 или 50 миллионов, однако, к сожалению, на момент запуска оно было всего 21 миллион, так что мы явно двигаемся не в том направлении.
Следующее, о чем я хочу упомянуть – это совершенно ненормальный процентаж сетей, позволяющих спуфинг. На слайде показан проект MIT, позволяющий отслеживать спуфинг сетей. Было трудновато проверить их удалённо, но тесты показывают, что почти 25% интернета позволяют спуфинг.
В 2013 году не может быть никаких оправданий тому, что вы не используете BCP 38 для пограничных маршрутизаторов. Нельзя допускать, чтобы пакеты, которые рождаются не в вашей сети и которые приходят с неизвестных вам IP-адресов, увеличивали нагрузку на маршрутизаторы. Любой роутер, выпущенный после 2002 года, позволяет очень просто включить такую функцию, так что не пользоваться этим – просто леность!
Хорошая новость заключается в том, что в основном большие ботнет-сети не поддерживают подобный спуфинг. Мировые сети преимущественно закрыты для спуфинга, поэтому катастрофический сценарий возможен, если хакерам удастся спуфинг, например, китайской сети China Telecom. В этом случае можно было бы использовать ботнет для генерации трафика на DNS-серверы для осуществления потенциальной атаки огромного размера. Вероятно, присутствующим легко понять, как трудно избавиться от всех открытых резолверов. Но вы можете реализовать в собственных сетях возможность игнорировать чужие пакеты, чтобы не подвергнуться подобной атаке.
Давайте рассмотрим два конкретных инцидента, имевших место при атаке на Spamhaus. Первый был 24 марта и заключался в атаке интенсивность около 309 Гбит / с на протяжении 28 минут. Паника началась со звонка Тома, который сказал, что у нас атака более 300 Гбит / с. Я спросил, работает ли наша сеть, и Том сказал, что мы пока держимся, мы можем обеспечить Spamhous и других клиентов. И хотя наблюдаются небольшие потери пакетов и задержки в передаче трафика, но в целом сеть держится. Тогда я сказал, чего же вы так испугались? Они ответили – потому что атакующие используют всего лишь 0,1% открытых резолверов, которые существуют в мировом интернете! Но если они смогут использовать хотя бы 1%, у нас будет не 300-гигабитная, а 3-х терабитная атака. Если они будут использовать 10% открытых DNS-резолверов, мы получим 30-терабитную атаку. Я думаю, что сегодня мы могли бы выдержать до 3 терабит трафика, но в марте у нас не было такой возможности, мы не могли победить 30-ти терабитную атаку и я не знаю никого, кто смог бы её выдержать. Это было очень серьезным вызовом работоспособности сети.
Когда мы стали разбираться, откуда исходит атака и просмотрели кучу сетевых провайдеров первого уровня, то обнаружили всего 3 сети, которые позволяли спуфинг адресов, и возможно, их обслуживало от 5 до 7 скомпрометированных серверов. Один был в Сан-Хосе, другой находился в Миннесоте и третий в Германии. Было задействовано всего 3 сети, и эти скромные ресурсы привели к относительной большой атаке.
Следующий пик пришёлся на 25 марта, когда был зафиксирован трафик со скоростью 287 Гбит/с на протяжении 72 минут. Использовалось практически такое же количество открытых резолверов – 31154, и те же три спуфинговые сети. Ещё раз повторюсь – атакующий задействовал очень ограниченные ресурсы.
Отмечу, что у нас был всего 1 атакующий с одним ноутбуком, у нас есть скриншот, который я покажу позже. Он контролировал от 5 до 7 скомпрометированных серверов, 3 сети, позволяющие подмену оригинальных IP-адресов, которые генерировали трафик интенсивностью около 9 Гбит/с, направленный на 0,1% открытых DNS-резолверов. И всё это привело к возникновению 300 Гбит/с DDoS-трафика.
Многие люди считают, что это была самая большая атака в истории сетей, не могу сказать, правда ли это, но она действительно была самой большой из всего того, что мы видели.
Это история о великом организаторе, которому удалось проделать то, о чем раньше даже не догадывались. Мы все знали проблеме открытых резолверов, это не было каким-то умным новым взломом, порчей сетевых протоколов, атакой фрагментации пакетов и так далее, это выглядело так, как будто пещерный человек просто долбит огромной дубиной тебе по башке.
Повторю снова – то, что произошло, было невероятно эффективной атакой и на Земле очень мало сетей, которые способны ей противостоять. Опять же, мы очень гордимся тем фактом, что мы сделали тогда и что мы продолжаем делать каждый день, и тем, что продолжаем инвестировать в нашу сеть, чтобы сделать её больше.
Немного расскажу о том, что мы сделали для того, чтобы иметь возможность сопротивляться атаке, что мы предприняли, чтобы её остановить. Некоторые из наших мер применимы в общем случае, некоторые являются уникальными. На этом слайде вы видите, что мы предоставляем услуги по всему миру, имея 23 точки подключения к сервису CloudFlare, а к концу года их количество увеличится до 50. Так что на сегодня у нас имеется развитая сеть X-класса.
Мы изначально подумали о целесообразности нашей сети, но то, что было заложено в неё в начале, на сегодня превратилось в очень мощный инструмент. Мы используем протокол под названием Anycast для передачи пакетов методом BGP через множество поставщиков DNS, которые также используют Anycast. Фактически мы используем его для HTTP-трафика, как наиболее стабильного. Скажу, что это большая головная боль – обеспечить нормальную работу такой сети, как наша.
Если вы не знакомы с протоколом Anycast, то вот что он собой представляет. В обычной схеме сети имеется один источник и один пункт назначения, а в Anycast один источник связан с несколькими пунктами назначения, при этом для доставки пакетов адресату выбирается кратчайший путь. Таким образом, если у нас имеется 23 дата-центра по всему миру, то все они имеют один и тот же IP-адрес, например, адрес Spamhous. Поэтому, когда мы имеет дело с атакой интенсивностью 300 Гбит / с, она распределяется между всеми дата-центрами таким образом, что на каждый дата-центр приходится порядка 13 Гбит / с трафика.
Проблема состоит в том, что атакующий тоже может заняться математическими подсчётами и очень быстро перенаправить атаку прямо на край нашей сети. Это немного дурацкая затея, так как в результате атакующий может получить эффект, обратный усилению. То есть вместо того, чтобы усилить атаку увеличением её поверхности, он вынужден сократить эту поверхность и уменьшить интенсивность атаки.
29:00 мин
Конференция BLACK HAT. Уроки выживания при DDOS-атаке 300 Гбит / с. Часть 2
Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).
VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps до весны бесплатно при оплате на срок от полугода, заказать можно тут.
Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 ТВ от $249 в Нидерландах и США! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки?