Secondo la definizione OWASP, un “attacco XML External Entity” è una tiplogia di attacco contro un’applicazione che analizza l’input XML. Questo attacco si verifica quando l’input XML contenente un riferimento a un’entità esterna viene elaborato da un parser XML configurato in modo debole. A conclusione di questo attacco è possibile accedere alla visualizzazione di dati riservati, effettuare attacchi DOS e DDOS per cercare di “negare” un ben determinato servizio, effettuare spoofing di richieste lato server ed altri impatti sul sistema.

Tramite attacchi di tipo XXE è possibile targettizzare applicazioni molto conosciute come ad esempio Facebook e PayPal, quindi è necessario prestare molta attenzione anche nel momento in cui come utenti andiamo ad utilizzare questo tipo di App.

Esempi di attacco XXE

Sono stati scoperti numerosi problemi pubblici XXE, incluso l’attacco ai dispositivi incorporati. XXE si può verificare in molti posti imprevisti, comprese le dipendenze profondamente nidificate. Il modo più semplice per portare a termine un attacco XXE è quello di caricare un file XML dannoso, se accettato:

attacco xxe

Esempio 1: L’attaccante cerca di estrarre informazioni dal Server

          <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE foo [
          <!ELEMENT foo ANY >
          <!ENTITY xxe SYSTEM "file:///etc/passwd" >]> <foo>&xxe;</foo>

Esempio 2 : L’attaccante verifica la rete privata del server modificando la riga ENTITY precedente in

          <!ENTITY xxe SYSTEM "https://192.168.1.1/private" >]>

Esempio 3: L’attaccante tenta di portare a termine un attacco DOS includendo un file senza termine

          <!ENTITY xxe SYSTEM "file:///dev/random" >]>

Come prevenire un attacco XXE

La formazione in ambito Security degli sviluppatori è essenziale per identificare e mitigare XXE. Oltre a ciò, la prevenzione di un attacco XXE richiede:

– Quando possibile, utilizzare formati di dati meno complessi come JSON ed evitare la serializzazione dei dati sensibili.

– Applicare le patch di sicurezza ed aggiornare tutti i processori e le librerie XML in uso dall’applicazione o nel sistema operativo sottostante, usando strumenti di controllo delle dipendenze.

– Aggiornare SOAP a SOAP 1.2 o superiore.

– Disabilitare l’entità esterna XML e l’elaborazione DTD in tutti i parser XML nell’applicazione, come da Best Practices OWASP “XXE Prevention”.

– Implementare la convalida, il filtro o la sanificazione dell’input lato server utilizzando delle tecniche di “whitelisting”, al fine di evitare possibile codice malevole all’interno di documenti, intestazioni o nodi XML.

– Verificare che la funzionalità di caricamento di file XML o XSL convalidi l’XML in ingresso utilizzando la convalida XSD o simile.

attacco xxe xml entity

Conclusioni relative ad attacchi XXE

Come abbiamo visto un attacco di tipo XXE potrebbe avere conseguenze molto gravi qualora venissero ignorate le relative contromisure. Alcuni strumenti come: Web Application Firewalls (WAF), oppure i cosiddetti IAST (acronimo di Interactive Application Security Testing) potrebbero essere utili per fare un corretto monitoraggio e relativo blocco rispetto agli attacchi XXE.

Apri la chat
1
Possiamo aiutarti?
Ciao 👋
Possiamo aiutarti?