image

Microsoft prijst security Mozillas programmeertaal Rust

woensdag 17 juli 2019, 16:42 door Redactie, 11 reacties

De door Mozilla ontwikkelde programmeertaal Rust bevat allerlei kenmerken die voor veiligere software kunnen zorgen, zo heeft Microsoft laten weten. Uit onderzoek van Microsoft blijkt dat de meeste lekken in de eigen software werden veroorzaakt door "memory corruption bugs" in de C en C++-code.

"Nu Microsoft de codebase vergroot en meer opensourcesoftware in de eigen code gebruikt, wordt dit probleem alleen maar groter. En Microsoft is niet de enige die met memory corruption bugs te maken heeft", zegt Gavin Thomas van het Microsoft Security Response Center. Thomas merkt op dat Microsoft-ontwikkelaars over allerlei tools en processen beschikken om kwetsbaarheden te vinden.

Het is efficiënter als programmeurs minder tijd kwijt zijn aan het leren van tools en processen om code zonder kwetsbaarheden te maken. Een programmeertaal die het niet mogelijk maakt om geheugenproblemen in code te introduceren zou zowel programmeurs als security-engineers helpen. Thomas zou dan ook graag een programmeertaal zien die de memory security-garanties van een taal zoals .NET en C sharp combineert met de efficiëntie van C++. Een programmeertaal die hier volgens Thomas aan voldoet is het door Mozilla Research ontwikkelde Rust, dat geheugenbeveiliging biedt.

"We kunnen leren van de manier waarop de auto-industrie hun technologie ontwikkelt om bestuurders en weggebruikers te beschermen. De softwaresecurity-industrie heeft het voorrecht om de programmeur op een zelfde manier te beschermen. Misschien is het tijd om onveilige legacy programmeertalen te schrappen en op modernere veiligere programmeertalen over te stappen?", stelt Thomas de vraag. Microsoft komt binnenkort met een aantal blogs waarin het deze programmeertalen verkent en als eerste zal het naar Rust kijken.

Image

Reacties (11)
17-07-2019, 16:51 door Anoniem
Een simpel 'Hello world' programma in Rust: 183Kb binary. In C, 6Kb. Hmm, ik blijf nog even bij C.
17-07-2019, 17:39 door Anoniem
Door Anoniem: Een simpel 'Hello world' programma in Rust: 183Kb binary. In C, 6Kb. Hmm, ik blijf nog even bij C.

Interessant artikel, Why is a Rust executable large?
https://lifthrasiir.github.io/rustlog/why-is-a-rust-executable-large.html

It is very close to what you would get with a C program: 8503 bytes before strip, 6288 bytes after strip.
17-07-2019, 18:08 door Anoniem
Door Anoniem: Een simpel 'Hello world' programma in Rust: 183Kb binary. In C, 6Kb. Hmm, ik blijf nog even bij C.

6 maal 1024 bytes om 10 bytes op een scherm te zetten?
Volgens mij in Assembly (in een .COM formaat), zal het zo'n 21 bytes zijn?
Moeten we daarom allemaal terug naar Assembly?

Misschien heeft die extra 183Kb wel een hele goede reden, misschien cross-platform gebruik en het voorkomen van allerlei security incidenten? :)
17-07-2019, 22:34 door Anoniem
Door Anoniem: Een simpel 'Hello world' programma in Rust: 183Kb binary. In C, 6Kb. Hmm, ik blijf nog even bij C.
Alleen schrijft niemand "hello world" programma's, vergelijk dit eens voor FTP clients, calculators, text editors, etc?
Ik vind het "hurr durr, maar een 'hello world' is kleiner" een kinderlijke manier om te redeneren.
17-07-2019, 23:17 door [Account Verwijderd] - Bijgewerkt: 17-07-2019, 23:21
Door Anoniem:
Door Anoniem: Een simpel 'Hello world' programma in Rust: 183Kb [sic] binary. In C, 6Kb [sic]. Hmm, ik blijf nog even bij C.

6 maal 1024 bytes om 10 bytes op een scherm te zetten?
Volgens mij in Assembly (in een .COM formaat), zal het zo'n 21 bytes zijn?
Moeten we daarom allemaal terug naar Assembly?

Misschien heeft die extra 183Kb [sic] wel een hele goede reden, misschien cross-platform gebruik en het voorkomen van allerlei security incidenten? :)

Plus, hoe gedraagt het zich voorbij een klein basisvoorbeeld? Het kan best zijn dat er een initïele grotere overhead is maar dat het daarna gelijk opgaat. Bovendien, wat stelt 183 KiB of kB (*) nou voor, tegenwoordig.

(*) https://nl.wikipedia.org/wiki/Kilobyte
17-07-2019, 23:46 door Anoniem
Door En Rattshaverist:
Plus, hoe gedraagt het zich voorbij een klein basisvoorbeeld?

Dat was ook het eerste waar ik aan dacht
18-07-2019, 15:42 door Anoniem
Door Anoniem: Een simpel 'Hello world' programma in Rust: 183Kb binary. In C, 6Kb. Hmm, ik blijf nog even bij C.

Hoe duur is memory vandaag de dag nog. En de snelheden zijn enorm. Veiligheid en betrouwbaarheid daar schort het nog aan
18-07-2019, 19:55 door Anoniem
Een GOEDE software engineer kan ook in C en C++ veilige programma's schrijven !
Microsoft zou graag zien dat C en C++ meer en meer in de vergetelheid raken.
Iets als een .Net framework geeft Microsoft immers volledige controle over of en hoe programma's van anderen functioneren.
19-07-2019, 09:58 door [Account Verwijderd] - Bijgewerkt: 19-07-2019, 10:00
Door Anoniem: Een GOEDE software engineer kan ook in C en C++ veilige programma's schrijven !

Zodra het wat groter wordt, er aan oudere half vergeten code en in teams gewerkt moet worden komen de problemen van C, C++ naar boven.

Door Anoniem: Microsoft zou graag zien dat C en C++ meer en meer in de vergetelheid raken. Iets als een .Net framework geeft Microsoft immers volledige controle over of en hoe programma's van anderen functioneren.

.NET framework? Het gaat hier over Rust (wat daar helemaal niets maar dan ook niets mee te maken heeft). Er is bovendien ook een managed code variant van C++ voor het .NET framework.
19-07-2019, 09:59 door Anoniem
Begrijp het niet. Software draait toch altijd in zijn eigen geeelte van het geheugen. Hoe onveilig de taal is, je kan dus nooit buiten je eigen toegewezen geheugenruimte iets doen en dus ook geen schade aanrichten.
20-07-2019, 23:16 door Anoniem
Door Anoniem: Een simpel 'Hello world' programma in Rust: 183Kb binary. In C, 6Kb. Hmm, ik blijf nog even bij C.
Omdat het default statisch gelinkt wordt.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.