Google, Microsoft se refugiază în securitatea mai bună a Rust Language

Google, Microsoft se refugiază în securitatea mai bună a Rust Language

Când Fortanix s-a lansat în 2016, compania a luat o decizie: se va angaja în limbajul de programare Rust, vechi de un an, pentru a beneficia de punctele sale forte și de performanța de securitate.

Șapte ani mai târziu, angajamentul lui Fortanix față de Rust s-a dovedit a fi un succes. Compania a construit suport pentru Intel Software Guard Extensions (SGX), care permite utilizarea de enclave securizate pentru datele utilizatorilor și beneficiază de capacitatea compilatorului Rust de a evita anumite clase de vulnerabilități, în special problemele de siguranță ale memoriei, spune Jethro Beekman, vicepreședinte. de tehnologie și CISO la firma de securitate a datelor.

„Au fost câțiva primitori care au văzut cu adevărat acest potențial și, după ce am făcut niște cercetări amănunțite și am obținut ceva experiență practică cu el, am decis să facem practic totul”, spune el. „Uneltele și compilatorul vă ajută cu adevărat să evitați greșelile.”

La opt ani de la lansarea sa 1.0, limbajul Rust și platformele de dezvoltare continuă să câștige popularitate în rândul dezvoltatorilor și companiilor concentrat pe codul securizat. În timp ce Rust are o mult mai mică Evaluare TIOBE decât C sau C++, limba înregistrează utilizatori suplimentari semnificativi de la an la an. Rust are, de asemenea, următorii angajați: în timp ce doar 12% dintre programatori au folosit tehnologia în ultimul an, aproape 85% dintre acești dezvoltatori doresc să continue să folosească limbajul, făcându-l cel mai „admirat” limbaj de programare, potrivit datelor. „Sondajul 2023 pentru dezvoltatori” Stack Overflow.

Grafice care arată creșterea limbajului de programare Rust

Adopția ruginii continuă să crească exponențial. Sursa: Lib.rs (https://lib.rs/stats)

Ca parte a unui efort de eliminare a claselor de erori, de exemplu, Microsoft rescrie părți ale kernelului folosind Rust, a declarat David Weston, vicepreședinte pentru întreprindere și securitate OS la Microsoft, în timpul BlueHat Israel în martie. Compania a creat DWriteCore în Rust pentru a transforma parsarea fonturilor într-o funcție de siguranță a memoriei și lucrează în prezent la experimentarea cu scrierea unor părți ale interfeței driverului grafic (GDI) în Rust. Compania a înregistrat o creștere a performanței cu 5% până la 15% în versiunile timpurii ale codului.

„Aș spune că suntem în stadiul de crawl... pentru Rust în Windows”, a spus Weston o înregistrare video a prezentării sale. „Experimentăm cu un lanț de scule; Ne uităm la generația de cod și încercăm să ne dăm seama dacă merită cât costă să înveți Rust.”

Microsoft, un sponsor al Fundației Rust, s-a angajat totuși pentru limbaj. „Veți avea de fapt pornirea Windows cu Rust în nucleu”, spune Weston.

Google, 1Password și altele la bord

Google este, de asemenea, un susținător major al Rust. Compania atribuie o scădere a ponderii vulnerabilităților de siguranță a memoriei în Android tranziției la Rust, Kotlin (un limbaj de programare funcțional) și Java de la C și C++. În 2022, vulnerabilitățile de siguranță ale memoriei, cum ar fi depășirile de buffer, a reprezentat mai puțin de jumătate din toate vulnerabilitățile din Android.

„În general, recomandăm utilizarea Rust oriunde vă gândiți să creați un nou cod C [sau] C++”, spune Lars Bergstrom, director de inginerie pentru limbaje de programare Android la Google și președintele consiliului de administrație al Fundației Rust. „Așadar, Rust este adesea o alegere bună în cazul în care aveți nevoie de un control strict al sistemului de bază și al resurselor acestuia, cum ar fi memoria.”

Agentia Nationala de Securitate recomanda de asemenea că dezvoltatorii caută alternative la C și C++ pentru codul critic pentru securitate, deoarece acele limbaje te bazezi prea mult pe dezvoltatorul să nu facă greșeli.

În timp ce Fortanix s-a angajat să folosească Rust pe scară largă, alte companii sunt mai tactice în ceea ce privește modul în care introduc limbajul în bazele lor de cod. Firma de gestionare a parolelor și identității 1Password, care necesită o securitate solidă pentru a proteja depozitele de parole ale utilizatorilor, a adoptat Rust ca platformă de dezvoltare pentru componentele sale principale de securitate a datelor, folosind alte limbi pentru interfața front-end pe diferite sisteme de operare, a declarat compania într-o postare pe blog.

Microsoft se află într-o situație similară și nu va rescrie părți mari din baza sa de cod în Rust, a spus Weston.

„Urăsc să vă spun – știu fanii Rust de acolo – că rescrierea Windows în Rust probabil că nu se va întâmpla prea curând”, a spus el participanților la conferința BlueHat Israel. „Deși iubim Rust, avem nevoie de o strategie care să includă și asigurarea mai multor codului nostru nativ.”

Curba de învățare nu este atât de abruptă

Fundația Rust a cunoscut o mare adoptare de către firmele de dispozitive încorporate și conectate – în special în aplicațiile auto, industriale și aerospațiale – precum și în crearea de aplicații web și cloud într-o altă platformă nouă, WebAssembly, spune Rebecca Rambul, director executiv și CEO al Fundației Rust.

„Aceste tipuri de organizații au fost printre... primele din afara marilor organizații tehnologice care au văzut cu adevărat potențialul Rust, nu doar din cauza securității, ci din cauza vitezei și a performanței," ea spune. „Aveți acest nivel de securitate datorită siguranței memoriei, dar nu pierdeți nimic din perspectiva performanței.”

Când a început Fortanix, fiecare programator a trebuit să învețe Rust. În timp ce înțelepciunea comună este că limbajul este greu de învățat, mai mult de două treimi dintre programatorii care învață Rust au spus că se simt încrezători în a contribui la un proiect în decurs de două luni, potrivit datelor. un sondaj al programatorilor interni de către Google.

În timp ce noii programatori l-au preluat rapid pe Rust, compilatorul continuă să fie mai lent decât și-ar dori mulți, a mai constatat sondajul.

Limbajul necesită unele ajustări, recunoaște Michael Erquitt, un inginer senior de securitate la firma de instruire pentru codificare securizată Security Journey. În plus, programatorii trebuie să-și dezvolte propriul simț al funcțiilor și aplicațiilor care ar beneficia de limbaj.

„Există întotdeauna compromisuri inerente atunci când alegeți limbaje și instrumente de programare.” Erquitt spune. „Rugina, ca limbaj de programare modern, poate fi folosit pentru o gamă largă de proiecte, dar alegerea se reduce în cele din urmă la ceea ce satisface cel mai bine cerințele funcționale/client ale proiectului dumneavoastră.”

Timestamp-ul:

Mai mult de la Lectură întunecată