The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Уязвимость в приложениях на базе HTTP-библиотеки Hyper, opennews (??), 06-Янв-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


149. "Уязвимость в приложениях на базе HTTP-библиотеки Hyper"  +/
Сообщение от MaleDog (?), 07-Янв-23, 04:15 
Еще поди можно так:
- кидаем много запросов с небольшим Content-Length, но с телом усеченным до нуля и одного байта.
- сервер выделяет под них память, но освобождает ее с лагом, так как ждет нужное количество байт которых нет.
Ответить | Правка | Наверх | Cообщить модератору

161. "Уязвимость в приложениях на базе HTTP-библиотеки Hyper"  +/
Сообщение от Sw00p aka Jerom (?), 07-Янв-23, 09:15 
>так как ждет нужное количество байт которых нет.

в смысле? освобождает ровно столько сколько выделил

Ответить | Правка | Наверх | Cообщить модератору

184. "Уязвимость в приложениях на базе HTTP-библиотеки Hyper"  +/
Сообщение от MaleDog (?), 07-Янв-23, 12:02 
Выделяет столько сколько сказали. Затем он по какому-то таймауту должен понять, что столько байт ему никто передавать столько не собирается. Думаю не меньше нескольких секунд. К примеру, открыл какой-нибудь бот 1000 соединений, в каждом попросил принять 10M, и ... добрый сервер выделил боту 10G оперативной памяти? А если столько нет? Да и затраты на выделение не нулевые. Допустим через секунду бот отвалился и все соединения сброшены, а память освобождена, но что мешает боту еще "медленной записью" заняться передавая эти 10M по паре байт в секунду, тогда и таймаут не сработает и у сервера 10G оперативки будут заняты на неопределенный срок.
Выделять под буфер нужно столько памяти, чтобы обработчик запроса успевал обрабатывать без задержек(к примеру парсер JSON успевал обработать ключ и привести его значение к нужному типу), а не помещать весь запрос в оперативную память, а потом обрабатывать.
Ответить | Правка | Наверх | Cообщить модератору

330. "Уязвимость в приложениях на базе HTTP-библиотеки Hyper"  +/
Сообщение от Аноним (330), 08-Янв-23, 19:44 
> добрый сервер выделил боту 10G оперативной памяти? А если столько нет?

overcommit

> что мешает боту еще "медленной записью" заняться передавая эти 10M по паре байт в секунду

Лимит по времени на запрос

Ответить | Правка | Наверх | Cообщить модератору

359. "Уязвимость в приложениях на базе HTTP-библиотеки Hyper"  +/
Сообщение от MaleDog (?), 10-Янв-23, 11:01 
Но при этом на "лимит времени" память будет занята. Притом атакующий затратит гораздо меньше ресурсов. Так ему нужна память только на заголовки одного запроса, а в качестве тела будет "мусор". Нет, так дела не делаются. Выделяем буфер на заголовки. Парсим проверяем. Далее либо буферизуем тело небольшим буфером передавая по частям обработчику, либо просто пробрасываем TCP-соединение ему - пусть сам разбирается.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру