Il difetto critico della ruggine rappresenta una minaccia di sfruttamento in specifici casi d'uso di Windows

Il difetto critico della ruggine rappresenta una minaccia di sfruttamento in specifici casi d'uso di Windows

Il difetto critico della ruggine rappresenta una minaccia di sfruttamento in specifici casi d'uso di Windows PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Il progetto Rust ha rilasciato un aggiornamento per la sua libreria standard, dopo che un ricercatore di vulnerabilità ha scoperto che una funzione specifica utilizzata per eseguire file batch su sistemi Windows potrebbe essere sfruttata utilizzando un difetto di injection.

L'insieme di funzioni comuni incluse nel linguaggio di programmazione Rust, noto come libreria standard, offre la possibilità, tra le sue molte altre funzionalità, di eseguire file batch di Windows tramite l'API di comando. La funzione, tuttavia, non ha elaborato gli input dell'API in modo sufficientemente rigoroso da eliminare la possibilità di inserire codice nell'esecuzione, secondo un avviso del gruppo di lavoro sulla risposta alla sicurezza di Rust pubblicato il 9 aprile.

Sebbene Rust sia ben noto per le sue funzionalità di sicurezza della memoria, l'incidente sottolinea che il linguaggio di programmazione non è a prova di bug logici, afferma Yair Mizrahi, ricercatore senior di vulnerabilità presso la società di sicurezza delle applicazioni JFrog.

"Nel complesso, la sicurezza della memoria di Rust è un vantaggio notevole, ma gli sviluppatori devono anche prestare molta attenzione al rischio di bug logici per garantire la sicurezza e l'affidabilità complessive delle loro applicazioni basate su Rust", afferma. "Per affrontare tali problemi logici, Rust incoraggia un rigoroso processo di test e revisione del codice, nonché l'uso di strumenti di analisi statica per identificare e mitigare i bug logici."

Rust si è guadagnato la reputazione di essere un linguaggio di programmazione molto sicuro, perché non lascia le applicazioni aperte alla classe, spesso grave, di difetti noti come vulnerabilità della sicurezza della memoria. Google ha attribuito una goccia di codice non sicuro per la memoria al passaggio a linguaggi memory-safe, come Rust e Kotlin, mentre Microsoft ha scoperto che fino al 2018, quando è passata al linguaggio memory-safe, tali vulnerabilità regolarmente rappresentavano il 70% di tutti i problemi di sicurezza.

Windows pone una serie di problemi

L'ultimo problema non è una vulnerabilità della sicurezza della memoria, ma un problema con la logica utilizzata per elaborare input non attendibili. Parte della libreria standard di Rust consente allo sviluppatore di chiamare una funzione per inviare un file batch alla macchina Windows per l'elaborazione. Ci sono ragioni per inviare il codice all'host come file batch, afferma Joel Marcey, direttore della tecnologia presso la Rust Foundation, che supporta i manutentori del linguaggio di programmazione e l'ecosistema Rust.

"I file batch vengono eseguiti per molte ragioni sui sistemi e Rust fornisce un'API che consente di eseguirli abbastanza facilmente", afferma. "Quindi, anche se questo non è necessariamente il caso d'uso più comune per Rust, l'API, prima che fosse implementata la patch corretta, consentiva ad autori malintenzionati di prendere teoricamente il controllo del sistema eseguendo comandi arbitrari, e questa è sicuramente una vulnerabilità critica."

In genere, uno sviluppatore può inoltrare un carico di lavoro all'host Windows affinché venga eseguito come processo batch tramite l'API (Applications Programming Interface) di comando, parte della libreria standard. In genere, Rust garantisce la sicurezza di qualsiasi chiamata alla Command API, ma in questo caso il progetto Rust non è riuscito a trovare un modo per impedire l'esecuzione di tutti gli argomenti, principalmente perché Windows non aderisce ad alcun tipo di standard e perché L'API potrebbe consentire a un utente malintenzionato di inviare codice che verrebbe quindi eseguito.

"Purtroppo è stato riferito che la nostra logica di escape non era sufficientemente approfondita ed era possibile passare argomenti dannosi che avrebbero comportato l'esecuzione arbitraria della shell", secondo il Rust Security Response WG.

Il progetto Rust si dimostra reattivo

Anche se affrontare qualsiasi vulnerabilità può essere un grattacapo, il progetto Rust ha dimostrato che il gruppo risolve rapidamente i problemi, dicono gli esperti. La vulnerabilità della libreria standard, CVE-2024-24576, è in definitiva un problema con l'elaborazione batch di Windows e influisce su altri linguaggi di programmazione, se non analizzano adeguatamente gli argomenti inviati all'elaborazione batch di Windows. Il progetto Rust sembra essere il primo ad offrire una soluzione per il passaggio di argomenti al processo CMD.exe di Windows, afferma Mizrahi di JFrog.

I gruppi non sono riusciti a eliminare completamente il problema, ma la Command API non restituirà un errore quando eventuali miglioramenti passati alla funzione potrebbero non essere sicuri, ha affermato il progetto Rust. 

Mizrahi di JFrog esorta Rust ad ampliare l'uso dei test statici di sicurezza delle applicazioni e ad espandere l'uso del fuzzing e dei test dinamici.

"Nel complesso, Rust è sulla strada giusta, sottolineando la sicurezza della memoria e incoraggiando pratiche di test rigorose", afferma. "La combinazione di questi sforzi con i continui progressi nell'analisi statica e nel fuzzing può aiutare la comunità di Rust e l'industria del software in generale a fare passi da gigante nell'affrontare bug logici e difetti di convalida degli input negli anni a venire."

Timestamp:

Di più da Lettura oscura