Pull to refresh

Comments 156

Виновных вычислят? Их посадят на кол?
Если бы хабр не справился его бы взяли в оборот и стали шантажировать вымогая что-то?
Какие еще мотивы?
Обидели хозяина ботнета, наверное.
Наверное топик слили… :)
Не SEO-шник которому на днях слили карму?
Наверное ереванцы с фростом :) У сеошника врядли бы нашлись такие мощностя и кол-ва…
Так давно уже никто не делает, так как злоумышленники при таком раскладе легко ловятся.
>На пике атаки делалось около 9000 запросов/с

Около или Over?
Молодцы! Оперативно сработали!
Статья из серии «Я пиарюсь» — мало данных.

Сколько ботов участвовало?
Сколько ботов забанили?
Только по одному GET запросу били?
Какова гео карта ддоса?
В первой волне было примерно две тысячи ботов, во второй — около трёх + подозрительная активность. Пока сервер чувствовал себя больным, банили всех.

Само собой, боты выполняли по несколько GET-запросов, если вы об этом. URN был один и тот же на все запросы. По географическому расположению преимущественно СНГ, определённая доля также из США, ну и россыпью из стран типа Вьетнама или Кувейта.

Я не упомянул эти подробности в статье по той причине, что собственно характер атаки они не определяют. При таких параметрах поражающего компонента атаки ботов могло быть и 1000, и 10000, это, в общем-то, несущественно. Если вас интересуют какие-либо ещё цифры, пишите, я соберу и выложу.
Интересно, насколько повысилась эффективность ит-сегмента России, пока хабр лежал.
У нас в компании резко подскочила — все, кто читал Хабр, в эту минуту стали заняты делом :-)
А некоторые жмут F5 :)
У всех воспитанных людей есть привычка не обновлять в ближайшее время страничку упавшего сайта.
Понятие «ближайшее время» у всех свое.
Грамотные, воспитанные люди никогда (без надобности) стараются не добивать упавший хабр кнопкой «reload» (потому что слишком уж по-ламерски это — тупо жать кнопку «reload»).

Настоящий IT-шник всегда рад «добавить жару упавшему хабру» коммандами ping/traceroute.

Причем, если не пингуется из офиса, надо пингануть с сервака, если не пингуется с одной подсети, надо залогиниться на сервак в другом ДЦ, пингануть с него (вдруг это у провайдера проблемы с роутингом до хабра).
А уж если и это не поможет, то надо написать всем друзьям в аську/джабер/скайп сообщение «слушай, а у тебя счас хабр пингуется? а то у меня он что-то только что работал, а сейчас не отвечает, посмотри, пожалуйста, у тебя как, открывается?».

И сотни тысяч пакетов радостно полетели со всех сторон света навстречу любимому хабру;)

В связи с этим я бы глянул на график ICMP-трафика во время даунтайма хабра.
Хорошо сказал! Прям в точку )))
бойцы невидимого фронта на страже. Молодцы!
если идет атака, не обязательно, чтобы сайт лежал.
А, точно, было пару раз, думал у меня браузер с ума начал сходить, зашел через минуту, заработало :)
Хм… судя по тому, что у меня в течении 15 минут хабр висел и гугл радостно писал:
Other users are also experiencing difficulties connecting to this site, so you may have to wait a few minutes.

— Атака еще идет
Да, сейчас наблюдается паразитный трафик. Количество запросов не могу подсчитать, так как они банятся, объём ботнета около 4000 на этот раз.
Мда… и судя по часовому зависанию хабра вы проигрываете
Возможно, проблемы с вашим IP? Напишите мне, посмотрим.
Мне тоже интересен мотив этих атак. Какой профит атакующим?
Проверить мощность своего ботнета?
Респект среди своих плюс реклама для заказчиков.
Кому-то карму слили, по ходу.
Возможно участившиеся обсуждения находок в яндексе и гугле кому то не понравились.
Думаю, после сюжетов на первом канале, это как минимум непрофитно.
Шантажом получить инвайты, хотя мало шансов на успех этих инвайтов, ну или месть.
QRATOR HTTP 500 выдает любой хабрацентр, и этот топик несколько секунд был 404, хм, видимо базе до сих пор тяжко :(
Сейчас идёт новая волна атаки, чуть менее 4,5 тыс. ботов.

Внимание абонентам сетей CORBINA-BROADBAND и RU-AVANGARD-DSL! Вы можете испытывать проблемы с доступом к Хабру из-за большого числа ботов в сети вашего провайдера!
Если говорить о именно о вебсайтах, то, имхо, DDoS все больше будут уходить именно на уровень приложения. Ну какой смысл пытаться забить канал, если на порядок проще завалить сервера приложений тяжелыми запросами. Собственно тут у меня возникает вопрос — ну хорошо в данном случае вы отбились, боты были примитивны. Но что делать когда боты чуть поумнеют и будут использовать большие списки урлов и правдаподобные заголовки? А сделать то это не слишком сложно…
В этом случае вариант «повтыкали в лог вебсервера, написали локейшен для nginх» уже не прокатит — выявить общий знаменатель будет сложно. У вас есть какие то наработки на этот случай?
Мы, в общем-то, и не рассчитывали на примитивность ботов. У нас есть анализатор поведения, который умеет ловить умных ботов, но побочным эффектом является убивание и тупых. Такой своеобразный естественный отбор.

В частности, какие запросы боты выполняют, мы увидели уже потом, когда начали анализировать атаку. На поисковый запрос «intel» мы не закладывались.

Сейчас в третьей волне, кстати, боты стали искать не только intel, но также apple и google. Видимо, они как раз дочитывают список Fortune 500 :-)
Ну вот это уже интересный. :) вот вы бы лучше рассказали бы про аналитическую подсистему QRATOR подробней. Мы пользовались подобными услугами. Впечатления двойственный. С одной стороны в трудную минуту сайт не ложится полностью. С другой стороны, ощущение что до 20% полезного трафика тоже под фильтры, под горячею руку попадало.
Не знаю как именно это устроенно у вас, но думаю такой статье на хабре все были бы рады. :)
На лепре был такой топик от highloadlab, кстати. Почему на хабре нет, не понимаю.
Вообще туговато хабр работает, но работает.
UFO just landed and posted this here
UFO just landed and posted this here
Возможно, да. Если скажете свой IP-адрес, могу рассказать, что с вами было.
Вот фигня. Добавил коммент, обновил страницу через минуты 3, коммента нет. Запостил еще раз, появилось аж 2. Простите.
Да, когда хост под атакой, надо делать поменьше резких движений.
Распределенная БД
UFO just landed and posted this here
Респект.

BTW, меня всегда интересовал запрос — а что будет, если запросы будут разные? Тоесть что видно по вашим логам — это как-то совсем плюшево, ставится тривиальнейший фильтр по запросу и собственно все. А если бы они все index хотели? Или главную листали?
ximaera@atlantis:15#508:~$ on node 03 qrconsole list_suspected habrahabr.ru | wc -l
4328
ximaera@atlantis:15#509:~$


Пережили бы как-нибудь :-) Проблемы были бы, наверное, с toster.ru, поскольку там, кроме index.html, ничего нету, и что у легитимных пользователей, что у ботов одинаковый «стиль» хождения по сайту. Но Хабр — другое дело.
Я как бы намекаю, что у огромного количества легитимных незарегистрированных пользователей очень простой стиль хождения по сайту — почитать главную и кликнуть на пару ссылок. Как можно отличить бот это пришел главную почитать или пользователь?
Если бот пришёл, кликнул на пару ссылок и ушёл навсегда, то либо в конструкции сайта присутствует уязвимость, либо это очень сомнительная атака.

Я опять попробую отделаться аналогией :-) На 3 курсе мы на практикуме писали распознавание ситуаций на шахматной доске. Там тоже всё очень сложно — фигуры могут быть разных размеров, стоять не в центре клетки, сама доска может быть зашумлена, под углом и т. п. Но это если решать задачу «в лоб». А нужно — строить более интеллектуальную систему, способную адаптироваться к текущей ситуации. Так же и здесь.
Скажите, вы строите модель поведения пользователей на основании анализа access-логов предшествующих атаке? Точней даже так — насколько важно их наличие для успешной борьбы с «умными» ботами? Просто если пытаться строить модель после начала атаки — не очевидно как сделать так чтобы поведение преобладающей армии ботов не стало «нормой».

Кстати, возможно ли получить аксеслоги? «до» и «вовремя» атаки?
Не access-логов, потоков трафика, но это не так существенно.

Наличие предварительной истории жизненно важно! Если её нет, то приходится задействовать общие эвристики классификатора и ловить по косвенным признакам. В этом и была сложность атаки на Хабрахабр, кстати. В какой-то момент система «переобучилась» на больших количествах нелегитимного трафика, пришлось срочно разгребать это дело.

Логи за длительное время у нас хранятся, к сожалению, выборочно. Возможно, вам стоит обратиться за ними к «Тематическим Медиа».
Эвристика, кластеризация…
А какой % FP(False Positive)?
На Хабре я оцениваю FP в 2% из-за фактической невозможности провести обучение. Обычно от 0,0...% до 5% в зависимости от вида ресурса. При этом под FP в последнее время понимается не только блокировка легитимных пользователей, но и блокировка легитимных ботов — на некоторых ресурсах боты могут составлять до трети общего трафика. Это серьёзная проблема, мы активно исследуем пути её решения.
А разве есть еще полезные роботы, которые массово обходят сайт, кроме поисковых?
Руками, путём анализа поведения пользователей, работающих с IP-адреса, до и после блокировки. Также путём анализа сгенерированных правил и подсчёта адресов, заблокированных только за счёт неправильных критериев.
Ничего не понятно)
Иными словами просто анализируете черный список?
Логи и чёрный список, да.
ну toster.ru и не удалось бы свалить, методом напряга приложения — если у них, конечно, index.html не отдается статическим
Проблемы были бы, наверное, с toster.ru, поскольку там, кроме index.html, ничего нету...

Не пали контору ))
UFO just landed and posted this here
Думаю тут тоже можно придумать поведенческий фильтр…
Ну какой нормальный юзер будет десятки (сотни, тысячи ?) раз запрашивать главную?
Или листать страницы по несколько в секунду?
Ну так ботнеты они как бы на то и ботнеты, что имея несколько десятков тысячь компьютеров можно совершенно спокойно делать 1000 запросов в секунду вида «а теперь еще полистаем главную» в течении продолжительного времени. ИМХО, конечно — я по атакам, увы, не специалист.
В ботнете все-таки ограниченное число ботов, соответственно каждый ip запрашивает страницу(ы) много раз. А дальше уже статистические алгоритмы срабатывают:
частота запроса, подозрительные запросы(когда хедеры не совсем верные, когда не запрашиваются дополнительные страницы, тысячи их, возможных правил).
Чем сложнее боты, тем легче попасть под гребенку обычному пользователю, но тем дороже их использование и разработка, соответственно меньше заказчиков.

Меня удивило то, что хабр не имеет защиты от таких тупых атак. Базовая защита от них может делаться на уровне иптейбла и блек листа.
@eyeofhell бот и человек видят контент по разному. время между переходами и вероятность перехода для робота и человека будут различны…
Ну как бы рандомные задержки в код бота поставить ничего не мешает.
Не хочу раскрывать все секреты, но приведу аналогию. Если в речь сумасшедшего вставить рандомные задержки, она не станет осмысленной.
Аналогия ясна, спасибо. BTW, я не за секретами спрашиваю — мне просто любопытно как оно на самом деле отражается. Потому что с точки зрения common sense я не вижу способа отличить бота от лигитимного пользователя и, соответтвенно, мне кажется что DDOS атаки неотражаемы :).
UFO just landed and posted this here
Забавный топик. Во время атаки на сайт отписываться по поводу этой атаки на самом сайте. Автор — есть ли альтернативный блог, в случае эпик-фейла?
Собственно, highloadlab.com.

<boast_mode_on>
По частоте его обновления можно судить о числе эпик-фэйлов :-)
</boast_mode_on>
А что, так можно единую базу создать…
она никому кроме управления К не нужна ;)
Отчего же, я бы пользовался в своих проектах.

Кстати забавно было увидеть среди ботов следующее

v02-15.opera-mini.net 80.239.242.46
v02-16.opera-mini.net 80.239.242.47
v03-15.opera-mini.net 80.239.242.62
v04-15.opera-mini.net 80.239.242.78
v04-16.opera-mini.net 80.239.242.79
v05-15.opera-mini.net 80.239.242.94
v05-16.opera-mini.net 80.239.242.95
v06-16.opera-mini.net 80.239.242.111
v08-16.opera-mini.net 80.239.242.143
v09-15.opera-mini.net 80.239.242.158
v09-16.opera-mini.net 80.239.242.159
v10-15.opera-mini.net 80.239.242.174
v10-16.opera-mini.net 80.239.242.175
v11-16.opera-mini.net 80.239.242.191
v12-15.opera-mini.net 80.239.242.206
А ну да — я сейчас пробиваю ip -> DNS :-)
плохо что интернет провайдеры не научились в текст квитанции включать сообщение о потенциальной зараженности компьютера, может и численность ботнетов былабы чуть меньшей…
Некоторые хомячковые провайдеры (в т.ч. один московский точно) без разговоров кладут порт клиента в случае совпадения исходящего трафика паттерну атаки.
Я одно время по наивности звонил в техподдержку разных провайдеров, прибивался сквозь первую линию к админам, ответ всегда был одинаковым «это не наш сервер, что там у пользователя происходит не наше дело».
Чуть информации для размышления (я не говорю что обязательно связанные вещи, но всякое бывает)

Когда выходила вторая часть «острова», Бондарчук (они с Геворком Саркисяном общаются) общался с Инновой (Бондарчука решили привлечь в провальный проект Инновы «Аййо» (www.ayyo.ru)), и Геворк Саркисян пообещал Федору Бондарчуку что около месяца ни на одном трекере копии фильма не будет.

Для этого они проплатили / устроили DDOS атаку (что почти прямо мне Саркисян и заявлял) на почти все популярные трекеры + начали запугивать владельцев.

Две мои статьи о том как реально обстоят дела на habrahabr принесли очень серьезный ущерб Иннове, а на днях Иннова должна подписывать новые договора на публикацию новых игр.

С другой стороны, скорее всего причины атаки другие все же, но исключать — нельзя.
Корбина — лидер по количеству клиентов Инновы / установленных копий Frost.
Проверить по адресам наверно не очень сложно в этом случае, есть там фрост или нет? Адреса будут реальные, а не прокси, если предположить что ddos из-за frost.
Кстати, тот пост все же закрыли?
Да
Больно уж география атакующих совпадает с клиентской базой Инновы (и инсталляций Фроста):
СНГ + сильно меньше другие страны.

Отечественные ботоводы умные — они никогда не атакуют с Российских адресов, ибо никогда не гадь там где живешь.
Да сколько можно уже свою теорию заговора озвучивать?
Любая бот-атака с российских хостов будет географически совпадать с клиентской базой Инновы — и что теперь, повесим на них все «российские» DDoS-ы?
До абсурда-то доводить не надо.
Не думаю, что отечественные ботоводы сильно парятся о географии своего ботнета, более того им выгодно иметь ботов из СНГ+РФ т.к. именно днем у этого ботнета будет пик онлайн.

На счет никогда не гадь там где живешь, это скорее на про нас…
Корбина просто лидер по количеству клиентов
А почему именно корбина? Чем это вызвано?
UFO just landed and posted this here
UFO just landed and posted this here
Да, сегодня уже натыкался — «обнаружено большое количество запросов из вашей сети»
Там защита не от ddos, а от парсинга.
генерация стойкой капчи — ресурсоемкая задача.
ddos такого типа мы когда-то лечили довольно просто:
скрипт парсил лог апача и банил через iptables всех, кто совершал более N одинаковых запросов менее, чем за M минут. В зависимости от состояния сервера N пыталось определиться автоматически. База наполнилась за несколько часов, после чего все новые волны юзеры даже не чувствовали.

p.s. если у вас где-то есть автоматическое обновление страницы (типа чат или вроде того), стоит данный урл из фильтра исключить…
4500 match'ей в iptables на каждый TCP-пакет, приходящий на Хабр… нуу, я не знаю.
UFO just landed and posted this here
Подобное делается через ipset, а не через iptables.
Вот у меня сейчас:
# ipset -L blacklist | wc -l
5058

И ничего, все нормально, сайт жив, хотя атака идет вот уже пять дней.
Само собой, но автор оригинального комментария писал только про iptables.

Так или иначе, скрипт для анализа логов должен быть достаточно продвинутым и спасать будет в ограниченном числе случаев.
Скажем так: скрипт крайне прост, но и защищает тоже только «от дурака». Как видим, на хабре могло бы помочь.
Долго думал, почему именно iptables, так и не вспомнил. Скорее всего, либо никто из нас ничего о нем не знал, либо тогда его еще не было.
Ну у нас был не хабр, всего-то 20-30к уников в сутки. И насколько я помню, больше 500 записей таблица не росла.
То же самое, собственно, можно сделать и проще, но вопрос в «одинаковости» запросов. GET /search?q=apple и GET /search?q=microsoft всё же чуть-чуть разные запросы.
С точки зрения того скрипта — не «чуть-чуть», а абсолютно разные %) Но три варианта тоже мало, вот если бы триста… тогда пришлось бы думать что-то более умное.
Хит прошлого года — боты, выполняющие такие запросы:
GET /index.html?rq39=39 HTTP/1.1
GET /index.html?ow43=43 HTTP/1.1
GET /index.html?rq51=51 HTTP/1.1
GET /about.html?tk38=38 HTTP/1.1
GET /index.html?rm49=49 HTTP/1.1
GET /index.html?hl47=47 HTTP/1.1
GET /index.html?rq42=42 HTTP/1.1
GET /about.html?nt46=46 HTTP/1.1
GET /index.html?xw41=41 HTTP/1.1
GET /about.html?rq45=45 HTTP/1.1
GET /index.html?ar48=48 HTTP/1.1
GET /index.html?tt44=44 HTTP/1.1
GET /index.html?no40=40 HTTP/1.1
GET /index.html?rq50=50 HTTP/1.1

Цель — заполнение кэша фронтенда копиями страниц и последующая перегрузка базы. Вариантов сотни, а главное, очень сложно найти паттерн, причём такой, чтобы обычные пользователи не попадались (в движке действительно были GET-переменные вида abc123). Элементарное изменение паттерна нападения — и борьба «в лоб» уже не проходит.
Ну так на то она и защита от дурака, чтобы защищать только от дурака %)
Думаю, в описанном случае тоже можно было бы по быстрому сваять что-то, рассчитанное именно на этот тип запросов.
От такой схемы вполне спасают задержки и к счастью тут не нужно никаких умных алгоритмов, достаточно просто отслеживать состояния и отношение общего кол-ва URI (которые обходит каждый конкретный бот) к частоте запросов.
Да от любой проблемы можно спастись. Пример был приведён с целью показать, что единичный «костыль» легко преодолевается атакующими, и нужно срочно изобретать следующий. А следующий, в свою очередь, тоже преодолевается, и так далее. Т. е. в общем случае нужен системный подход.
А как боритесь с ботнетами в которых каждый бот парсит сайт и строит свою собственную карту переходов, или еще не встречали таких?
Не встречали проблем с такими.
А как часто встречали такие ботнеты?
Дважды, кажется, плюс синттесты.
Я так понимаю атака набирает обороты… 10 минут хабр и highloadlab лежали… интересно-интересно
Атакующие пошли в обход системы фильтрации по старым IP-адресам. Сейчас лечим это.

Что highloadlab.com не открывался — это скорее глюк :-)
Вообще вы молодцы, что отписываетесь. Я никогда не думал, что это будет возможно — обычно такие вещи закрыты, а вы… ну прям, +вам.

Заодно видно как сейчас ботнеты работают, если вы конечно будете их поведение описывать.
Отписываясь, мы слегка играем на руку противникам, поскольку они могут подглядывать нам в карты. Атака, начавшаяся спустя полчаса после публикации топика, тому свидетель. Так что полной информации пока не ждите, но что можем — выкладываем.
А возможно появление такой информации, скажем через день/неделю?
Я имею ввиду время, когда по вашему мнению, атака закончиться.
Хм… а вот интересно сколько стоят услуги по отбитию атак типа этой?
Хотя бы порядок цен…
qrator.net/rates/

Помегабитная фильтрация в данном случае влетела бы в копеечку, но в первый страховой тариф Хабрахабр пока укладывается, тьфу-тьфу-тьфу.
Ну в принципе нормальный ценник…
Если сайт приносит доход…
LiveJournal сообщает о новых DDoS-атаках на сервис
Собрав необходимые данные, сейчас администрация LiveJournal может сделать точный вывод о том, что причиной сбоя у поставщиков связи data-центра LiveJournal стала DDoS-атака, направленная на сервис
©http://www.livejournal.ru/

Возможно и там и тут связано как-то
Хитрожопая система, кажется, отправила в бан сервера оперы — при включении «турбы» хабр не открывается :(
Да, выше, оказывается, об этом уже писали. Исправил.
Спасибо за вашу работу. Я в хорошем смысле говорил «хитрожопая», если что, надеюсь, не обидел :)
Ничего страшного, она у нас действительно очень хитрая :-)
Опа а меня за что банило? Что ж у Вас за система такая кривая?
Вас, видимо, по старой памяти :-)

Если серьёзно, то в районе 16 часов дня, похоже, возник повышенный процент false positives (около 2% банлиста, по всей видимости). В течение пары часов я разгрёб оное обратно. Побочные эффекты прихода сервиса под атакой, к сожалению :-(
А что было бы если бы Навального на Хабр пригласили?
Респект за Ваш труд!
Интересно как вы работаете с пользователями сидящими за NAT? Как мне представляется их картина поведения абсолютно хаотична. К тому же велика вероятность, что за конкретным IP могут сидеть как боты, так и нормальные пользователи, при чём в любом % соотношении. Может у кого есть мысли, какие варианты анализа, аутентификации и т.д. возможны в данном случае?
Пока мы работаем, к сожалению, только с IP-адресами. Победа над NAT'ом планируется к концу года и должна совпасть в т. ч. с обновлением железа, так как требуются немного другие ресурсы.
Да, было-бы интересно услышать как планируется различать клиентов.
Самый верный вариант это делать на уровне приложения, хотя-бы при помощи этих несчастных кук, но появляются риски сталкнуться с ботами которые зафлудят всю таблицу состояний этими куками.
Неудачно выразился, поясню.

Градация пользователей, сидящих за одним IP-адресом, у нас есть, но блокируется адрес целиком по принципу «если есть бот, то к чёрту». Это будем исправлять. Кластеризуем запросы на основе заголовков и фингерпринтинга, благо устанавливается соединение, параметры которого можно измерить.
Т.е. планируется кластеризовать каждое новое подключение с конкретного IP?
Каждое TCP-соединение, да.
А посоветуйте если не трудно годных статей по AntiDdos
Sign up to leave a comment.