LINUX.ORG.RU
ФорумTalks

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

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


0

4

короче - при поиске по базе - с ключевым словом 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 ★★★
()
Ответ на: комментарий от olelookoe

и начинаешь свое творение со слова unsafe

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

Типа, у Rust есть реально примерно вот вагон недостатков, которые могут действительно припятствовать нормальному его применению, но ни ты, ни шизоид @alysnix про них даже близко не знаете. Грустно :(

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

Не начинай его с unsafe и всё будет хорошо.

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

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

смари, у меня java и я буду канпелять ее в нативный бинарь

Компеляй. Кто тебе мешает-то?

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

Чувак, я тебя не знаю. Я понятия не имею, в какой момент тебе может понадобиться поесть, посрать или начать писать код на Rust. Зачем ты мне такие вопросы-то задаёшь?

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

Зачем ты мне такие вопросы-то задаёшь?

чтобы ты подумал

по существу аппаратное обеспечение компьютера небезопасно.

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

и чем такой подход хуже чем раст, который переключается на unsafe практически по тем же причинам?

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

чтобы ты подумал

Мы на ЛОРе, я тут стесняюсь :(((

по существу аппаратное обеспечение компьютера небезопасно.

Чо? Ты член в куллер процессора сунул, что ли? Мой комп вполне безопасен (я только на ногу его уронил один раз).

но она не может напрямую взаимодействовать с аппаратным обеспечением

Может.

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

ЯННП. Если железо небезопасно, и для общения с ним требуется сишечка, а жаба с ним не взаимодействует, то на чём же исполняется эта жаба? На парах из отсрала и святом духе?

и чем такой подход хуже чем раст, который переключается на unsafe практически по тем же причинам?

Мне что-то кажется, ты вообще не понимаешь, что такое unsafe в Rust.

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

ты вообще не понимаешь, что такое unsafe в Rust.

ну и ладно, буду и дальше прозябать в неведении
картохи щас вот нажарю и будет мне хорошо

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

шизоид @alysnix

и тебе руста разного и побольше. и не хворать.

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

у Rust есть реально примерно вот вагон недостатков, которые могут действительно припятствовать нормальному его применению,

ну вот. пришел наконец специалист, и четко разьяснил отчего плотность уязвимостей в русте в 30 раз выше чем в си++.

спасибо тебе, добрый человек!

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

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

ну вот. пришел наконец специалист, и четко разьяснил отчего плотность уязвимостей в русте в 30 раз выше чем в си++.

А она в 30 раз больше? Ты загнал поиск по ключевым словам и носишься с ним. Достаточно унылый вброс, ты мог бы лучше.

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

у Rust есть реально примерно вот вагон недостатков, которые могут действительно припятствовать нормальному его применению

про них даже близко не знаете

Расскажите пожалуйста. Интересно.

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