Med det trusselsbillede, som vi i disse tider befinder os i, skal fokus på cybersikkerhed løftes op. Mange moderne applikationer, ikke mindst IOT, produkter med adgang til skyen osv., har behov og mulighed for løbende opdatering af SW og og FW. Lægger man dertil den til stadighed stigende kompleksitet i softwareapplikationerne, så må der afgjort siges at være et behov for tilsvarende udvikling af værktøjer, som adresserer de udfordringer, som spottes. Dette gælder ikke mindst de programmeringssprog, der anvendes.
Rust bidrager til cybersikkerhed, fordi sproget har et stærkt fokus på hukommelsessikkerhed, trådsikkerhed og høj ydeevne – uden at gå på kompromis med lav-niveau kontrol. Det betyder, at Rust eliminerer hele klasser af sårbarheder, som ofte opstår i andre systemnære sprog som C og C++.
Rust sikrer hukommelsessikkerhed allerede ved kompilering ved hjælp af et “ownership”-system, der forhindrer:
– Buffer overflows
– Use-after-free
– Double-free
– Null pointer-fejl
Disse fejl er almindelige i C/C++ og har ført til mange alvorlige sikkerhedshuller gennem tiden.
Rust-compileren håndhæver sikker trådkommunikation og concurrency, hvilket modvirker:
– Dataraces
– Race conditions
– Usikre trådoperationer
Dette er afgørende i moderne software, hvor flere tråde kører parallelt, og fejl kan føre til alvorlige sikkerhedsproblemer.
I modsætning til C/C++, hvor “undefined behavior” kan udnyttes af angribere, så forhindrer Rust sådanne situationer i sin sikre delmængde. Hvis man har brug for “unsafe” kode, skal det eksplicit markeres, hvilket gør det lettere at revidere og kontrollere.
Rust undgår mange køretidsfejl og “panics” gennem funktioner som:
– Pattern matching
– Option/Result-typer (i stedet for null og exceptions)
Det tvinger udviklere til at tænke over fejltilfælde og undgår dermed mange logikbaserede sårbarheder.
Rusts Cargo package manager og crates.io økosystemet understøtter:-
Versionsstyring af afhængigheder
– Revisionsmuligheder
– Automatisk formatering og linting for at fremme sikker kodestil
– Anvendelser inden for cybersikkerhed
Microsoft, Google og NSA har udtrykt støtte til Rust til udvikling af sikre softwarekomponenter. Rust bidrager til cybersikkerhed ved at forhindre hele klasser af almindelige sårbarheder allerede ved kompilering, reducere behovet for køretidskontrol og fremme sikker udviklingspraksis. Det tilbyder C-lignende ydeevne med langt større sikkerhed, hvilket gør det ideelt til udvikling af sikker softwareinfrastruktur.
Hvordan kommer man i gang?
Rust kan være lidt tungt at komme i gang med, da det er ret så Verbose. Men i kraft af sprogets opbygning og syntaks, så giver det – trods en indledende tungere kompleksitet – en lettere vej frem, ikke mindst set i lyset af de mange potentielle bugs og problemer som kan undgås.
Man kan eventuelt kigge lidt her: https://www.rust-lang.org/
https://medium.com/comsystoreply/half-a-year-of-rust-9b5d1d7ede
Og ellers er der denne tutorial: https://rustlings.rust-lang.org/
Har du brug for hjælp til at komme i gang med Rust eller brug for mere viden og/eller man power til jeres næste software projekt, så hold dig ikke tilbage med at kontakte Circle Consult.
Kontakt:
mail: info@circleconsult.dk