powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Проясните поведение сервера при Slow POST атаке
12 сообщений из 12, страница 1 из 1
Проясните поведение сервера при Slow POST атаке
    #39212007
janco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую. Читал о Slow POST атаках, но везде "в общих чертах". Типа делается пост-запрос с большим Content-Length заголовком и медленно передаются данные. Потом соединение прерывается с инициативы клиента не отправив все данные, и открывается новое. А сервер ожидает передачи всех данных и исчерпывает все соединения.
Но у меня возникли вопросы, не могу найти ответа. Прошу разъяснить или направить где это подробно описано.
1. Имеется сервер Apache 2.х Заголовки в ответ выдаёт на обычный запрос
Connection: Keep-alive
Keep-Alive: timeout=5, max=100
Что значит timeout=5? Он закроет соединение через 5 секунд после последнего переданного байта от клиента, или всё таки будет ждать, пока не придут все байты опред. в Content-length?
2. Если курлом делать запрос, то "разрыв" соединения как практически происходит? По таймауту?
3. Если прокси используется, с ним когда соединения рвутся?
...
Рейтинг: 0 / 0
Проясните поведение сервера при Slow POST атаке
    #39212008
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
janco, на все три вопроса ответ один - поставьте nginx перед apache.
...
Рейтинг: 0 / 0
Проясните поведение сервера при Slow POST атаке
    #39212781
VGrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
janco1. Имеется сервер Apache 2.х Заголовки в ответ выдаёт на обычный запрос
Connection: Keep-alive
Keep-Alive: timeout=5, max=100
Что значит timeout=5? Он закроет соединение через 5 секунд после последнего переданного байта от клиента, или всё таки будет ждать, пока не придут все байты опред. в Content-length?

Сначала читать, как минимум, тут
Дальше, по ссылкам с wiki: timeout и max .

Иными словами, Вы сами, с помощью поисковиков, вполне могли найти ответы на вопросы о Keep-Alive.

janco2. Если курлом делать запрос, то "разрыв" соединения как практически происходит? По таймауту?
3. Если прокси используется, с ним когда соединения рвутся?

Грубо, Апачу неважно, соединяется с ним curl, бровзет, еще какой клиент, прямо или через прокси.
Если Keep-Alive: timeout=5, max=100, то соединение после одного запроса curl-лом будет разорвано через 5 сек после его выполнения. Если идет много запросов, например, бровзер открывает страницу, соединие будет разорвано или после 5 сек неативности, или после 100 запросов в одном соединении.

Механизм Keep-Alive никаго отношения к Slow POST атакам не имеет. Таймуты Keep-Alive никак не влияют на воможность или невозможность Slow POST.
...
Рейтинг: 0 / 0
Проясните поведение сервера при Slow POST атаке
    #39212904
janco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netwindjanco, на все три вопроса ответ один - поставьте nginx перед apache.
Как мне nginx ответит на эти вопросы?
@VGrey, спасибо. Но Вы коснулись только стороны работы сервера.
VGreyМеханизм Keep-Alive никаго отношения к Slow POST атакам не имеет. Таймуты Keep-Alive никак не влияют на воможность или невозможность Slow POST.
Вот это я не очень понимаю. На возможность/невозможность нет, а вот на сам ход атаки - сомневаюсь.
Из документации Апача:
apacheSetting KeepAliveTimeout to a high value may cause performance problems in heavily loaded servers. The higher the timeout, the more server processes will be kept occupied waiting on connections with idle clients.
Т.е. от этого значения зависит время ожидания соединения. Чем больше будут ожидаться запросы, тем быстрее лимит исчерпается. А при малом значении часть соединений будут закрываться и освобождаться для обслуживания новых клиентов и их запросов. Или я неправильно понимаю? Здесь также не ясно что такое idle client ?
Например если я курлом делаю запрос (интересует именно его случай) с опцией
--max-time 20
(для примера). И после 20 секунд если все данные не будут переданы, соединение будет закрыто с инициативы клиента, или оно станет idle? - Вот что наиболее меня интересует.
Дальше. Вот цитата с Хабра , что меня сбивает:
отсылаем http запрос, указывая большой content-length и медленно передаем всего по одному байту, обрывая на одном из моментов свой коннект и начиная новый. По стандарту, сервер должен дождаться полной отправки данных (полной — получив содержимое в Content-Length байт), прервав только по таймауту.
По какому таймауту? Вот зато я и спрашиваю. С одной стороны сервер должен дождаться всех байтов, с другой стороны, если я оборву связь на одном из моментов, то он закроет соединение через KeepAliveTimeout - 5 секунд.
Собственно и вопрос: Сколько он будет ждать? Пока не получит все байты, или 5 секунд? Ведь получается одна ситуация другую "перекрывает". Какая приоритетнее?
...
Рейтинг: 0 / 0
Проясните поведение сервера при Slow POST атаке
    #39213048
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
janconetwindjanco, на все три вопроса ответ один - поставьте nginx перед apache.
Как мне nginx ответит на эти вопросы?

nginx отвечает на запросы посетителей и решает конкретные проблемы. Он почти что не подвержен подобной атаке, из-за того что контекст подключения почти невесомый.

Теоретизирование с непонятной целью - это на форум к какерам.
...
Рейтинг: 0 / 0
Проясните поведение сервера при Slow POST атаке
    #39213955
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jancoConnection: Keep-alive
Keep-Alive: timeout=5, max=100
Что значит timeout=5?Keep-alive это "постоянные соединения", а то, что вы подумали это тайм-ауты на обработку запроса.
Не нравятся умолчания - крутите mod_reqtimeout

P.S. Apache 2.2.x и 2.4.x - различаются по возможностям и документации.

P.P.S. Постоянные соединения работают при сочетании всех условий:
1. Запрошены клиентом и разрешены на сервере;
2. Размер ответа известен;
3. Новый запрос поступает до истечения тайм-аута после отсылки ответа;
4. Общее число запросов на одном TCP-соединении не превышает разрешённого на сервере.
...
Рейтинг: 0 / 0
Проясните поведение сервера при Slow POST атаке
    #39214010
janco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov3. Новый запрос поступает до истечения тайм-аута после отсылки ответа;

Так ответа никакого и нет потому что запрос не доведён до конца: данные передаются медленно на сервер и потом в один момент прекращается передача. Т.е. будет ждать все байты?
...
Рейтинг: 0 / 0
Проясните поведение сервера при Slow POST атаке
    #39214025
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jancoТак ответа никакого и нет потому что запрос не доведён до концаПовторяю ещё раз: таймауты на обработку запроса (безотносительно постоянных соединений) и таймауты между запросами для постоянных соединений - две совершенно разные сущности.

P.S. По вашему я, что, постскритумы от нечего делать поставил?
...
Рейтинг: 0 / 0
Проясните поведение сервера при Slow POST атаке
    #39228476
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может оно так и было в какой-то версии апача. если это работает именно так, то это работает потому что данные могли не сбрасываться на диск, и хранится в памяти. само соединение почти не требует ресурсов.
то, что описал тс, довольно странно, ведь сервер может взять да и оборвать самое старое соединение, если у него не хватает ресурсов.
если клиент закрывает соединение, то сервер об этом узнает и тоже его закроет. клиенту нужно просто перестать отправлять данные.
...
Рейтинг: 0 / 0
Проясните поведение сервера при Slow POST атаке
    #39228508
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_blackможет оно так и было в какой-то версии апача. если это работает именно так, то это работает потому что данные могли не сбрасываться на диск, и хранится в памяти. само соединение почти не требует ресурсов.

Это где-то в идеальном мире ускоспециализированных программ. Но Apache - Универсальный Веб-Сервер . Он делает все, что может потребоваться разнообразным модулям.
Для оценки масштаба унификации следует вспомнить, что существовал даже некий cisco sip proxy server на базе apache. То есть, модуль обрабатывающий протокол SIP отдаленно похожий на HTTP.
Соединение задействует не только дескрипторы соединения, но и все что apache для него выделяет - весь контекст потока,всякие буферы в каждом модуле и тд. И все это освободить нельзя до завершения обработки запроса. В этом суть атаки.

то, что описал тс, довольно странно, ведь сервер может взять да и оборвать самое старое соединение, если у него не хватает ресурсов.
если клиент закрывает соединение, то сервер об этом узнает и тоже его закроет. клиенту нужно просто перестать отправлять данные.
Для этого нужно чтобы кто-то написал этот код. Но его не написали. По разным причинам.
Максимум что apache 2.4 научили делать - не обрабатывать соединения в состоянии простого ожидания. От атаки это не спасает.
...
Рейтинг: 0 / 0
Проясните поведение сервера при Slow POST атаке
    #39228517
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwindДля этого нужно чтобы кто-то написал этот код. Но его не написали. По разным причинам.
Максимум что apache 2.4 научили делать - не обрабатывать соединения в состоянии простого ожидания. От атаки это не спасает.в который раз убеждаюсь, что апач лучше не использовать :) по крайней мере как фронтенд точно.
когда я пишу веб сервер, мне всегда в голову стукает мысль "что будет если кончится такой-то ресурс", память например. веб, такое дело, там всегда нужно проверять на предмет атаки.
...
Рейтинг: 0 / 0
Проясните поведение сервера при Slow POST атаке
    #39228761
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_black, я не писал, что apache - плохой. Я писал о том, что apache универсальный.
А вот вы попытались приписать apache спорный функционал, которого нет и не понятно как вообще реализовать. Да его и в nginx нет.
Что значит формулировка не "хватает ресурсов " ? Кто их будет высчитывать и по какому алгоритму ?

Есть настройка MaxClients и всякие таймауты - многим этого достаточно для достижения стабильности.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Проясните поведение сервера при Slow POST атаке
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]