LINUX.ORG.RU
ФорумTalks

чудесато в базе уязвимостей nist

 , , скажи американец


0

3

короче - при поиске по базе - с ключевым словом rust получаем 484 уязвимости(но момент чтения может измениться в большую сторону).

https://nvd.nist.gov/vuln/search/results?form_type=Basic&results_type=overview&query=rust&search_type=all&isCpeNameSearch=false

а по ключу с++ - 168.

https://nvd.nist.gov/vuln/search/results?form_type=Basic&results_type=overview&query=c%2B%2B&search_type=all&isCpeNameSearch=false

это вообще как? есть ли разумное обьяснение(кроме атак корейских киберпартизан) таким вот результатам?

★★★

У golang вообще 49, а он старше раста. При этом последней CVE-2025-22870 он не выдаёт. Так что как-то нерелевантненько вбрасываешь. Тут надо что-то посерьёзней чем по буковам искать.

UPD: Вот к примеру, по продуктам, реверс-прокси, которые часто юзаются как ingress в k8, список по популярности (личные наблюдения).

  1. nginx(C): 217
  2. envoy(c++) : 114
  3. traefik (Go): 19
bdrbt
()
Последнее исправление: bdrbt (всего исправлений: 1)

это вообще как?

Обыкновенно. Есть ада. Если бы речь шла действительно про заботу о безопасности, то писали бы на аде. А тут был разработан новый яп + из каждого утюга про него вещают. Сложи 2+2.

u5er ★★
()
Ответ на: комментарий от bdrbt

У golang вообще 49, а он старше раста.

голанг понадежней раста будет. там сборка мусора.

Так что как-то нерелевантненько вбрасываешь

мопед не мой. а вот -

An official website of the United States government
alysnix ★★★
() автор топика
Последнее исправление: alysnix (всего исправлений: 1)
Ответ на: комментарий от alysnix

мопед не мой. а вот -

Не, я к тому что там надо каждую CVE-шку ковырять чтобы разобраться какой язык накосячил и как. Во многих продуктах в принципе нет пояснения на чём они написаны. Вот если взять тот-же envoy, мне долгое время казалось, что он на гошке написан, но как-то решил его поковырять на досуге - бам, а он на плюсах и нигде никаких упоминаний об этом, пока в гитхаб его не заглянешь.

bdrbt
()

Набросил так набросил. 😁

sparkie ★★★★★
()
Ответ на: комментарий от alysnix

понадежней раста будет. там сборка мусора.

Как это связано, кроме тех случаев, когда утечка ведёт к крашу из-за исчерпания памяти?

thunar ★★★★★
()
Ответ на: комментарий от thunar

Как это связано, кроме тех случаев, когда утечка ведёт к крашу из-за исчерпания памяти?

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

то, есть расхождение в 30 раз по «плотности уязвимостей». понятно, что методика подсчета неточная, но куда списать такую разницу - неясно.

верней, у меня есть разные соображения, но все они не в пользу раста.

alysnix ★★★
() автор топика
Ответ на: комментарий от alysnix

Так он по меркам, этого самого «ойти», ещё молодой и все эти уязвимости в очень таких васепупкинских проектах из разряда «О, а я написал dns-сервер». Вот если честно навскидку не припомню такого чего-то серьёзного в бэкенде написанного на расте. Вроде бы его активно используют в гитхабе - но это всё закрытые разработки и хз насколько его там много. Да и саццесс сторей маловато (вменяемых ещё меньше).

bdrbt
()

CVE-2024-52288

libosdp is an implementation of IEC 60839-11-5 OSDP (Open Supervised Device Protocol) and provides a C library with support for C++, Rust and Python3.

Как интересно, эта уязвимость по поиску относится сразу к цпп, расту и питону. Но либа написана на си :)

unC0Rr ★★★★★
()

Я думаю тут всё просто. Реального поля языка в базе данных этих уязвимостей нет, весь поиск по описанию. И понятно что чуть ли не в любой проект на Rust в его описание слово «Rust» включат. А когда проект на C++, то это вроде как и упоминания не заслуживает.

unDEFER ★★★★★
()

есть ли разумное обьяснение

Так сядь и почитай что там написано в этих репортах, половина из них это всякие cross site scripting и прочая минорщина которая внимания не заслуживает. Надо фильтровать по серьезным уязвимостям которые remote code execution дают и полный доступ к твоей системе, напимер buffer overflow.

pftBest ★★★★
()
Последнее исправление: pftBest (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

но ты затрахаешься на нём обычный софт писать

Потому что я знаю сишку. Знание сишки мешает мне изучать аду. Когда я пытался писать простенькие программки, то у меня всегда в голове всплывали мысли вроде «на сишке бы я просто сделал так и так», так что увы.

u5er ★★
()
Ответ на: комментарий от u5er

Распространено заблуждение, что программисты стреляют в ноги себе. На самом деле они стреляют в ноги пользователям, что практически безболезненно. Для программистов.

red75prim ★★★
()
Последнее исправление: red75prim (всего исправлений: 1)
Ответ на: комментарий от red75prim

Распространено заблуждение, что программисты стреляют

Разумеется, ведь программисты пишут код ;) А стреляют, например, охотники на охоте.

u5er ★★
()
Ответ на: комментарий от u5er

пишешь на Ada

думаешь: «А вот тут я на Си присунул бы сегфолт!»

Не можешь больше на Ada писать, потому что грустно.

Оооок..

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)

это вообще как? есть ли разумное обьяснение(кроме атак корейских киберпартизан) таким вот результатам?

Есть, но не все его поймут. Дело в том что раст пытается уйти от проблем заложенных в самом фундаменте адресной арифметики, а не от небезопасности С как такового.

Для этого разработчики раста «творчески» адаптируют концепции успешно работающие в интерпретируемых языках, при этом оставаясь компилируемым языком.

Те они буквально ступили на terra incognita одной ногой, оттуда и повылазила куча всего. Это нормально.

Далее, на правах вещей обезьянки:

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

После чего дошкрябуют до фундамента и поймут что надо фиксить адресную математику, причём не в столько в раст, сколько в слое ниже - в LLVM (проблемы с inttoptr(ptrtoint x) => x). И в конце нас ждёт грандиозная феерия с изменением Memory model, которая повлияет на все компилируемые языки.

Для Ъ: граница между интерпретируемым и и компилируемым языками будет продолжать размываться, как и между статический и динамической типизацией.

Obezyan
()
Последнее исправление: Obezyan (всего исправлений: 3)

качай мастерство составления хайповых заголовков

типа

«раст победил! по количеству уязвимостей на единицу кода»

«раст уязвим? кто за это ответит?»

«надежда умирает последней - раст не торт, и никогда не будет»

«еще одна замена си сошла с дистанции - раст облажался»

удачи

olelookoe ★★★
()
Ответ на: комментарий от Obezyan

Есть, но не все его поймут.

это точно

я вот , к примеру, не понимаю, зачем мне это изобретение сумрачного гения, если можно скомпилировать ту же java, или модный молодежный свежий dart?
и все будет офигеть как безопасно и гарантировано

olelookoe ★★★
()
Последнее исправление: olelookoe (всего исправлений: 1)
Ответ на: комментарий от olelookoe

я вот , к примеру, не понимаю, зачем мне это изобретение сумрачного гения, если можно скомпилировать ту же java, или модный молодежный свежий dart?

В Rust нет рантайма и GC, как минимум.

hateyoufeel ★★★★★
()
Ответ на: комментарий от olelookoe

зачем мне это изобретение сумрачного гения, если можно скомпилировать ту же java, или модный молодежный свежий dart?

Хороший вопрос. Вам - незачем, но уже выросли поколения которым нужно упрощение разработки. В свое время так расцвела js, потом go, теперь вот пытается rust.

Школьникам скоро отменят домашние задания тк они не вывозят. Вот тогда будет весело.

Obezyan
()
Ответ на: комментарий от hateyoufeel

нет рантайма и GC

AOT компиляция превращает ту же жабу в обычный платформозависимый бинарь, который фигачит независимо от наличия JVM в системе

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

волшебный graal и truffel интегрируют всех со всеми, без регистрации и смс

olelookoe ★★★
()

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

  1. раст слишком много высовываются (это написано на расте!), отчего немедля прилетают фиксации уязвимостей во всякие базы, и не только эту, с пометкой «срочно - руст»!

  2. общая низкая квалификация растомышей. как показывает практика, под давлением хайпа, в руст идут косяком с пытонов и жаваскриптов, где представление о том, как оно внутри работает - минимально. а для «языка системного программирования» оно нужно. и это дает основной вклад в плотность уязвимостей.

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

  4. ну и конечно корейские криптопартизаны, залезли в базу и подделали данные.

alysnix ★★★
() автор топика
Последнее исправление: alysnix (всего исправлений: 1)
Ответ на: комментарий от olelookoe

AOT компиляция превращает ту же жабу в обычный платформозависимый бинарь, который фигачит независимо от наличия JVM в системе

И? Рантайм-то там всё равно есть, просто он в бинарник встроен.

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

Да. Например, в Rust.

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

Например, в Rust.

пффф
и начинаешь свое творение со слова unsafe
потому что все что до unsafe ты влехкую напишешь не снимая лыж на той же java

понимаешь? вот раст и его ансейф
а вот жаба и при крайней необходимости сишечка

второе с виду поприятней первого, нет?

olelookoe ★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)