image

Programmeertaal Rust krijgt eigen securityteam om veiligheid te vergroten

vrijdag 16 september 2022, 11:53 door Redactie, 15 reacties
Laatst bijgewerkt: 16-09-2022, 14:03

De stichting achter programmeertaal Rust heeft met steun van de Open Source Security Foundation de middelen gekregen om een eigen securityteam op te richten. Dit securityteam moet ervoor zorgen dat de Rust Foundation security best practices kan opstellen en implementeren. Het team zal als eerste een security-audit uitvoeren en threat modeling toepassen om te kijken hoe security op een economische manier kan worden toegepast.

Verder zal het securityteam zich ook gaan inzetten om best practices binnen het Rust-landschap te verspreiden. "Er is een misvatting dat omdat Rust memory safety garandeert, het honderd procent veilig is. Maar Rust kan net zo kwetsbaar als andere programmeertalen zijn, wat proactieve maatregelen rechtvaardigt om het en de community te beschermen", zegt Bec Rumbul, hoofd van de Rust Foundation.

Volgens de ontwikkelaars biedt Rust allerlei voordelen, zoals memory safety, wat in een taal zoals C veel lastiger zou zijn. Veel kwetsbaarheden worden veroorzaakt door memory corruption en het lekken van geheugen. Rust richt zich onder andere op memory safety, om zo dergelijke problemen te voorkomen.

Reacties (15)
16-09-2022, 12:03 door gradje71
Als je de opvolger wil zijn van C++ dan moet je dat wel doen. Maar ik heb het geprobeerd en niet geslaagd. De syntax is ook zo idioot. Dat krijg je als je een combinatie wil zijn van een normale taal en een functionele taal en het gewoon niet begrepen hebt.

Er zijn wel alternatieven voor Rust hoor. Kijk bv V en nim. Met beide kom je wel vooruit en hoef je niet iedere dag jouw computer helemaal aan gort te slaan.

Zo denk ik er over. Denk je er anders over, hou dat dan aub voor jezelf.
16-09-2022, 12:16 door Anoniem
Door gradje71: Zo denk ik er over. Denk je er anders over, hou dat dan aub voor jezelf.
Ben jij de enige met het recht op een eigen mening?
16-09-2022, 12:16 door Anoniem
Door gradje71: Als je de opvolger wil zijn van C++ dan moet je dat wel doen. Maar ik heb het geprobeerd en niet geslaagd. De syntax is ook zo idioot. Dat krijg je als je een combinatie wil zijn van een normale taal en een functionele taal en het gewoon niet begrepen hebt.

Er zijn wel alternatieven voor Rust hoor. Kijk bv V en nim. Met beide kom je wel vooruit en hoef je niet iedere dag jouw computer helemaal aan gort te slaan.

Zo denk ik er over. Denk je er anders over, hou dat dan aub voor jezelf.
Dat je een mening verkondigt is prima, maar dan moet je ook open staan voor de mening van een ander. Eénrichtingsverkeer verwachten (eisen zelfs) is arrogant.
16-09-2022, 13:46 door Power2All - Bijgewerkt: 16-09-2022, 13:49
Ik was zeer skeptisch eerst over Rust.
Nu ik eindelijk snap hoe cargo en crates werken, en de syntax redelijk begrijp (wanneer gebruik je een Result<T,T> or Option<> etc. en hoe behandel je die), is Rust zo fijn om mee te werken.
C++ is leuk, maar je kan te veel fouten en vaak ook geen optimalisaties toepassen.
Structuur van file system in Rust is ook makkelijker (geen gesplitste .h files enzo meer nodig), en CLion met Rust plugin van Jetbrains maakt programmeren in Rust heel erg fijn.

De reden waarom ik niet met Python (PyPy), GO of C# verder wou gaan, was puur en enkel de Garbage Collector dat te vaak mijn app een halt gaf, en dit kon je op geen enkele simpele manier oplossen.
Rust heeft dit zo goed opgelost, dat je de Garbage Collector amper tot niet ziet tijdens gebruik van je app.
Mensen beweren dat Rust geen Garbage Collector bevat, maar dit doet hij wel, alleen is deze al direct actief wanneer je een function scope uit gaat, en dat gaat zo snel dat je er amper wat van ziet gebeuren, kortom, perfect.
Is ook een reden waarom Twitch ook was verhuist van Python naar Rust, en GO geskipped heeft.
16-09-2022, 13:51 door Power2All
Door gradje71: Zo denk ik er over. Denk je er anders over, hou dat dan aub voor jezelf.

Het is prima als jij over iets denkt, maar dat je dan meteen de slot op andere mensen wilt gooien, is arrogant.
Dat jij niet snapt hoe Rust optimaal gebruikt kan worden, betekent dan niet automatisch dat de taal dan ook ruk is.
Ik vond het eerst ook vaag, maar de syntax is eigenlijk best straight forward, als je eenmaal snapt waarom bepaalde keuzes zijn gemaakt hoe dingen toegepast worden.
16-09-2022, 14:42 door Anoniem
Door Power2All: Ik was zeer skeptisch eerst over Rust.
Nu ik eindelijk snap hoe cargo en crates werken, en de syntax redelijk begrijp (wanneer gebruik je een Result<T,T> or Option<> etc. en hoe behandel je die), is Rust zo fijn om mee te werken.
C++ is leuk, maar je kan te veel fouten en vaak ook geen optimalisaties toepassen.
Structuur van file system in Rust is ook makkelijker (geen gesplitste .h files enzo meer nodig), en CLion met Rust plugin van Jetbrains maakt programmeren in Rust heel erg fijn.

De reden waarom ik niet met Python (PyPy), GO of C# verder wou gaan, was puur en enkel de Garbage Collector dat te vaak mijn app een halt gaf, en dit kon je op geen enkele simpele manier oplossen.
Rust heeft dit zo goed opgelost, dat je de Garbage Collector amper tot niet ziet tijdens gebruik van je app.
Mensen beweren dat Rust geen Garbage Collector bevat, maar dit doet hij wel, alleen is deze al direct actief wanneer je een function scope uit gaat, en dat gaat zo snel dat je er amper wat van ziet gebeuren, kortom, perfect.
Is ook een reden waarom Twitch ook was verhuist van Python naar Rust, en GO geskipped heeft.

Weet je zeker dat Rust garbage collection heeft (of : "altijd heeft" ) ?

Rust is bezig toegevoegd te worden aan de Linux kernel, als mogelijke alternatieve taal (naast C) om delen van de kernel in te schrijven - typisch device drivers en andere 'leaf' elementen.

Garbage Collection (wat typisch inhoudt - onverwacht/onvoorspelbaar "iets anders" gaan doen ) is in een OS kernel heel erg ongewenst .

Ik weet niet hoeveel of in hoeverre Rust-voor-de-kernel aangepast is tov van "standaard Rust", of dat bepaalde Rust constructies een melding "do not use in the kernel" hebben , maar het is in elk geval zo sommige eigenschappen van talen de taal ongeschikt maken voor een OS kernel (of bv een real time systeem) .

Ik kon met een beetje google niet meteen iets vinden of Rust nu wel of geen GC heeft maar diverse postings van memsen die vooral zeggen "compile time checks" .

Rust en linux kernel : https://www.memorysafety.org/blog/memory-safety-in-linux-kernel/
16-09-2022, 15:20 door majortom - Bijgewerkt: 16-09-2022, 15:20
Door Anoniem:
Door Power2All: Ik was zeer skeptisch eerst over Rust.
Nu ik eindelijk snap hoe cargo en crates werken, en de syntax redelijk begrijp (wanneer gebruik je een Result<T,T> or Option<> etc. en hoe behandel je die), is Rust zo fijn om mee te werken.
C++ is leuk, maar je kan te veel fouten en vaak ook geen optimalisaties toepassen.
Structuur van file system in Rust is ook makkelijker (geen gesplitste .h files enzo meer nodig), en CLion met Rust plugin van Jetbrains maakt programmeren in Rust heel erg fijn.

De reden waarom ik niet met Python (PyPy), GO of C# verder wou gaan, was puur en enkel de Garbage Collector dat te vaak mijn app een halt gaf, en dit kon je op geen enkele simpele manier oplossen.
Rust heeft dit zo goed opgelost, dat je de Garbage Collector amper tot niet ziet tijdens gebruik van je app.
Mensen beweren dat Rust geen Garbage Collector bevat, maar dit doet hij wel, alleen is deze al direct actief wanneer je een function scope uit gaat, en dat gaat zo snel dat je er amper wat van ziet gebeuren, kortom, perfect.
Is ook een reden waarom Twitch ook was verhuist van Python naar Rust, en GO geskipped heeft.

Weet je zeker dat Rust garbage collection heeft (of : "altijd heeft" ) ?

Rust is bezig toegevoegd te worden aan de Linux kernel, als mogelijke alternatieve taal (naast C) om delen van de kernel in te schrijven - typisch device drivers en andere 'leaf' elementen.

Garbage Collection (wat typisch inhoudt - onverwacht/onvoorspelbaar "iets anders" gaan doen ) is in een OS kernel heel erg ongewenst .

Ik weet niet hoeveel of in hoeverre Rust-voor-de-kernel aangepast is tov van "standaard Rust", of dat bepaalde Rust constructies een melding "do not use in the kernel" hebben , maar het is in elk geval zo sommige eigenschappen van talen de taal ongeschikt maken voor een OS kernel (of bv een real time systeem) .

Ik kon met een beetje google niet meteen iets vinden of Rust nu wel of geen GC heeft maar diverse postings van memsen die vooral zeggen "compile time checks" .

Rust en linux kernel : https://www.memorysafety.org/blog/memory-safety-in-linux-kernel/
Rust heeft geen tradionele GC zoals Java. Rust weet wanneer variabelen out of scope raken en insert de "opruim" instructies in de resulterende gecompileerde code. Dus wel de benefits, maar niet de overlast.
16-09-2022, 17:49 door Anoniem
Laten ze dan eerst hiermee beginnen en de vermelde script versie hier afserveren:


jquery 1.9.0 Found in https://www.memorysafety.org/js/mc-validate.js _____Vulnerability info:
Medium 2432 3rd party CORS request may execute CVE-2015-9251
Medium CVE-2015-9251 11974 parseHTML() executes scripts in event handlers
Medium CVE-2019-11358 jQuery before 3.4.0, as used in Drupal, Backdrop CMS, and other products, mishandles jQuery.extend(true, {}, ...) because of Object.prototype pollution
Medium CVE-2020-11022 Regex in its jQuery.htmlPrefilter sometimes may introduce XSS
Medium CVE-2020-11023 Regex in its jQuery.htmlPrefilter sometimes may introduce XSS

luntrus
16-09-2022, 17:51 door Anoniem
Ik zie een mailchimp link, bij mij te blokkeren.

#obserwator
17-09-2022, 09:13 door Anoniem
Ik vermeid rust waar ik kan, helaas lukt dat niet overal omdat mozilla en de cryptophy python module zich er van afhankelijk gemaakt hebben.

Over de taal zelf kan ik niet oordelen maar de compiler vind ik een regelrechte ramp. Het begint bij de crates. Compile time random code van internet downloaden en aan je project toevoegen, what could posibly go wrogn?

Dan het compilen van de rust compiler, iets wat alleen kan met de rust compiler die maximaal 2 minor releases oud is ... en die releasen ze grofweg iedere 6 weken. Als je er te veel gemist hebt dan moet je dus in stapjes van 2 minors gaan updaten.
Wil je de compiler helemaal van source bouwen? Dan moet je bij de allereerste versie(s) beginnen en vanaf daar naar de huidige versie toewerken :-(. Ter vergelijk: De huidige gcc12.2 kan je met gcc4.8 (uit 2014) compilen.
17-09-2022, 11:52 door Power2All
Door Anoniem: Ik vermeid rust waar ik kan, helaas lukt dat niet overal omdat mozilla en de cryptophy python module zich er van afhankelijk gemaakt hebben.

Over de taal zelf kan ik niet oordelen maar de compiler vind ik een regelrechte ramp. Het begint bij de crates. Compile time random code van internet downloaden en aan je project toevoegen, what could posibly go wrogn?

Dan het compilen van de rust compiler, iets wat alleen kan met de rust compiler die maximaal 2 minor releases oud is ... en die releasen ze grofweg iedere 6 weken. Als je er te veel gemist hebt dan moet je dus in stapjes van 2 minors gaan updaten.
Wil je de compiler helemaal van source bouwen? Dan moet je bij de allereerste versie(s) beginnen en vanaf daar naar de huidige versie toewerken :-(. Ter vergelijk: De huidige gcc12.2 kan je met gcc4.8 (uit 2014) compilen.

Alles waar jij iets tegen hebt, kun je simpel voorkomen door local crates te hebben, en er is een optie binnen de compiler om niks te downloaden (aka, offline modus). Maar als dan iets mist, dat is aan jouzelf om op te lossen he. Crates zijn zoiets als "libraries", en zal net zo stuk gaan in C++ enzo als je daar ook libraries gebruikt.

Omtrent dat compile verhaal, weet ik niet zo heel erg veel van, en zal ik wel eens een keer in verdiepen.
17-09-2022, 15:42 door Anoniem
Door Power2All: Ik was zeer skeptisch eerst over Rust.
Nu ik eindelijk snap hoe cargo en crates werken, en de syntax redelijk begrijp (wanneer gebruik je een Result<T,T> or Option<> etc. en hoe behandel je die), is Rust zo fijn om mee te werken.
C++ is leuk, maar je kan te veel fouten en vaak ook geen optimalisaties toepassen.
Structuur van file system in Rust is ook makkelijker (geen gesplitste .h files enzo meer nodig), en CLion met Rust plugin van Jetbrains maakt programmeren in Rust heel erg fijn.

De reden waarom ik niet met Python (PyPy), GO of C# verder wou gaan, was puur en enkel de Garbage Collector dat te vaak mijn app een halt gaf, en dit kon je op geen enkele simpele manier oplossen.
Rust heeft dit zo goed opgelost, dat je de Garbage Collector amper tot niet ziet tijdens gebruik van je app.
Mensen beweren dat Rust geen Garbage Collector bevat, maar dit doet hij wel, alleen is deze al direct actief wanneer je een function scope uit gaat, en dat gaat zo snel dat je er amper wat van ziet gebeuren, kortom, perfect.
Is ook een reden waarom Twitch ook was verhuist van Python naar Rust, en GO geskipped heeft.
Linus is pragmatisch. Het geheugen management met Rust lijkt veel belovend. Dan zal het er komen want dat is met C heel lastig.
19-09-2022, 07:59 door Anoniem
Ik zie veel project op go gebaseerd worden omdat dat in een single executable te bakken is, heeft Rust hier ook oplossingen voor?
19-09-2022, 15:24 door Anoniem
Door Anoniem: Ik zie veel project op go gebaseerd worden omdat dat in een single executable te bakken is, heeft Rust hier ook oplossingen voor?

Klinkt als een rare _reden_ om de keuze van de taal van je project puur te baseren op "toolchain default naar statisch linken" .

De term is dus 'statisch linken' .
Het alternatief is 'dynamisch linken' - bij dynamisch linken worden de libraries (DLL - d van Dynamisch , in Windows land) bij start meegemapt in het proces .
In Unix heten die libraries .so - Shared Object . Omdat dezelfde library code gedeeld wordt over alle processen die die library gebruiken .

Anyway - je zoekt dus naar "statisch linken" als je een programma wilt dat bij start geen libraries meer wil zoeken .

Ik ben geen Rust expert, maar zo te lezen kan het :

https://stackoverflow.com/questions/31770604/how-to-generate-statically-linked-executables

Andersom kan Go tegenwoordig blijkbaar ook dynamisch linken.

Overigens - het hoe en wat is mischien taal/toolchain specifiek , maar je verwacht dat een developer het _concept_ statisch linken/ dynamisch linken / shared libraries toch wel kent.
20-09-2022, 10:01 door Anoniem
Bedankt voor de terminologie.
Door Anoniem:
Klinkt als een rare _reden_ om de keuze van de taal van je project puur te baseren op "toolchain default naar statisch linken"
Dat was bijvoorbeeld het argument van de ontwikkelaar van Owncast toen ik een paar jaar geleden vroeg waarom er ironisch gezien voor Go gekozen was, dan zal dat een gemakshalve keuze zijn geweest.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.