Pull to refresh

Comments 79

«Сделать этот мир лучше» гоняя порожняком гигабайты шума? Вот это вряд ли. Но все равно смешно.
Осталось добраться боднет до этого файла и задосить сервак.
Какой сервак? Чем задосить? Отдавая nginx'ом статику?
То есть при отдаче статики у нас не используются ресурсы сервера? Не остается отрытым коннект, не съедаются ресурсы на поддержание коннекта и тп?
Крайне мало ресурсов отъедается. Это не апач. Чтоб заддосить даже современный ноутбук таким образом надо привести ОЧЕНЬ большой ботнет, который будет стоить ОЧЕНЬ много денег. Проще будет заддосить на канал, а это другая история и не зависит от отдаваемого контента.
Мне в 17к ботов положили сервер. Это весьма скромный ботнет, и стоит такой недорого.
Я один раз положил свой сервер, когда у меня ф5 залипла. Сервер был на малинке и очень кривой пхп скрипт в бэкнде.

Но исходный тред начался про ботов, запрашивающих статику.
Так у меня статика и была. nginx, 3.5 гб памяти, Xeon CPU E5-2673 v3 @ 2.40GHz.
Мне даже интересно стало, что Вы сделали не так. «Положили» — это в чем именно выражалось?
Очень просто: все процессорное время кушал nginx, отдавая эту самую статику, плюс закончился лимит открытых файлов. Ограничение на количество открытых файлов проблему не решило — достучаться до сервера все равно было невозможно.
К слову, сервер находился за CF, челленджи включены, парень их обошел (мы с ним потом пообщались немного).
limit_req \ limit_con включали? У меня сервера без ссд, похожей конфигурации, отдающие статику и немного динамики (хороший бэкэнд) досы с подобным количеством ботов переживают легко, показывая только небольшое повышение LA (десятые доли на ядро).

Клаудфлеер вообще не использую.

Ккой у вас был rps во время ддоса?
Включал, но, видимо, неверные значения ставил. Вот вы сколько выставляете? rps честно не помню.
Лимиты зависят как от приложения, так и от мощности сервера, канала, задач, прочего конфига nginx.

У меня стоит limit_conn на 10 соединений на ип. Но только динамика. Статику не лимитирую вообще, только иногда включаю aio и кеширую дескрипторы открытых файлов.
Вы, видимо, еще не видели хорошего ddos. Например, когда прилетает сотня тысяч соединений на «статику» или просто заливается 100Гбит/c флуда так, что у ДЦ все каналы забиваются.
Тут не то что nginx, вообще ничего кроме глобальных cdn не поможет.
Читайте тред с начала, пожалуйста. Мы начали с того, что атака, которая будет специально «бить» в подобным образом выложенный файл и способная положить что-то, что более-менее «сервер» — экономически нецелесообразна. И еще я выразил сомнение в том, что описанный в статье способ как-то облегчит ДДоС. И я сразу открестился от атак в сотни тысяч соединений и 100Гбит/c флуда.

Когда приходит такое, Вы совершенно правильно заметили, средства борьбы другие, и отдаваемая с лимитированная скоростью отдачи статика — песчинка во вселенной.
Когда Вы становитесь мишенью подобных атак, когда они экономически осмысленны, у вас уже должен быть не один (десяток) сервер(ов); хорошая, умная балансировка и\или далеко не бесплатный тариф клаудфлеер.
Давайте вместе размышлять:
  • у CF на данный момент 42 точки забора контента
  • тьма точек раздачи

Уже значит, что 17к пользователей размажется в 42 клиента, если у вас соотв. правило в nginx добавлено и запрещены все клиенты, кроме CF и самого сервера.

Теперь роль играет принцип кеширования (полное, игнор агрументов, читы на стороне сервера) и, как заметил J_o_k_e_R, limit'ы в конфиге nginx. Хотя у меня стоит очень большой лимит для серверов CF, но я контролирую запросы через регулярки и аргументы.

CF могут отдавать контент очень быстро, запрашивать тоже. Если контент актуален, и стоит respect server headers в кастомном page rules, то они будут его хранить и 10 лет, но, при условии, что он запрашивается регулярно.

Я почему-то уверен, что у вас стоял standart на статику.

И, наконец, CF это коммерческий продукт, и защита от layer 7 у них на платных тарифах.
Кеширование статики CF было отключено, да, потому что сайт активно допиливался, скрипты и стили часто менялись.
То есть вас положили 3х часовое окно?
В случае канала, как правильно заметил J_o_k_e_R, это может сработать.
Только вот в чем незадача:
Оффициально мой канал составляет 200 Мбит. Неоффициально я могу выжать 800 Мбит на отдачу (проверял).
У хостера сеть построена сеть на juniper'ах и, хочется верить, есть решения, чтобы отсекать паразитный траффик и различать «паразитов».
Если же вдруг канал забит на столько, что нету и пары кбит для ssh, я зайду в панель хостера и запрошу посредством кликов мышкой доступ только себе. Далее, я просто переименую файл и все. Будет ответ 404.
Если продолжить фантазировать, что придет ботнет, который забьет канал отдаваемой статикой, то после переименования по старому локейшену лучше отдавать 444. Тогда даже на ответах 404 сэкономите.
У меня нету цели добиваться краха системы пользователя, даже в благих намерениях.
А напрасно. Хозяева зараженных хостов ботнета быстрее обнаружат проблему. А выделенные сервера на время выйдут из строя и таким образом перестанут сканировать других.
Возьму на вооружение вариант с zip-бомбой.
Вот например добрый парень из провинции Цуаньчжоу качал это в течение суток, нещадно пытаясь открыть второй поток, как и янки из Лос Анжелеса. Зачем мне ломать их машины и, внимание, вопрос: сломаются ли они?

Получив бомбу в архиве бот не будет ее открывать, он ее передаст на мастерхост (это такой «не хостинг»). Который её и откроет, и, скорее всего, ручками. Так же эта бомба ловится антивирусами.
Но даже, если антивируса нету — какой может быть бекап в 42 кб и в корне сайта?
Мне очень слабо верится. Но я верю в бекапы размером в гиг в корне простого сайта, вполне себе 8-10 гигов в распакованном виде.

Так что zip бомба никому не насолит. Да и не о вреде этот материал, а скорее о том, как занять руки.

Но смею заметить, что усовершенствованием к предложенному варианту будет вариант с max_ranges отличным от нуля. В этом случае пользователь скачает часть архива. Недоверчиво стопнет, затем увидит сигнатуру в hex редакторе и запустит докачку. Только несколько часов спустя докачка уже не будет работать (если у него к примеру инет разорвет), так как он превысит max_ranges при очередном запросе.
Аргументы резонные. Но почему не объединить варианты? Вначале — zip-бомба, а конец файла забить мусором. Навскидку не помню, но, по-моему, форматом не запрещено иметь мусор в конце файла.
В принципе и хорошо, что ловится антивирусами. Сработка при скачивании теоретически должна побудить ничего не подозревающего пользователя более глубоко проверить машинку (члена ботнета) на заразу.
Хотя вообще неплохо бы придумать какой-то менее вредный вариант — например, тестовый вирус, который безвреден и при этом ловится всеми антивирями.
Есть проблема в виде «черных списков».
Портить репутацию домена — не очень умно. Правда я не знаю, будет ли что за тестовый вирус, но проверять не хочу:)
Если публичную ссылку на архив с вирусом (пусть будет EICAR) никуда не давать или как-то прописать неиндексирование (robots.txt ?) именно для этого архива, репутация в поисковках будет портиться?
Будет. Ссылка обязательно где-то всплывёт, антивирусы её просканируют, пометят сайт как подозрительный, пользователи придут на WOT, понизят сайту рейтинг, на WOT придут антивирусы, увидят, что у сайта низкий рейтинг, предупредят пользователя, он пойдёт на WOT… Такая вот петля смерти.
Они все умные сейчас стали, но о последствиях не думают, главное пользователей попугать. Мне мой сайт занесли в чёрный список, потому что у него была ссылка на другой сайт, на котором оказалась ссылка с вирусом. Такая вот транзитивная смерть от антивирусов.
Есть «эталонный» тестовый вирус EICAR. Вот его содержимое:

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Так к тем 42кб в конец можно дописать гигабайт. Станет даже правдподобнее, когда не будет хватать памяти для распаковки. Можно даже предположить, что на той стороне могут не догадаться и станут пробовать разные разархиваторы и искать хардварные ресурсы. Разве не забавно?
UFO just landed and posted this here
А в чем проблема Content-Type при отдаче файла с расширением zip?
nginx сам правильный подставит. В моем случае у файла не было расширения, поэтому я ручками дописал default_type application/zip;.
UFO just landed and posted this here
А может сделать на подобие UltimateXXXPornCollectionAllSex.zip (4.0 Tb)? Можно дорисовать какую-нить pseudofs которая будет эту лажу генерировать находу
Я хотел сделать безлимитный файл на основе urandom, только такое нельзя сделать в linux. Судя по google, я не был первым.
Но мусор можно отдавать через динамику, очень долго, пока сокет открыт.
Ну можно попробовать расширеньку для nginx сделать
А симлинк на /dev/urandom нельзя сделать?
Вот можно было бы прямо с /dev/urandom бесконечный поток отдавать =) Да еще и с жестким лимитом по скорости скачивания.
Добавьте еще wp-admin.php — осчастливьте и их.
Когда-то давно возникала мысль запилить /wp-admin, /administrator, /admin и прочие хорошие штуки в виде простых форм всегда отдающих «Неправильный пароль». Но руки до запиливания не дошли )
Такая мысль меня посетила два года назад теплым июльским вечером:
скриншот
image


Там я сделал там настоящую структуру из папок, html'ок и финала на старой доброй ASCII для тех, кто прошел квест:
финал
image


Но сие чудо, к счастью, только на одном домене:)
А зачем было столько создавать? Проще же rewrite сделать :)
Я тогда не хотел толком rewrite изучать, как и использование регулярок в nginx. Что в плюс мне не идет, конечно.
Время проходит, люди учаться:)
Хуже, когда я делаю ошибки в окончаниях прилагательных. Непроизвольно, причем за сочинения в школе на выпускном 5/5 было.
Сказывается отсутствие русского языка в повседневной жизни. Несколько контактов из скайпа и вы, хабражители.
Благодаря wp-admin я поимел огромный список халявных прокси серверов.
Кстати, сейчас есть умные боты, которые умеют в javascript. Ищем админку, которую любят тыкать боты и оная содержит жабаскрипт, который надо выполнить, чтобы поюзать её и рисуем весёленький маленький скрипт, который будет дико тормозным и неэффективным, а ещё будет кушать тонну памяти…
Раньше так pagefile.sys/vmlinuz/etc на bbs/fido/ed2k/etc отдавали, в виде архива с порно :)
с pagefile.sys поосторожнее — это вам не /dev/urandom
UFO just landed and posted this here
Да, да. Своп от полуоси на холд положить, святое дело! ;)
Лет 16-18 назад в узких кругах было популярно распространение троянцев «методом ленивого кота». На машину ставился открытый для анонимов FTP, в котором лежали файлы, типа «games/porno/tetris.exe» И народ исправно находил ftp при массовом поиске халявы, качал и запускал :)
UFO just landed and posted this here
Для грустящих читателей вашей статьи могли бы тогда выложить небольшой кусочек лога, чтобы мы тоже могли порадоваться и узнать наших упорных героев :)
UFO just landed and posted this here
Ламер жив всегда,
Он ко мне залез,
Связь его крута,
Аж сотни CPS.

Имя шустро ввел,
Лишь за пол-часа,
Качает мне Винды NT,
Выпучив глаза.
Я вас, возможно, разочарую, но на том конце никто не сидит и не ждет окончания скачивания, и не страдает впоследствии — это ботнеты сканируют интернет в поисках наживы. У ботов, как известно, нет эмоций, им всё равно — 5 суток качать или 5 секунд.
А можно ли на архивчик повесить еще пароль символов на много?
А смысл? Это не не ZIP архив, а только утка, с 10 байтами ZIP архива.
В принципе, если кто-то подскажет, что через dd надо добавить и куда, то пароль будет.
Что-то у вас с форматированием случилось. Так бывает, когда копипастят текст с другого ресурса.
Поделитесь ссылкой, пожалуйста. Хочу посмотреть.
Откуда я наглым образом скопипастил этот текст. С того самого «другогоресурса.com».
Я не утверждал, что вы скопипастили. Я сказал, что текст так выглядит.
Беглый поиск дал только пару ресурсов, которые копипастят отсюда.
И я вижу, вы уже кое-что подправили.
Я не утверждал, что вы скопипастили. Я сказал, что текст так выглядит.

И я вижу, вы уже кое-что подправили.


«Профессор, конечно, лопух, но аппаратура при нём-мм, при нём-мм! Как слышно?»
Покажите, где есть хоть небольшое совпадение, хотя бы про яблочную самогонку, она была тут изначально и именно она сподвигла меня на написание материала.
Неожиданно!
У них альфа версия, запятых не хватает :)
надеюсь для теста хватит.

После прошу саппорт удалить это комментарии, ибо они к статье не относятся.
Only those users with full accounts are able to leave comments. Log in, please.

Articles