Статьи АнтиДДОС

Discussion in 'AntiDDos - АнтиДДОС' started by Fata1ex, 6 Jul 2009.

  1. Fata1ex

    Fata1ex Elder - Старейшина

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    Предлагаю в этой теме постить найденные или написанные вами небольшие статьи и заметки по данной теме.



    Защита от DDos. Простой, но эффективный скрипт

    Недавно озаботился поиском адекватного решения для защиты некоторых подконтрольных ресурсов от DDos атак.
    Первое что посоветовали — Cisco Guard. Но так как требовалось что то легкое и не столь дорогое, то решил посмотреть в сторону софтверных продуктов.
    После непродолжительного гугления наткнулся на небольшой скриптик (D)DoS Deflate

    Работает довольно просто — каждую минуту по крону запускается команда
    netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
    и выбираются все айпишники число соединений с которых превышает заданное в конфиге ограничени(по умолчанию 150).
    Время бана тоже настраивается в конфиге. Также можно выбрать с каким файрволом работать — iptables или apf(надстройка над iptables).

    Решение довольно очевидное, словесные описания проскакивали и до этого, но такой готовой реализации ранее не встречал.

    UPD: не забываем что этот скрипт в силу своей простоты не спасет от серьезных заказных атак, но большинство кулхацкеров остановит.
    (c)





    Борьба с DDOS и DOS на уровне nginx
    FreeBSD, сетевая Intel fxp, порт 100Мбит, polling, http accept-filter
    в sysctl
    Code:
    sysctl kern.maxfiles=90000
    sysctl kern.maxfilesperproc=80000
    sysctl net.inet.tcp.blackhole=2
    sysctl net.inet.udp.blackhole=1
    sysctl kern.polling.burst_max=1000
    sysctl kern.polling.each_burst=50
    sysctl kern.ipc.somaxconn=32768
    sysctl net.inet.tcp.msl=3000
    sysctl net.inet.tcp.maxtcptw=40960
    sysctl net.inet.tcp.nolocaltimewait=1
    sysctl net.inet.ip.portrange.first=1024
    sysctl net.inet.ip.portrange.last=65535
    sysctl net.inet.ip.portrange.randomized=0
    
    в nginx моменты
    Code:
    worker_processes 1;
    worker_rlimit_nofile 80000;
    events {
    worker_connections 50000;
    }
    
    server_tokens off;
    log_format IP ‘$remote_addr’;
    reset_timedout_connection on;
    
    listen xx.xx.xx.xx:80 default rcvbuf=8192 sndbuf=16384 backlog=32000 accept_filter=httpready;
    фильтрацию url например по критерию POST index.php?action=login с пустым реферером можно реализовать так
    Code:
    set $add 1;
    location /index.php {
    limit_except GET POST {
    deny all;
    }
    set $ban “”;
    if ($http_referer = “” ) {set $ban $ban$add;}
    if ($request_method = POST ) {set $ban $ban$add;}
    if ($query_string = “action=login” ){set $ban $ban$add;}
    if ($ban = 111 ) {
    access_log /var/log/nginx/ban IP;
    return 404;
    }
    proxy_pass http://127.0.0.1:8000; #тут живёт апач
    }
    
    Дальше резали на уровне pf - загружали в таблицу IP с которых приходило слишком
    много хитов. PF с таблицами работает очень быстро. Исходники парсера логов есть на
    http://www.comsys.com.ua/files.

    ну и по крону уже раз в минуту добавлять в ip table новые ip из лога

    25Мбитный DDoS, преимущесвенно режущийся ip, остатки проходят на nginx, который по критерию обучает ip и остатки проксирует на апач - LA 0, сайт работает.
    (c)




    Так же можно почитать статьи:

    FreeBSD для обслуживания 100-200 тысяч соединений
    Методы защиты от DDoS нападений
    Не так страшен DDoS, как его малюют
    DDOS - что делать. Если сервер только один - Linux с Apache.


    Не стал здесь приводить ввиду их объемности )
     
    #1 Fata1ex, 6 Jul 2009
    Last edited: 6 Jul 2009
    6 people like this.
  2. banana

    banana Member

    Joined:
    4 Mar 2009
    Messages:
    22
    Likes Received:
    72
    Reputations:
    18
    Как бороться с ламерами ддосерами.

    Значит, ваш сайт задосили. Вы себя херово чуствуете. Вы хотите убить ДДоСера который уничтожил ваш сайт. Не проблема!!

    Нам понадобится ...

    * Логи ддоса
    * мИРЦ // не обезательно
    * IRIS Sniffer
    * Пару сплойтов
    * Ну у мазги нах!


    И так, у вас есть логи. Скажем с них ты выдрал IPшники: 231.32.32.211, 4.5.6.7, 6.7.8.9, 12.13.14.15, 23.24.25.26. Окей. Не проблема. Теперь у нас есть 50/50 шанс того что эти машины были зомбированы с помощью любого бота типа пхатБот, ериксБот и другие кул-хацкерские боты.

    Значит нам прежде всего нужны сплойты для LSASS, PnP, DCOM135, DCASS . Их можно найти на секлабе - securitylab

    Прежде всего, мы берем эти IP и поочереди проверяем их на дырявость сплойтами. Если вам удалось войти в систему - считайте что Вы уже уничтожили пол-кулхакера. Теперь нам надо поставить rAdmin или любую другую тулузу remote administrating. Поставили, запустили и готово.

    Теперь вам надо подключится рАдмином к машине, и дождатся полного затишья на ней. Тоесть что бы там никого не было. После чего вызовите Task Manager и посмотрите на подозрительные проги типа ezkiyeq.exe , svcroot.exe, update001.exe, winupdt0.exe etc...

    Найдите этот файл. Скопируйте к себе и плюньте на ту тачку. Теперь вам надо будет протроянить самих себя. Вам нужен будет IRIS Sniffer. Запускайте сниффер, выставляйте снифф-фильтр на слова USER IRC SERVER NICK IDENT 6667 и активируйте сниффер. После чего запускайте трой и следите за сниффом. Он вам скажет что происходит - куда трой коннектится, на какой канал заходит.

    Впринципе этой инфы достаточно что бы отрапортавать ФБР, или ФСБ. Просто напишите им письмо.. После чего сеть пропадет.

    Для извратов, попробуйте подключится к серверу юзая мирку и зайти на тот канал. Если его mode не +m, то вам повезло smile.gif Главное изначально прикинутся ботом. Ждите комманд от ботовода. Когда он пошлет что то типа .login mylamepassword, набирите тоже самое и наберите .remove smile.gif
    . - место . может быть ! @ # $ % ^ & * ( ) ` etc ...

    Главное юзайте прокси. .remove уничтожит весь его ботнет (ботовода).

    Установка mod_evasive и mod_dosevasive

    # wget http://www.zdziarski.com/projects/mo..._1.10.1.tar.gz
    # tar -xzvf mod_evasive_1.10.1.tar.gz
    # cd mod_evasive

    # /usr/local/apache/bin/apxs -i -a -c mod_evasive.c
    # /etc/init.d/httpd restart


    Редактирование конфига апача

    # vi /usr/local/apache/conf/httpd.conf

    -------------------------------------------------
    <IfModule mod_evasive.c>
    DOSHashTableSize 3097
    DOSPageCount 2
    DOSSiteCount 50
    DOSPageInterval 1
    DOSSiteInterval 1
    DOSBlockingPeriod 10
    </IfModule>
    -------------------------------------------------


    Перезапуск вэбсервера

    # /etc/init.d/httpd restart


    Оптимизация конфига httpd.conf

    # vi /usr/local/apache/conf/httpd.conf

    исправить значения у оригинала

    MaxKeepAliveRequests 50 (100)
    KeepAliveTimeout 60 (30)

    после этого отредактировать значения

    Timeout
    KeepAliv
    MinSpareServers
    MaxSpareServers
    MaxClients

    Timeout луче поставить 15

    у кого APF можно поставить мини скрипт защиты от ддос
    # wget http://www.inetbase.com/scripts/ddos/install.sh
    # sh install.sh
    не забудте добавить его в крон
    кто не знает
    # crontab -e
    */5 * * * * /usr/local/ddos/ddos.sh >/dev/null 2>&1



    и наконец
    ручная блокировка )))
    поиск айпишек
    netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
    и их блок
    # iptables -I INPUT -s АЙПИАДРЕС -j DROP
    # service iptables save
    # service iptables restart

    и блок в APF
    # vi /etc/apf/deny_hosts.rules
    <Add the IPs at the end>

    # service apf restart

    P.S. большинство хостеров используют APF
    кому интересно напишу как установить

    для апача можно еше использовать mod_limitipconn
    http://dominia.org/djao/limitipconn.html
    но с виртуалхостами у него тяжко


    (c) nulled.ws
     
    #2 banana, 7 Jul 2009
    Last edited by a moderator: 7 Jul 2009
  3. it's my

    it's my Banned

    Joined:
    29 Sep 2007
    Messages:
    335
    Likes Received:
    347
    Reputations:
    36
    http://dd0s.blogspot.com/
    http://avy.ru/programs/antiddos/ <- ОГРАНИЧЕНИЕ ВЫДАЧИ СТРАНИЦ
     
    #3 it's my, 8 Jul 2009
    Last edited: 8 Jul 2009
  4. -Gory King-

    -Gory King- Banned

    Joined:
    26 Jun 2009
    Messages:
    247
    Likes Received:
    23
    Reputations:
    15
    Защит от Атак DOS

    Атаки DoS - это бедствие нынешнего виртуального мира, приводящие в хаос
    мощные вычислительные системы. Борьба с ними усложняется еще и тем, что
    все эти атаки подчас невозможно отразить иначе, кроме как закрытием всех се-
    тевых соединений атакованного хоста, что очень часто неприемлемо по финан-
    совым соображениям. Тем не менее, отмечается, что иногда выгоднее уве-
    личить мощности компьютерной системы, подверженной атакам DoS, чем за-
    крыть к ней доступ, скажем, остановить работу Web-сервера организации.
    Расчет здесь строится на истощение ресурсов атакующей стороны, которой про-
    сто не удастся превзойти ресурсы Web-сервера. Другое важное средство защи-
    ты - переход на современные операционные системы и программное обеспече-
    ние, которое «осведомлено» о последних изобретениях по части атак DoS.
    Однако все это может не устоять перед атакой DDoS - хакер, овладевший таки-
    ми средствами, может стать воистину всемогущим, поскольку нет такого серве-
    ра, который мог бы устоять перед атакой, идущей со всех сторон земного шара с неопределенно большого числа комьютеров-зомби.
    Вместо настройки системы защиты сервера, усиления ресурсов подверженного
    атакам компьютера, В ответ на
    атаку DDoS, использующей сотни и тысячи «зомби», Foundstone предлагает са-
    мому перейти в наступление и заглушить работу «зомби» встречной атакой.
    Для выполнения такой контратаки сотрудник фирма Foundstone, разработала и предоставила всем желающим возможность
    загрузить на сайте http://www.foundstone.com бесплатную утилиту DDoSPing 2.0,
    которая выполняет тестирование компьютера на предмет наличия в нем програм-
    мы-зомби. Далее работу выявленного зомби можно заглушить, воспользовавшись
    программой флудера UDP, «Флудер UDP» .Другой, не менее популярной утилитой для выявления компьютеров-зомби
    является программа Zombie Zapper (http://razor.bindview.com/tools/
    ZombieZapper__form.shtml), которая как раз и является творцом атаки WinTrinoo.
    Однако в отличие от DDoSPing 2.0, программа Zombie Zapper не позволяет вы-
    полнять настройку тестирования хостов и не снабжена такими удобными сред-
    ствами наблюдения за ходом проверки, как DDoSPing 2.O.
     
  5. Fata1ex

    Fata1ex Elder - Старейшина

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    Огромная просьба указывать копирайты (-Gory King-) и не выкладывать рекламу (Fristail). Не стоит тут постить о сервисах, предоставляющих услуги защиты от ддоса!
     
    #5 Fata1ex, 8 Jul 2009
    Last edited: 8 Jul 2009
  6. Andres

    Andres Elder - Старейшина

    Joined:
    4 Apr 2008
    Messages:
    320
    Likes Received:
    119
    Reputations:
    0
    DDOS-атаки и методы борьбы с ними.

    Данная статья писалась с целью объяснить простому вебмастеру, как происходит DDOS, и как с ним бороться.

    Определение: DDoS атака - сокращение от «Distributed Denial Of Service Attack»

    При помощи этих атак временно падали крупнейшие и известнейшие компании, такие как Yahoo!, eBay, Buy.com, Amazon.com, CNN.com и целый ряд других ...

    Я не буду жевать сопли и напишу то, о чем как правило никто не никогда не пишет в статьях про DDoS.

    В основном то что мы видим в сети это поверхностные описания удачных атак, или вопли пострадавших от них.

    1) Цель и принцип DDoS

    # Цель DDoS вывести обьект атаки из рабочего состояния что может повлечь за собой большие финансовые потери во время дауна или расходы на оборудование для защиты от него и з/п специалистов. Любой вебмастер понимает, что даун его сайтов на 2-3 часа нанесет серьезный вред бизнесу, а если на неделю, то ресурс скорее всего придется поднимать с нуля снова . Я вообще не говорю о владельцах платных сайтов и серьезных Е-комерс ресурсов, чьи убытки могут составлять десятки тысяч долларов в день.

    # Технология DDoS атак подразумевает метод грубой силы - вы тем или иным способом пытаетесь "забить" канал, открывая максимально возможное количество соединений на тот или иной сервис или отправки огромного кол-ва информации которое сервер не в состоянии обработать. все это ведет к потере скорости или полной остановке (зависанию) атакуемого ресурса.

    2) DDoS - это Distributed атака то есть распространенная, когда вас атакует не один сервер от которого можно легко закрыться фаирволом, а сразу тысячи или десятки тыс., иногда могут быть сотни тысяч и миллионы атакующих ботов ( многие называют их зомби )

    Что есть зомби?

    Зомби - это зараженный программой (или сломанный) компьютер или сервер, который будет выполнять команды управляющего сервера.

    Как компьютер становится зомби?

    Зомби создаются как правило используя эксплоиты для ОС. Заражая машины через веб браузер при посещении сайтов, при получении почты, или через установку программного обеспечения с установленными в него троянами.

    Как много может быть зомби?

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

    В зависимости от совершенства кода на самом зомби они могут выполнять разные типы запросов на сервера, иногда делая себя совсем не видимыми для фаирвола или сложно отличимыми от реального серфера, что разумеется усложняет борьбу с ними.

    Типы атак я описывать не стану они очень сильно варьируются от старинных типа пинг и syn флуда до новых разработанных персонально для новой атаки.

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

    В общем довольно грустная история с DDOS атаками. Многие хостеры просто выключают сервера в случае обнаружения атаки. Это демонстрирует то, что они не могут реально ничего с ними поделать.

    Борьба с DDoS

    Это самый наверное интересный кусочек, а так же самый сложный.

    Самое сложное в том что борьба с DDoS в 98 % случаев ложится на плечи вебмастера, так как провайдеры в большинстве своем просто бьют болт и стандартная схема у них, это поставить на нуль роутинг ваши ip и таким образом для них проблема DDoS решена. Вебмастера такое решение не очень радует, так как его сайты при этом ложатся вообще.

    Конечно, есть продвинутые провайдеры, которые могут посодейтвовать в борьбе, но это редкость и опять же наджо будет им платить пятизначные цифры что бы иметь какое то влияние на них. Так что остается решать проблемы самому, о том как их решать я и расскажу вам.

    1) На уровне сервера. Сервер должен иметь удаленный ребут и вывод консоли сервера на другой ip адрес по ssh протоколу. Это позволит вам быстро перезагружать сервер, что бывает более чем нужно в самом начале DDOS атаки. Вывод консоли позволит полностью выключить ssh на сервере. Это необходимо потому, что его тоже очень часто досят вместе например с вебсервером, что бы усложнить работу админа сервера или сделать сервер вовсе не доступным для администрации.

    2) На уровне сервисов сервера. Секюрити аудит – must be, то-есть, по-русски, должен быть сделан, все сервисы машины должны быть отпатчены от всех известных и не известных дырок. О тюнинге веб сервера под DDoS атаками можно писать целую книгу, поэтому я не буду лишать себя куска хлеба. :)

    3) На уровне сети. Для начала блокируются все то, что может дать больше инфы атакующему о вас. Блокируется пинг и трейс. Сервер убирается под NAT. Маскируется его ip как только это возможно. Это уже очень професиональный способ защиты сервера путем прятания его ip адреса. Применяется в многих платных системах защиты от DDOS.

    4) На уровне провайдера. Через анализ пакетов или через блокирование ip адресов.

    5) На уровне железа. Применяя хардварные решения от ведущих фирм производителей типа Сisco, 3com, Nortel и тп. Данные решения борьбы на аппаратном уровне потребуют больших финансовых затрат от 10к и выше. Комплексные решения обойдутся около 50-80 тыс долларов. Так же сюда можно отнести производителей 3rd party оборудования для хардварной защиты. Большая их часть действует по принципу анализа пакетов и дальнейшей их фильтрации где нужный пакеты проходят к серверу, а ненужные фильтруются и сегменты сети откуда они пришли блокируются роутером или фаирволом. Более продвинутые системы умеют прятать ваш сервер полностью и в сети никогда не встретится его ip адрес и его прямое сканирование и DDoS атака невозможны.

    6) На уровне админов вашего сервера. Используя логи фаирвола сервера вы видите кучу ip адресов откуда на вас идут атаки. Вы можете анализировать его и искать уязвимые рабочие станции среди них, из 10000 машин 1-3 обязательно окажутся доступными для того что бы по ним полазить. Вы можете найти самого зомбика который осуществляет атаку на вас. Далее его можно попытаться поковырять, чтобы найти кто пускает атаки на вас и если повезет найти контрольный сервер и как вариант контратаковать его. Хотя такое будет не возможно если DDOS атака не контролируемая, а например вирусная. Напомню, это когда вас атакуют рабочие станции которые были заражены предварительно и их действия не контролируются вручную, они не очень опасны так как если вы смените, например, ip и домен, то такая атака умрет сама.

    7) Комбинированное использование всех систем.

    В заключение хочу сказать что всё, что тут написано не покрывает и 80 % всех методов борьбы с DDOS и на эту тему работают очень много людей во всем мире. Так что я в этой небольшой статье не смогу описать всего, даже если очень захочу. Но, надеюсь, она вам немного поможет для понятия азов того, как необходимо бороться с DDoS атаками.

    (с) magic
     
  7. [Dead]Demon

    [Dead]Demon Member

    Joined:
    7 Oct 2009
    Messages:
    60
    Likes Received:
    8
    Reputations:
    5
    Устоять любой ценой: методы борьбы с DoS/DDoS-атаками

    Твое утро начинается с чтения багрепортов и анализа логов. Ты ежедневно обновляешь ПО и ежечасно дорабатываешь правила брандмауэра. Snort твой лучший друг, а Zabbix - невидимый помощник. Ты построил настоящий бастион, к которому не подобраться ни с одной стороны. Но! Ты совершенно беззащитен против самой коварной и подлой атаки на свете - DDoS.

    Трудно сказать, когда впервые появился термин DoS-атака. Специалисты говорят о 1996-м, попутно намекая, что до широких масс этот тип атак "дошел" только в 1999 году, когда один за другим попадали web-сайты Amazon, Yahoo, CNN и eBay. Еще раньше DoS-эффект использовали для тестирования устойчивости систем и каналов связи. А если копнуть глубже и воспользоваться термином DoS для обозначения явления, то становится ясно, что он существовал всегда, со времен первых мейнфреймов. Вот только задумываться о нем как о средстве устрашения начали гораздо позже.

    Говоря простым языком, DoS-атаки - это некоторый вид злонамеренной деятельности, ставящей своей целью довести компьютерную систему до такого состояния, когда она не сможет обслуживать правомерных пользователей или правильно выполнять возложенные на нее функции. К состоянию "отказ в обслуживании" обычно приводят ошибки в ПО или чрезмерная нагрузка на сетевой канал или систему в целом. В результате чего ПО, либо вся операционная система машины, "падает" или же оказывается в "зацикленном" состоянии. А это грозит простоями, потерей посетителей/клиентов и убытками.
    Анатомия DoS-атак

    DoS-атаки подразделяются на локальные и удаленные. К локальным относятся различные эксплойты, форк-бомбы и программы, открывающие по миллиону файлов или запускающие некий циклический алгоритм, который сжирает память и процессорные ресурсы. На всем этом мы останавливаться не будем. А вот удаленные DoS-атаки рассмотрим подробнее. Они делятся на два вида:

    1. Удаленная эксплуатация ошибок в ПО с целью привести его в нерабочее состояние.
    2. Flood - посылка на адрес жертвы огромного количества бессмысленных (реже – осмысленных) пакетов. Целью флуда может быть канал связи или ресурсы машины. В первом случае поток пакетов занимает весь пропускной канал и не дает атакуемой машине возможность обрабатывать легальные запросы. Во втором - ресурсы машины захватываются с помощью многократного и очень частого обращения к какому-либо сервису, выполняющему сложную, ресурсоемкую операцию. Это может быть, например, длительное обращение к одному из активных компонентов (скрипту) web-сервера. Сервер тратит все ресурсы машины на обработку запросов атакующего, а пользователям приходится ждать.

    В традиционном исполнении (один атакующий - одна жертва) сейчас остается эффективным только первый вид атак. Классический флуд бесполезен. Просто потому что при сегодняшней ширине канала серверов, уровне вычислительных мощностей и повсеместном использовании различных анти-DoS приемов в ПО (например, задержки при многократном выполнении одних и тех же действий одним клиентом), атакующий превращается в надоедливого комара, не способного нанести какой бы то ни было ущерб. Но если этих комаров наберутся сотни, тысячи или даже сотни тысяч, они легко положат сервер на лопатки. Толпа - страшная сила не только в жизни, но и в компьютерном мире. Распределенная атака типа "отказ в обслуживании" (DDoS), обычно осуществляемая с помощью множества зомбифицированных хостов, может отрезать от внешнего мира даже самый стойкий сервер, и единственная эффективная защита - организация распределенной системы серверов (но это по карману далеко не всем, привет Google).
    Методы борьбы

    Опасность большинства DDoS-атак – в их абсолютной прозрачности и "нормальности". Ведь если ошибка в ПО всегда может быть исправлена, то полное сжирание ресурсов - явление почти обыденное. С ними сталкиваются многие администраторы, когда ресурсов машины (ширины канала) становится недостаточно, или web-сайт подвергается слэшдот-эффекту (twitter.com стал недоступен уже через несколько минут после первого известия о смерти Майкла Джексона). И если резать трафик и ресурсы для всех подряд, то спасешься от DDoS, но потеряешь добрую половину клиентов.

    Выхода из этой ситуации фактически нет, однако последствия DDoS-атак и их эффективность можно существенно снизить за счет правильной настройки маршрутизатора, брандмауэра и постоянного анализа аномалий в сетевом трафике. В следующей части статьи мы последовательно рассмотрим:

    * способы распознавания начинающейся DDoS-атаки;
    * методы борьбы с конкретными типами DDoS-атак;
    * универсальные советы, которые помогут подготовиться к DoS-атаке и снизить ее эффективность.

    В самом конце будет дан ответ на вопрос: что делать, когда началась DDoS-атака.
    Борьба с flood-атаками

    Итак, существует два типа DoS/DDoS-атак, и наиболее распространенная из них основана на идее флуда, то есть заваливания жертвы огромным количеством пакетов. Флуд бывает разным: ICMP-флуд, SYN-флуд, UDP-флуд и HTTP-флуд. Современные DoS-боты могут использовать все эти виды атак одновременно, поэтому следует заранее позаботиться об адекватной защите от каждой из них.
    1. ICMP-флуд.

    Очень примитивный метод забивания полосы пропускания и создания нагрузок на сетевой стек через монотонную посылку запросов ICMP ECHO (пинг). Легко обнаруживается с помощью анализа потоков трафика в обе стороны: во время атаки типа ICMP-флуд они практически идентичны. Почти безболезненный способ абсолютной защиты основан на отключении ответов на запросы ICMP ECHO:
    Code:
    # sysctl net.ipv4.icmp_echo_ignore_all=1
    Или с помощью брандмауэра:
    Code:
    # iptables -A INPUT -p icmp -j DROP --icmp-type 8
    2. SYN-флуд.

    Один из распространенных способов не только забить канал связи, но и ввести сетевой стек операционной системы в такое состояние, когда он уже не сможет принимать новые запросы на подключение. Основан на попытке инициализации большого числа одновременных TCP-соединений через посылку SYN-пакета с несуществующим обратным адресом. После нескольких попыток отослать ответный ACK-пакет на недоступный адрес большинство операционок ставят неустановленное соединение в очередь. И только после n-ой попытки закрывают соединение. Так как поток ACK-пакетов очень велик, вскоре очередь оказывается заполненной, и ядро дает отказ на попытки открыть новое соединение. Наиболее умные DoS-боты еще и анализируют систему перед началом атаки, чтобы слать запросы только на открытые жизненно важные порты. Идентифицировать такую атаку просто: достаточно попробовать подключиться к одному из сервисов. Оборонительные мероприятия обычно включают в себя:

    Увеличение очереди "полуоткрытых" TCP-соединений:
    Code:
    # sysctl -w net.ipv4.tcp_max_syn_backlog=1024
    Уменьшение времени удержания "полуоткрытых" соединений:

    Code:
    # sysctl -w net.ipv4.tcp_synack_retries=1
    Включение механизма TCP syncookies:
    Code:
    # sysctl -w net.ipv4.tcp_syncookies=1
    Ограничение максимального числа "полуоткрытых" соединений с одного IP к конкретному порту:
    Code:
    # iptables -I INPUT -p tcp --syn --dport 80 -m iplimit --iplimit-above 10 -j DROP
    3. UDP-флуд.

    Типичный метод захламления полосы пропускания. Основан на бесконечной посылке UDP-пакетов на порты различных UDP-сервисов. Легко устраняется за счет отрезания таких сервисов от внешнего мира и установки лимита на количество соединений в единицу времени к DNS-серверу на стороне шлюза:
    Code:
    # iptables -I INPUT -p udp --dport 53 -j DROP -m iplimit --iplimit-above 1
    4. HTTP-флуд.

    Один из самых распространенных на сегодняшний день способов флуда. Основан на бесконечной посылке HTTP-сообщений GET на 80-ый порт с целью загрузить web-сервер настолько, чтобы он оказался не в состоянии обрабатывать все остальные запросы. Часто целью флуда становится не корень web-сервера, а один из скриптов, выполняющих ресурсоемкие задачи или работающий с базой данных. В любом случае, индикатором начавшейся атаки будет служить аномально быстрый рост логов web-сервера.

    Методы борьбы с HTTP-флудом включают в себя тюнинг web-сервера и базы данных с целью снизить эффект от атаки, а также отсеивание DoS-ботов с помощью различных приемов. Во-первых, следует увеличить максимальное число коннектов к базе данных одновременно. Во-вторых, установить перед web-сервером Apache легкий и производительный nginx – он будет кэшировать запросы и отдавать статику. Это решение из списка "must have", которое не только снизит эффект DoS-атак, но и позволит серверу выдержать огромные нагрузки. Небольшой пример:
    Code:
    # vi /etc/nginx/nginx.conf
    # Увеличиваем максимальное количество используемых файлов
    worker_rlimit_nofile 80000;
    events {
    # Увеличиваем максимальное количество соединений
    worker_connections 65536;
    # Использовать эффективный метод epoll для обработки соединений
    use epoll;
    }
    http {
    gzip off;
    # Отключаем таймаут на закрытие keep-alive соединений
    keepalive_timeout 0;
    # Не отдавать версию nginx в заголовке ответа
    server_tokens off;
    # Сбрасывать соединение по таймауту
    reset_timedout_connection on;
    }
    # Стандартные настройки для работы в качестве прокси
    server {
    listen 111.111.111.111 default deferred;
    server_name host.com www.host.com;
    log_format IP $remote_addr;
    location / {
    proxy_pass http://127.0.0.1/;
    }
    location ~* \.(jpeg|jpg|gif|png|css|js|pdf|txt|tar)$ {
    root /home/www/host.com/httpdocs;
    }
    }
    
    В случае необходимости можно задействовать nginx-модуль ngx_http_limit_req_module, ограничивающий количество одновременных подключений с одного адреса (http://sysoev.ru/nginx/docs/http/ngx_http_limit_req_module.html). Ресурсоемкие скрипты можно защитить от ботов с помощью задержек, кнопок "Нажми меня", выставления кукисов и других приемов, направленных на проверку "человечности".
    Универсальные советы

    Чтобы не попасть в безвыходное положение во время обрушения DDoS-шторма на системы, необходимо тщательным образом подготовить их к такой ситуации:

    1. Все сервера, имеющие прямой доступ во внешнюю сеть, должны быть подготовлены к простому и быстрому удаленному ребуту (sshd спасет отца русской демократии). Большим плюсом будет наличие второго, административного, сетевого интерфейса, через который можно получить доступ к серверу в случае забитости основного канала.
    2. ПО, используемое на сервере, всегда должно находиться в актуальном состоянии. Все дырки - пропатчены, обновления установлены (простой, как сапог, совет, которому многие не следуют). Это оградит тебя от DoS-атак, эксплуатирующих баги в сервисах.
    3. Все слушающие сетевые сервисы, предназначенные для административного использования, должны быть спрятаны брандмауэром ото всех, кто не должен иметь к ним доступ. Тогда атакующий не сможет использовать их для проведения DoS-атаки или брутфорса.
    4. На подходах к серверу (ближайшем маршрутизаторе) должна быть установлена система анализа трафика (NetFlow в помощь), которая позволит своевременно узнать о начинающейся атаке и вовремя принять меры по ее предотвращению.

    Добавь в /etc/sysctl.conf следующие строки:
    Code:
    # vi /etc/sysctl.conf
    # Защита от спуфинга
    net.ipv4.conf.default.rp_filter = 1
    # Проверять TCP-соединение каждую минуту. Если на другой стороне - легальная машина, она сразу ответит. Дефолтовое значение - 2 часа.
    net.ipv4.tcp_keepalive_time = 60
    # Повторить пробу через десять секунд
    net.ipv4.tcp_keepalive_intvl = 10
    # Количество проверок перед закрытием соединения
    net.ipv4.tcp_keepalive_probes = 5
    
    Следует отметить, что все приемы, приведенные в прошлом и этом разделах, направлены на снижение эффективности DDoS-атак, ставящих своей целью израсходовать ресурсы машины. От флуда, забивающего канал мусором, защититься практически невозможно, и единственно правильный, но не всегда осуществимый способ борьбы заключается в том, чтобы "лишить атаку смысла". Если ты заимеешь в свое распоряжение действительно широкий канал, который легко пропустит трафик небольшого ботнета, считай, что от 90% атак твой сервер защищен. Есть более изощренный способ защиты. Он основан на организации распределенной вычислительной сети, включающей в себя множество дублирующих серверов, которые подключены к разным магистральным каналам. Когда вычислительные мощности или пропускная способность канала заканчиваются, все новые клиенты перенаправляются на другой сервер (или же постепенно "размазываются" по серверам по принципу round-robin). Это невероятно дорогая, но очень стойкая структура, завалить которую практически нереально.

    Другое более-менее эффективное решение заключается в покупке дорогостоящих хардварных систем Cisco Traffic Anomaly Detector и Cisco Guard. Работая в связке, они могут подавить начинающуюся атаку, но, как и большинство других решений, основанных на обучении и анализе состояний, дают сбои. Поэтому следует хорошенько подумать перед тем, как выбивать из начальства десятки тысячи долларов на такую защиту.
    Кажется, началось. Что делать?

    Перед непосредственным началом атаки боты "разогреваются", постепенно наращивая поток пакетов на атакуемую машину. Важно поймать момент и начать активные действия. Поможет в этом постоянное наблюдение за маршрутизатором, подключенным к внешней сети (анализ графиков NetFlow). На сервере-жертве определить начало атаки можно подручными средствами.

    Наличие SYN-флуда устанавливается легко - через подсчет числа "полуоткрытых" TCP-соединений:
    Code:
    # netstat -na | grep ":80\ " | grep SYN_RCVD
    В обычной ситуации их не должно быть совсем (или очень небольшое количество: максимум 1-3). Если это не так - ты атакован, срочно переходи к дропанью атакующих.

    С HTTP-флудом несколько сложнее. Для начала нужно подсчитать количество процессов Apache и количество коннектов на 80-ый порт (HTTP-флуд):
    Code:
    # ps aux | grep httpd | wc -l
    # netstat -na | grep ":80\ " | wc -l
    
    Значения, в несколько раз превышающие среднестатистические, дают основания задуматься. Далее следует просмотреть список IP-адресов, с которых идут запросы на подключение:
    Code:
    # netstat -na | grep ":80\ " | sort | uniq -c | sort -nr | less
    Однозначно идентифицировать DoS-атаку нельзя, можно лишь подтвердить свои догадки о наличии таковой, если один адрес повторяется в списке слишком много раз (да и то, это может говорить о посетителях, сидящих за NAT'ом). Дополнительным подтверждением будет анализ пакетов с помощью tcpdump:
    Code:
    # tcpdump -n -i eth0 -s 0 -w output.txt dst port 80 and host IP-сервера
    Показателем служит большой поток однообразных (и не содержащих полезной информации) пакетов от разных IP, направленных на один порт/сервис (например, корень web-сервера или определенный cgi-скрипт).

    Окончательно определившись, начинаем дропать неугодных по IP-адресам (будет гораздо больше эффекта, если ты сделаешь это на маршрутизаторе):
    Code:
    # iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --destination-port http -j DROP
    Или сразу по подсетям:
    Code:
    # iptables -A INPUT -s xxx.xxx.0.0/16 -p tcp --destination-port http -j DROP
    Это даст тебе некоторую фору (совсем маленькую; зачастую IP-адрес источника спуфится), которую ты должен использовать для того, чтобы обратиться к провайдеру/хостеру (с приложенными к сообщению логами web-сервера, ядра, брандмауэра и списком выявленных тобой IP-адресов). Большинство из них, конечно, проигнорируют это сообщение (а хостинги с оплатой трафика еще и порадуются - DoS-атака принесет им прибыль) или просто отключат твой сервер. Но в любом случае это следует сделать обязательно, – эффективная защита от DDoS возможна только на магистральных каналах. В одиночку ты справишься с мелкими нападками, направленными на истощение ресурсов сервера, но окажешься беззащитным перед более-менее серьезным DDoS'ом.
    Борьба с DDoS во FreeBSD

    Уменьшаем время ожидания ответного пакета на запрос SYN-ACK (защита от SYN-флуда):
    Code:
    # sysctl net.inet.tcp.msl=7500
    Превращаем сервер в черную дыру. Так ядро не будет слать ответные пакеты при попытке подключиться к незанятым портам (снижает нагрузку на машину во время DDoS'а на случайные порты):
    Code:
    # sysctl net.inet.tcp.blackhole=2
    # sysctl net.inet.udp.blackhole=1
    
    Ограничиваем число ответов на ICMP-сообщения 50-ю в секунду (защита от ICMP-флуда):
    Code:
    # sysctl net.inet.icmp.icmplim=50
    
    Увеличиваем максимальное количество подключений к серверу (защита от всех видов DDoS):
    Code:
    # sysctl kern.ipc.somaxconn=32768
    
    Включаем DEVICE_POLLING - самостоятельный опрос сетевого драйвера ядром на высоких нагрузках (существенно снижает нагрузку на систему во время DDoS'а):

    1. Пересобираем ядро с опцией "options DEVICE_POLLING";
    2. Активируем механизм поллинга: "sysctl kern.polling.enable=1";
    3. Добавляем запись "kern.polling.enable=1" в /etc/sysctl.conf.

    Наивный Internet

    Во времена своего рассвета DoS-атаки были настоящей катастрофой для серверов и обычных рабочих станций. Web-сайт можно было легко завалить с помощью одного-единственного хоста, реализующего атаку типа Smurf. Рабочие станции с установленной ОС Windows падали, как доминошки, от атак типа Ping of Death, Land, WinNuke. Сегодня всего этого не стоит опасаться.
    Крупнейшие ботнеты
    Code:
    Kraken - 400 тысяч компьютеров.
    Srizbi - 315 тысяч компьютеров.
    Bobax - 185 тысяч компьютеров.
    Rustock - 150 тысяч компьютеров.
    Storm - 100 тысяч компьютеров.
    Psybot - 100 тысяч ADSL-маршрутизаторов, основанных на Linux.
    Ботнет BBC - 22 тысячи компьютеров. Экспериментальный ботнет, созданный компанией BBC.
    След в истории
    
    1997 год - DDoS-атака на web-сайт Microsoft. Один день молчания.
    1999 год – "вне зоны действия" оказались web-сайты Yahoo, CNN, eBay и др.
    Октябрь 2002 - атака на корневые DNS-серверы интернета. На некоторое время были выведены из строя 7 из 13 серверов.
    21 февраля 2003 года - DDoS-нападение на LiveJournal.com. Два дня сервис находился в парализованном состоянии, лишь иногда подавая признаки жизни.
    Интеллектуальные системы

    Интересную альтернативу решениям Cisco выпускает компания Reactive Networks (www.reactivenetworks.com). Их продукт под названием FloodGuard представляет собой аппаратный комплекс, состоящий из детекторов и исполнительных модулей. Детекторы, установленные на брандмауэрах, маршрутизаторах и свитчах, постоянно мониторят трафик и создают его профиль на основе таких параметров, как объем пакетов, источник, направление, тип и т.д. В случае возникновения аномалий детектор посылает все подробности о произошедшем исполнительным модулям, располагающимся на маршрутизаторах в разных сегментах сети. Получив сообщение от детектора, исполнительные модули начинают действовать: они отыскивают паразитный трафик в проходящих пакетах и, в случае удачи, оповещают об этом предыдущие по ходу трафика модули и посылают им инструкции по активации фильтров на маршрутизаторах. В результате, перед потоком флуд-трафика должен образоваться заслон, который будет быстро перемещаться в сторону его источника.

    Дата: 14.10.2009 Автор: Евгений Зобнин
     
    #7 [Dead]Demon, 22 Nov 2009
    Last edited by a moderator: 22 Nov 2009
    2 people like this.
  8. Root-access

    Root-access Elder - Старейшина

    Joined:
    18 Jun 2008
    Messages:
    193
    Likes Received:
    195
    Reputations:
    91
    Одним из самых полезных инструментов для борьбы с ддосом является сниффер tcpdump. В этом топике эта тема не раскрыта, поэтому советую почитать статью небольшую статью про Anti-DDoS здесь: www.securitylab.ru/analytics/216251.php
     
    1 person likes this.
  9. c0n Difesa

    c0n Difesa Member

    Joined:
    1 Jan 2009
    Messages:
    133
    Likes Received:
    66
    Reputations:
    18
    Строим кластерную систему защиты от DDoS.

    Попытаюсь вкратце описать схему решения комплексной защиты от разных типов DDoS атак высокой интенсивности. Подобное решение успешно протестировано и функционирует на сервисе stop-ddos.net
    Схема основывается на отделении системы защиты (фронтенда) от сервера приложений (бэкенда).

    Существует 3 основных типа DDoS атак:

    атака, направленная на переполнение ресурсов канала в интернет;
    атака, направленная на превышение максимального количества одновременных соединений сервера (SYN флуд);
    атака, направленная на исчерпание процессорных мощностей сервера (частое запрашивание страниц — HTTP флуд).

    Решение должно обеспечивать защиту от каждого типа атаки.

    Рисунок описываемой схемы находится в конце статьи.


    Сетевой флуд

    На сегодняшний день наиболее эффективным средством борьбы с обычным сетевым флудом является широкий канал. Канала в 10Gbps достаточно для отражения большинства атак этого типа.

    Для того чтобы лишний раз не нагружать оборудование во время такой атаки, отсеиваем лишние пакеты на наши адреса. Например, защищаемый нами сервис живет на 80-м порту TCP. В таком случае пакеты с destination port отличным от 80 можно смело stateless фильтровать. Для этого вполне подойдет роутер уровня CISCO 7600.
    Однако не забываем о резервном канале, шириной хотя бы 1Gbps.


    SYN-флуд

    От SYN флуда защищаемся с помощью statefull файрволов (SFFW).

    В идеале — аппаратный файрвол (например, Juniper SRX 5800). В зависимости от предполагаемой мощности атаки подбирается нужное количество файрволов. На роутере, стоящем на входе нашей защиты, создается маршрут защищаемой нами сети (на схеме это 2.1.1.0/24) с next-hop адресом каждого SFFW.

    Каждый SFFW имеет статический роут сети 1.1.1.0 на следующий роутер. На нем балансируется нагрузка между нодами последнего уровня защиты, являющие собой сервера с UNIX системой.
    В данном случае удобно использовать протокол динамической маршрутизации BGP (при выходе одной ноды из строя нагрузка автоматически распределится между рабочими нодами). Таким образом, каждый сервер анонсирует роутеру маршрут к сети 1.1.1.0 с next-hop self.


    HTTP-флуд

    Пакеты, дошедшие до данного уровня защиты, попадают на реверс-прокси. Это должен быть прокси-сервер, способный отличить бота от настоящего клиента. Например, nginx с анализатором логов, количества одновременных соединений с адреса в комбинации с любыми другими методами придуманными или найденными Вами. Примеры таких решений уже публиковались на хабре.
    На прокси-серверах настраиваем policy based routing как показано в примере. Это избавит запросы на бэкенд от вторичного прохождения через statefull firewall.

    Теперь о бэкенде. Адрес, на который приходят запросы от фронтенда, должен отличатся от адреса, через который осуществляется управление сервером. В случае засвечивания management адреса (к примеру, письмом сгенерированным приложением), всегда можно выбросить management адрес в блэкхол и это не повлияет на работу приложения.
    В реальности нет смысла в использовании такого количества роутеров как показано на схеме. Вместо этого рациональней использовать одно устройство в качестве роутера с несколькими таблицами маршрутизации (VRF, routing instances) или несколькими логическими роутерами.
    Аппаратные stateful файрволы также можно исключить из данной схемы, а вместо них на прокси-серверах использовать PF в режиме SYN Proxy (PF в этом режиме показывает наилучшую производительность на родной OpenBSD, в случае Linux лучше вообще отказаться от PF, и просто протюнинговать sysctl нужным образом). Однако, количество серверов в этом случае придется увеличить.

    Почта

    Входящую почту выгоднее всего направить на гугловые МХ (пусть кто-то попробует их заддосить :) ), а потом забирать фетчмейлом обратно на сервер. DNS тоже лучше всего держать не у себя — крупные зарубежные регистраторы предоставляют достаточно отказоустойчивые кластера в качестве NS для купленных доменов. Также, за отдельную плату, можно разместить свой домен на их NS серверах.

    [​IMG]

    (c) http://habrahabr.ru/blogs/infosecurity/78145/​
     
  10. MAQUEEN

    MAQUEEN RadioActivity

    Joined:
    27 Sep 2008
    Messages:
    422
    Likes Received:
    126
    Reputations:
    32
    Как уберечься от DDoS-атак?



    В один не самый прекрасный день любой из деловых сайтов может подвергнуться хакерской атаке, предпринятой с далеко не благими намерениями. Так например, 19 ноября ОАО “Центр развития экономики”, имеющее семилетий опыт ведения электронных торгов и более известное под именем B2B-Center, довело до сведения пользователей своей системы электронной торговли B2B-Center информацию о том, что на серверы этой системы производится мощная DDoS-атака, вследствие чего возможно увеличение времени отклика данной системы на действия пользователей.

    В ОАО предполагают, что цель хакеров — дезорганизовать работу системы электронной торговли B2B-Center и нанести компании экономический ущерб. “В течение последних нескольких дней наша система презентуется в государственных органах и на специализированной выставке, поэтому есть основания полагать, что заказчиками данной атаки могут выступать конкуренты компании, которые не брезгуют незаконными способами борьбы за долю соответствующего рынка, — утверждает пресс-служба “Центра развития экономики”. — Данная ситуация не представляет угрозы для функциональности системы и проведения торговых процедур. Тем не менее, специалисты B2B-Center проводят оперативные мероприятия по установке лиц, причастных к организации хакерской атаки, а также предпринимают действия необходимые для стабилизации работы системы”.

    На кого нацелены кибер-атаки?


    Такого рода подозрения не лишены оснований, ведь против случайно выбранных Web-ресурсов DDoS-атаки не организуются. Более того, в последнее время много разговоров ведется о так называемых кибервойнах, к которым якобы уже сейчас готовятся 120 стран мира. Так может, на торговой системе B2B-Center спецслужбы испытывают новое кибероружие?

    “Безусловно DDoS-атака, как метод, входит в арсенал кибервойны, — говорит ведущий специалист McAfee Алексей Чередниченко. — Не секрет, что данные атаки используются не только в конкурентной борьбе. Порой они заставляют замолчать политический голос или принимают формы ответных мер против правительственных мнений или правил. И такие акции стоят ближе к военным действиям, чем вывод из строя торговой системы, во всяком случае, до тех пор, пока на ней не базируется критическая масса экономически важных для страны процессов. В качестве примеров можно привести политически мотивированную атаку, чтобы заставить замолчать грузинский activist6 и угрозы против австралийского правительства. Но в данном случае совершенно очевидно, что это никакое не испытание, DDoS-атаки — метод давно испытанный и довольно совершенный. Он широко применяется киберпреступниками по всему миру”.

    “Да, DDoS-атаки уже давно стали неотъемлемой частью нашей жизни, — соглашается с ним руководитель группы технических специалистов Symantec в России и СНГ Кирилл Керценбаум. — Для владельцев критически важных приложений, особенно Web-сервисов и Web-приложений, на сегодняшний день это фактически самая большая головная боль, Сегодня, при условии огромного парка ПК, а также с развитием технологий бот-сетей, организация DDoS-атаки является очень простой и достаточно дешевой задачей”.

    На дешевизну и распространенность DDoS-атак указывает и аналитик компании “Доктор Веб” Валерий Ледовской: “В конкурентных войнах для получения прямой экономической выгоды DDoS-атаки в последние годы применяются очень часто. Многие крупные интернет-порталы в своей “жизни” хотя бы раз сталкивались с подобной проблемой. Эти атаки не требуют существенных вложений, методы их реализации уже отработаны злоумышленниками, а их относительная эффективность является определяющим фактором для дальнейшего распространения. В то же время далеко не всегда организаторами таких атак преследуются экономические цели. В частности, достаточно обратиться к примеру грузино-российского конфликта, когда DDoS-атаки использовались для блокировки сайтов крупнейших информационных агентств, чтобы ограничить поток той или иной информации”. Впрочем, с дешевизной хорошо спланированных распределенных DDoS-атак согласны не все. Но об этом чуть ниже.

    Методы защиты от кибер-атак

    Когда происходит какой-либо инцидент, то ищется ответ не столько на вопрос “Кто виноват?”, сколько на вопрос “Что делать, дабы такого рода ситуация больше не повторилась?” А в самом деле, что?

    “DDoS-атака заключается в том, что на сервер идет очень много запросов и он попросту не справляется с их обработкой, — говорит генеральный директор компании S.Builder Дмитрий Новиков. — Противостоять такого рода атаке можно, но многое зависит от того, насколько грамотно она организована и с каким масштабом. Например, если сервер атакует небольшое количество серверов, то можно просто заблокировать их IP-адреса или пул этих адресов. Можно написать скрипт (или воспользоваться готовым программным обеспечением), который будет это делать автоматически. Но если атака идет, например, с сотен тысяч компьютеров по всему миру, которые просто заражены определенным вирусом, которым управляют злоумышленники, то такой атаке противостоять практически невозможно. Ведь это обычные компьютеры и их владельцы (хакеры поневоле) скорее всего понятия не имеют, что участвуют в атаке. Владельцы данных компьютеров ничем не отличаются от реальных посетителей сайта. Соответственно, здесь нужно только ждать и/или наращивать серверные мощности, чтобы они в единицу времени “переваривали” большее количество запросов. В идеале — все поступающие запросы, включая и запросы хакеров. Безусловно, если сайту для работы нужно много серверных ресурсов, то “положить” его DDoS-атакой гораздо проще. С другой стороны, “положить” можно даже статичный маленький сайт, просто для этого понадобится больше запросов”.

    По мнению Валерия Ледовского, “наиболее эффективными средством против DDoS-атак является введение ограничений на создание множества одновременно посылаемых запросов к серверам, которые необходимо обрабатывать. Например, с помощью технологии CAPTCHA, т. е. автоматически генерируемых изображений, содержащих какой-либо набор символов, которые пользователь должен ввести для того, чтобы обработка его запроса началась. Но сама по себе генерация таких изображений может создать большую нагрузку на сервер, если запросов будет слишком много. На уровне хостера можно использовать различную фильтрацию запросов, т. е. автоматически определять запросы, которые являются частью атаки и блокировать их, не запрещая обращение к ресурсам сервера легальным пользователям”.

    Однако не все так просто. “Чтобы эффективно противостоять DDoS-атаке, требуется, как правило, очень сложное и дорогостоящее оборудование и ПО, которое по причине отсутствия достаточного количества средств может быть просто недоступно компании, — отмечает Кирилл Керценбаум. — Поэтому, с учетом того, что DDoS-атаки в последнее время набирают популярность, особенно в области недобросовестной конкуренции, то борьба с ними в основной части ложится на плечи провайдеров, так как лишь единицы крупных компаний, в основном телекоммуникационной сферы, могут себе позволить делать это самостоятельно. Что касается данного случая, то пока рано говорить о том, в чем его причины и на ком лежит ответственность. Хотя, судя по всему, сервис остался доступен при определенных ограничениях или замедлениях в скорости обработки запросов. Это говорит о том, что либо DDoS-атака была не очень сильной, либо B2B-Center изначально с абсолютной серьезностью отнесся к построению отказоустойчивой и защищенной среды”.

    А вот мнение Алексея Чередниченко: “Если говорить об уязвимостях, позволяющих злоумышленникам проводить успешные атаки, то опыт доказывает, что, в первую очередь, следует укреплять систему безопасности на уровне инфраструктуры хостинга. Существуют специализированные средства предотвращения DDoS-атак, их применение позволяет не только резко снизить последствия таких атак, но и успешно противостоять им. Другой подход, основанный на комплексной очистке интернет-трафика на стороне провайдеров, также позволит активно противодействовать DDoS атакам, распознавая и уничтожая “на лету” разнообразный вредоносный код, подрывая тем самым основы их проведения — формирование элементов ботнет сетей. К сожалению, применение данных подходов и средств, является пока не таким дешёвым решением. Особенно в условиях кризиса. К тому же информационная безопасность находится в постоянной гонке со злым умыслом, DDoS-атаки становятся все более изощрёнными, массовыми и результативными, и полностью исключить успех такой атаки порой бывает очень сложно”.

    “На сегодняшний день проблема DDoS-атак во всем мире стоит очень остро, — говорит технический менеджер Kerio Technologies в России и СНГ Роман Павлов. — Есть большое количество рекомендованных мероприятий по защите сервисов компании от такого типа атак. Защита выстраивается на уровне фильтрации нежелательных потоков запросов на межсетевом экране, смене портов, тонкой настройкой самого Web -сервера, грамотной организацией методов доступа к отдельным сервисам Web-сайта при его разработке, созданием зеркал сайта и т. д. Однако, даже совокупность всех предлагаемых методов по отражению DDoS-атаки, является довольно слабым профилактическим средством и не может гарантировать защиту от мощных атак сетей “ботнетов-миллионников”. Такие меры могут оказать защиту только в случае распределённых DDoS-атак, выполняемых с небольшого числа “зомби-компьютеров”. Поэтому, если у пострадавшей организации достаточно денег, наиболее эффективным средством борьбы с атакой будут совсем не технические меры по поиску организаторов и заказчиков подобного нападения. Большинству же жертв остается только пережидать атаку, уповая на то, что у заказчика атаки денежный ресурс тоже ограничен. Проведение мощных, хорошо спланированных распределенных атак — дело довольно затратное”.

    Итак, DDoS-атака, как и любая несмертельная болезнь, с течением времени проходит вне зависимости от качества лечения и потраченных на него денег. Мы будем с интересом ждать, смогут ли специалисты B2B-Center выявить заказчика DDoS-атаки, предпринятой против их торговой системы.


    Владимир Митин

    Оригинал
    статьи на http://www.pcweek.ru/themes/detail.php?ID=121148%29

    //Root-access: не учила разве мама тебя копирайты ставить?!
     
    #10 MAQUEEN, 5 Jan 2010
    Last edited by a moderator: 5 Jan 2010
  11. root_sashok

    root_sashok Elder - Старейшина

    Joined:
    4 Aug 2008
    Messages:
    389
    Likes Received:
    573
    Reputations:
    102
    Отразить http DDoS от 50мбит с помощью nginx и iptables

    Способ реализация

    Производится тонкая настройка параметров системы. Так что север будет способен выдерживать больше подключений от ботнета, чем канал до сервера сможет пропустить.

    Область применения

    Борьба с Http DDoS на выделенном сервере или ВПС. Максимальная возможная мощность сдерживания DDoS атаки ограничивается физическими возможностями сервера и пропускной способностью канала.

    SEO под DDoS-ом

    Ваш сайт будет правильно индексироваться во время атаки, что позволит сохранить позиции в выдаче поисковых систем. Особенно актуально для сайтов с большими SEO бюджетами.

    Стоимость и эффективность

    На время атаки придется отказаться от некоторых сервисов вашего сайта. Возможно, придется расширить полосу канала, перенести сайт на более мощный сервер. Эффективность достигается максимизацией коэффициента масштабируемости системы. Обеспечивается быстрое наращивание аппаратных ресурсов при увеличении мощности атаки.

    Описание метода

    Я буду рассказывать о применение метода и достигнутых результатах, на основе реального случай борьбы с http DDoS атакой.

    В моем распоряжении было два сервера Xeon 2.5GHz / 4Gb RAM / SAS, первый под PHP, второй под БД. Все настройки производились на первом сервере.ОС – Debian 4, сайт был с посещаемостью ~ 60к. Фронтендом являлся nginx. Ядро системы было настроено по умолчанию. Стандартное средство бана по ip – iptables в конкретном случае справилось с атакой ботнета размером до 7К.
    В случае более мощной атаки придется установить ipset.

    История борьбы с DDoS

    День первый. Переполнение сетевого стека

    IP адрес выделенный под ДОСом перестанет отвечать на какие-либо запросы (ping,http,ssh), при том что остальные IP сервера продолжат исправно работать. Если у сервера несколько IP то сайт под ДОСом ляжет, работа других сайтов на сервере и ssh нарушена не будет.
    По умолчанию ОС Debian и другие ОС не в состоянии поддерживать огромное количество соединений создаваемое ботнетом. Необходимо внести изменения в настройки ядра, чтобы укрепить стек TCP/IP. Я не буду подробно останавливается на настройке ядра, приведу лишь пример такой конфигурации.

    net.ipv4.conf.all.accept_redirects = 0
    net.ipv4.conf.eth0.accept_redirects = 0
    net.ipv4.conf.default.accept_redirects = 0
    net.core.rmem_max = 996777216
    net.core.wmem_max = 996777216
    net.ipv4.tcp_rmem = 4096 87380 4194304
    net.ipv4.tcp_mem= 786432 1048576 996777216
    net.ipv4.tcp_wmem = 4096 87380 4194304
    net.ipv4.tcp_max_orphans = 2255360
    net.core.netdev_max_backlog = 10000
    net.ipv4.tcp_fin_timeout = 10
    net.ipv4.tcp_keepalive_intvl = 15
    net.ipv4.tcp_max_syn_backlog = 2048
    net.ipv4.tcp_synack_retries = 1
    kernel.msgmnb = 65536
    kernel.msgmax = 65536
    kernel.shmmax = 494967295
    kernel.shmall = 268435456
    net.core.somaxconn= 16096

    Подобнее о параметрах можно прочитать в документации, например debian.telenet.ru/doc/sysctl.conf, а лучше поиск через google.com свежих статей по данной теме.
    Аккуратно меняем конфигурацию ядра и перезагружаем сервер…
    И так. Наша система способна выдержать натиск ботов. Но праздновать победу еще очень рано. Из-за огромного количества соединений процессы PHP и БД полностью «съедают» ресурсы памяти и процессора, так что значение load average превышает 100 пунктов.
    Необходимо отсечь паразитные соединения

    Недостатки поиска ботов командой netstat

    Анти-дос администратор, к которому я обратился с проблемой, предложил метод поиска ботов командой nestat. В процессе применения данного метода я заметил несколько существенных недостатков. Рассмотрим их подробно:
    1. Создание blacklist-а занимает много времени, что не позволяет нам часто обновлять blacklist
    2. Эффективный поиск ботов возможен только при остановленном вебсервере. В это время сайт не доступен для клиентов и появляется угроза неправильной индексации сайта поисковыми системами
    3. В blacklist могут попасть IP поисковых роботов, что недопустимо

    Осознав неэффективность предложенного метода, я приступил к созданию своего метода поиска и бана ботов который должен
    1. обеспечить постоянную стабильную работу вебсервера (сайта)
    2. гарантирует наименьшую вероятность в blacklist поисковых роботов

    День второй. Возможности железа сервера + nginx

    Сервер Xeon 2.5GHz / 4Gb RAM / SAS DoS-ят запросами GET / HTTP/1.1.
    Эксперимент А. Веб сервер (в данном случае nginx) остановлен
    Входящий трафик 6085.2 kbits/sec
    Исходящий трафик 5342.1 kbits/sec
    Эксперимент Б. Nginx отдает пустой HTML (return 444;)
    Входящий трафик 56 Мбит/с
    Исходящий трафик 54 Мбит/с
    Эксперимент В. Nginx отдает HTML размером около 2 Кб – это страничка с небольшим сообщением вроде «приносим свои извинения за перебои в работе сайта»
    Входящий трафик 57 Мбит/с
    Исходящий трафик 353 Мбит/с

    По результатам проведенного эксперимента ясно, что сервер способен выдержать увеличение атаки примерно до 300Мбит/с. Свыше 300Мбит/с мы «упремся» в предел рандомного чтения SAS дисков. Значит, мы имеем хороший запас прочности и высока вероятность эффективного отражения атаки с сохранением доступности клиентам наших вебсервисов.

    На основе эксперимента можно сделать следующие выводы:

    а) Можно полностью отказаться от фильтрации при наличии достаточной емкости канала и отсутствием соотношений входящий/исходящий трафик.
    Ваш сайт будет доступен клиентам ценой огромного паразитного трафика.
    Легкомысленное решение полностью отказаться от фильтрации. Злоумышленники могу увеличить мощность DoS так что «ляжет» гигабитный канал.

    б) Когда мы забаним абсолютно всех ботов то паразитный трафик от ботнета составит всего лишь 5 Мбит/с. Забанить всех ботов также невозможно, на это потребуется слишком много ресурсов. Кроме того, высока вероятность бана поисковых роботов.

    Также необходимо обратить внимание на то, что исходящий трафик с последнем случаем превысил 100 Мбит/с. Значит, сервер подключенный к порту 100 Мбит/с станет очень трудно доступен по ssh в силу полной загруженности канала. Во избежание подобной неприятности, я рекомендую настроить отдачу пустого HTML или return 444 в nginx до завершения настройки фильтрации ботов.

    Поиск ботов средствами nginx

    В данном случае сервер атакуют запросами request: «GET / HTTP/1.1».
    Делаем предположение о том, что хорошие клиенты делают не более 2х одновременных запросов к главной странице сайта. Считаем клиентов открывших более 3х одновременных соединений атакующими ботами и баним их IP адресы на фаерволе.

    Предположение было подтверждено экспериментально. На основе анализа лога http запросов за сутки из 120 000 IP адресов, только с 19ти IP было сделано более 2х одновременных запросов.

    Для реализации поиска ботов создаем специальную обработку запросов
    request: «GET / HTTP/1.1» в nginx.
    error_log /var/log/nginx/error.log;
    <…>
    location =/ {
    limit_conn one 3;
    root /home/www/site.ru;
    }

    IP адреса с которых было открыто более 3х одновременных подключений буду записаны в error.log с сообщением limiting connections by zone. На основе лога ошибок мы сможем построить blacklist ip атакующего ботнета.

    Фильтрация ботов в iptables

    Важно заметить. IPtables не пригодны для фильтрации большого количества адресов. При количестве цепочек >2К iptables процесс ksoftirqd начинает потреблять 100% CPU, что к запредельной загрузке сервера. Проблема решается установкой ipset или уменьшением количество правил в iptables.
    В данном случае установка ipset была отложена на случай крайней необходимости. У сервера не было встроенного KVM и пересобрать ядро было рискованно.

    Приступим к созданию blacklist-а. В бан мы помеcтим только самых агрессивных ботов, дабы не перегружать iptables.

    # ищем ботов
    cat /var/log/nginx/error.log | grep "limiting connections by zone" | grep "request: \"GET / HTTP/1.1"| awk '{print $12}'| awk -F"," '{print $
    1}'| sort | uniq -c | sort -nr > /tmp/botnet.blacklist
    # очищаем скрипт бана
    cat /dev/null > /tmp/iptables_ban.sh
    # создаем DROP правила для 50 самых агрессивных ботов
    awk '{print "iptables -A INPUT -p tcp --dport 80 -s " $2 " -j DROP" }' botnet.blacklist | head -n 50 >> /tmp/iptables_ban.sh
    # загружаем blacklist
    bash /tmp/iptables_ban.sh
    # делаем ротацию лога
    cat /dev/null > /home/www/nginx_log/error.log
    [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`

    Добавляем скрипт в крон с частотой несколько минут. Частоту подбираем опытным путем. Я сделал раз в 5 минут.

    */5 * * * * /root/script/ban.sh

    В результате iptables будет пополнятся новыми ботами.

    Схема фильтрации

    [​IMG]

    День третий. Итог

    Данный метод обеспечил стабильный доступ клиентов к сайту. Правильная индексация в ПС была подтверждена тем, что сайт сохранил свои позиции в выдаче. Загрузка сервера не выходила за разумные пределы la неболее 6-7 пунктов. Исходящий трафик с сервера не превышал 100 Мбит/с. Для отражения атаки >7К ботнета вполне достаточно возможностей iptables.

    DDoS как стихийное бедствие и избежать ущерба невозможно.
    Часть клиентов, за время сбоя вашего сервиса, перейдет к конкурентам.
    Вам придется понести некоторые расходы на переработки программистов, администраторов или приобретение дополнительного оборудования.
    Ваш ресурс активно продвигается в ПС (yandex, google) значит, критичен риск неправильной индексации и как результат провал позиций в выдаче.
    Главная задача минимизировать ущерб от DDoS.

    В моем случае DDoS атака прекратилась на следующий день после запуска фильтрации. Заказчик DoS не был готов тратить больше денег на увеличение атаки.

    В большинстве случаев DDoS является оружием конкурентной борьбы в сети. Клиенты практически мгновенно способны перейти к вашим конкурентам, если ваш ресурс будет работать со сбоями.

    Я считаю, что борьба с DDoS заключается не в бане ботов, а в создании условий в которых ваш суммарный ущерб от атаки сопоставим с затратами ее инициаторов. Заказчик должен потрать, например, 50 000 руб. чтобы нанести вам ущерб в 50 000руб., конкурентам экономически не выгодно организовывать такие атаки.

    Метод описанный в этой статье не является панацеей, это лишь часть комплекса мер по отражению DoS. План развития крупного сервиса должен учитывать риски и предлагать меры по уменьшению негативных последствий атак.

    Надеюсь, моя статья будет полезна сообществу разработчиков и администраторов вебприложений.

    ©
     
  12. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,482
    Likes Received:
    7,063
    Reputations:
    693
    Модуль nginx для борьбы с DDoS

    Модуль nginx для борьбы с DDoS


    Многие сталкивались с таким явлением как DDoS атака методом HTTP флуда. Нет, это не очередной туториал по настройке nginx, хочу представить свой модуль, работающий как быстрый фильтр между ботами и бэкэндом во время L7 DDoS атаки и позволяющий отсеивать мусорные запросы.

    Модуль умеет

    - Ставить cookies стандартным способом через HTTP заголовок Set-Cookie. После установки cookies перенаправлять пользователя (заставить отправить нам полученные cookies) используя код ответа 301 и заголовок Location
    - После установки cookies перенаправлять пользователя (заставить отправить нам полученные cookies) используя код ответа 200 и HTML тег Meta «refresh»
    - Считать количество попыток поставить cookies и отправлять пользователя по заданному URL после превышения максимального количества неудачных попыток
    - Использовать custom шаблоны для ответа фильтра, в которых можно делать что угодно (например, выставить cookies через JavaScript)
    - Для предотвращения автоматического парсинга ответов нацеленных на исполнение JavaScript, шифровать значение переменных в шаблоне симметричным криптоалгоритмом с дальнейшей расшифровкой через JavaScript на стороне клиента (используя SlowAES)
    - Whitelist'ить заданные сети (например, сети в которых живут поисковые роботы)
    - Кое-какие мелкие фишки полезные во время DoS атаки.

    Не умеет

    - Модуль лишь возвращает клиенту заданные ответы, принимать решение о блокировке клиента (например, используя fail2ban) вы должны самостоятельно
    - Кто-то скажет — «Я сэмулирую JavaScript», но давайте будем реалистами — часто вас DoS'ят ботами с полноценной эмуляцией? отправьте их ко мне, будем майнить bitcoin'ы
    - В документации ничего нет про captcha и flash — если нужно, вы можете прикрутить их самостоятельно, нужно лишь проявить фантазию при конфигурации
    - Данный модуль не панацея — это лишь маленький компонент в комплексе защитных мер, инструмент, который может помочь, если его правильно использовать.

    Как это работает

    Чаще всего, боты, реализующие HTTP флуд довольно тупые, и не имеют механизмов HTTP Cookie и редиректа. Иногда попадаются более продвинутые — такие могут использовать cookies и обрабатывать редиректы, но почти никогда DoS бот не несет в себе полноценного JavaScript движка.
    Для понимания принципа работы фильтра ниже приведен flow общения клиент-сервер в зависимости от сценария атаки.

    1. Боты не понимают редиректы и cookies
    [​IMG]

    2. Боты понимают редиректы и cookie, но не умеют JavaScript
    [​IMG]

    Примеры конфигурации для основных сценариев атак

    - боты не понимают редиректы и cookies (типичный случай)
    Code:
    server {
        listen 80;
        server_name domain.com;
    
    
        testcookie off;
        testcookie_name BPC;
        testcookie_secret keepmescret;
        testcookie_session $remote_addr;
        testcookie_arg attempt;
        testcookie_max_attempts 3;
        testcookie_fallback /cookies.html?backurl=http://$host$request_uri;
        testcookie_get_only on;
    
    
        location = /cookies.html {
            root /var/www/public_html;
        }
    
        location / {
            testcookie on;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_pass http://127.0.0.1:8080;
        }
    }
    - боты понимают редиректы и cookies
    Code:
    server {
        listen 80;
        server_name domain.com;
    
        testcookie off;
        testcookie_name BPC;
        testcookie_secret keepmescret;
        testcookie_session $remote_addr;
        testcookie_arg attempt;
        testcookie_max_attempts 3;
        testcookie_fallback /cookies.html?backurl=http://$host$request_uri;
        testcookie_get_only on;
        testcookie_redirect_via_refresh on;
        testcookie_refresh_template '<html><body><script>document.cookie="BPC=$testcookie_set";document.location.href="$testcookie_nexturl";</script></body></html>';
    
        location = /cookies.html {
            root /var/www/public_html;
        }
    
    
        location / {
            testcookie on;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_pass http://127.0.0.1:8080;
        }
    }
    - защищаемый URL вставили в iframe на популярном сайте
    Code:
    server {
        listen 80;
        server_name domain.com;
    
    
        testcookie off;
        testcookie_name BPC;
        testcookie_secret keepmescret;
        testcookie_session $remote_addr;
        testcookie_arg attempt;
        testcookie_max_attempts 3;
        testcookie_fallback /cookies.html?backurl=http://$host$request_uri;
        testcookie_get_only on;
        testcookie_redirect_via_refresh on;
        testcookie_refresh_template '<html><body><script>function bla() { document.cookie="BPC=$testcookie_set";document.location.href="$testcookie_nexturl";}</script><input type="submit" value="click me" onclick="bla();"></body></html>';
    
        location = /cookies.html {
            root /var/www/public_html;
        }
    
        location / {
            testcookie on;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_pass http://127.0.0.1:8080;
        }
    }
    - боты научились вытаскивать значение cookies через regexp
    Code:
    server {
        listen 80;
        server_name domain.com;
    
        testcookie off;
        testcookie_name BPC;
        testcookie_secret keepmescret;
        testcookie_session $remote_addr;
        testcookie_arg attempt;
        testcookie_max_attempts 3;
        testcookie_fallback /cookies.html?backurl=http://$host$request_uri;
        testcookie_get_only on;
        testcookie_redirect_via_refresh on;
    
        testcookie_refresh_encrypt_cookie on;
        testcookie_refresh_encrypt_cookie_key random;
        testcookie_refresh_encrypt_cookie_iv random;
        testcookie_refresh_template '<html><body>setting cookie...<script type=\"text/javascript\" src=\"/aes.min.js\" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("$testcookie_enc_key"),b=toNumbers("$testcookie_enc_iv"),c=toNumbers("$testcookie_enc_set");document.cookie="BPC="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/";document.location.href="$testcookie_nexturl";</script></body></html>';
    
        location = /aes.min.js {
            gzip on;
            gzip_min_length 1000;
            gzip_types text/plain;
            root /var/www/public_html;
        }
    
        location = /cookies.html {
            root /var/www/public_html;
        }
    
        location / {
            testcookie on;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_pass http://127.0.0.1:8080;
        }
    }
    - боты научились вытаскивать параметры через regexp и расшифровывать значение cookies (сомневаюсь, что кто-то будет возиться)
    Code:
    server {
        listen 80;
        server_name domain.com;
    
        testcookie off;
        testcookie_name BPC;
        testcookie_secret keepmescret;
        testcookie_session $remote_addr;
        testcookie_arg attempt;
        testcookie_max_attempts 3;
        testcookie_fallback /cookies.html?backurl=http://$host$request_uri;
        testcookie_get_only on;
        testcookie_redirect_via_refresh on;
        testcookie_refresh_encrypt_cookie on;
        testcookie_refresh_encrypt_cookie_key deadbeefdeadbeefdeadbeefdeadbeef; #меняем по крону
        testcookie_refresh_encrypt_cookie_iv deadbeefdeadbeefdeadbeefdeadbeef; #меняем по крону
    
        testcookie_refresh_template '<html><body>setting cookie...<script type=\"text/javascript\" src=\"/aes.min.js\" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers({используем любимый JS обфускатор чтобы спрятать значение iv, меняем по крону}),b=toNumbers({используем любимый JS обфускатор чтобы спрятать значение ключа, меняем по крону}),c=toNumbers("$testcookie_enc_set");document.cookie="BPC="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/";document.location.href="$testcookie_nexturl";</script></body></html>';
    
        location = /aes.min.js {
            gzip on;
            gzip_min_length 1000;
            gzip_types text/plain;
            root /var/www/public_html;
        }
    
        location = /cookies.html {
            root /var/www/public_html;
        }
    
        location / {
            testcookie on;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_pass http://127.0.0.1:8080;
        }
    }
    Исходные тексты
    Модуль с инструкциями по установке и документацией доступен на github под BSD лицензией.
    Патчи, дополнения, тесты и баг-репорты приветствуются.


    ©
     
    _________________________
  13. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,482
    Likes Received:
    7,063
    Reputations:
    693
    Модуль nginx для борьбы с DDoS, ставим cookie через Flash

    Модуль nginx для борьбы с DDoS, ставим cookie через Flash

    После публикации статьи о модуле nginx (тут пост выше), предназначенном для борьбы с ботами я получил множество откликов, в которых люди спрашивали о поддержке Flash.
    Я был уверен, что при должных усилиях желающие могли реализовать эти функции самостоятельно, как сторонние приложения, без изменения кода самого модуля, но никто этого не сделал, поэтому пришлось сделать PoC.

    Изначально, хотелось, чтобы модуль был в виде конструктора, да и принцип KISS никто не отменял, поэтому весь client-side функционал было решено реализовывать в виде сторонних приложений. У nginx всё хорошо с проксированием, так что самый простой способ — писать их в виде отдельных HTTP сервисов.
    Это дает следующие преимущества:

    - Пишем на любом удобном нам языке(я предпочитаю Python)
    - Не завязываемся на nginx, качество кода не так существенно — можно блокироваться итд итп
    - Можем использовать весь спектр кеширующего функционала nginx
    - Если даже сервис лежит, все легитимные пользователи, уже получившие свою куку, этого не замечают — основной ресурс для них доступен.

    Что пришлось добавить

    Для главной директивы модуля testcookie-filter, кроме прежних значений «on» и «off» теперь добавилось еще одно — «var». Если модуль работает в режиме «var» то для данного location:

    - будет осуществляться проверка cookie;
    - nginx variables(все, кроме $testcookie_nexturl) выставятся;
    - перенаправлений, установки cookie и перехвата запроса происходить не будет.


    Для чего это нужно

    Таким образом, теперь можно передать правильное значение cookie в свое приложение через HTTP заголовок:
    Code:
    location = /testcookie.swf {
            testcookie var;
            proxy_pass http://127.0.0.1:1234/;
            proxy_set_header Testcookie-Value $testcookie_set;
            proxy_set_header Testcookie-Valid $testcookie_ok;
            proxy_set_header Testcookie-Name "BPC";
        }
    Почему через заголовок, а не через param в случае с Flash?
    Так значение не фигурирует в открытом виде в клиентской части, его нельзя извлечь, например, regexp'ом.

    И все-таки, Flash?

    Я считаю, что метод установки cookie через Flash не самый правильный, но раз пользователи хотят — почему бы не сделать.
    Идею сделать статический SWF и подставлять в него значения, как это сделано в Roboo, я отмел сразу — легко разобрать, сложно модифицировать итд.
    Поэтому, было решено дать пользователю возможность своими силами усложнить жизнь атакующему.
    Для этого в проекте существуют 2 файла:

    cookie_encoder.py (Python):
    Code:
    def encode_cookie(cookie_value):
        key = 42
        res = ''
        for x in cookie_value:
            res += chr(ord(x) ^ key)
        return res
    cookie_decoder.as (ActionScript):
    Code:
    function flash_cookie_crypt_routine(str) {
        var result;
    
        for (var i = 0; i < str.length; i++) {
            result += String.fromCharCode(str.charCodeAt(i) ^ 42);
        }
        return result;
    }
    
    getURL("javascript:void(document.cookie='#TESTCOOKIE_NAME#=" + flash_cookie_crypt_routine("#TESTCOOKIE_VALUE#") + "');void(location.href='" + nexturl + "');");
    Как не сложно догадаться, первый предназначен для кодирования значения(в примере ксорим на 42), второй для декодирования на стороне клиента(еще раз ксорим на 42).

    ActionScript динамически собирается в SWF, с использованием libming. К слову, пришлось ее немного запатчить, поэтому работать проект будет только с моим fork'ом, по крайней мере до тех пор пока maintainer'ы не перестанут придираться к именам функций и не одобрят мой pull.

    В качестве каркаса сервиса используется fapws3 — быстрый асинхронный веб-сервер для Python.

    Всё вместе на стареньком coreduo, в один процесс, дает свои ~3k req/s при concurency 1k, без какой-либо оптимизации и кеширования. В production можно использовать nginx proxy cache, таким образом SWF будет генерироваться для каждого клиента лишь один раз, раздаваться nginx'ом и положить сам сервис будет довольно сложно.


    Всё вместе

    Пример конфигурации:
    Code:
    server {
        listen 80;
        server_name domain.com;
    
        testcookie off;
        testcookie_name BPC;
        testcookie_secret keepmescret;
        testcookie_session $remote_addr;
        testcookie_arg attempt;
        testcookie_max_attempts 3;
        testcookie_fallback /cookies.html?backurl=http://$host$request_uri;
        testcookie_get_only on;
        testcookie_redirect_via_refresh on;
    # подключим testcookie.swf через swfobject(да, я ленив)
    # используем директиву testcookie_refresh_template,
    # передадим значение $testcookie_nexturl через param
    Code:
     testcookie_refresh_template '<html><body><script type="text/javascript" src="/swfobject.js"></script><script type="text/javascript">swfobject.embedSWF("/testcookie.swf", "cookie_installer", "100", "100", "9.0.0", "/expressInstall.swf", {"nexturl":"$testcookie_nexturl"});</script><div id="cookie_installer">welcome screen</div></body></html>';
    # отключаем проверку cookies
    # для fallback URL, swfobject.js и expressInstall.swf
    Code:
    location = /cookies.html {
            root /var/www/public_html;
        }
    
        location = /swfobject.js {
            gzip  on;
            gzip_min_length 1000;
            gzip_types      text/plain;
            root /usr/local/nginx/root;
        }
    
        location = /expressInstall.swf {
            testcookie off;
            gzip  on;
            gzip_min_length 1000;
            gzip_types      text/plain;
            root /usr/local/nginx/root;
        }
    # по данному location сервис динамически генерирует SWF
    Code:
    location = /testcookie.swf {
            # модуль testcookie в режиме var
            testcookie var;
            # сервис testcookie-flash-processor
            proxy_pass http://127.0.0.1:1234/;
            # передадим правильное значение cookies
            proxy_set_header Testcookie-Value $testcookie_set;
            # прошел ли клиент проверку?
            # нет смысла генерировать SWF для тех,
            # у кого уже есть правильная cookie
            proxy_set_header Testcookie-Valid $testcookie_ok;
            # имя cookie - должно быть равно значению
            # в директиве testcookie_name
            proxy_set_header Testcookie-Name "BPC";
        }
    # основной location с обращением к backend'у
    Code:
     location / {
            testcookie on;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_pass http://127.0.0.1:8080;
        }
    }
    Captcha прикручивается аналогичным образом.


    Исходные тексты

    Исходные тексты с инструкциями по установке и документацией доступны на github под BSD лицензией.
    Патчи, дополнения, тесты и баг-репорты приветствуются.


    ©
     
    _________________________
  14. 0x61

    0x61 Banned

    Joined:
    13 Aug 2011
    Messages:
    1
    Likes Received:
    19
    Reputations:
    35
    Просмотрел Ваши посты и не увидел в них ни слова о ддос атаках полуконнектом(slow). Хотя я бы не опускал столь "не значительную" , но в тоже время и плодотворную атаку =). Кому интересно может поискать в гугле по запросу "Slow HTTP DoS". Так сложилось что Apache с дефолтными настройками расположен к атаке(как показывает мой личный опыт). И "вроде как" от нее спасают такие настройки:

    В httpd.conf
    Code:
    Timeout 1
    KeepAlive Off
    MaxKeepAliveRequests 10
    KeepAliveTimeout 1
    ....
    
    LimitRequestBody 102300
    LimitRequestFields 50
    LimitRequestFieldSize 4094
    LimitRequestLine 4094
    LimitXMLRequestBody 0
    
    В секцию <Directory /path/you/web/site>
    Code:
    <Limit GET POST PUT DELETE></Limit>
    P.S. настройки очень сырые, вы можете довести их до ума ... (другие вариации не пробовались)
     
  15. SysDown

    SysDown New Member

    Joined:
    28 Aug 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Для тех кто использует блог Wordpress как CMS движек есть хорошая защита от ddos.
    HTTP Anti Flood/DoS Security Module это модуль, который обеспечивает защиту вашего сайта от HTTP DDoS атак на уровне веб-приложения. Атака на сайт может быть обнаружена и блокирована этим модулем через htaccess, брандмауэр или iptables, и т.д. (как mod_evasive) Конечно этот модуль не обеспечит идеальной защиты вашего сайта от DDoS-атак, но большую долю атак может заблокировать.
    HTTP Anti Flood/DoS Security Module

    Оказывается эту защиту можно прикрутить и к другим CMS, Joomla и DLE
     
  16. dim76

    dim76 New Member

    Joined:
    3 Jan 2013
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    DDoS-атака – распределенная атака типа отказ в обслуживании, которая являет собой одну из самых распространенных и опасных сетевых атак. В результате атаки нарушается или полностью блокируется обслуживание законных пользователей, сетей, систем и иных ресурсов. Большинство DDoS-атак используют уязвимости в основном протоколе Internet (TCP/IP),а именно, способ обработки системами запроса SYN. Выделяют два основных типа атак, которые вызывают отказ в обслуживании. В результате проведения атаки первого типа, останавливается работа всей системы или сети. Хакер отправляет системе данные или пакеты, которые она не ожидает, и это приводит к остановке системы или к ее перезагрузке. Второй тип DDoS-атаки приводит к переполнению системы или локальной сети при помощи огромного количества информации, которую невозможно обработать. DDoS-атака заключается в непрерывном обращении к сайту со многих компьютеров, которые расположены в разных частях мира. В большинстве случаев эти компьютеры заражены вирусами, которые управляются мошенниками централизовано и объедены в одну ботсеть. Компьютеры, которые входят в ботсеть, рассылают спам, участвуя, таким образом, в DDoS-атаках.

    Prolexic опубликовала отчет по DDoS-атакам за 2012 год
    Согласно отчету исследователей, за последний квартал 2012 года DDoS-атаки стали более разнообразными и масштабными. В последнем квартале 2012 года количество атак возросло, кроме того, они стали более масштабными и разнообразными, сообщают исследователи компании Prolexic.
     
  17. dim76

    dim76 New Member

    Joined:
    3 Jan 2013
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    Как устранить DDoS-атаку: советы вебмастеру.
    Сегодня сообщения об очередной DDoS-атаке на сайт уже никого не удивляют. Действительно, в последнее время подобные действия хакеров заметно участились. При этом DDoS-атаки не стали слабее, а, напротив, обрели большую мощность. Правда, цель таких атак осталась неизменной – вывести конкретный объект из своего рабочего состояния. Все это приводит к тому, что определенный сайт или группа ресурсов становятся недоступными для пользователей, что влечет за собой большие потери денежных средств, уменьшение количества клиентов, затраты на оборудование и восстановление рабочего состояния объекта. При этом больше всего достается коммерческим ресурсам, чья деятельность непременно связана с потоком финансовых средств: Интернет-магазинам, банкам, биржам, онлайн-казино и т.д. Проведение DDoS-атак на подобные сайты является серьезным испытанием для владельца ресурса. Даже 2-3 часа простоя нанесут существенный вред его репутации, а через неделю данный сайт, скорее всего, придется вновь поднимать с нуля. Часто вследствие проведения DDoS-атаки убытки платных и солидных сайтов составляют десятки тысяч долларов в день.
    Любая DDoS-атака основывается на применении силы, потому как хакер пытается направить на определенный адрес максимально возможное количество запросов, которое сервер не сможет обработать. Все это приведет к существенной потере скорости или зависанию атакуемого объекта.
    Принцип DDoS-атаки обусловлен ее названием. Например distributed означает «распространенная». Это действительно так, ведь ресурс, как правило, атакуют десятки или сотни тысяч ботов (зомби).
    Откуда появляются зомби? Обычно ими выступают компьютеры или серверы, которые заражены вредоносной программой, вследствие чего они находятся под управлением хакера, выполняя его команды. Как правило, принцип создания зомби включает в себя использование экплоитов для операционной системы. Хакер может легко завладеть компьютером пользователя, когда он посещает сайты, получает письма по электронной почте либо устанавливает программы с содержащимися в них троянами. Количество компьютеров-зомби может быть очень большим. Порой процент заражаемости трафика составляет около 80 процентов, в результате чего спам рассылается в огромных количествах, порождая десятки тысяч зомбированных компьютеров. В зависимости от кода, который используется хакером для получения контроля над машиной, компьютер-зомби способен выполнять различные задачи. Все они направлены на выведение из строя сервера, который после проведения DDoS-атаки достаточно нелегко «поднять».
    Как же можно бороться с DDoS-атаками, и кто должен это делать? По статистике в 98 процентах всех случаев устранять DDoS-атаки приходится вебмастеру, поскольку провайдеры предпочитают решением данной проблемы не заниматься. Именно поэтому, вебмастеру никогда не помешает знать, как бороться с DDoS-атакой на различных уровнях:
    1. На уровне сервера.
    Необходимо, чтобы у вашего сервера имелся вывод консоли на другой ip-адрес по ssh-протоколу и удаленный ребут. Это поможет вам быстро производить перезагрузку страниц, что очень необходимо на ранних стадиях проведения DDoS-атак. Очень часто ssh также подвергается атаке наравне с сервером, а потому вывод консоли поможет быстро и полностью его выключить. Так сервер будет доступен для администрации, что существенно улучшит ваше положение.
    2. На уровне сервисов сервера.
    Желательно, чтобы во всех сервисах машины отсутствовали известные «дыры». Решение этого вопроса избавит вас от множества неприятных проблем, связанных с DDoS-атаками.
    3. На уровне сети.
    Заблокируйте все, что позволит хакеру получить дополнительную информацию о вас. Сервер следует убрать под nat, а трейс и пинг необходимо заблокировать. Очень желательно спрятать ip-адрес. Кстати, данный метод применяется во многих профессиональных, коммерческих системах защиты от DDoS-атак.
    4. На уровне провайдера.
    В этом случае целесообразно проведение блокировки ip-адреса и анализа пакетов данных.
    5. На уровне компьютера и программного обеспечения.
    Рекомендуется использовать для защиты системы решения от известных фирм 3com, Cisco, nortel и т.д. Безусловно, подобные методы борьбы с DDoS-атаками являются недешевыми (от 10 тысяч долларов). К слову, комплексная защита от атаки может обойтись в 50-80 тысяч долларов. В основном подобные средства защиты функционируют на основе анализа пакетов данных и их фильтрации. В результате, нужные пакеты проходят на сервер, а сомнительные и опасные блокируются файерволом или роутером. Некоторые системы защиты от DDoS атак могут и вовсе скрыть ip-адрес сервера, и хакер не сможет найти его на просторах сети, а потому DDoS-атака не будет проведена.
    6. На уровне администраторов сервера.
    При помощи анализа логов файервола сервера можно увидеть, с каких ip-адресов производятся атаки. В этом случае целесообразно попробовать найти уязвимые рабочие станции. При определенных усилиях и доле везения можно отыскать и главный компьютер-зомби, а затем попытаться вывести его из строя посредством контратаки или другого метода. К слову, не следует забывать, что DDoS-атака может быть легко нейтрализована путем обычной смены ip-адреса, если действия компьютеров-зомби не контролируются вручную.
    Очень часто вебмастер предпочитает комбинировать все вышеперечисленные варианты защиты сервера от DDoS-атаки, и это, безусловно, помогает. Правда, на этом методы борьбы с DDoS не заканчиваются, а потому даже в этой статье мне не удастся расписать их полностью. Однако хочется верить, что вышеперечисленная информация непременно поможет вам в борьбе с DDoS-атаками.
     
  18. dim76

    dim76 New Member

    Joined:
    3 Jan 2013
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    Как не стать частью DDoS-атаки: все ли зависит от нас?
    Способны ли вы стать участником DDoS-атаки, сами того не желая? Ответ неутешителен – зачастую все именно так и происходит. Так каким же образом хакерам удается присоединить каждый отдельный компьютер к огромной бот сети так, что порой пользователь ничего не замечает?
    Прежде, чем говорить непосредственно об участии каждого пользователя в DDoS-атаке, следует отметить, что же такое бот сеть. Дело в том, что, так или иначе, на просторах Интернета присутствует большое количество компьютеров, которые уже заражены и выполняют команды хакера. По сигналу злоумышленника они способны одновременно подключаться к сети и загружать страницы или данные с веб-сервера. Именно «сообщество» таких зараженных компьютеров называется бот сетью. Иными словами, каждая подобная машина является зомбированной, потому что она выполняет команды не своего истинного владельца, а хакера, который получил к ней доступ обманным путем. К сожалению, в состав такой бот сети входит не один и не два компьютера – в большинстве случаев ведется одновременная работа с нескольких сотен, а то и тысяч машин.
    Увы, но обычные пользователи часто не подозревают о том, что их компьютер стал частью бот сети, из которой осуществляются более мощные и разрушительные DDoS-атаки. Недостаток информации приводит к тому, что хакеры получают больше возможностей для реализации атак и совершения преступлений, а владельцы компьютеров ничего об этом не знают. А ведь посредством создания бот сети можно проводить крупные DDoS-атаки, шантажируя таким образом новостные сайты, Интернет-магазины и прочие важные ресурсы. Безусловно, помимо шантажа можно заниматься рассылкой спама, подбирать пароли, но в основном бот сети применяются именно для осуществления DDoS-атак.
    Многие пользователи часто интересуются, поможет ли в борьбе с DDoS-атаками обычный антивирус? По словам специалистов, статистика неумолима: около 40 процентов компьютеров, которые были когда-либо объединены в обширную бот сеть, оснащались антивирусными программами, которые факты проведения DDoS-атак совершенно не фиксировали. Конечно, хороший антивирус в комплекте с качественной системой предотвращения атак поможет хотя бы немного обезопасить свой компьютер от действий хакеров, однако на сегодняшний день специалисты еще не придумали совершенную систему мгновенного вычисления DDoS-атаки.
    Помните, что если вы, так или иначе, связаны с деятельностью на просторах Интернета, то ваш компьютер уже автоматически попадает в «группу риска». При этом в нем необязательно должна присутствовать какая-либо уязвимость или устанавливаться злонамеренный код – все это может уже давно находиться на компьютере другого человека, с которым вы связаны посредством сети. Также источником заражения компьютера может стать популярный сайт в Интернете. Это утверждение лишний раз доказывает тот факт, что защищаться от DDoS-атак просто необходимо. Благо, на сегодняшний день методов защиты более чем достаточно, и вы вполне можете выбрать подходящий вариант. Пусть это не даст вам стопроцентную гарантию защиты, но максимально обезопасить свой компьютер, согласитесь, не помешает.
    Многие пользователи беспокоятся по поводу того, что если в услуги провайдера не входит предоставление защиты от DDoS-атак, то сам провайдер придется менять. Сейчас это совсем необязательно. Скажем, на сегодняшний день услуги защиты от DDoS-атак предлагают многие известные компании. В частности, одной из них является компания Prolexic, сервис которой позволяет блокировать атаку даже в тот момент, когда вам удалось зафиксировать ее проведение. Сделать это можно посредством использования прокси и перенаправления DNS. Все, что нужно сделать – это прописать в DNS IP-адреса сети данной компании. После этого DDoS-атака будет направлена не на ваш адрес, а на адрес Prolexic. Такой вариант целесообразно применять для защиты от DDoS-атак онлайн-казино, Интернет-магазинов, электронных журналов и Интернет-банков.
    Помимо этого Prolexic и другие подобные компании способны применить в качестве защиты сайта от DDoS-атак протокол маршрутизации, благодаря которому атака будет перенаправлена на их сервер, где и будет подавлена. В итоге, уже чистый трафик будет поступать на ваш компьютер, а вы будете работать в обычном режиме.
    Кстати, можно подключиться к Prolexic напрямую, чтобы постоянно находиться под защитой этой компании. В этом случае совершить DDoS-атаку на ваш сайт будет невероятно сложно.
    Если говорить о крупных компаниях, которым необходимо обеспечить защиту сайта от DDoS-атак на должном уровне (Microsoft, IBM, Sony, Apple и т.д.), то для этих целей они используют сервисы от компании Akamai, принцип работы которых заключается в создании зеркала всех сайтов своих клиентов, расположенных по всему миру. Именно поэтому, графика, аудио, видео и прочие данные всегда будут доступны пользователям. Правда, как стало известно, даже такой, казалось бы, совершенный сервис от Akamai в 2004 году был на некоторое время выведен из строя.
    Иногда мы не в состоянии отделить реальный трафик от трафика, продуцируемого ботами. В этом случае возникает вполне осознанное желание попросту заблокировать зомбированные компьютеры. Но при этом нужно знать, что именно нужно блокировать. Существуют целые компании, которые постоянно собирают адреса зараженных компьютеров, создавая базу данных таких ботов. Их вполне можно применять для защиты Интернет-провайдеров от проводимых DDoS-атак. В результате, трафик будет пропускаться через фильтр, который сохранит нужные запросы и удалит сомнительные данные.
    Безусловно, характер DDoS-атак и их последствия могут быть различными. Наиболее сложными при этом являются атаки, которые ориентированы на переполнение канала, а не на сервер. Боты подставляют любые адреса в качестве адреса-источника, после чего трафик представляет собой поток самых различных данных на адреса сети, подверженной атаке. На сегодняшний день даже такие сложные DDoS-атаки могут быть вовремя выявлены и подавлены. Для этого специалисты разработали специальные системы, которые анализируют поведение трафика, направленного в сеть провайдера. Поскольку обычному человеку такое количество соединений в секунду проанализировать чрезвычайно тяжело, остается лишь довериться искусственному интеллекту, который сделает это быстро и качественно.
    Конечно, на этом способы защиты от DDoS атак не заканчиваются. Более того, ежедневно тысячи ученых работают над созданием новых сервисов и новых систем, которые позволяют продвинуться еще на один шаг вперед в борьбе с DDoS-атаками. Нам же остается только выбрать наиболее приемлемый способ и обеспечить безопасность работы на просторах Интернета.
     
  19. dim76

    dim76 New Member

    Joined:
    3 Jan 2013
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    В сети Интернет есть большое число зараженных компьютеров, которые выполняют удаленно команды, в том числе по команде могут подключаться и загружать любые страницы с любого WEB сервера. Такой управляемый компьютер называет ботом. Множество таких управляемых компьютеров называется бот сетью. Каждый такой компьютер в этой сети - зомби, который всегда готов выполнить команду своего повелителя. В составе такой бот сети может быть одновременно до нескольких сотен тысяч компьютеров.
    Откуда берутся боты?
    Реальные владельцы компьютеров чаще всего не подозревают, что кто-то может управлять их компьютером удаленно. Сейчас троянские программы работают незаметно и мы, не замечая этого, позволяем неизвестным людям использовать ресурсы наших компьютеров для их собственных целей. Люди, которые управляют такой большой бот сетью могут шантажировать крупные компании, владельцев интернет магазинов, интернет-казино, новостных сайтов, платежных систем и других популярных ресурсов, предлагая заплатить выкуп за то, что они не будут атаковать их при помощи своей бот сети.
    Определенно, такие вычислительные ресурсы представляют явный практический интерес. Можно не только проводить DDoS атаки, но и рассылать спам или проводить распределенные вычисления, например подбор пароля. Поэтому, очень часто проводятся попытки украсть бот сеть. Чтобы зомбированный компьютер воспринял команду от хозяина нужно доказать, что ты хозяин, например при помощи пароля. Если этот пароль подобрать, то есть шанс стать хозяином небольшой стаи компьютеров. Например, это возможно для сети на основе ботов BlackEnergy, которые защищены только паролем.
    Пример 1. Самые большие бот сети
    Обнаружена новая бот сеть под названием Kraken, включающая порядка 400 тысяч компьютеров. Размеры бот сети превосходят всемирно известную бот сеть Storm, размер которой около 100 тысяч компьютеров. Источник: компания Damballa на конференции RSA 7.04.2008 Спросите у самого себя: а какие у меня гарантии, что мой компьютер не входит в бот сеть? Дает ли такие гарантии установленный сигнатурный антивирус? Непохоже. По статистике 40% компьютеров входящих в бот сеть имеют антивирус, который не определяет, что компьютер заражен. Дает ли гарантии установленный поведенческий антивирус или система предотвращения атак? Возможно, но многие люди даже не знают что это такое. И, слово специально, уходя с работы никогда не выключают компьютер.
    Никто не застрахован от соучаствия в организации DDOS атак
    Для того, чтобы ваш компьютер стал участником DDoS атаки совершенно необязательно, чтобы на нем была уязвимость или установлен какой-то злонамеренный код. Код для атаки может быть у вашего соседа в сети или на популярном сайте в Интернете. Так Trojan-Downloader.JS.Agent вставляет вредоносный javascript во все соседние компьютеры при помощи атаки ARP spoofing, пока они грузят странички в своим браузером из Интернет. Это может быть любой код, включая код для проведения DDoS атаки. Вот этот код в вашем браузере выполнит 10000 соединений с любым сайтом:
    <div id="attack" style="visibility:hidden">
    <script type="text/javascript">
    attack_host="www.{атакуемый сайт}.com"
    attack_port=80
    path='index.html'
    for(i=1;i<=10000;i++)
    { document.write('<img src="http://' + attack_host + ':' + attack_port + '/' + path + '?' + Math.random() + '">');}
    </script></div>
    Если вы читаете какую-то страницу через WEB браузер, например страницу с этой статьей, и в ней будет внедрен этот javascript код, то вы становитесь соучастником DDoS атаки и 10000 раз нападете на выбранный автором скрипта сайт. А если эту статью прочтет 10000 человек, то на сайт уже будет осуществлено уже 100 000 000 (100 миллионов) соединений. Другой вариант, если один из пользователей вставит этот javascript в сайт, где контент сайта заполняется самими пользователями (форумы, блоги, социальные сети), то помогать в осуществлении атаки будет любой человек зашедший на сайт. Например, если это будут odnoklassniki.ru, где уже 20 миллионов пользователей, то теоретически можно осуществить атаку на сайт при помощи 200000000000 (200 миллиардов) соединений. и это не предел Так что вы уже представляете себе масштаб угрозы. Защищаться надо. Как владельцам сетевых ресурсов от атак, так и пользователям от того, чтобы не стать соучастниками атаки.
    Пример 2: Как осуществить DoS атаку на WEB сервер при помощи двух отверток и браузера.
    Запускаете Internet Explorer, вводите адрес необходимого сайта, одной отверткой фиксируете кнопку Ctrl, другой F5. Количество запросов в секунду, которые будет посылать ваш Internet Explorer может затруднить работу сайта и даже помешать другим людям посетить это же ресурс.
    К DDoS атаке нужно готовиться
    Интернет достаточно агрессивная среда, чтобы начинать в нем бизнес, не позаботившись о своей защите. Но многие компании живут в нем согласно поговорке: пока гром не грянет, мужик не перекрестится. DoS и DDoS атаки отличаются тем, что с ними невозможно бороться без предварительной подготовки. И вдобавок, и это еще хуже, с ними все равно сложно бороться, даже если вы подготовились заранее. Если сейчас страдают DNS и WEB сайты, то на подходе угроза таким все более популярным сервисам как VoIP и IPTV.
    Пример 3: DDoS атака на правительственные сайты Эстонии
    Атаки против эстонских правительственных сайтов начались после переноса властями статуи Бронзового солдата из центра Таллина на окраины. В результате многие правительственные сайты Эстонии перестали работать, а местная компьютерная группа быстрого реагирования была вынуждена закрыть доступ к сайтам из-за границы. Пик атак пришёлся на 8 и 9 мая 2007 года. По словам премьер-министра Эстонии, атаки представляли собой лавину запросов, иногда до 5 миллионов в секунду против обычной посещаемости 1-1,5 тыс. в день. В этой атаке обвинили Россию, тем более, что некоторые российские хакеры брали на себя ответственность за эти действия. Была ли действительно Россия источником атаки читайте в конце статьи.
    К сожалению, многие сервера выставляются в Интернете даже без защиты межсетевым экраном, не говоря уже про более сложные системы защиты типа систем предотвращения атак. В итоге, в тот момент когда начинается атака, выясняется, что защищаться нечем и компании вынуждены тратить драгоценное (в момент атаки) время на простые вещи, такие как установка межсетевого экрана на сервер, установка системы предотвращения атак или переход к другому провайдеру. Но, поскольку DDoS атаки даже с установленными системами защиты сложно остановить, а в момент атаки у вас не будет времени на выбор верного способа защиты, то вы сможете положиться только на средства защиты своего провайдера. И, как правило, в том что DDoS атака провалилась - заслуга провайдера. Именно про правильный выбор провайдера и пойдет рассказ в этой статье. Для начала давайте посмотрим более подробно какими бывают атаки типа отказ в обслуживании.
     
  20. dim76

    dim76 New Member

    Joined:
    3 Jan 2013
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    продолжение статьи:
    Виды DoS атак
    Существует несколько способов группирования DoS атак по типам. Одна из логичных категоризаций DoS атак находится тут
    h__p://www.niser.org.my/resources/dos_attack.pdf
    Различают несколько видов DoS атак.
    Разрушающие
    Атаки, которые приводят к тому что устройство в сети становится полностью неработоспособно: зависает, уничтожается операционная система или конфигурация. Такие атака основана на уязвимостях программного обеспечения атакуемых систем.
    Атаки на ресурсы системы
    Атаки, которые значительно снижают производительность устройств или приложений. Например к этому классу относится атака SYN Flood.
    Заполнение пропускной способности каналов
    В эту категорию попадают атаки, которые своей целью ставят переполнение пропускной способности каналов. Обычно для переполнения канала используются любой вид пакетов TCP, ICMP или UDP с поддельными адресами источника случайно изменяющимися в диапазоне всевозможных значений, адреса получателя в пакете точно также случайно выбирают из диапазона сети, которая находится на атакованном канале. Однако сейчас такие атаки, стали осуществляться при помощи сетей зараженных компьютеров, где адреса источников атаки настоящие, и таким образом, практически неотличимые от подключающихся компьютеров реальных пользователей.
    Еще одной разновидностью DDoS атак такого типа являются DRDoS атаки (Distributed Reflection DoS), которые могут использовать как источник своей атаки любой сервер в Интернете. Идея DRDoS: любой сервер на пакет TCP c SYN флагом обязательно ответит пакетом TCP c флагами SYN+ACK. Если адресом источника в первом пакете поставить адрес жертвы, то сервер пошлет несколько TCP пакетов с флагами SYN+ACK по адресу жертвы, пока не поймет, что жертва соединения не хочет и соединения не будет. Если использовать для атаки много таких мощных серверов, отвечающих на ложные пакеты по ложному адресу, то жертва будет запружена потоком пакетов.
    Пример 4: DDoS на Коммерсант
    Генеральный директор издательского дома "Коммерсант" Демьян Кудрявцев заявил в интервью агентству "Интерфакс" 14 марта 2008 года, что финансовые потери компании, связанные с блокировкой сайта www.kommersant.ru в результате DDoS атак, исчисляются десятками или даже сотнями тысяч долларов.
    Кудрявцев подчеркнул, что DDoS атаки на сайт "Коммерсанта" беспрецедентны для России: "Если известные атаки на сайты эстонского посольства, радиостанции "Эхо Москвы" представляли собой 200-300 мегабайт мусорного трафика в секунду, то вчера на наш сайт его уровень достиг 2 гигабайт в секунду", - отметил он.
    Источник: securitylab.ru
    Атаки 1 и 2 типа встречаются достаточно части и для борьбы с ними администраторы уже давно эффективно используют как сетевые так и хостовые системы предотвращения атак (IPS). В этой статье мы будем говорить о защите от атак 3 типа, поскольку об этих методах защиты пока еще нет информации в русскоязычном Интернете. Атака третьего типа может быть обнаружена системой обнаружения или предотвращения атак, но заблокировать такую атаку на самом канале ни одна система защиты к сожалению будет неспособна. Канал во время атаки переполнен и в защите от атак должен принимать участие вышестоящий провайдер. IPS обычно не используются для защиты от таких атак, хотя сигнатуры для защиты SYNFlood и UDPFlood помогают уменьшить влияние этих атак, разгрузив атакованные сервера. Чаще всего для атак этого типа используются бот сети, которые выполняют вполне легитимные подключения и работу с вашей сетью. Но проблема в том, что их слишком много и отличить зомбированный компьютер от реального пользователя практически невозможно. Атаки третьего типа знакомы всем дачникам, пытающимся выехать из Москвы в пятницу и вернуться в Москву в воскресенье: МКАД и все трассы в области забиты и никакими средствами избавиться от их нельзя. Все пытающиеся прорваться сквозь пробку ругаются, хотя на самом деле сами и являются частью этой пробки. Остается только ждать, когда это все кончится само.
    Защита от DDoS для корпоративной сети
    Если ваш провайдер не предлагает услугу по блокировании DDoS атак, то у вас есть вариант попросить кого-то еще это сделать, но не меняя провайдера. Такую услугу мы разберем на примере компании Antiddos (www.antiddos.org). Даже, если на вас в настоящий момент идет атака, то вы можете достаточно быстро блокировать ее при помощи сервиса Antiddos одним из следующих вариантов.
    Перенаправление DNS и использование прокси
    Вы можете прописать в DNS IP адреса сети компании Antiddos.org. Допустим прописать, что ваш WEB сервер стоит на IP адресах Antiddos. В итоге атака будет направляться в их сеть, трафик DDoS будет отрезаться, а нужный трафик с вашего WEB сайта при помощи обратного прокси доставляться всем клиентам. Этот вариант очень подходит Интернет банкам, Интернет магазинам, онлайн-казино или электронным журналам. Вдобавок прокси позволяет кешировать данные.
    BGP маршруты и GRE туннели
    Antiddos.org может, используя протокол маршрутизации BGP сказать всему Интернету, что ваша сеть находится в сети Antiddos.org и весь трафик будет перенаправляться к ним, где и будет очищаться от злонамеренного содержимого. Чистый трафик вам будет перенаправляться при помощи протокола GRE, который переносит данные в вашу сеть так, как будто никакой DDoS атаки и не было. А вы из своей сети будете отвечать на пришедшие к вам пакеты в обычном режиме, поскольку ваш канал уже не будет перегружен.
    Прямое подключение к ANTIDDOS.ORG
    Можно напрямую подключить свою сеть через antiddos.org и всегда быть под их защитой, но по понятным причинам это не всегда возможно. Если ваша компания международная, то часть своих ресурсов вы можете подключить через компанию Antiddos.org или подобные компании. И на вас будет сложно совершить DDoS атаку.
    Наша компания защищает от ддос атак по своим уникальным технологиям. Мы не используем активных средств защиты. Вся наша инфраструктура построена на программно - аппаратном комплексе собственной разработки, что позволяет гибко настраивать систему защиты под нужды любых клиентов а также противодействовать атакам любой силы.
    Сервис от Akamai
    Большие компании, такие как IBM, Microsoft, Apple, Sony, AMD, BMW, Toyota, FedEx, NASA, NBA, MTV защищают свои WEB сайты от DDoS атак при помощи сервиса Akamai (www.akamai.com). Однако защита от DDoS, это лишь одна из возможностей сервиса Akamai. Этот сервис позволяет компаниям иметь зеркало своих сайтов в тысячах различных точек по всему земному шару, гарантируя 100% доступность в любое время. Обычно на зеркалах лежат мультимедийные данные, такие как видео, аудио и графика. Akamai использует математические алгоритмы для решения проблем с перегрузками возникающими на WEB серверах в глобальном масштабе. Эти алгоритмы были разработаны в Массачусетском технологическом институте (MIT). И именно благодаря им Akamai обеспечивает быструю и надежную передачу контента пользователям Интернет. Есть в судьбе компании и печальный факт: один из основателей Akamai Даниель Левин был убит при попытке остановить террористов в одном из самолетов захваченных 11 сентября 2001 года в США.
    Пример 6.
    Но даже Akamai однажды в 2004 году был выведен на час из строя. Говорят, что это была атака на DNS, но это тоже одна из темных историй. Подробнее тут www.washingtonpost.com/wp-dyn/articles/A44688-2004Jun15.html
    Средства защиты от DDoS атак для провайдеров
    В обычной ситуации невозможно отделить трафик ботов от трафика реальных пользователей: с виду это совершенно одинаковые запросы с разных адресов-источников. 99% этих адресов-источников могут быть ботами, и лишь 1% - реальными людьми, желающими воспользоваться вашим сайтом. И тут возникает вполне ожидаемое решение: надо просто иметь список этих зомби и блокировать их. Но как собрать такой глобальный список, ведь это затрагивает весь мир? И как выясняется для нас это элементарно.
    Есть коммерческие компании, которые непрерывно собирают список адресов с зараженными компьютерами. Остается только пропустить ваш трафик через фильтр, который отрежет ненужные запросы и оставит нужные. Здесь фильтром может быть либо межсетевой экран, на который была установлена новая политика фильтрации или маршрутизатор на который был прислан новый список доступа, однако наиболее эффективным является применение специальных блокираторов. Пора уже назвать имена таких производителей (в алфавитном порядке):
    Arbor (www.arbornetworks.com/en/threat-management-system.html)
    Cisco (www.cisco.com/en/US/products/ps5888/index.html)
    CloudShield (www.cloudshield.com/Products/cs2000.asp)
    Narus (www.narus.com/products/index.html)
    Компания Arbor собирает списки адресов бот сетей (http://atlas.arbor.net/summary/botnets), что используется в продуктах Arbor и ее партнеров. Такие списки адресов постоянно обновляются раз в 15 минут и, например, используются для обнаружения подключения защищаемых рабочих станций к бот сетям в продукте IBM Proventia Anomaly Detection System. В первом случае у провайдеров используется технология Peakflow SP, в другом в корпоративных сетях технология Peakflow X. Устройства производителей систем защиты от распределенных атак отличаются в первую очередь максимальными скоростями на которых они работают и числом одновременно защищаемых клиентов. Если у вас каналы передачи данных используют или планируют более одного 10Гбит соединения, то нужно уже задумываться какого производителя выбрать. Кроме того, производители отличаются различным дополнительным функционалом, временем требуемым на обнаружение атаки и включение защиты, производительностью и другими параметрами.
    Автоматика против интеллекта
    В случае, когда атака направлена не на сервер, а на переполнение канала, то боты подставляют в качестве адреса-источника любые адреса и трафик выглядит как поток каких-то данных со всех адресов Интернета на все адреса атакуемой сети. Это самый сложный вид атаки.
     
    #20 dim76, 20 Jan 2013
    Last edited: 20 Jan 2013