Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 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кб в конец можно дописать гигабайт. Станет даже правдподобнее, когда не будет хватать памяти для распаковки. Можно даже предположить, что на той стороне могут не догадаться и станут пробовать разные разархиваторы и искать хардварные ресурсы. Разве не забавно?
НЛО прилетело и опубликовало эту надпись здесь
А в чем проблема Content-Type при отдаче файла с расширением zip?
nginx сам правильный подставит. В моем случае у файла не было расширения, поэтому я ручками дописал default_type application/zip;.
НЛО прилетело и опубликовало эту надпись здесь
это божественно, прям до слез
А может сделать на подобие 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. Что в плюс мне не идет, конечно.
Время проходит, люди учаться:)
[grammar-nazi]
http://tsya.ru/
[/grammar-nazi]
Хуже, когда я делаю ошибки в окончаниях прилагательных. Непроизвольно, причем за сочинения в школе на выпускном 5/5 было.
Сказывается отсутствие русского языка в повседневной жизни. Несколько контактов из скайпа и вы, хабражители.
Благодаря wp-admin я поимел огромный список халявных прокси серверов.
Кстати, сейчас есть умные боты, которые умеют в javascript. Ищем админку, которую любят тыкать боты и оная содержит жабаскрипт, который надо выполнить, чтобы поюзать её и рисуем весёленький маленький скрипт, который будет дико тормозным и неэффективным, а ещё будет кушать тонну памяти…
Раньше так pagefile.sys/vmlinuz/etc на bbs/fido/ed2k/etc отдавали, в виде архива с порно :)
с pagefile.sys поосторожнее — это вам не /dev/urandom
НЛО прилетело и опубликовало эту надпись здесь
Да, да. Своп от полуоси на холд положить, святое дело! ;)
Лет 16-18 назад в узких кругах было популярно распространение троянцев «методом ленивого кота». На машину ставился открытый для анонимов FTP, в котором лежали файлы, типа «games/porno/tetris.exe» И народ исправно находил ftp при массовом поиске халявы, качал и запускал :)
НЛО прилетело и опубликовало эту надпись здесь
Для грустящих читателей вашей статьи могли бы тогда выложить небольшой кусочек лога, чтобы мы тоже могли порадоваться и узнать наших упорных героев :)
НЛО прилетело и опубликовало эту надпись здесь
Ламер жив всегда,
Он ко мне залез,
Связь его крута,
Аж сотни CPS.

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

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


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

img без спойлера
image
надеюсь для теста хватит.

После прошу саппорт удалить это комментарии, ибо они к статье не относятся.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации