Seleziona una pagina
martedì, Feb 21

Rust, il nuovo linguaggio di programmazione a prova di errore che sta conquistando il tech



Da Wired.it :

Che gestiate il reparto informatico di una grande azienda o siate semplici possessori di uno smartphone, conoscerete il flusso ininterrotto di aggiornamenti software che siamo costretti a installare per risolvere bug e problemi di sicurezza. Errare è umano, che il codice contenga errori è inevitabile, eccetera eccetera. Ma ultimamente si stanno moltiplicando le voci che chiedono di programmare i software in un linguaggio – chiamato Rust – che pare insolitamente a prova di errore. Per com’è concepito, gli sviluppatori che lo utilizzano non possono creare inavvertitamente le vulnerabilità più comuni, il che potrebbe rappresentare un’autentica svolta nel carosello quotidiano delle patch, e in ultima analisi nella cybersicurezza di tutto il mondo.

Anche i linguaggi di programmazione conoscono le loro mode, che il più delle volte vanno e vengono senza lasciare tracce indelebili. Nei suoi dodici anni di esistenza, Rust ha avuto il tempo di trasformarsi da progetto collaterale di un ricercatore di Mozilla in un solido ecosistema. Nel frattempo, il precedente linguaggio C, ancora oggi ampiamente utilizzato, ha da poco compiuto 50 anni. Ma poiché Rust produce codice più sicuro e – dettaglio fondamentale – nel farlo non intacca le prestazioni, questo linguaggio è andato accumulando sostenitori e si trova ora a un punto di svolta. Microsoft, Google e Amazon Web Services utilizzano Rust dal 2019, e nel 2020 le tre aziende, insieme a Mozilla e Huawei, si sono unite per costituire la Rust Foundation, un’organizzazione non profit che punta a promuovere e far crescere il linguaggio. Dopo un paio di anni di intenso lavoro, lo scorso ottobre il kernel Linux ha avviato i primi passi per implementare il supporto a Rust.

Sta diventando un linguaggio virale – afferma Dave Kleidermacher, vicepresidente del settore tecnico per la sicurezza e la privacy di Android –. Stiamo investendo su Rust in Android e in tutta Google, e molti ingegneri cominciano a chiedersi: ‘Come faccio a iniziare anch’io? È fantastico’. Rust è appena diventato per la prima volta un linguaggio ufficialmente riconosciuto e accettato in Linux. E non è più limitato soltanto ad Android: oggi qualsiasi sistema basato su Linux può iniziare a incorporare componenti di Rust”.

I vantaggi di Rust

Rust è un cosiddetto linguaggio “memory-safe”, in quanto progettato per impedire ai programmi di estrarre accidentalmente dalla memoria di un computer dati non richiesti. Quando i programmatori usano linguaggi consolidati ma privi di questa caratteristica, comel C e il C++, devono regolare con cura i parametri dei dati che il loro programma si troverà a richiedere, e il modo in cui lo farà; un compito che a volte possono sbagliare anche gli sviluppatori più abili ed esperti. Programmando un nuovo software in Rust, invece, persino un dilettante può avere la certezza di non introdurre nel codice un bug di sicurezza della memoria.

La memoria di un programma è una risorsa condivisa utilizzata da tutte le sue funzionalità e librerie. Immaginiamo un programma per un calendario scritto in un linguaggio non sicuro per la memoria. Se apriamo il calendario e richiediamo le voci relative al 2 novembre 2022, il programma recupererà tutte le informazioni contenute nell’area della memoria del computer deputata a contenere i dati di quel giorno. Fin qui tutto normale. Ma se il programma non è stato progettato con i giusti vincoli, e se si richiedono le voci relative al 42 novembre 2022, il software – anziché produrre un errore o un’anomalia di altro tipo – potrebbe diligentemente restituire informazioni provenienti da una parte della memoria che ospita altri dati, per esempio la password usata per proteggere il calendario o il numero di carta di credito memorizzato per le sue funzionalità a pagamento. E se aggiungiamo al calendario una festa di compleanno indicando come data il 42 novembre, il sistema, anziché segnalare l’impossibilità di completare l’operazione, rischia di sovrascrivere nella memoria dati non correlati. Sono i cosiddetti bug di lettura e scrittura “out-of-bounds”, ed è facile capire come possano essere sfruttati da intrusi per ottenere un accesso non autorizzato ai dati o addirittura il controllo esteso del sistema.



[Fonte Wired.it]