Forwarded from Кресты на моей кукухе
Есть известный мем про отсутствие менеджмента памяти в ракетах, потому что она утекает дольше, чем ракета летит
Тут, видимо, новый кейс нашёлся
Тут, видимо, новый кейс нашёлся
🤡18🤣15😁3
#prog #rust #itsec #article
hyper HTTP/2 (Didn't) MadeYouReset
Протокол HTTP/2 позволяет открыть несколько стримов поверх одного соединения, каждый из которых может быть отменён (reset) любой стороной в любой момент. В некоторых случаях это нужно сделать обязательно — например, когда одна из сторон присылает невалидные сообщения. Это сделало возможным уязвимость, названную MadeYouReset. Суть её в том, что злоумышленник инициирует соединение с максимально возможным числом стримов, а затем постоянно их сбрасывает путём отправки невалидных фреймов. Обработка всех этих запросов и следование протоколу отнимает ресурсы сервера, что делает возможным Denial of service.
Эта уязвимость очень схожа с уязвимостью Rapid Reset, но, как описано в статье от Cloudflare, она несколько более хитрая. Rapid Reset полагается на явную отмену стримов клиентом через посылку фрейма RST_STREAM. MadeYouReset же работает через посылку невалидных фреймов, заставляя сервер парсить запросы и отменять стримы уже с его стороны.
Многие реализации HTTP/2 на практике делали работу по обработке запроса даже после закрытия стрима. Простые меры предосторожности против Rapid Reset, отслеживающие только фреймы RST_STREAM от клиента, бесполезны против MadeYouReset.
h2 (Rust-библиотека для работы с протоколом HTTP/2) оказалась не подвержена этой уязвимости. Почему? На это есть несколько причин.
Во-первых, в h2 несколько лет назад добавили меру предосторожности против абьюза клиентами отмен стримов. Именно, h2 отслеживает, сколько раз фрейм от клиента привёл к отмене стрима со стороны клиента, и когда это число достигает настраиваемого порога, закрывает соединение целиком. Это уже хорошая защита, которая на практике успешно защищала от Rapid Reset, но она была не безупречна — для одного типа фреймов (WINDOW_UPDATE) на одном из путей исполнения это число не обновлялось (разумеется, это поправили).
Во-вторых, h2 — библиотека, а не фреймворк, и всегда передаёт вызывающему коду информацию об отмене стрима. Разумеется, от этого мало толку, если вызывающий код на это никак не реагирует.
И это подводит нас к третьей причине: контекст использования. На практике h2 использовалась совместно с hyper, Rust-библиотеке для HTTP, абстрагированной от конкретной версии протокола. В коде hyper для стримов ожидается исполнение двух футур: поставляющей новые фреймы из стрима и обрабатывающей запросы из этого стрима. При получении отмены стрима hyper отменяет футуру, обрабатывающую запрос.
Итого: даже без закрытия бага с WINDOW_UPDATE h2 не был подвержен MadeYouReset. Разумеется, это во многом заслуга продуманной архитектуры h2 и hyper. Но также это и заслуга того, как реализована асинхронность в Rust: с ключевым методом Future::poll, позволяющим достаточно просто дожидаться исполнения нескольких футур одновременно, и встроенная поддержка отмены футур просто через вызов drop. Добиться подобной защиты от MadeYouReset в языке с активными тасками и явной в коде отменой (как, например, в C# или в Go с context.Done) значительно сложнее.
hyper HTTP/2 (Didn't) MadeYouReset
Протокол HTTP/2 позволяет открыть несколько стримов поверх одного соединения, каждый из которых может быть отменён (reset) любой стороной в любой момент. В некоторых случаях это нужно сделать обязательно — например, когда одна из сторон присылает невалидные сообщения. Это сделало возможным уязвимость, названную MadeYouReset. Суть её в том, что злоумышленник инициирует соединение с максимально возможным числом стримов, а затем постоянно их сбрасывает путём отправки невалидных фреймов. Обработка всех этих запросов и следование протоколу отнимает ресурсы сервера, что делает возможным Denial of service.
Эта уязвимость очень схожа с уязвимостью Rapid Reset, но, как описано в статье от Cloudflare, она несколько более хитрая. Rapid Reset полагается на явную отмену стримов клиентом через посылку фрейма RST_STREAM. MadeYouReset же работает через посылку невалидных фреймов, заставляя сервер парсить запросы и отменять стримы уже с его стороны.
Многие реализации HTTP/2 на практике делали работу по обработке запроса даже после закрытия стрима. Простые меры предосторожности против Rapid Reset, отслеживающие только фреймы RST_STREAM от клиента, бесполезны против MadeYouReset.
h2 (Rust-библиотека для работы с протоколом HTTP/2) оказалась не подвержена этой уязвимости. Почему? На это есть несколько причин.
Во-первых, в h2 несколько лет назад добавили меру предосторожности против абьюза клиентами отмен стримов. Именно, h2 отслеживает, сколько раз фрейм от клиента привёл к отмене стрима со стороны клиента, и когда это число достигает настраиваемого порога, закрывает соединение целиком. Это уже хорошая защита, которая на практике успешно защищала от Rapid Reset, но она была не безупречна — для одного типа фреймов (WINDOW_UPDATE) на одном из путей исполнения это число не обновлялось (разумеется, это поправили).
Во-вторых, h2 — библиотека, а не фреймворк, и всегда передаёт вызывающему коду информацию об отмене стрима. Разумеется, от этого мало толку, если вызывающий код на это никак не реагирует.
И это подводит нас к третьей причине: контекст использования. На практике h2 использовалась совместно с hyper, Rust-библиотеке для HTTP, абстрагированной от конкретной версии протокола. В коде hyper для стримов ожидается исполнение двух футур: поставляющей новые фреймы из стрима и обрабатывающей запросы из этого стрима. При получении отмены стрима hyper отменяет футуру, обрабатывающую запрос.
Итого: даже без закрытия бага с WINDOW_UPDATE h2 не был подвержен MadeYouReset. Разумеется, это во многом заслуга продуманной архитектуры h2 и hyper. Но также это и заслуга того, как реализована асинхронность в Rust: с ключевым методом Future::poll, позволяющим достаточно просто дожидаться исполнения нескольких футур одновременно, и встроенная поддержка отмены футур просто через вызов drop. Добиться подобной защиты от MadeYouReset в языке с активными тасками и явной в коде отменой (как, например, в C# или в Go с context.Done) значительно сложнее.
seanmonstar
hyper HTTP/2 (Didn't) MadeYouReset
A new HTTP/2 attack vector was disclosed today called MadeYouReset. hyper’s h2 is negligably affected, weathering the attack well. But, we have provided patc...
❤11👍7🔥5
Блог*
#video Рекурсивный Bad Apple с бесконечным* уровнем вложенности и постоянным зумом на протяжении всей длительности. youtu.be/hpVxbNHCdP4 *на самом деле три уровня, но с учётом разрешения разница не видна.
#video
Bad apple на яблоках
Bad apple на яблоках
The apples spin 90 degrees when their source pixel transitions between black and white.
YouTube
Bad Apple but if you pause it's just apples
The apples spin 90 degrees when their source pixel transitions between black and white.
Music: Bad Apple!! feat.nomico, Alstroemeria Records
Animation: あにら
Music: Bad Apple!! feat.nomico, Alstroemeria Records
Animation: あにら
😁2🔥1🤯1
@tech_b0lt_Genona подкинул бота. Смешно, конечно, что проанализировал текст из поста Пездузы
Forwarded from Admin Tools + AI 🔮
📊 Политический анализ канала
Блог* (@dereference_pointer_there)
📍 Диагноз: КЛАССИЧЕСКИЙ ЛИБЕРАЛИЗМ
💭 Обоснование:
Автор пишет о технических деталях, открытом доступе к научным данным и критически относится к государственному вмешательству (пример: «МВД предложило ввести уголовную ответственность за административную ответственность»). Такие позиции типичны для либертарианского правого направления, поддерживающего свободный рынок и минимальное государственное регулирование. При этом экономические взгляды нейтральны‑светло‑правые (упоминаний о перераспределении или соц‑политике нет). Поэтому выбранная идеология – КЛАССИЧЕСКИЙ ЛИБЕРАЛИЗМ, а координаты отражают лёгкое смещение вправо и умеренную либертарианскую позицию.
📅 28.08.2025 14:44
AdminTools. Подписаться
Блог* (@dereference_pointer_there)
📍 Диагноз: КЛАССИЧЕСКИЙ ЛИБЕРАЛИЗМ
💭 Обоснование:
Автор пишет о технических деталях, открытом доступе к научным данным и критически относится к государственному вмешательству (пример: «МВД предложило ввести уголовную ответственность за административную ответственность»). Такие позиции типичны для либертарианского правого направления, поддерживающего свободный рынок и минимальное государственное регулирование. При этом экономические взгляды нейтральны‑светло‑правые (упоминаний о перераспределении или соц‑политике нет). Поэтому выбранная идеология – КЛАССИЧЕСКИЙ ЛИБЕРАЛИЗМ, а координаты отражают лёгкое смещение вправо и умеренную либертарианскую позицию.
📅 28.08.2025 14:44
AdminTools. Подписаться
— У вас стандартная библиотека работает неправильно.
— Используйте железо, на котором работает правильно.
#prog #go #suckassstory
Source
— Используйте железо, на котором работает правильно.
#prog #go #suckassstory
Source
🍌13🤡7
Forwarded from Красные пики (Serge Abdulmanov)
А вот самый страшный пример того, как новостиники раскрывают подробности. 4 раза — это пока рекорд. Я до сих пор смеюсь, пересматривая эту картинку. В каждом предложении появляется не только вода, но и новая деталь!
😁25💯3❤2
Forwarded from Красные пики (Serge Abdulmanov)
Представьте горшок с землёй, из него растёт огромное растение. Вы поливаете его, а оно растёт. Земли меньше не становится, а растение сверху получается большое и довольно твёрдое.
Откуда оно берёт материал для своей конструкции?
Ну… из земли?
Я докапывался с этим вопросом до большого количества людей, мне просто было дико интересно узнать, как они себе это представляют.
Когда дерево торчит из земли, вроде всё интуитивно понятно: оно там где-то внизу чем-то шебуршит и достаёт себе массу.
С горшком сложнее, особенно с маленьким. С гидропоникой ещё сложнее. В ответах людей в лучшем случае доходило до того, что вся вот эта конструкция сверху — это вода, оформленная какими-то минеральными веществами, полученными из почвы или удобрений. Но никого особо не смущает, что их там просто столько нет.
В сухом веществе растений примерно от 35 до 45 процентов — углерод (и около 40% кислорода). То есть да, растение — это вода, оформленная в несущую конструкцию. Преимущественно из углерода. А берут они углерод угадайте, откуда. Фотосинтез, уголь, вот это всё из школы должно было навести на мысль, да?
Прямо натурально из воздуха. Углекислота раздирается на углерод и кислород. Кислород по большей части нафиг с борта, а вот углерод растение заботливо оставляет.
То есть цветок, который весело торчит у вас из горшка, фактически, сконденсировался из воздуха. И продолжает конденсироваться. И дерево под окном тоже.
Откуда оно берёт материал для своей конструкции?
Ну… из земли?
Я докапывался с этим вопросом до большого количества людей, мне просто было дико интересно узнать, как они себе это представляют.
Когда дерево торчит из земли, вроде всё интуитивно понятно: оно там где-то внизу чем-то шебуршит и достаёт себе массу.
С горшком сложнее, особенно с маленьким. С гидропоникой ещё сложнее. В ответах людей в лучшем случае доходило до того, что вся вот эта конструкция сверху — это вода, оформленная какими-то минеральными веществами, полученными из почвы или удобрений. Но никого особо не смущает, что их там просто столько нет.
В сухом веществе растений примерно от 35 до 45 процентов — углерод (и около 40% кислорода). То есть да, растение — это вода, оформленная в несущую конструкцию. Преимущественно из углерода. А берут они углерод угадайте, откуда. Фотосинтез, уголь, вот это всё из школы должно было навести на мысль, да?
Прямо натурально из воздуха. Углекислота раздирается на углерод и кислород. Кислород по большей части нафиг с борта, а вот углерод растение заботливо оставляет.
То есть цветок, который весело торчит у вас из горшка, фактически, сконденсировался из воздуха. И продолжает конденсироваться. И дерево под окном тоже.
❤33👍6😁2🤯1
Forwarded from kosmonozhka
Просто будь собой (и другие советы из т.наз. популярной психологии)
#kosmonozhka
#kosmonozhka
❤8🫡3
#science #video
Почему тени от разных объектов как будто бы притягиваются друг к другу.
Спойлер: объяснение чисто геометрическое, волновые свойства света (и уж тем более гравитация) тут не причём.
youtube.com/watch?v=MuvuxHXLzls
Почему тени от разных объектов как будто бы притягиваются друг к другу.
Спойлер: объяснение чисто геометрическое, волновые свойства света (и уж тем более гравитация) тут не причём.
youtube.com/watch?v=MuvuxHXLzls
YouTube
The Magnetic Shadow Effect
Support MinutePhysics on Patreon! https://www.patreon.com/minutephysics
Link to Patreon Supporters: https://www.minutephysics.com/supporters/
Minute Physics provides an energetic and entertaining view of old and new problems in physics -- all in a minute!…
Link to Patreon Supporters: https://www.minutephysics.com/supporters/
Minute Physics provides an energetic and entertaining view of old and new problems in physics -- all in a minute!…
❤2👍2