The OpenNET Project / Index page

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



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

Оглавление

Уязвимость в runc, позволяющая выбраться из контейнеров Docker и Kubernetes, opennews (ok), 03-Фев-24, (0) [смотреть все]

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


56. "Уязвимость в runc, позволяющая выбраться из контейнеров Dock..."  –4 +/
Сообщение от OpenEcho (?), 03-Фев-24, 19:33 
> Если про гонку, то гошечка от неё не защищает

Там у Гошки ключик есть полезный для этого, -race называется

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

65. "Уязвимость в runc, позволяющая выбраться из контейнеров Dock..."  +3 +/
Сообщение от morphe (?), 03-Фев-24, 21:21 
> -race

Который найдёт только те гонки, что происходят регулярно, да и их не всегда.

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

102. "Уязвимость в runc, позволяющая выбраться из контейнеров Dock..."  +/
Сообщение от OpenEcho (?), 04-Фев-24, 14:19 
>> -race
> Который найдёт только те гонки, что происходят регулярно, да и их не
> всегда.

Если вы посмотрите на то, на что я коментировал, то уверен, что вы поймете о чем речь.

Изпользуйте как можно меньше го-рутин с шаред обьектами, разбивая логику на тестируемые юниты, Mutex, WaitGroup и каналы с shared ресурсами is must have, а не глобальные флаговые переменные  в надежде только на -race и все будет пучком, как впрочем не только с Го, а и любыми другими ЯП.

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

117. "Уязвимость в runc, позволяющая выбраться из контейнеров Dock..."  +/
Сообщение от morphe (?), 04-Фев-24, 15:14 
> как впрочем не только с Го, а и любыми другими ЯП.

Речь шла о том, защищает ли go от гонок данных, ответ - не защищает.

Если в Rust компилятор требует от тебя доказательства что гонок данных нет, то в golang тебе вручную нужно следить за тем что у тебя оптимально блокировки/атомики расставлены.

В сложном Rust коде это также позволяет более чётко разделять владение ресурсами, что позволяет проводить рефакторинг без риска где-то разломать хрупкие concurrency инварианты.

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

138. "Уязвимость в runc, позволяющая выбраться из контейнеров Dock..."  +/
Сообщение от OpenEcho (?), 05-Фев-24, 02:33 
> Речь шла о том, защищает ли go от гонок данных, ответ - не защищает.

В смысле сам язык? Автоматом? А такие вообще есть?

Го предоставляет достаточно инструментария чтоб не делать гонок, а значит если програмист умеет пользоваться языком, знает как работают операциоунные системы, то Го вполне даже защищает и
-race кстати, вполне хороший помощник если написанно достаточно грамотно и тесты написанны не для отмазки а с душой.

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

> Если в Rust компилятор требует от тебя доказательства что гонок данных нет,
> то в golang тебе вручную нужно следить за тем что у
> тебя оптимально блокировки/атомики расставлены.

как только понадобятся сырые указатели и включится ансайв, то он ни чем не будет отличаться о своих товарищей по цеху


> В сложном Rust коде это также позволяет более чётко разделять владение ресурсами,
> что позволяет проводить рефакторинг без риска где-то разломать хрупкие concurrency инварианты.

Я далеко не против против Раста, но его изпользование и поддержка на сегодняшний день обходятся дороже чем тот же Го || java. Не все синьоры (а то и принципалы) смогут быстро прыгнуть на растовый код, когда кодовая база наработана десятилетиями на других языках. Держать специально только растовиков, - очень накладно, потому как действительно глубоко понимающих этот язык не так уж и много

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

141. "Уязвимость в runc, позволяющая выбраться из контейнеров Dock..."  +/
Сообщение от morphe (?), 05-Фев-24, 02:55 
> В смысле сам язык? Автоматом? А такие вообще есть?

Ну написал же - Rust

> Го предоставляет достаточно инструментария чтоб не делать гонок, а значит если програмист
> умеет пользоваться языком

C предоставляет достаточно инструментария чтобы не делать выходов за границы буфера и use after free, а значит если программист умеет пользоваться языком... Ну как бы уже понятно

> как только понадобятся сырые указатели и включится ансайв, то он ни чем
> не будет отличаться о своих товарищей по цеху

Будет, поскольку unsafe не выключает гарантий языка, и более того, большая часть кода unsafe не использует.
Ну и без unsound кода ты не можешь получить гонки данных, т.е Rust таки тебя защищает.

> но его изпользование и поддержка на
> сегодняшний день обходятся дороже чем тот же Го || java.

Смотря для чего, там где тебе нужно работать в режиме реального времени go/java тебе не подходят из-за сборщика мусора. А Rust позволит тебе расставить атомики в строго нужных местах, и гарантирует что ты ничего не пропустил.
Также если у тебя не какой-то веб бекенд, а что-то, где реально важна корректность исполнения, корректность в Rust стоит на первом месте в отличии от golang (Примеров много, несколько штук упомянуты тут например https://fasterthanli.me/articles/i-want-off-mr-golangs-wild-...)

Да и в целом не очень сложно собрать команду Rust разработчиков, их уже достаточно много чтобы выполнять проекты любой сложности, тут скорее проблема что компаний использующих Rust на всех не хватает)
Особенно если есть предубеждения относительно криптовалют и HFT.

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

180. "Уязвимость в runc, позволяющая выбраться из контейнеров Dock..."  +/
Сообщение от OpenEcho (?), 05-Фев-24, 15:29 
> Смотря для чего, там где тебе нужно работать в режиме реального времени go/java тебе не подходят из-за сборщика мусора.

Вот это наверное самое главное - use the right tool for a job.

Что свелось по большому счету к С vs Rust, если это реал тайм, то определенно раст будет надежней (при условии, что раст програмист не дергается между проектами, а програмирует на нем каждый день), но там, где это не ринг ноль, не реал тайм, затраты на изпользования раста и что более важно его суппорт пока что дороже.


> Да и в целом не очень сложно собрать команду Rust разработчиков

Хелло-вордщиков, - да навалом

> их уже достаточно много чтобы выполнять проекты любой сложности

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

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

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

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

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




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

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