Pull to refresh

Comments 52

>Не секрет, что Украина, это страна, где каждый думает, что он умнее всех.

По-моему, это не совсем правильно, оскорблять каждого жителя страны.

А за статью спасибо, но хотелось бы услышать компетентное мнение — защищаться как от таких атак?
Ни каких оскорблений тут не вижу, живу в Киеве всю жизнь и знаю не по наслышке проблему, в сочетании с истиной, что «где два украинца там три гетьмана», это очень сложная национальная особенность, ну такие мы.

А методы защиты опишем, в принципе, они не сложны, но поражает, что даже простейшие методы не были выдержаны, я не удивлюсь, что во всех этих сайтах куча sql-иннъекций и js-инъекций найдется в скорости.
Как защищаться уже ниже написал — 1 строка RewriteRule в .htaccess решила бы проблему для Украины, почему ее 3 дня не добавляли — это уже другой вопрос. И еще методы очевидные, фильтрация по {HTTP_REFERER} — ну допустим источников атак было несколько, но основных то 5-10 было, вот это еще пару строк в .htaccess ну или аналог в nginx и IIS. Ну как крайняя мера, временно, можно было отфильтровать диапазоны IP основных провайдеров, от которых шли атаки, все это знает любой мало мальски практикующий админ.
Не секрет, что Украина, это страна, где каждый думает, что он умнее всех

image
Вы сами себя хотели оскорбить?
нет, он думает что он умнее всех
UFO just landed and posted this here
Мне кажется, что это просто неправильно сформулированная ирония. Я не думаю, что автор хотел обидеть этими словами.
UFO just landed and posted this here
Пост, в котором украинцы обиженный на то, что они умнее всех, доказывают, что они умнее всех
Начало и конец статьи — копипаста с той самой ссылки, которую автор в начале сам дал. В итоге при чтении возникает какое-то дежавю!
Ну сори, ресурсы разные, там политическая тема, а Хабру интереснее другой аспект, выводы так же адаптированы. На Хабре не запрещено авторское цитирование, и его тут не много.
Если каналы спустить, никакой nginx не поможет, да хоть ты на asm сайт пиши — не спасёт.

Сайты — не стратегические объекты, гнать на спец. службы не обязательно.

Выводы — не объективные.
Ну есть же у них отделы ИТ-шные, ну как так можно, все же лягло за 5 минут, без особых усилий. Есть даже мнение, что сайты вообще были отключены самими госорганами, чтобы потом хныкать, как их обидели и денег просить на апгрейд. А знаете ли Вы, какие средства на все эти сайты шли, у…
Слухи — не наш источник информации. Ну мало-ли, вдруг там 14гб/с, и защищали всё это 2 к.т.н. и 18 инженеров. Я не знаю что там было, и мало кто знает, нельзя строить такие выводы и обвинения на догадках.
А чего оно тогда лежало 3 дня, сложно было из бекапа поднять на других серверах и домен перепрописать? Это ведь дело престижа, ну…
Ну если атака на домен — новый не спасёт. По сути, проблему решить должен был провайдер. Не так все просто. Ну хабр — грамотный сайт вроде, а под DDoSом валяться тоже любит.
Ну о чем Вы говорите, даже если тот же домен, то DDOS работает запросы добираются до PHP и MySQL, а если они режутся на этапе обработки веб-сервером, то нагрузка минимально. Для защиты от LOIC просто добавляем в .htaccess такую строку:
RewriteRule  .*msg=.*  /staticHelloLOIC.html

и все запросы будут приводить к выдаче статического файла. Одна эта строчка и, скорее всего, в новостях бы уже не передали «хакеры взломали».
Скорей всего, но не факт.
Еще раз, я говорю о том, что это не прокатит, если атака сильно сильная и слабым звеном является не CPU/RAM/HDD, а сеть.
Упавшие компы были доступны по другим портам, так что это не про нынешний случай. Ну а вот крупные атаки, и не через JS LOIC, а через C# LOIC или другие инструменты, на Visa, Whitehouse, и т.д. конечно уже сеть загружали и там все ложилось еще не доходя до сервера, маршрутизаторы не выдерживают, ну после этого там же бюджеты выделены, оборудование посерьезнее и сразу выявление атак и контрудары. У нас все не на таком уровне, атака слабенькая была, и ответ вообще за страну стыдно. Но какое начальство, сытое, скупое и ленивое, такие и результаты.
> Упавшие компы были доступны по другим портам
Ну тогда ладно))
Я этот вопрос мониторил, почему ж я так и гневаюсь, и атаки и защиты были сопливые :)
Ну в статье я этого не видел(.
Мониторил это как? Кто доступ дал? Куда СБУ смотрит?
Снаружи мониторил ) telnet на порт, чтобы понять что происходит. А корме того, часть серверов выдавало страницу nginx с ошибкой, при чем очень шустро выдавало, значит nginx все же работал, а упало именно ПО.
Ну тогда стыдно авторам должно быть, согласен.
Какая разница на чем сайт написан? Разница есть как писать.
В любом случае все упрется либо в канал, либо в проц, либо в память.
Если хорошо сайт писать, то тогда упирается в канал проц и папять, а когда они написано так, как оно сейчас все написано, в большей части в стиле говнокода (есть конечно отдельные исключения), то ни какое железо не виновато.
Сайты — не стратегические, но есть же специальная контора «Государственная служба специальной связи и защиты информации Украины» — dstszi.kmu.gov.ua — они не могли дописать одну строку в .htaccess оперативненько? Я уж не говорю о том, что есть много заблаговременных мер, но хоть заплатку то навесить и заблокировать в DNS основной домен loic.anonymvs.com можно было и пошустрее. Этот домен только на четвертый день стал недоступен и то, непонятно, то ли его заблокировали, то ли хозяева поддомен loic удалили сами.
И теперь каждый школьник и домохозяйка может стать соучастником преступления в котором легко доказать вину, потому что они ддосят со своих домашних компьютеров?
Если такой скрипт запускается на любом ресурсе, к которому пользователь относится не более, чем пользователь, то вины его нет.
Я же не виноват, что пройдя по ссылке на каком-то сайте грохнул БД этого самого сайта из-за ошибки программиста? Так и тут.
Школьник\домохозяйка не разбираются в тонкостях построения сайтов, а то, что они зашли по ссылке — это мог быть и вирус…

Вообщем доказать, что они являются соучасниками — нет возможности…
Когда DDOS-ят десятки тысяч человек, то наказать можно только случайных, а их вклад в общий поток атаки ничтожен. Некоторые говорят о 5.000 человек, а другие про 300.000, тут сложно сказать. Кроме того, массово используют прокси, веб-анонимайзеры, досят из общественного вайфая, в мобильного интернета по препейд карточкам (ну тут много не надосят) и всякое такое. Я говорю больше не про этот конкретный случай, а про то, что скоро кто-то может разместить код атаки (без обязательной кнопки) на крупно портале СМИ или же полулегальных высоко посещаемых ресурсах, тогда вина будет недоказуема, т.к. человек ничего не нажимал, просто ходил по интернету.
В инструментарий начинающего кулхацкера теперь еще можно добавить slowhttptest. Статьи на хабре — заманчиво звучат (я об «Завалить 30 серверов с лептопа»), для сборки из исходников особого ума не надо…
Ругать «бездарных кодеров» и я могу. А что бы Вы сделали в данной ситуации? В ситуации, когда вас ддосят по http куча человек?

Кстати, вопрос: а в чем принципиальные различия подгрузки через тэг img и jsonp, что Вы аж отдельно абзац выделили про последний?
В разных браузерах по-разному конечно, но дело в том, что JSONP специально оптимизирован под интерактивные, чатовые, веб-2.0-ные динамические задачи, и работают немного другие механизмы. Это протестировано, мы сравнительный тест делали. Кстати, ресурс мы свой собственный атаковали через JSONP, он вообще не почувствовал, но вот по логам видно, что у JSONP чисто статистически есть преимущество.
Ладно, а в чем отличие обычной загрузки скрипта и JSONP?
Не схемы с коллбеком, а именно загрузки, если предположить что урл, который отдает JS, урл, который обрабатывает JSONP запрос — оба статика?

Черт, пятница сказывается, сам не понял, что написал. Я имел в виду, что по обоим урлам отдается статика.
Вообще как работает JSONP (пишу через jQuery):
$.getJSON(url+"&callback=?", function(data) { alert("Result: " + data.parameter1); });

Это приводит к генерации такого
<script type="text/javascript" src="http://targetdomain.com/somePath?parameter1=value1&jsonp=callbackProcName1">
</script>

И в результате вызывается функция уже.

Почему именно так делают, AJAX/JSON не позволяют сделать запрос на сервер, а вот тег script позволяет. Сначала между src картинки и src тега sctipt небыло ни какой разницы, но топом, когда JSONP начал использоваться веб-приложениями, то рзработчики браузеров начали оптимизировать поддержку этой техники, обнаружив в ней, что она более безопасна, чем, если бы AJAX был кроссдоменным. Постепенно, чтобы улучшить Гугловских, Фейсбуковских, Майкрософтовских, и др. сервисов, JSONP был возведен в стандарты и браузеры его начали выявлять и обрабатывать с оптимизацией.
Либо лыжи не едут…
Как работает jsonp я знаю.
Отвечу на свой вопрос: разницы в подгрузке браузером простого js кода и в выполнении JSONP «запроса» нет совершенно никакой.
Вот Вы написали, AJAX/JSON не позволяют сделать запрос на сервер (Вы видимо имели в виду удаленный сервер). Ajax понятно, а вот JSON, спешу Вас расстроить даже на локальный сервер не позволяет сделать запроса, и вообще запросов делать не позволяет.
JSON (англ. JavaScript Object Notation) — текстовый формат обмена данными (википедия).
Так же, спешу Вас расстроить, но JSONP к транспортному уровню тоже никак не относится сам по-себе. Это так называемый «JSON с подкладкой». Позволяет Вам, подгружая скрипт, который находится на удаленном сервере, указать ему, какую Вашу локальную функцию надо вызвать с некоторыми аргументами, в которые он положит некоторые данные (например результаты поиска, которые Вы запрашивали). После такой подгрузке вам вернется обычный JS, в котором будет что-то типа localCbFn(data), где localCbFn — ваша функция, а data — ответ на ваш запрос по урлу.

Уффф, пиво все больше действует на ясность мысли, надеюсь понятно описал.
Кстати, jQuery.getJSON() так же, распознает JSONP, отличая его от JSON и эмулируя привычный вызов, хотя, на самом деле происходит все через динамическую вставку тега script.
Нет, getJSON с локального сервера делает обычный XMLHttpRequest, при этом ожидая, что в ответ ему придет JSON, который впоследствии будет передан в коллбек.
Что имеете в веду под «локальный сервер»? localhost что ли? А кого он в вебе интересует?
Same origin. На тот же сервер, с которого был подгружен.
Знаете я проверял только такую штуку — getJSON для обращений к тому же серверу но к другому порту, так оно именно через JSONP идет, а к тому же порту — не проверял, но проверю, интересно, хотя практического применения поменьше. Обычно нужно из JS, загруженного с обычного веб-сервера, обратиться к URL-у на другой порт, где стоит специализированный сервер, например APE или node.js приложение или любой другой прикладной сервер на сокетах.
Я вообще не понимаю как подобный скрипт мог составить хоть какую-то проблему для вэб ресурса. Запросы-то все одинаковые, блочится все одной! строчкой в фаерволле, ну еще второй можно логи собирать.
Нормальному администратору справиться с таким «ддосом» пару минут делов, как можно было провалятся 3 дня, это вообще нонсенс. У меня в голове не укладывается какими нужно быть криворукими.

Тут правда был один момент скорее всего. Специалистов-то в Украине хватает, просто внутренние распорядки запрещают скорее всего привлекать сторонних админов, а свои работают за еду.
В голове не укладывается, с 10 компов можно организовать более серьезную атаку с любого языка, в котором есть сокеты и URL-ы можно как-то лучше генерировать, например, прокравлить все урлы на сайтах и по ним атакующих диверсифицировать или найти URL-лы с параметрами. А если куки не будут приходит, как из браузера приходят, то не исключено, что от одного выделения сессий там может все обрушиться.
Зарплаты в гос. секторе порядка 2К грн (около 250 долларов). Вопрос: откуда там мотивация и квалификация?
Ради интереса погуглил, зарплат ИТ шников не нашел, но вот рядовые сотрудники делятся кто сколько получает police-ua.com/showthread.php?t=6355. Грустно конечно. На такую з/п явно протянуть можно только ноги.

Вполне понятна тогда ситуация со специалистами. Хотя обычно ИТ шникам стараются платить побольше чем рядовым сторудникам объеденяя ставки и т.д, ибо иначе в госструктурах спецов не удержать.
Какой бы ты ни был специалист, а больше чем начальнику не заплатят. Такие дела. А то, что начальники выбираются по географическому, а не профессиональному принципу, никому не секрет.
Ну последнее время всем работникам МВД платят президентскую надбавку в размере равном зарплате, так что умножаем на 2 все. А ЗП нынче у работника МВД 2000-4000 грн. Кроме того, ну можно же 2-3 зарплаты склеить и одного ИТ-шника нанять, я понимаю, что им на удаленку нельзя, аутсорсить нельзя, субподряд нельзя, сложно все, но это у МВД сложно, а вот у других госорганов, сайты которых так же лежали — все можно. Хотя соглачен, по большей части это вина руководства, выделяющего мизерные финансы, но из бюджета то финансы ого какие идут на эти сайы.
Да как не верифицируй, реферер-то всегда передаваться будет. По нему и заблочить прямо в iptables еще на подлете.
Все эти методы действуют если ресурс на самом дешевом шаред хостинге или админ заочник первого курса, да и то не по ИТ специальности.
Так что скрипты эти все для жураналистов и тех, кто их читает/слушает.
По просьбам, вопросам и обсуждениям в конце статьи внесены дополнения.
Sign up to leave a comment.

Articles