La scorsa settimana, Progress Software Corporation, che vende software e servizi per lo sviluppo di interfacce utente, devops, gestione dei file e altro ancora, ha avvisato i clienti del suo MOVEit Trasferimento e relativo MOVEit Cloud prodotti su a vulnerabilità critica soprannominato CVE-2023-34362.
Come suggerisce il nome, MOVEit Transfer è un sistema che semplifica l'archiviazione e la condivisione di file all'interno di un team, un dipartimento, un'azienda o persino una catena di fornitura.
Nella sua parole proprie, "MOVEit fornisce collaborazione sicura e trasferimenti di file automatizzati di dati sensibili e funzionalità avanzate di automazione del flusso di lavoro senza la necessità di scripting."
Sfortunatamente, il front-end basato sul Web di MOVEit, che semplifica la condivisione e la gestione dei file utilizzando solo un browser Web (un processo generalmente considerato meno incline a file indirizzati in modo errato o "persi" rispetto alla condivisione tramite e-mail), si è rivelato avere un SQL vulnerabilità di iniezione.
Spiegazione delle iniezioni SQL
I bug di SQL injection basati sul Web si verificano quando viene inviata una richiesta HTTP a un server web viene convertito in modo non sicuro in un comando di query che viene quindi emesso dal server stesso per eseguire una ricerca nel database per capire quale risposta HTTP costruire.
Ad esempio, una ricerca nel database che viene attivata da una pagina web potrebbe finire con un URL richiesto dal tuo browser simile a questo:
https://search.example.com/?type=file&name=duck
Il testo della domanda duck
potrebbe quindi essere estratto dal parametro name nell'URL, convertito nella sintassi della query del database e unito in un comando da inviare al server del database.
Se i dati di back-end sono archiviati in un database SQL, il server Web potrebbe convertire quell'URL in un comando SQL come quello mostrato di seguito.
I %
caratteri aggiunti al testo duck
significa che il termine di ricerca può apparire ovunque nel nome del file recuperato, e le virgolette singole a ciascuna estremità vengono aggiunte come marcatori per denotare una stringa di testo SQL:
SELECT nome file FROM filesdb WHERE nome LIKE '%duck%'
I dati restituiti dalla query potrebbero quindi essere formattati correttamente, convertiti in HTML e inviati come risposta HTTP al tuo browser, magari fornendoti un elenco cliccabile di file corrispondenti da scaricare.
Naturalmente, il server Web deve prestare molta attenzione ai nomi di file inviati come termine di ricerca, nel caso in cui un utente malintenzionato crei e richieda un URL come questo:
https://search.example.com/?type=file&name=duck';DROP table filesdb;--
Se quel termine di ricerca fosse convertito alla cieca in una stringa di query, potresti essere in grado di indurre il server Web a inviare al server SQL un comando come questo:
SELECT nome file FROM filesdb WHERE nome LIKE '%duck';DROP TABLE filesdb;--%'
Perché un punto e virgola (;
) funge da separatore di istruzioni in SQL, questo comando a riga singola equivale in realtà all'invio di tre comandi consecutivi:
SELECT nomefile FROM filesdb WHERE nome LIKE '%duck' -- corrisponde ai nomi che terminano con duck DROP TABLE filesdb -- cancella l'intero database --%' -- commenta, non fa nulla
Subdolamente, perché tutto dopo --
viene scartato da SQL come commento di un programmatore, queste tre righe sono le stesse di:
SELECT filename FROM filesdb WHERE nome LIKE '%duck' DROP TABLE filesdb
Otterrai un elenco di tutti i nomi di file nel database che terminano con la stringa duck
(il carattere speciale SQL %
all'inizio di una ricerca il termine significa "corrisponde a qualsiasi cosa fino a questo punto")...
…ma sarai l'ultima persona a trarre qualcosa di utile dal filesdb
database, perché il tuo termine di ricerca canaglia seguirà la ricerca con il comando SQL per eliminare l'intero database.
Tavolini Bobby
Se hai mai sentito syadmins o programmatori fare battute su Tavolini Bobby, questo perché questo tipo di SQL injection è stato immortalato in un file cartone animato XKCD di nuovo in 2007:
Mentre il fumetto si conclude nell'ultimo fotogramma, devi davvero disinfettare gli input del tuo database, il che significa che devi fare molta attenzione a non consentire alla persona che invia il termine di ricerca di controllare come il comando di ricerca viene interpretato dai server di back-end coinvolti.
Puoi capire perché questo tipo di trucco è noto come attacco di iniezione: negli esempi sopra, i termini di ricerca dannosi fanno sì che un comando SQL aggiuntivo venga iniettato nella gestione della richiesta.
In effetti, entrambi questi esempi coinvolgono due fommand iniettati, che seguono il carattere "citazione di chiusura" inserito di nascosto per terminare la stringa di ricerca in anticipo. Il primo comando extra è il distruttivo DROP TABLE
istruzione. Il secondo è un "comando di commento" che fa sì che il resto della riga venga ignorato, divorando così astutamente il finale %'
caratteri generati dal generatore di comandi del server, che altrimenti avrebbero causato un errore di sintassi e impedito l'inserimento DROP TABLE
comando dal lavoro.
buone notizie e cattive notizie
La buona notizia in questo caso è che Progress ha corretto tutte le sue versioni MOVEit supportate, insieme al suo servizio basato su cloud, una volta venuta a conoscenza della vulnerabilità.
Quindi, se utilizzi la versione cloud, ora sei automaticamente aggiornato e se stai eseguendo MOVEit sulla tua rete, speriamo che tu abbia già aggiornato le patch.
La cattiva notizia è che questa vulnerabilità era un giorno zero, il che significa che Progress l'ha scoperto perché i Cattivi lo stavano già sfruttando, piuttosto che prima che capissero come farlo.
In altre parole, quando hai patchato i tuoi server (o Progress ha patchato il suo servizio cloud), i truffatori potrebbero aver già iniettato comandi non autorizzati nei tuoi database back-end MOVEit SQL, con una serie di possibili risultati:
- Cancellazione dei dati esistenti. Come mostrato sopra, il classico esempio di attacco SQL injection è la distruzione di dati su larga scala.
- Esfiltrazione di dati esistenti. Invece di eliminare le tabelle SQL, gli aggressori potrebbero iniettare le proprie query, apprendendo così non solo la struttura dei database interni, ma anche estraendo e rubando le loro parti più succose.
- Modifica dei dati esistenti. Gli aggressori più astuti potrebbero decidere di corrompere o interrompere i tuoi dati invece di (o oltre a) rubarli.
- Impianto di nuovi file, incluso malware. Gli aggressori potrebbero iniettare comandi SQL che a loro volta avviano comandi di sistema esterni, ottenendo così l'esecuzione arbitraria di codice remoto all'interno della rete.
Un gruppo di aggressori, presunta da Microsoft per essere (o essere collegato con) la famigerata banda di ransomware Clop, hanno apparentemente utilizzato questa vulnerabilità per impiantare ciò che è noto come webshell sui server interessati.
Se non hai familiarità con le webshell, leggi il nostro spiegatore in inglese semplice che abbiamo pubblicato al momento dei fastidiosi attacchi HAFNIUM nel marzo 2021:
Pericolo Webshell
In poche parole, le webshell forniscono un modo per gli aggressori che possono aggiungere nuovi file al tuo server web per tornare più tardi, entrare a loro piacimento e condividere quell'accesso di sola scrittura in un controllo remoto completo.
Le webshell funzionano perché molti server web trattano determinati file (di solito determinati dalla directory in cui si trovano o dall'estensione che hanno) come script eseguibili utilizzato per generare la pagina da rispedire, anziché come contenuto effettivo da utilizzare nella risposta.
Ad esempio, l'IIS (Internet Information Server) di Microsoft è generalmente configurato in modo tale che se un browser web richiede un file chiamato, ad esempio, hello.html
, quindi il contenuto grezzo e non modificato di quel file verrà letto e rispedito al browser.
Quindi, se c'è qualche malware in questo hello.html
file, influenzerà la persona che accede al server, non il server stesso.
Ma se il file si chiama, diciamo, hello.aspx
(dove ASP è l'abbreviazione di frase autodescrittiva Pagine del server attivo), allora quel file viene trattato come un programma di script che il server deve eseguire.
L'esecuzione di quel file come programma, invece di leggerlo semplicemente come dati, genererà l'output da inviare in risposta.
In altre parole, se c'è qualche malware in questo hello.aspx
file, quindi influenzerà direttamente il server stesso, non la persona che naviga su di esso.
In breve, l'eliminazione di un file webshell come effetto collaterale di un attacco di command injection significa che gli aggressori possono tornare in un secondo momento e visitando l'URL corrispondente al nome file di quella webshell...
… possono eseguire il loro malware direttamente all'interno della tua rete, utilizzando niente di più sospetto di una richiesta HTTP senza pretese fatta da un browser web quotidiano.
In effetti, alcune webshell sono costituite da una sola riga di script dannoso, ad esempio un singolo comando che dice "ottieni il testo da un'intestazione HTTP specifica nella richiesta ed eseguilo come comando di sistema".
Ciò fornisce un accesso di comando e controllo generico a qualsiasi utente malintenzionato che conosca l'URL corretto da visitare e l'intestazione HTTP corretta da utilizzare per fornire il comando non autorizzato.
Cosa fare?
- Se sei un utente MOVEit, assicurati che tutte le istanze del software sulla tua rete siano patchate.
- Se non puoi applicare la patch in questo momento, disattivare le interfacce basate sul Web (HTTP e HTTP) sui server MOVEit finché non è possibile. Apparentemente questa vulnerabilità è esposta solo tramite l'interfaccia web di MOVEit, non tramite altri percorsi di accesso come SFTP.
- Cerca nei tuoi log per i file del server Web aggiunti di recente, gli account utente appena creati e i download di dati di grandi dimensioni inaspettatamente. Progress ha un elenco di luoghi in cui cercare, insieme a nomi di file e da cercare.
- Se sei un programmatore, disinfetta i tuoi input.
- Se sei un programmatore SQL, utilizzava query parametrizzate, piuttosto che generare comandi di query contenenti caratteri controllati dalla persona che inviava la richiesta.
In molti, se non nella maggior parte, degli attacchi basati su webshell esaminati finora, Il progresso suggerisce che probabilmente troverai un file webshell canaglia chiamato human2.aspx
, forse insieme a file dannosi appena creati con a .cmdline
estensione.
(I prodotti Sophos rileveranno e bloccheranno i file webshell noti come Troj/WebShel-GO, indipendentemente dal fatto che vengano chiamati human2.aspx
o no.)
Ricorda, tuttavia, che se altri aggressori fossero a conoscenza di questo zero-day prima dell'uscita della patch, potrebbero aver iniettato comandi diversi, e forse più sottili, che ora non possono essere rilevati scansionando il malware che è stato lasciato indietro o cercando per i nomi di file noti che potrebbero essere visualizzati nei log.
Non dimenticare di rivedere i tuoi registri di accesso in generale e, se non hai tempo per farlo da solo, non aver paura di chiedere aiuto!
Scopri Rilevamento e risposta gestiti da Sophos:
Ricerca, rilevamento e risposta alle minacce 24 ore su 7, XNUMX giorni su XNUMX ▶
A corto di tempo o competenze per occuparsi della risposta alle minacce alla sicurezza informatica? Preoccupato che la sicurezza informatica finisca per distrarti da tutte le altre cose che devi fare?
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- PlatoAiStream. Intelligenza dei dati Web3. Conoscenza amplificata. Accedi qui.
- Coniare il futuro con Adryenn Ashley. Accedi qui.
- Acquista e vendi azioni in società PRE-IPO con PREIPO®. Accedi qui.
- Fonte: https://nakedsecurity.sophos.com/2023/06/05/moveit-zero-day-exploit-used-by-data-breach-gangs-the-how-the-why-and-what-to-do/
- :ha
- :È
- :non
- :Dove
- $ SU
- 1
- 15%
- 2021
- a
- capace
- Chi siamo
- a proposito
- sopra
- Assoluta
- accesso
- conti
- il raggiungimento
- atti
- presenti
- effettivamente
- aggiungere
- aggiunto
- aggiuntivo
- Avanzate
- influenzare
- impaurito
- Dopo shavasana, sedersi in silenzio; saluti;
- Tutti
- consentire
- lungo
- già
- anche
- an
- ed
- in qualsiasi
- nulla
- ovunque
- apparire
- SONO
- AS
- At
- attacco
- attacchi
- autore
- auto
- Automatizzata
- automaticamente
- Automazione
- consapevole
- precedente
- BACKEND
- background-image
- Vasca
- BE
- è diventato
- perché
- stato
- prima
- dietro
- sotto
- ciecamente
- Bloccare
- poliziotto
- sistema
- entrambi
- Parte inferiore
- violazione
- Rompere
- del browser
- navigazione
- bug
- ma
- by
- detto
- è venuto
- Materiale
- funzionalità
- che
- attento
- cartone animato
- Custodie
- Causare
- ha causato
- cause
- centro
- certo
- catena
- carattere
- caratteri
- classico
- Cloud
- codice
- collaborazione
- colore
- Venire
- viene
- commento
- azienda
- completamento di una
- collegato
- consecutivo
- considerato
- costruire
- contenuto
- di controllo
- controllata
- convertire
- convertito
- SOCIETÀ
- Corrispondente
- potuto
- corso
- coprire
- creare
- creato
- Crooks
- Clienti
- Cybersecurity
- dati
- violazione di dati
- Banca Dati
- banche dati
- decide
- consegna
- Shirts Department
- rilevato
- rivelazione
- determinato
- Mercato
- DevOps
- diverso
- direttamente
- Dsiplay
- disturbare
- do
- effettua
- Dont
- scaricare
- download
- Cadere
- lancio
- soprannominato
- ogni
- Presto
- facile
- fine
- errore
- Anche
- EVER
- quotidiano
- esempio
- Esempi
- eseguire
- esecuzione
- esistente
- competenza
- Sfruttare
- esposto
- estensione
- esterno
- extra
- fatto
- familiare
- lontano
- capito
- Compila il
- File
- Trovare
- Nome
- seguire
- i seguenti
- Nel
- essere trovato
- TELAIO
- da
- anteriore
- Fine frontale
- banda
- Generale
- scopo generale
- generalmente
- generare
- generato
- la generazione di
- generatore
- ottenere
- dà
- Dare
- buono
- grande
- Gruppo
- ha avuto
- Manovrabilità
- Avere
- sentito
- altezza
- speranza
- librarsi
- Come
- Tutorial
- Tuttavia
- HTML
- http
- HTTPS
- Caccia
- if
- io
- in
- Compreso
- infame
- informazioni
- iniettare
- Ingressi
- invece
- Interfaccia
- interfacce
- interno
- Internet
- ai miglioramenti
- coinvolgere
- coinvolto
- Rilasciato
- IT
- SUO
- stessa
- ad appena
- solo uno
- conosciuto
- grandi
- larga scala
- Cognome
- dopo
- lanciare
- apprendimento
- a sinistra
- meno
- piace
- linea
- Linee
- Lista
- SEMBRA
- ricerca
- fatto
- make
- FA
- Fare
- il malware
- gestire
- gestito
- gestione
- molti
- Marzo
- Margine
- corrispondenza
- max-width
- Maggio..
- significare
- significato
- si intende
- Microsoft
- forza
- Scopri di più
- maggior parte
- Nome
- Detto
- nomi
- Bisogno
- esigenze
- Rete
- New
- recentemente
- notizie
- normale
- Niente
- adesso
- of
- MENO
- on
- una volta
- ONE
- esclusivamente
- or
- minimo
- Altro
- altrimenti
- nostro
- su
- risultati
- produzione
- proprio
- pagina
- parametro
- Ricambi
- Toppa
- Paul
- Forse
- persona
- Partner
- Platone
- Platone Data Intelligence
- PlatoneDati
- posizione
- possibile
- Post
- probabilmente
- processi
- Prodotti
- Programma
- Programmatore
- Progressi
- fornire
- fornisce
- pubblicato
- metti
- query
- citare
- gamma
- ransomware
- piuttosto
- Crudo
- Leggi
- Lettura
- veramente
- relazionato
- parente
- a distanza
- rispondere
- richiesta
- richiesto
- richieste
- risposta
- REST
- recensioni
- destra
- Correre
- running
- stesso
- dire
- dice
- scansione
- script
- Cerca
- ricerca
- Secondo
- sicuro
- vedere
- Vende
- inviare
- invio
- delicata
- inviato
- servizio
- Servizi
- Condividi
- compartecipazione
- Corti
- mostrare attraverso le sue creazioni
- mostrato
- semplicemente
- singolo
- So
- finora
- Software
- solido
- alcuni
- la nostra speciale
- specifico
- SQL
- sQL injection
- inizia a
- dichiarazione
- Tornare al suo account
- memorizzati
- Corda
- La struttura
- inviare
- presentata
- tale
- suggerisce
- fornire
- supply chain
- supportato
- sospettoso
- SVG
- sintassi
- sistema
- tavolo
- Fai
- team
- termine
- condizioni
- di
- che
- I
- loro
- Li
- poi
- Là.
- Strumenti Bowman per analizzare le seguenti finiture:
- di
- cose
- questo
- minaccia
- tre
- per tutto
- tempo
- a
- top
- trasferimento
- trasferimenti
- transizione
- trasparente
- trattare
- innescato
- TURNO
- Turned
- seconda
- fino a quando
- up-to-date
- URL
- uso
- utilizzato
- Utente
- Interfaccia utente
- utilizzando
- generalmente
- versione
- via
- Visita
- vulnerabilità
- Prima
- Modo..
- we
- sito web
- browser web
- web server
- Web-basata
- settimana
- WELL
- sono stati
- Che
- quando
- se
- quale
- OMS
- tutto
- perché
- volere
- con
- senza
- parole
- Lavora
- allenarsi
- flusso di lavoro
- l'automazione del flusso di lavoro
- lavoro
- preoccupato
- sarebbe
- Tu
- Trasferimento da aeroporto a Sharm
- te stesso
- zefiro