Denial of Service
От: ipm  
Дата: 06.10.04 14:50
Оценка:
Не подскажет ли знающая публика как решить такую задачу?
Есть веб сервер (IIS,ASP) который обрабатывает энное количесво запросов от клиентов. Нагрузка обычно небольшая, так что проблем нет. Но ведь легко может найтись идиот который от нечего делать напишет простейшую программу и пошлет сотни или тысячи запросов в секунду. Тогда сервер может загнуться. Есть ли системные средства или стандартные методы программирования чтобы от этого защититься?
Я не говорю о сложных DDoS атаках, от них довольно сложно звшититься и отличить их от активности нормальных пользователей. Но простейших алгоритм типа: получив очередной запрос на страницу проверить не исполняется ли уже запрос на на такую-же страницу и если да, то по крайней мере отменить всю предыдуший запрос. Особую сложность вызывает здесь необходимость отменить исполняющийся запрос к базе данных.

Может кто знает решение?

07.10.04 14:59: Оставлено модератором в 'Веб программирование' — TK
Re: Denial of Service
От: Ivun  
Дата: 06.10.04 14:58
Оценка:
Здравствуйте, ipm, Вы писали:

ipm>Может кто знает решение?


Я бы на твоём месте пошёл а кухню и поставил чайник. На крайний случай в аптеку за новопасситом.

Такая опасность существует, конечно, всегда, только большинство не заморачивается. Просто надо быть уверенным что сервер -- не Pentium 166 и софт на нём не 5-летней давности. DoS`а бояться -- в интернет не ходить.
... << Слушал Infected Mushroom — Blink >>
Re[2]: Denial of Service
От: ipm  
Дата: 06.10.04 15:01
Оценка:
Здравствуйте, Ivun, Вы писали:

I>Здравствуйте, ipm, Вы писали:


ipm>>Может кто знает решение?


I>Я бы на твоём месте пошёл а кухню и поставил чайник. На крайний случай в аптеку за новопасситом.


I>Такая опасность существует, конечно, всегда, только большинство не заморачивается. Просто надо быть уверенным что сервер -- не Pentium 166 и софт на нём не 5-летней давности. DoS`а бояться -- в интернет не ходить.


Да я бы и не заморачивался, если бы сервер от этого не рухнул. И вроде сервер неплохой и софт новый.
Re[3]: Denial of Service
От: Ivun  
Дата: 06.10.04 15:04
Оценка:
Здравствуйте, ipm, Вы писали:

ipm>Да я бы и не заморачивался, если бы сервер от этого не рухнул. И вроде сервер неплохой и софт новый.

Значит либо плохой либо не новый.
... << Слушал тишину >>
Re: Denial of Service
От: Spidola Россия http://www.usametrics.ru
Дата: 06.10.04 18:01
Оценка:
Здравствуйте, ipm, Вы писали:

ipm>Может кто знает решение?


Может быть просто ограничить количество одновременных подключений к web-узлу? Это делается в настройках конкретного сайта, в свойствах быстродействия... Поставить 100 пользователей максимум (или сколько там нужно)...
... << RSDN@Home 1.1.4 >>...
Re[2]: Denial of Service
От: glyph  
Дата: 07.10.04 06:10
Оценка:
Здравствуйте, Spidola, Вы писали:

S>Здравствуйте, ipm, Вы писали:


ipm>>Может кто знает решение?


S>Может быть просто ограничить количество одновременных подключений к web-узлу? Это делается в настройках конкретного сайта, в свойствах быстродействия... Поставить 100 пользователей максимум (или сколько там нужно)...

Вот атакующий и сделает 100 соединений со совей машины, а остальных сервер сам повыгоняет.
Лучше всего сделать ограничение на количество одновременных сессий с одного хоста. Можно по ИП, но могут обломаться пользователи прокси. Ну, можно скомбинировать адрес+куки, ...
Re[3]: Denial of Service
От: Spidola Россия http://www.usametrics.ru
Дата: 07.10.04 09:56
Оценка:
Здравствуйте, glyph, Вы писали:

G>Здравствуйте, Spidola, Вы писали:


S>>Здравствуйте, ipm, Вы писали:


ipm>>>Может кто знает решение?


S>>Может быть просто ограничить количество одновременных подключений к web-узлу? Это делается в настройках конкретного сайта, в свойствах быстродействия... Поставить 100 пользователей максимум (или сколько там нужно)...

G> Вот атакующий и сделает 100 соединений со совей машины, а остальных сервер сам повыгоняет.

Зато не рухнет.

G> Лучше всего сделать ограничение на количество одновременных сессий с одного хоста. Можно по ИП, но могут обломаться пользователи прокси. Ну, можно скомбинировать адрес+куки, ...


Вообще ИМХО данную задачу лучше решать внешним роутером (желательно с файрволом), поскольку все программные барьеры всё равно требуют под себя ресурсы.
... << RSDN@Home 1.1.4 >>...
Re[3]: Denial of Service
От: ipm  
Дата: 07.10.04 14:28
Оценка:
Здравствуйте, glyph, Вы писали:

G>Здравствуйте, Spidola, Вы писали:


S>>Здравствуйте, ipm, Вы писали:


ipm>>>Может кто знает решение?


S>>Может быть просто ограничить количество одновременных подключений к web-узлу? Это делается в настройках конкретного сайта, в свойствах быстродействия... Поставить 100 пользователей максимум (или сколько там нужно)...

G> Вот атакующий и сделает 100 соединений со совей машины, а остальных сервер сам повыгоняет.
G> Лучше всего сделать ограничение на количество одновременных сессий с одного хоста. Можно по ИП, но могут обломаться пользователи прокси. Ну, можно скомбинировать адрес+куки, ...

А как это сделать? На уровне приложения? IIS? или дополнительое устройство типа router, firewall, IDS?
Re[4]: Denial of Service
От: ipm  
Дата: 07.10.04 14:33
Оценка:
Здравствуйте, Spidola, Вы писали:

S>Здравствуйте, glyph, Вы писали:


G>>Здравствуйте, Spidola, Вы писали:


S>>>Здравствуйте, ipm, Вы писали:


ipm>>>>Может кто знает решение?


S>>>Может быть просто ограничить количество одновременных подключений к web-узлу? Это делается в настройках конкретного сайта, в свойствах быстродействия... Поставить 100 пользователей максимум (или сколько там нужно)...

G>> Вот атакующий и сделает 100 соединений со совей машины, а остальных сервер сам повыгоняет.

S>Зато не рухнет.


Ну разница не очень велика так как сайт в это случае все равно не работает.

G>> Лучше всего сделать ограничение на количество одновременных сессий с одного хоста. Можно по ИП, но могут обломаться пользователи прокси. Ну, можно скомбинировать адрес+куки, ...


S>Вообще ИМХО данную задачу лучше решать внешним роутером (желательно с файрволом), поскольку все программные барьеры всё равно требуют под себя ресурсы.


В том то и дело, что я не могу найти устройство которое может справиться с такой задачей. Firewall (с моей точки зрения) не работает на таком уровне. Он может отсечь неправильный пакет, но сделать анализ типа: запрос на туже самую страницу пришел всего через одну миллисекунду с того же адреса я думаю он не в сосотоянии. Если я ошибаюсь, то что вы посоветуете использовать.
Re[5]: Denial of Service
От: Spidola Россия http://www.usametrics.ru
Дата: 07.10.04 15:24
Оценка:
Здравствуйте, ipm, Вы писали:

S>>>>Может быть просто ограничить количество одновременных подключений к web-узлу? Это делается в настройках конкретного сайта, в свойствах быстродействия... Поставить 100 пользователей максимум (или сколько там нужно)...

G>>> Вот атакующий и сделает 100 соединений со совей машины, а остальных сервер сам повыгоняет.

S>>Зато не рухнет.


ipm>Ну разница не очень велика так как сайт в это случае все равно не работает.


Почему, сайт то затухнет, зато после атаки опять начнёт работать самостоятельно...

ipm> Если я ошибаюсь, то что вы посоветуете использовать.


Ничего не посоветую, поскольку не совсем компетентен в роутерах, просто видел такие фразы:

Не забывая и о безопасности внутренней сети, NetScreen создала персональный межсетевой экран NetScreen-Remote, который (как и аналогичный продукт Check Point) существует в двух вариантах: с функциями VPN-клиента или с функциями защиты компьютера (пакетный фильтр, защита от DoS-атак, контроль приложений и т. п.).


здесь
... << RSDN@Home 1.1.4 >>...
Re: Denial of Service
От: butcher Россия http://bu7cher.blogspot.com
Дата: 07.10.04 15:40
Оценка: +1
Здравствуйте, ipm, Вы писали:

ipm>Есть веб сервер (IIS,ASP) который обрабатывает энное количесво запросов от клиентов. Нагрузка обычно небольшая, так что проблем нет. Но ведь легко может найтись идиот который от нечего делать напишет простейшую программу и пошлет сотни или тысячи запросов в секунду. Тогда сервер может загнуться. Есть ли системные средства или стандартные методы программирования чтобы от этого защититься?

ИМХО, 100% решения по защите от DOS/DDOS в Internet нет. Вообще говоря DOS бывают разные, и защищаются от них по-разному.
Если рассматривать DOS-атаки типа флуда (видимо это те, которых вы боитесь больше всего ), то от них обычно защищаются различными брэндмауерами и фильтрами. От атак на вычислительные ресурсы сервера обычно спасают лимиты (на время выполнения; число запросов, процессов и т.п.), в таких случаях максимальное чего может достичь атакующий, это недоступность сервисов для некоторых клиентов, или частичное нарушение их функциональности. Так же, наверно более эффективным решением является использование кластеров и распределённых систем, т.е. когда сервис фактически предоставляют несколько серверов, запросы на которые распределяют либо другие сервера, либо специалные устройства..
От DOS-атак на затопление канала передачи наверно помогут только жёсткие настройки роутинга и фильтрация, использование широких каналов

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


Если на ваш сервер посупают тысячи запросов, вам будет не до проверок, выполняется ли там какой-то запрос.. Используйте эффективные методы кэширования, чтобы не нужно было на каждый запрос лезти в базу и делать в ней выборку полумилиона строк

Нет ничего невозможного..
Re[4]: Denial of Service
От: glyph  
Дата: 08.10.04 05:39
Оценка:
Здравствуйте, Spidola, Вы писали:

S>Вообще ИМХО данную задачу лучше решать внешним роутером (желательно с файрволом), поскольку все программные барьеры всё равно требуют под себя ресурсы.

ИМХО, нужно сочетать все подходы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.