Rust contro i bug di Memoria del Firmare. Riscrivere in logica Shim le librerie è la chiave
Red Hot Cyber
Condividi la tua difesa. Incoraggia l'eccellenza. La vera forza della cybersecurity risiede nell'effetto moltiplicatore della conoscenza.
Cerca
UtiliaCS 970x120
Banner Ransomfeed 320x100 1
Rust contro i bug di Memoria del Firmare. Riscrivere in logica Shim le librerie è la chiave

Rust contro i bug di Memoria del Firmare. Riscrivere in logica Shim le librerie è la chiave

12 Settembre 2024 07:17

Google ha sostenuto l’implementazione di Rust nel firmware di basso livello, promuovendo la traduzione del codice legacy come mezzo per combattere i bug che minacciano la sicurezza dell’accesso alla memoria.

In un nuovo post sul blog, il team di Android sostiene che il passaggio da C o C++ a Rust nel firmware esistente fornirà garanzie di sicurezza della memoria a livelli inferiori al sistema operativo che non dispone di standard di sicurezza.

Secondo gli esperti, la perdita di produttività in questo caso è trascurabile, anche la dimensione dei codici Rust è comparabile, l’importante è sostituire i codici base per gradi, iniziando con quelli nuovi e più critici. Il processo non richiederà molti sforzi e nel tempo il numero di vulnerabilità di accesso alla memoria sarà significativamente ridotto.

Riscrivere gradualmente il codice delle librerie utilizzando la logica Shim


Christmas Sale

Christmas Sale -40%
𝗖𝗵𝗿𝗶𝘀𝘁𝗺𝗮𝘀 𝗦𝗮𝗹𝗲! Sconto del 𝟰𝟬% 𝘀𝘂𝗹 𝗽𝗿𝗲𝘇𝘇𝗼 𝗱𝗶 𝗰𝗼𝗽𝗲𝗿𝘁𝗶𝗻𝗮 del Corso "Dark Web & Cyber Threat Intelligence" in modalità E-Learning sulla nostra Academy!🚀 Fino al 𝟯𝟭 𝗱𝗶 𝗗𝗶𝗰𝗲𝗺𝗯𝗿𝗲, prezzi pazzi alla Red Hot Cyber Academy. 𝗧𝘂𝘁𝘁𝗶 𝗶 𝗰𝗼𝗿𝘀𝗶 𝘀𝗰𝗼𝗻𝘁𝗮𝘁𝗶 𝗱𝗲𝗹 𝟰𝟬% 𝘀𝘂𝗹 𝗽𝗿𝗲𝘇𝘇𝗼 𝗱𝗶 𝗰𝗼𝗽𝗲𝗿𝘁𝗶𝗻𝗮.
Per beneficiare della promo sconto Christmas Sale, scrivici ad [email protected] o contattaci su Whatsapp al numero di telefono: 379 163 8765.


Supporta Red Hot Cyber attraverso: 

  1. L'acquisto del fumetto sul Cybersecurity Awareness
  2. Ascoltando i nostri Podcast
  3. Seguendo RHC su WhatsApp
  4. Seguendo RHC su Telegram
  5. Scarica gratuitamente “Byte The Silence”, il fumetto sul Cyberbullismo di Red Hot Cyber

Se ti piacciono le novità e gli articoli riportati su di Red Hot Cyber, iscriviti immediatamente alla newsletter settimanale per non perdere nessun articolo. La newsletter generalmente viene inviata ai nostri lettori ad inizio settimana, indicativamente di lunedì.

Per facilitare la transizione, è possibile ad esempio, creare un sottile strato Rust, il preloader Shim , che copierà l’API C ed esporterà per la base di codice esistente. “Shim funge da wrapper attorno all’API della libreria Rust, collegando l’API C esistente e l’API Rust”, spiegano gli esperti. “Questo è quello che si fa di solito, riscrivendo le librerie o sostituendole con un’alternativa a Rust.”

Secondo Google, fino a poco tempo fa, i bug di sicurezza nella memoria erano la principale fonte di vulnerabilità in Chrome e Android. Grazie all’implementazione di linguaggi di programmazione in grado di liberare i prodotti da questa piaga, tra il 2019 e il 2022 il numero annuo di tali errori nel sistema operativo mobile è stato ridotto da 223 a 85.

L’anno scorso, Microsoft ha avviato il processo di migrazione del kernel di Windows su Rust.

La versione 11 della build del sistema operativo, rilasciata a maggio 2023, conteneva driver in questo linguaggio. Allo stesso tempo, si è saputo dei piani del colosso tecnologico per aumentare in modo simile la sicurezza del processore Pluton, che non ha ancora trovato un utilizzo diffuso.

Rust la chiave dei bug di memoria

Il linguaggio di programmazione Rust è stato progettato per risolvere problemi legati alla sicurezza della memoria e alla gestione concorrente dei dati, affrontando alcune delle vulnerabilità più comuni presenti in linguaggi come C e C++. Ecco i principali tipi di bug che Rust risolve:

1. Bug di gestione della memoria (Memory Safety Issues)

  • Dereferenziazione di puntatori nulli (Null Pointer Dereference): In linguaggi come C e C++, è comune che i puntatori nulli causino crash del programma o comportamenti imprevisti. Rust previene questo problema usando il tipo Option, che fornisce un modo sicuro di gestire valori che potrebbero essere nulli.
  • Use-After-Free: Questo bug si verifica quando un programma tenta di accedere a un’area di memoria che è già stata liberata. In Rust, grazie al sistema di proprietà (ownership) e al concetto di borrow checker, non è possibile accedere alla memoria dopo che è stata rilasciata.
  • Double Free: In C o C++, liberare la stessa area di memoria due volte può causare instabilità o vulnerabilità. Rust gestisce la liberazione della memoria in modo automatico e sicuro attraverso la sua gestione di ownership, prevenendo il rischio di liberazioni multiple della stessa risorsa.

2. Race conditions e problemi di concorrenza (Concurrency Bugs)

  • Data Race: Una data race si verifica quando due thread accedono contemporaneamente alla stessa memoria, con almeno uno che esegue un’operazione di scrittura, senza la necessaria sincronizzazione. Rust usa tipi come Mutex e RwLock, e il borrow checker assicura che le risorse condivise siano accessibili in modo sicuro, prevenendo le data race a compile-time.
  • Thread Safety: Rust applica rigorose regole di concorrenza e sincronizzazione attraverso il sistema di tipi, assicurandosi che le risorse condivise tra thread siano sicure da usare.

3. Buffer overflow

  • Questo è uno dei bug di sicurezza più comuni in linguaggi come C e C++, dove l’accesso a buffer di memoria oltre i limiti definiti può causare comportamenti imprevisti o vulnerabilità di sicurezza. Rust impedisce questo bug grazie al suo controllo rigoroso dei limiti degli array e delle slice, rendendo impossibile l’accesso fuori dai limiti a meno che non sia esplicitamente consentito.

4. Dangling Pointers

  • Un dangling pointer è un puntatore che fa riferimento a una locazione di memoria che non è più valida. In Rust, il sistema di ownership impedisce la creazione di puntatori invalidi o di riferimenti a memoria liberata, eliminando i dangling pointers.

5. Memory Leaks

  • Anche se Rust non garantisce di prevenire ogni perdita di memoria (poiché può esserci memoria ciclicamente referenziata che non viene rilasciata), è molto più difficile incorrere in memory leaks rispetto a linguaggi come C/C++. La gestione della memoria basata su ownership e il sistema di borrowing fanno sì che le risorse vengano rilasciate automaticamente quando non sono più utilizzate.

6. Errori di tipo (Type Safety Issues)

  • Rust è un linguaggio fortemente tipizzato, e molte operazioni che in altri linguaggi potrebbero fallire a runtime vengono bloccate a compile-time. Questo impedisce errori legati al tipo di dati, come assegnare valori a variabili di tipo incompatibile o effettuare operazioni non valide tra tipi diversi.

7. Stack Overflow per ricorsione non controllata

  • Rust include l’uso di tail-call optimizations per ridurre il rischio di overflow dello stack nelle funzioni ricorsive. Anche se non previene completamente il problema, il suo sistema di tipi e la gestione delle risorse rendono più facile evitare errori di questo tipo.

Seguici su Google News, LinkedIn, Facebook e Instagram per ricevere aggiornamenti quotidiani sulla sicurezza informatica. Scrivici se desideri segnalarci notizie, approfondimenti o contributi da pubblicare.

  • bug di sicurezza
  • bug hunting
  • chrome
  • cybercrime
  • development
  • google
  • programmazione
  • rust
  • shim
  • sviluppo
  • wrapper
Immagine del sito
Redazione

La redazione di Red Hot Cyber è composta da un insieme di persone fisiche e fonti anonime che collaborano attivamente fornendo informazioni in anteprima e news sulla sicurezza informatica e sull'informatica in generale.

Lista degli articoli

Articoli in evidenza

Immagine del sito
Sottovalutare la sicurezza informatica Oggi. Parliamo di “tanto chi vuoi che mi attacca?”
Di Gaia Russo - 18/12/2025

La cultura del “tanto chi vuoi che mi attacchi?” gira ancora, testarda. Non è uno slogan, è proprio un modo di pensare. Una specie di alibi mentale che permette di rimandare, di non guardare tro...

Immagine del sito
RCE in HPE OneView: 10 su 10! Aggiornamenti urgenti per il Cloud e i Data Center
Di Redazione RHC - 18/12/2025

La sicurezza informatica è un tema che non scherza, specialmente quando si parla di vulnerabilità che possono compromettere l’intero sistema. Ebbene, Hewlett Packard Enterprise (HPE) ha appena lan...

Immagine del sito
Allerta critica CISA! Tre nuovi bug sfruttati attivamente: Cisco, SonicWall e ASUS nel mirino
Di Redazione RHC - 18/12/2025

La Cybersecurity and Infrastructure Security Agency (CISA) ha diramato un’allerta critica includendo tre nuove vulnerabilità nel suo catalogo delle minacce informatiche sfruttate (KEV), evidenziand...

Immagine del sito
Backdoor invisibile nei Cisco Secure Email: quando la patch non basta più
Di Redazione RHC - 18/12/2025

Quando si parla di sicurezza informatica, è normale pensare a un gioco costante tra chi attacca e chi difende. E in questo gioco, le vulnerabilità zero-day sono il jackpot per gli hacker criminali. ...

Immagine del sito
Linee Rosse e Limiti Etici nell’OSINT: Quando la Ricerca Oltrepassa il Confine della Legalità
Di Alexandro Irace - 17/12/2025

L’Open Source Intelligence (OSINT) è emersa, negli ultimi anni, come una delle discipline più affascinanti, ma anche più insidiose, nel panorama dell’informazione e della sicurezza. La sua esse...