Cyberattacchi alimentati dall'intelligenza artificiale: Come individuare, prevenire e difendersi dalle minacce intelligenti

Leggi ora
Per le traduzioni dei siti utilizziamo l'intelligenza artificiale e, sebbene ci sforziamo di essere accurati, non sempre le traduzioni sono precise al 100%. La vostra comprensione è apprezzata.

Analizzare la vulnerabilità CVE-2023-33733 con MetaDefender Core

da OPSWAT
Condividi questo post
I principali ricercatori di sicurezza discutono della vulnerabilità CVE-2023-33733
Partecipanti al programma di borse di studio OPSWAT

La rapida ascesa della tecnologia ha creato una forte domanda di sviluppatori qualificati. Il software open-source (OSS) è diventato uno strumento vitale per questa forza lavoro in crescita. Oggi esistono centinaia di migliaia di pacchetti OSS consolidati in diversi linguaggi di programmazione. Oltre il 90% degli sviluppatori sfrutta questi componenti open-source all'interno delle proprie applicazioni proprietarie, evidenziando l'efficienza e la proposta di valore dell'OSS. A sottolineare ulteriormente la sua importanza, si prevede che il mercato globale degli OSS raggiungerà gli 80,7 miliardi di dollari entro il 2030, con un tasso di crescita previsto del 16,7% annuo. 

Tuttavia, l'adozione diffusa degli OSS introduce anche un nuovo livello di complessità: le vulnerabilità di sicurezza. Il gran numero di componenti OSS interconnessi crea una superficie di attacco più ampia che gli attori malintenzionati possono sfruttare. La gestione delle dipendenze tra i vari pacchetti OSS può essere complessa, rendendo difficile l'identificazione e la patch tempestiva delle vulnerabilità. Inoltre, la sicurezza degli OSS si basa spesso sulla vigilanza e sui contributi della comunità degli sviluppatori. Questo può portare a ritardi nella correzione delle vulnerabilità, soprattutto per i progetti meno popolari.  

In questo articolo, i borsisti OPSWAT esaminano CVE-2023-33733, una falla di sicurezza scoperta nella popolare libreria open-source ReportLab. La loro analisi è abbinata a una simulazione di attacco che sfrutta MetaDefender Core con il suo Software Bill of Materials (SBOM) per identificare le vulnerabilità nelle dipendenze di un'applicazione, compresa la libreria vulnerabile ReportLab. 

Introduzione alla libreria Reportlab

Illustrazione del ReportLab

ReportLab, una libreria Python potente e open-source, consente agli utenti di generare PDF ricchi di funzionalità dal codice Python. Offre agli sviluppatori una combinazione vincente: flessibilità, facilità d'uso e ampie opzioni di personalizzazione per la creazione di documenti dinamici. La libreria offre agli sviluppatori un maggiore controllo sui loro PDF, consentendo di incorporare con precisione testi, immagini, tabelle e grafici. Questo livello di personalizzazione rende ReportLab uno strumento prezioso per la generazione di documenti dinamici come fatture e rapporti basati sui dati. 

CVE-2023-33733 Contesto

CVE-2023-33733 evidenzia una vulnerabilità di sicurezza all'interno della libreria ReportLab, che ha un impatto su più versioni della libreria ReportLab.

  • Le versioni di ReportLab precedenti alla versione 3.6.13 sono risultate vulnerabili all'evasione della sandbox, in particolare all'interno del file 'rl_safe_eval' funzione. Lo sfruttamento è stato effettuato attraverso l'attributo color dei tag HTML, che è stato valutato direttamente come espressione Python utilizzando la funzione eval() e che porta all'esecuzione di codice in modalità remota. 
  • Gli analisti di NVD hanno assegnato un punteggio CVSS di 7,8 HIGH a CVE-2023-33733. 
La gravità e le metriche CVSS 3.x mostrano un punteggio di base di 7,8 per CVE-2023-33733, classificato come rischio elevato.

Analisi della vulnerabilità di sicurezza di ReportLab

I borsisti OPSWAT hanno condotto un'analisi approfondita del flusso di lavoro di ReportLab, identificando la causa principale della vulnerabilità di sicurezza CVE-2023-33733.

Il flusso di lavoro della libreria ReportLab 

ReportLab consente agli sviluppatori di creare PDF in modo efficiente. La libreria consente un'integrazione senza sforzo: importate la libreria, definite il contenuto HTML e generate il PDF in una sola riga di codice utilizzando la funzione result. 

Codice Python che dimostra la creazione di un semplice modello di documento utilizzando la libreria ReportLab

I nostri borsisti hanno scoperto un processo in 5 fasi per creare PDF da HTML con ReportLab. 

Diagramma che illustra il flusso di processo dall'HTML in ingresso al PDF in uscita utilizzando ReportLab e le funzioni associate.

Nel processo in 5 fasi per la creazione di PDF da HTML con ReportLab, si distinguono tre processi principali: l'elaborazione dei paragrafi, l'elaborazione del paraparser e il processo di gestione dell'HTML. 

Schermata di un processo di debug che evidenzia la gestione dell'HTML, il processo di paragrafo e il processo di paraparser in uno script Python

Come illustrato nella figura precedente, il processo di gestione dell'HTML all'interno di ReportLab utilizza la funzione eval() specificamente sull'attributo colore. Servendo come punto focale per l'esecuzione di codice dannoso, il file eval() La funzione di controllo del sistema di sicurezza induce i ricercatori a cercare di controllarne l'input per sfruttare l'applicazione. Tuttavia, questo è difficile da realizzare a causa della sandbox imposta dal programma __rl_safe_eval__ all'interno di ReportLab. 

Frammento di codice che mostra una funzione di valutazione sicura con controlli per i metodi consentiti e i timeout
Vulnerabilità di sicurezza nell'analisi di ReportLab 

ReportLab ha implementato una sandbox chiamata __rl_safe_eval__. Questa sandbox esclude tutte le funzioni integrate di Python e include diverse funzioni integrate sovrascritte. Questa restrizione consente l'esecuzione di codice sicuro all'interno della libreria, impedendo al contempo l'accesso a funzioni e librerie pericolose che potrebbero essere utilizzate per scopi dannosi (ad esempio, accesso al file system, comunicazione di rete). 

Il rl_safe_eval implementa varie condizioni per garantire che l'attributo invocato sia sicuro prima di utilizzare la funzione sandbox integrata di Python. getattr() per recuperarlo e restituire il risultato. 

Esempio di codice che dimostra una funzione che controlla se i nomi dei metodi sono consentiti all'interno di un contesto di sicurezza

La funzione safe eval mira a proteggere l'ambiente escludendo le funzioni pericolose e prevenendo le azioni dannose. Tuttavia, se si trova un modo per aggirare le sue condizioni e accedere a una potente funzione incorporata, si potrebbe sfruttare.  

Partendo da questa idea, i ricercatori di sicurezza hanno cercato di aggirare le restrizioni. Inizialmente, hanno sfruttato l'iniezione di oggetti utilizzando l'opzione tipo() per costruire un oggetto e ridefinire i suoi attributi e metodi per eludere i controlli all'interno di __rl_safe_eval__. Inoltre, poiché la libreria ReportLab sovrascrive le funzioni integrate e le rende globali nel contesto di eval, il ricercatore potrebbe sfruttare questa implementazione per accedere a una delle funzioni integrate originali. Ciò potrebbe consentire di aggirare l'ambiente sandbox ed eseguire codice dannoso. 

Frammento di codice che dimostra la ridefinizione delle funzioni incorporate

Il carico utile viene preparato come segue: 

Esempio di codice che mostra una classe attaccante e lo sfruttamento di un attributo globale

Tuttavia, l'esecuzione di un'espressione multilinea in un contesto di eval non è possibile. Tuttavia, è possibile utilizzare un trucco per la comprensione degli elenchi e il payload per sfruttare questa CVE è il seguente: 

Struttura di codice complessa che illustra lo sfruttamento di CVE-2023-33733

ReportLab Simulazione di sfruttamento 

I ricercatori hanno pubblicato un Proof of Concept (POC) per CVE-2023-33733, dimostrando che le applicazioni costruite con versioni vulnerabili di ReportLab potrebbero essere suscettibili di attacchi informatici. Per valutare questa potenziale minaccia, i borsisti dell'OSPWAT hanno condotto un attacco simulato a un'applicazione web. Hanno utilizzato MetaDefender Core con funzionalità SBOM per identificare le vulnerabilità di sicurezza nelle dipendenze del software dell'applicazione, compresa la presenza della libreria ReportLab interessata. 

Simulare la vulnerabilità della sicurezza 

Per simulare questo sfruttamento come uno scenario reale, i borsisti OPSWAT hanno sviluppato un'applicazione web utilizzando Python e la versione vulnerabile della libreria ReportLab. L'applicazione simula un caso d'uso tipico: gli utenti possono caricare un file HTML e convertirlo in un file PDF. 

Schermata di un'interfaccia di uploader di file dannoso che richiede di sfogliare un file da caricare

Un utente malintenzionato potrebbe creare un file HTML dannoso che contiene codice progettato per sfruttare 33733. Questo codice potrebbe aggirare la sandbox e compromettere il server web innescando una reverse shell attraverso l'interfaccia eval() funzione.  

Frammento di codice che mostra un attacco di command injection in corso

Un caricamento riuscito del file dannoso consentirebbe all'aggressore di assumere il controllo del server applicativo a causa della vulnerabilità della libreria ReportLab non aggiornata. 

Caricatore di file dannoso che visualizza evil.html caricato
Terminale che visualizza un reverse shell attivo

L'importanza dello SBOM e della sicurezza proattiva 

La ricerca dei borsisti OPSWAT su CVE-2023-33733 sottolinea i potenziali rischi per la sicurezza associati agli OSS. Se da un lato l'OSS offre innegabili vantaggi in termini di efficienza di sviluppo ed economicità, dall'altro le vulnerabilità come quella riscontrata in ReportLab possono lasciare le organizzazioni esposte ai cyberattacchi. 

OPSWAT SBOM 

OPSWAT SBOM protegge la catena di fornitura del software fornendo un inventario completo dei componenti per il codice sorgente e i container. Supporta oltre 10 linguaggi, tra cui Java, JavaScript, Go, PHP e Python, oltre 5 milioni di componenti software open-source di terze parti e utilizza un database di oltre 17.000 vulnerabilità provenienti dal National Vulnerability Database (NVD) e da GitHub (GHSA). 

La dashboard di sicurezza MetaDefender Core mostra un file bloccato e la sua analisi di vulnerabilità.

OPSWAT MetaDefender Core, con le sue funzionalità SBOM integrate, consente alle organizzazioni di affrontare in modo proattivo questi rischi. MetaDefender Core analizza le applicazioni software e le dipendenze, identificando la presenza di vulnerabilità note come CVE-2023-33733 all'interno dei componenti elencati. Questo permette agli sviluppatori e ai team di sicurezza di dare priorità alle attività di patch e di mitigare i rischi per la sicurezza prima che possano essere sfruttati. 

La dashboard di sicurezza MetaDefender Core mostra i risultati dettagliati delle scansioni di vulnerabilità per CVE-2023-33733

Pensieri conclusivi

La ricerca degli OPSWAT Graduate Fellows sulla vulnerabilità di ReportLab (CVE-2023-33733) serve a ricordare l'importanza di misure di sicurezza proattive nel ciclo di vita dello sviluppo del software. Sfruttando strumenti come OPSWAT MetaDefender Core, le organizzazioni possono ottenere informazioni cruciali sulle dipendenze del software e identificare potenziali vulnerabilità prima che vengano sfruttate dagli aggressori. 

Inoltre, OPSWAT offre una suite completa di soluzioni di cybersecurity che vanno oltre la scansione delle vulnerabilità. Queste soluzioni forniscono il rilevamento delle minacce in tempo reale, la sicurezza dei dati e la protezione degli endpoint, salvaguardando le organizzazioni da un'ampia gamma di minacce informatiche. Adottando un approccio di sicurezza stratificato che include strumenti come MetaDefender Core, le organizzazioni possono sfruttare i vantaggi degli OSS riducendo al minimo i rischi di sicurezza associati. 

Rimanete aggiornati con OPSWAT!

Iscriviti oggi stesso per ricevere gli ultimi aggiornamenti sull'azienda, storie, informazioni sugli eventi e altro ancora.