Маленькие хитрости по поводу DDOS

Всяческий Бред - Идти на Главную Страницу >>>

Категории:

Полезные Сведенья
Кухонная Философия
Общество и его пороки
Новости
Еда и Питье
Техника
Разное
Личное
Природа
Фото/Видео
"Веселые" Картинки
Юмор


Пишите Письма



Реклама:

Реклама

March 17, 2008

От серьезной атаки это, конечно, не спасет. Серьезные атаки могут создавать поток на несколько гигабит и засирать раутеры на площадках. Но от всяких пионэров-хакеров помочь вполне может. Нижеприведенная информация не претендует на полноценный рецепт и является лишь отправной точкой для дальнейших самостоятельных поисков. Как говорили старые программисты на Си по поводу отсутствия комментариев в программе: "Умный и так поймет, а дуракам ни к чему". На русский не перевожу в соответствии с тем же принципом. Однако замечу, что метод на основе tarpit вполне рабочий и был недавно на моих глазах успешно использован для уменьшения силы DDOS в 10 раз.

Fortunately, most HTTP-based DoS attacks we have seen have a particular weakness - they are vulnerable to a technique known as "tarpitting". This idea was first proposed by Tom Liston many years ago when the first scanning worms hit the Internet, and was implemented in his program LaBrea (which he no longer offers for download, due to legal concerns - however, the source code can still be found elsewhere and should work on Linux or BSD-based operating systems). The quickest way to implement tarpitting (if your webserver runs on Linux) is in the Linux netfilter source code. If the tarpit module is compiled for your Linux kernel, the operation becomes as simple as "iptables -A INPUT -s x.x.x.x -p tcp -j TARPIT".

Tarpitting works by taking advantage of TCP/IP's idea of window size and state. In a tarpitted session, we respond to the connection initiation as normal, but we immediately set our TCP window size to just a few bytes in size. By design, the connecting system's TCP/IP stack must not send any more data than will fit in our TCP window before waiting for us to ACK the packets sent. This is to allow connections to deal with packet loss that might occur in a normal session. If the sending system doesn't get an ACK to a packet sent, it will resend the packet at increasingly longer intervals. In our tarpitted session, we simply don't ack any of the post-handshake packets at all, forcing the remote TCP/IP stack to keep trying to send us those same few bytes, but waiting longer each time. With this, bandwidth usage falls off quickly to almost nothing.

It might seem reasonable to simply use iptables -j DROP to not respond to connections at all - this will certainly prevent the webserver from seeing the connection, but because the connection may have a timeout set, it is likely we'll keep seeing connection attempts at a fairly regular rate. Essentially a DROP rule turns our HTTP flood into a SYN flood.

Источник



Тэги: Mar2008 Техника Полезные сведенья

Темы, имеющие некоторое отношение к этой (русскоязычный поиск в mysql все же очень не совершенен):
Маленькие хитрости August 30, 2016
"Маленькие хитрости" программирования на JavaScript May 5, 2008
Как поджечь Б-52 March 12, 2008
Маленькие народные радости March 20, 2008
Когда маленькие дети себя плохо вели... July 30, 2012

Комментировать:
пользователь: пароль:
регистрироваться  Залогинится под OpenID


Архив:

Jan2018   Dec2017   Nov2017   Oct2017   Sep2017   Aug2017   Jul2017   Jun2017   May2017   Apr2017   Mar2017   Feb2017   Jan2017   Dec2016   Nov2016   Oct2016   Sep2016   Aug2016   Jul2016   Jun2016   May2016   Apr2016   Mar2016   Feb2016   Jan2016   Dec2015   Nov2015   Oct2015   Sep2015   Aug2015   Jul2015   Jun2015   May2015   Apr2015   Mar2015   Feb2015   Jan2015   Dec2014   Nov2014   Oct2014   Sep2014   Aug2014   Jul2014   Jun2014   May2014   Apr2014   Mar2014   Feb2014   Jan2014   Dec2013   Nov2013   Oct2013   Sep2013   Aug2013   Jul2013   Jun2013   May2013   Apr2013   Mar2013   Feb2013   Jan2013   Dec2012   Nov2012   Oct2012   Sep2012   Aug2012   Jul2012   Jun2012   May2012   Apr2012   Mar2012   Feb2012   Jan2012   Dec2011   Nov2011   Oct2011   Sep2011   Aug2011   Jul2011   Jun2011   May2011   Apr2011   Mar2011   Feb2011   Jan2011   Dec2010   Nov2010   Oct2010   Sep2010   Aug2010   Jul2010   Jun2010   May2010   Apr2010   Mar2010   Feb2010   Jan2010   Dec2009   Nov2009   Oct2009   Sep2009   Aug2009   Jul2009   Jun2009   May2009   Apr2009   Mar2009   Feb2009   Jan2009   Dec2008   Nov2008   Oct2008   Sep2008   Aug2008   Jul2008   Jun2008   May2008   Apr2008   Mar2008   Feb2008   Jan2008   Dec2007   Nov2007   Oct2007   Sep2007   Aug2007   Jul2007   Jun2007   May2007   Apr2007   Mar2007   Feb2007   Jan2007   Dec2006   Nov2006   Oct2006   Sep2006   Aug2006   Jul2006   Jun2006   May2006