Come scansionare il tuo ambiente alla ricerca di versioni vulnerabili di Curl

Come scansionare il tuo ambiente alla ricerca di versioni vulnerabili di Curl

Come scansionare il tuo ambiente alla ricerca di versioni vulnerabili di Curl PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

I team di sicurezza non devono entrare in modalità crisi per affrontare il problema recentemente sono state corrette le vulnerabilità nello strumento da riga di comando curl e nella libreria libcurl, ma ciò non significa che non debbano preoccuparsi di identificare e riparare i sistemi interessati. Se i sistemi non sono immediatamente sfruttabili, i team di sicurezza hanno del tempo per effettuare tali aggiornamenti.

Questo suggerimento tecnico raccoglie indicazioni su ciò che i team di sicurezza devono fare per garantire che non siano a rischio.

Uno strumento di rete fondamentale per i sistemi Unix e Linux, cURL viene utilizzato nelle righe di comando e negli script per trasferire i dati. La sua prevalenza è dovuta al fatto che viene utilizzato sia come utility autonoma (curl) sia come libreria inclusa in molti tipi diversi di applicazioni (libcurl). La libreria libcurl, che consente agli sviluppatori di accedere alle API curl dal proprio codice, può essere introdotta direttamente nel codice, utilizzata come dipendenza, utilizzata come parte di un bundle del sistema operativo, inclusa come parte di un contenitore Docker o installata su un Nodo del cluster Kubernetes.

Che cos'è CVE-2023-38545?

La vulnerabilità ad alta gravità influenza curl e libcurl versioni da 7.69.0 a 8.3.0 e la vulnerabilità a bassa gravità influisce sulle versioni di libcurl da 7.9.1 a 8.3.0. Tuttavia, le vulnerabilità non possono essere sfruttate in condizioni predefinite. Un utente malintenzionato che tenta di attivare la vulnerabilità dovrebbe puntare curl verso un server dannoso sotto il controllo dell'utente malintenzionato, assicurarsi che curl stia utilizzando un proxy SOCKS5 utilizzando la modalità proxy-resolver, configurare curl per seguire automaticamente i reindirizzamenti e impostare la dimensione del buffer su un valore inferiore. misurare.

Secondo Yair Mizrahi, ricercatore senior sulla sicurezza presso JFrog, la libreria libcurl è vulnerabile esclusivamente se sono impostate le seguenti variabili d'ambiente: CURLOPT_PROXYTYPE  impostato su tipo CURLPROXY_SOCKS5_HOSTNAMEOppure CURLOPT_PROXY or CURLOPT_PRE_PROXY  impostato secondo lo schema calzini5h://. La libreria è vulnerabile anche se una delle variabili di ambiente proxy è impostata per utilizzare il file calzini5h:// schema. Lo strumento da riga di comando è vulnerabile solo se viene eseguito con il file -socks5-nome host bandiera, o con –delega (-x) o –predelega impostato per utilizzare lo schema calzini5h://. È anche vulnerabile se curl viene eseguito con le variabili di ambiente interessate.

“L’insieme delle precondizioni necessarie affinché una macchina sia vulnerabile (vedi sezione precedente) è più restrittivo di quanto inizialmente creduto. Pertanto, riteniamo che la stragrande maggioranza degli utenti di curl non sarà interessata da questa vulnerabilità", ha scritto Mizrahi nell'analisi.

Scansiona l'ambiente alla ricerca di sistemi vulnerabili

La prima cosa che le organizzazioni devono fare è analizzare i propri ambienti per identificare tutti i sistemi che utilizzano curl e libcurl per valutare se esistono tali precondizioni. Le organizzazioni dovrebbero inventariare i propri sistemi e valutare i processi di distribuzione del software utilizzando strumenti di analisi della composizione del software per codice, contenitori di scansione e utilità di gestione della posizione di sicurezza delle applicazioni, osserva Alex Ilgayev, responsabile della ricerca sulla sicurezza presso Cycode. Anche se la vulnerabilità non influisce su ogni implementazione di curl, sarebbe più semplice identificare i sistemi interessati se il team iniziasse con un elenco di potenziali posizioni da esaminare.

I seguenti comandi identificano quali versioni di curl sono installate:

Linux/Mac OS:

find / -name curl 2>/dev/null -exec echo "Trovato: {}" ; -exec {} --version ;

Windows:

Get-ChildItem -Percorso C: -Recurse -ErrorAction SilentlyContinue -Filter curl.exe | ForEach-Object { Write-Host "Trovato: $($_.FullName)"; & $_.NomeCompleto --version }

GitHub ha un query da eseguire in Defender per Endpoint per identificare tutti i dispositivi nell'ambiente su cui è installato curl o che utilizzano curl. Qualys ha pubblicato le sue regole per l'utilizzo della sua piattaforma.

Anche le organizzazioni che utilizzano contenitori Docker o altre tecnologie di contenitori dovrebbero scansionare le immagini per individuare versioni vulnerabili. È previsto un numero considerevole di ricostruzioni, in particolare nelle immagini docker ed entità simili che incorporano copie liburl. Docker ha unito le forze un elenco di istruzioni sulla valutazione di tutte le immagini.

Per trovare i repository esistenti:

abilita il repository docker scout --org /scout-demo

Per analizzare le immagini del contenitore locale:

policy docker scout [IMAGE] --org [ORG]

Questo numero evidenzia l'importanza di tenere traccia meticolosamente di tutto il software open source utilizzato in un'organizzazione, secondo Henrik Plate, ricercatore di sicurezza presso Endor Labs.

"Conoscere tutti gli usi di curl e libcurl è il prerequisito per valutare il rischio effettivo e intraprendere azioni correttive, che si tratti di applicare patch a curl, limitare l'accesso ai sistemi interessati da reti non affidabili o implementare altre contromisure", ha affermato Plate.

Se l'applicazione viene fornita con una distinta base del software, sarebbe un buon punto di partenza per cercare casi di arricciatura, aggiunge John Gallagher, vicepresidente di Viakoo Labs.

Solo perché i difetti non sono sfruttabili non significa che gli aggiornamenti non siano necessari. Sono disponibili patch direttamente per curl e libcurl, e anche molti sistemi operativi (Debian, Ubuntu, Red Hat, ecc.) hanno pubblicato versioni fisse. Tieni d'occhio gli aggiornamenti di sicurezza di altre applicazioni, poiché libcurl è una libreria utilizzata da molti sistemi operativi e applicazioni.

Una soluzione alternativa fino a quando gli aggiornamenti non possono essere distribuiti è forzare curl a utilizzare la risoluzione del nome host locale quando si connette a un proxy SOCKS5, secondo Mizrahi di JFrog. Questa sintassi utilizza lo schema calzini5 e non calzini5h: curl -x calzini5://someproxy.com. Nella libreria, sostituisci la variabile di ambiente CURLPROXY_SOCKS5_HOSTNAME con CURLPROXY_SOCKS5.

Secondo Benjamin Marr, un ingegnere della sicurezza presso Intruso, i team di sicurezza dovrebbero monitorare i curl flag per stringhe eccessivamente grandi, poiché ciò indicherebbe che il sistema è stato compromesso. Le bandiere lo sono –socks5-nomehost, o –delega or –predelega impostato per utilizzare lo schema calzini5h://.

Timestamp:

Di più da Lettura oscura