Diventa Autore per CoreTech | Scopri di più





Cosa è l'attacco BEAST

09/07/20 CoreTech Blog

BEAST è l'acronimo di Browser Exploit Against SSL / TLS . È un attacco contro le vulnerabilità della rete nei protocolli SSL TLS 1.0 e precedenti . L'attacco è stato eseguito per la prima volta nel 2011 dai ricercatori di sicurezza Thai Duong e Juliano Rizzo, ma la vulnerabilità teorica è stata scoperta nel 2002 da Phillip Rogaway.

Perché vogliamo parlare di una tecnica di attacco così vecchia? Secondo una ricerca condotta per il Rapporto sulle vulnerabilità delle applicazioni Web Acunetix 2020 , il 30,7% dei server Web sottoposti a scansione ha ancora abilitato TLS 1.0 vulnerabile, il che significa che sono sensibili all'attacco BEAST.

Ciò dimostra come la sicurezza IT sia ancora un grosso problema per le aziende e, indipendentemente dal numero di nuove funzionalità che migliorano la sicurezza, i vecchi attacchi rappresentano ancora un grave problema. Questa situazione si applica anche alle vulnerabilità SSL / TLS, tra cui BEAST, BREACH, POODLE o OpenSSL Heartbleed.

Come funziona l'attacco BEAST

Il protocollo TLS (Transport Layer Security) è il successore di Secure Sockets Layer (SSL). Entrambi sono protocolli crittografici che consentono di utilizzare diverse suite di crittografia per crittografare la comunicazione tra un browser Web e un server Web. Ciò rende impossibile per qualcuno ascoltare la comunicazione e rubare dati riservati.

Gli aggressori possono essere in grado di attingere alla conversazione tra un server Web e un browser Web utilizzando tecniche di attacco man-in-the-middle . In tal caso e in assenza di crittografia, hanno accesso a tutte le informazioni scambiate tra il server Web e il browser Web: password, numeri di carta di credito, ecc.

Tuttavia, anche la crittografia potrebbe avere i suoi punti deboli ed essere rotta. Questo è esattamente il caso dell'attacco BEAST. I ricercatori hanno scoperto che la crittografia TLS 1.0 (e precedenti) può essere interrotta rapidamente, dando all'aggressore l'opportunità di ascoltare la conversazione.

Banner

Se il tuo server supporta TLS 1.0, l'autore dell'attacco può far credere che questo è l'unico protocollo che il client può usare. Questo è chiamato un attacco di downgrade del protocollo. Quindi, l'attaccante può usare l'attacco BEAST per intercettare.

Dettagli tecnici di BEAST

Il protocollo TLS utilizza la crittografia simmetrica con i cifrari a blocchi. Crittografia simmetrica significa che è necessaria la stessa chiave per crittografare e decrittografare il messaggio. I cifrari a blocchi indicano che le informazioni sono crittografate in blocchi di dati a lunghezza fissa. Se non ci sono abbastanza dati per l'ultimo blocco, l'ultimo blocco viene riempito. Alcuni cifrari a blocchi popolari sono DES, 3DES e AES.

Se gli stessi dati e la stessa chiave fornivano sempre lo stesso contenuto crittografato, un utente malintenzionato potrebbe facilmente interrompere qualsiasi crittografia. Ecco perché TLS utilizza i vettori di inizializzazione. Ciò significa che la crittografia viene trasmessa utilizzando contenuto casuale. In questo modo, se si utilizzano gli stessi dati e la stessa chiave più volte, ogni volta che si ottiene un contenuto crittografato diverso.

Tuttavia, non sarebbe efficiente utilizzare dati casuali per eseguire il seeding di ogni blocco in un codice a blocchi. Ecco perché SSL / TLS utilizza anche il cipher block chaining (CBC). I blocchi sono concatenati tra loro usando un'operazione XOR logica. In pratica, ciò significa che il valore di ciascun blocco dipende dal valore del blocco precedente. Pertanto, un valore crittografato che rappresenta alcuni dati originali dipende dal blocco precedente di tali dati.

La tecnica d'attacco

Il principio di base della violazione dei codici è: tutto può essere infranto, dipende solo da quanto tempo ci vuole. Lo stesso principio si applica alle cifre SSL / TLS. Una buona cifra non è impossibile da rompere. È semplicemente impraticabile rompere - impossibile rompere in un ragionevole lasso di tempo usando le attuali risorse di calcolo.

L'attaccante potrebbe infrangere un codice a blocchi provando combinazioni diverse e vedendo se ottengono lo stesso risultato con lo stesso vettore di inizializzazione (che conoscono). Tuttavia, possono verificarlo solo per un intero blocco alla volta e un blocco può avere, ad esempio, 16 byte. Ciò significa che per verificare il blocco, l'attaccante dovrebbe testare 256 16 combinazioni (3.4028237e + 38) per ogni blocco.

L'attacco BEAST è molto più semplice: l'attaccante deve solo indovinare un singolo byte alla volta. Questo può essere fatto se l'attaccante è in grado di prevedere la maggior parte dei dati (ad esempio codice HTML) e necessita solo di un'informazione segreta, ad esempio una password. L'aggressore può quindi testare attentamente la crittografia, selezionando la giusta lunghezza dei dati, in modo che abbiano solo un byte di informazioni in un blocco che non conoscono. E quindi, possono testare il blocco solo per 256 combinazioni di questo byte. Quindi, ripetono il processo per il byte successivo, trovando presto l'intera password.

BEAST è un attacco pratico?

Un attacco BEAST non è facile da eseguire. L'attaccante deve utilizzare un exploit diverso per diventare un man-in-the-middle e iniettare contenuto nel flusso. I ricercatori che hanno scoperto questa vulnerabilità hanno utilizzato un'applet Java ma anche un utente malintenzionato può utilizzare JavaScript. Anche se l'attaccante induce l'utente a eseguire codice Java o JavaScript vulnerabile, l'applicazione Web è protetta per impostazione predefinita utilizzando la stessa politica di origine e ciò rende impossibile l'iniezione (a meno che l'applicazione Web non abbia intestazioni CORS sul lato server che sovrascrivono la politica predefinita).

La difficoltà dell'attacco è il motivo per cui questa vulnerabilità viene raramente sfruttata, nonostante un terzo dei siti Web supporti ancora il protocollo TLS 1.0 vulnerabile (secondo le nostre statistiche). Tuttavia, è possibile e quindi dovresti proteggerti da esso.

Come scoprire se il tuo server Web è vulnerabile a BEAST

Scoprire se il tuo server web è vulnerabile a BEAST è molto semplice. Se supporta TLS 1.0 o qualsiasi versione di SSL, è vulnerabile a BEAST.

Puoi facilmente scoprire se il tuo server Web supporta TLS 1.0 o qualsiasi versione di SSL utilizzando Acunetix o manualmente. Il vantaggio di usare Acunetix è: troverai anche tutte le tue vulnerabilità web che altri strumenti non scopriranno. E qual è il punto di riparare solo una vulnerabilità e nemmeno di conoscere gli altri, che può essere altrettanto pericoloso?

BEAST mostra la principale differenza tra le vulnerabilità del web e le vulnerabilità della rete: le vulnerabilità della rete sono molto facili da rilevare anche utilizzando strumenti gratuiti e l'unico modo per eliminarle è aggiornare il software o l'hardware interessati. Le vulnerabilità del web devono essere rilevate da software specializzato come Acunetix e possono essere eliminate correggendo il codice dell'applicazione.

Come risolvere la vulnerabilità BEAST

Inizialmente, la crittografia RC4 era consigliata per mitigare gli attacchi BEAST (poiché si tratta di un codice di flusso, non di un codice a blocchi). Tuttavia, in seguito RC4 è risultato non sicuro. Attualmente, PCI DSS (Payment Card Industry Data Security Standard) vieta l'utilizzo di questo codice. Pertanto, non dovresti mai usare questo metodo per proteggerti da BEAST.

Banner

Proprio come con le altre vulnerabilità della rete, esiste solo una semplice soluzione a BEAST: disattivare TLS 1.0 e protocolli precedenti. Ecco come è possibile farlo per il software server web più popolare. Ciò che consigliamo è anche disabilitare TLS versione 1.1 e lasciare in esecuzione solo TLS 1.2 (tutti i principali browser come Google Chrome, Firefox e Safari supportano TLS 1.2).

Server Web Apache

Modificare lo SSLProtocol direttiva nel ssl.conf file, che in genere si trova in /etc/httpd/conf.d/ssl.conf. Ad esempio, se hai:

SSLProtocol all -SSLv3

cambiarlo in:

SSLProtocol TLSv1.2

Quindi, riavvia httpd .

Nginx

Modifica la direttiva ssl_protocols nel file nginx.conf . Ad esempio, se hai:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

cambiarlo in:

ssl_protocols TLSv1.2;

Quindi, riavvia nginx.

Microsoft IIS

Per disabilitare TLS 1.0 in Microsoft IIS, è necessario modificare le impostazioni del registro nel sistema operativo Microsoft Windows.

  1. Apri l'editor del registro
  2. Trova la chiave HKLM SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols \ TLS 1.0 \ Server
  3. Modificare il valore DWORD della voce Abilitatosu 0.
  4. Creare una voce DisabledByDefaulte modificare il valore DWORD su 1.

Ripetere i passaggi precedenti per tutte le versioni di SSL e TLS 1.1 (se si desidera seguire la nostra raccomandazione e anche disabilitarla).


Articoli su Acunetix

Trovare le vulnerabilità dei siti web prima degli HackerL'importanza della convalida delle correzioni: lezioni da GoogleSDLC agile e sicuro - Best practiceIn che misura le aziende gestiscono la sicurezza delle applicazioni Web?Cross-Origin Resource Sharing (CORS) e intestazione Access-Control-Allow-OriginCosa sono i reindirizzamenti aperti?DevSecOps: come arrivarci da DevOpsIl bigino su SQL Injection per sviluppatoriSfruttare SSTI in ThymeleafSicurezza nginx: come proteggere la configurazione del serverRafforzamento del sistema Web in 5 semplici passaggiCos'è la sicurezza del sito Web - Come proteggere il tuo sito Web dall'hackingRapporto sulle vulnerabilità delle applicazioni Web Acunetix 2020Perché l'elenco delle directory è pericoloso?Cosa sono gli hack di Google?Cosa è l'attacco BEASTWeb Shells in Action - Rilevazione e prevenzione - parte 5Web Shells in Action - parte 4Mantenere le Web Shells sotto copertura - parte 3Introduzione alle web shell - parte 2: 101 Uso di PHPIntroduzione alle web shell - parte 1Debunking 5 miti sulla postura della sicurezza informaticaIniezioni di NoSQL e come evitarleConfigurazione passo passo di Acunetix con JenkinsCosa sono i riferimenti a oggetti diretti non sicuriAnche il più forte cade: un'iniezione SQL in Sophos XG FirewallAcunetix rilascia Business Logic RecorderCome recuperare un sito Web compromessoCome difendersi dagli hacker Black Hat durante la pandemia COVID-19Che cos'è l'inclusione remota dei file (RFI)?Apache Security - 10 consigli per un'installazione sicuraUn nuovo sguardo sugli attacchi correlati al proxy inversoVulnerabilità delle password comuni e come evitarleTutto quello che devi sapere sugli attacchi Man-in-the-MiddleChe cosa sono le iniezioni HTMLRed Teaming – 5 consigli su come farlo in modo sicuroTesta le tue competenze XSS utilizzando siti vulnerabiliPerché hacker malintenzionati hanno messo gli occhi sugli ospedaliPratiche di codifica sicura – I tre principi chiaveLa maledizione delle vecchie librerie JavaMutation XSS nella ricerca GoogleIgnorare SOP utilizzando la cache del browserCome e perché evitare reindirizzamenti e inoltri non convalidati?Dirottamento di sessione e altri attacchi di sessioneCome abbiamo trovato un altro XSS in Google con AcunetixChe cos'è un buffer overflowChe cos'è l'overflow di IntegerChe cos'è HSTS e perché dovrei usarlo?Che cosa è OS Command InjectionVulnerabilità delle entità esterne XML in Internet ExplorerCoreTech assicura protezione dei siti Web con AcunetixCoreTech distributore Acunetix a fianco dei partner per la CyberSecurityCyberSecurity applicativa, nuova opportunità per voi!