Che cos’è OWASP?
L’Open Web Application Security Project (OWASP) è un’organizzazione senza scopo di lucro fondata nel 2001, con l’obiettivo di aiutare i proprietari di siti web e gli esperti di sicurezza a proteggere le applicazioni web dagli attacchi informatici. OWASP ha 32.000 volontari in tutto il mondo che eseguono valutazioni e ricerche sulla sicurezza.,
Tra le pubblicazioni chiave di OWASP ci sono l’OWASP Top 10, discusso più dettagliatamente di seguito; l’OWASP Software Assurance Maturity Model (SAMM), la Guida allo sviluppo OWASP, la guida ai test OWASP e la Guida alla revisione del codice OWASP.
OWASP Top 10
OWASP Top 10 è un documento ampiamente accettato che dà la priorità ai più importanti rischi per la sicurezza che interessano le applicazioni web., Anche se ci sono molti più di dieci rischi per la sicurezza, l’idea alla base del OWASP Top 10 è quello di rendere i professionisti della sicurezza acutamente consapevoli di almeno i rischi per la sicurezza più critici, e imparare a difendersi contro di loro.
OWASP valuta periodicamente importanti tipi di attacchi informatici in base a quattro criteri: facilità di sfruttabilità, prevalenza, rilevabilità e impatto aziendale e seleziona i primi 10 attacchi. L’OWASP Top 10 è stato pubblicato per la prima volta nel 2003 e da allora è stato aggiornato nel 2004, 2007, 2010, 2013 e 2017.,
Comprendere e prevenire gli attacchi OWASP comuni
Di seguito sono riportate le informazioni fornite dalla fondazione OWASP su cinque importanti attacchi di applicazioni Web che di solito si collocano nella metà superiore della Top 10 OWASP, come si manifestano e come è possibile proteggere la propria organizzazione contro di loro. Esempi di codice sono tratti dalle linee guida OWASP Top 10.
Injection
Una vulnerabilità injection in un’applicazione Web consente agli aggressori di inviare dati ostili a un interprete, causando la compilazione e l’esecuzione di tali dati sul server. Una forma comune di iniezione è SQL injection.,3844d3c3″>
Esempi di Attacchi a Iniezione
Un’applicazione utilizza i dati non attendibili quando la costruzione di un vulnerabili chiamata SQL:
String query = "SELECT * FROM accounts WHERE custID='" + request.getParameter("id") + "'";
Un’applicazione che si fida di un quadro senza la sanificazione di ingresso, in questo caso, Hibernate Query Language (HQL):
Query HQLQuery = session.createQuery("FROM accounts WHERE custID='" + request.getParameter("id") + "'");
L’attaccante modifica l’id parametro nei loro browser per inviare il codice., Ad esempio:
http://example.com/app/accountView?id=' or '1'='1
In questo modo le query restituiscono tutti i record dalla tabella account e possono essere utilizzate per eseguire altre azioni dannose sul server.
Prevenire gli attacchi di iniezione
- Utilizzare un’API sicura che evita completamente l’uso dell’interprete
- Utilizzare la convalida dell’input lato server positiva o “whitelist”
- Escape caratteri speciali
- Utilizzare LIMIT e altri controlli SQL all’interno delle query per impedire la divulgazione di massa dei record in caso di SQL injection.,entication
Un’applicazione web con rotta o debole di autenticazione può essere facilmente rilevato da aggressori ed è vulnerabile a forza bruta/attacchi a dizionario e la gestione della sessione attacchi
Sfruttabilità: Alta Prevalenza: Medio Individuabilità: Medio Impatto: Alta Esempi di rotture di Autenticazione Attacchi
- Credenziali ripieno━gli aggressori utilizzano elenchi di conoscere le password e provare in sequenza per ottenere l’accesso., Senza la protezione automatica delle minacce o del credential stuffing, l’applicazione viene utilizzata dagli aggressori come meccanismo di convalida per qualsiasi password tentata.
- Attacchi basati su password: le applicazioni Web che si basano solo sulle password hanno meccanismi di autenticazione intrinsecamente deboli, anche se le password hanno requisiti di complessità e vengono ruotate. Le organizzazioni dovrebbero passare all’autenticazione a più fattori.,
Mitigare l’autenticazione non funzionante
- Implementare l’autenticazione a più fattori
- Non distribuire sistemi con credenziali predefinite
- Controllare un elenco delle 10.000 password peggiori
- Utilizzare le linee guida in NIST 800-63 B sezione 5.1.,1 per i segreti memorizzati
- Indurire tutti i processi relativi all’autenticazione come la registrazione e il recupero delle credenziali
- Limitare o ritardare i tentativi di accesso falliti
- Utilizzare un sicuro, built-in, server-side session manager
Esposizione ai dati sensibili
I dati sensibili sono in genere la risorsa più Gli aggressori possono accedervi rubando chiavi crittografiche, conducendo attacchi” man in the middle ” (MITM) o rubando dati in chiaro che possono occasionalmente essere memorizzati su server o browser degli utenti.,
Sfruttabilità: Medio Prevalenza: Alta Individuabilità: Medio Impatto: Alta Esempi di Dati Sensibili Esposizione
- Non TLS━se un sito web non fa uso di SSL/TLS per tutte le pagine, un utente malintenzionato in grado di monitorare il traffico, il downgrade connessioni da HTTPS a HTTP e rubare i cookie di sessione.
- Hash non salati h il database delle password di un’applicazione Web può utilizzare hash non salati o semplici per memorizzare le password., Se un utente malintenzionato ottiene l’accesso al database, può facilmente decifrare gli hash, ad esempio utilizzando le GPU e ottenere l’accesso.
Mitigazione dell’esposizione ai dati sensibili
- Identificare i dati sensibili e applicare controlli di sicurezza appropriati.
- Non memorizzare i dati sensibili a meno che non sia assolutamente necessario-scartare i dati sensibili, utilizzare la tokenizzazione o il troncamento.
- Crittografare tutti i dati sensibili a riposo utilizzando algoritmi di crittografia forti, protocolli e chiavi.
- Crittografare i dati in transito utilizzando protocolli sicuri come TLS e HTTP HSTS.
- Disabilita la memorizzazione nella cache dei dati sensibili.,
- Memorizza le password usando funzioni di hashing forti e salate come Argon2, scrypt e bcrypt.
XML External Entities (XXE)
Se un’applicazione Web utilizza un componente vulnerabile che elabora XML, gli aggressori possono caricare XML o includere contenuti ostili, comandi o codice all’interno di un documento XML.,2ba97df6″>
Un utente malintenzionato può ottenere informazioni su una rete privata, modificando l’ENTITÀ riga:
Attenuanti XXE Attacchi
- Utilizzare più semplice formati di dati come JSON e di evitare la serializzazione
- Patch o un aggiornamento di tutti i processori XML e librerie
- Disattiva XML entità esterna e per l’elaborazione DTD
- Implementare la whitelist e sanificazione lato server, XML di input
- Convalida XML utilizzando XSD o simili convalida
- Utilizzare SAST strumenti per rilevare XXE nel codice sorgente, con la revisione manuale se possibile
A5., Controllo di accesso interrotto
Controllo di accesso interrotto significa che gli aggressori possono accedere agli account utente e agire come utenti o amministratori e che gli utenti regolari possono ottenere funzioni privilegiate non intenzionali. Forti meccanismi di accesso assicurano che ogni ruolo abbia privilegi chiari e isolati.,ld forti meccanismi di controllo di accesso e riutilizzo attraverso l’applicazione
- Applicare la proprietà dei record━non consentire agli utenti di creare, leggere o cancellare qualsiasi record
- Applicare l’utilizzo e limiti di velocità
- Disabilitare il server di directory elenco e non memorizza i metadati o i file di backup nella cartella root
- Log accessi falliti e avvisare l’admin
- limite di velocità API e controller di accesso
- Convalida JWT token dopo il logout
Altri OWASP Top 10 Attacchi
- Protezione Errata━configurato correttamente i controlli di sicurezza sono un punto di accesso comune per gli attaccanti., Ad esempio, un database distribuito con una password di amministratore predefinita.
- Cross-Site Scripting (XSS) attackers gli aggressori utilizzano XSS per sfruttare i punti deboli nella gestione delle sessioni ed eseguire codice dannoso sui browser degli utenti.
- Deserializzazione insicura des la deserializzazione è una tecnica complessa, ma se eseguita correttamente, consente agli aggressori di eseguire codice dannoso su un server.
- Utilizzo di componenti con vulnerabilità note-la maggior parte delle applicazioni Web si basa pesantemente su componenti open-source, e questi possono includere vulnerabilità note che gli aggressori possono sfruttare per ottenere l’accesso o causare danni.,
- Registrazione e monitoraggio insufficienti attackers gli aggressori si affidano alla mancanza di monitoraggio e risposta tempestiva per avere successo con qualsiasi altro vettore di attacco.
Scopri come Imperva Web Application Firewall può aiutarti con gli attacchi OWASP Top 10.
Imperva Application Security
Il Web Application Firewall (WAF) leader del settore di Imperva offre una protezione robusta contro gli attacchi OWASP Top 10 e altre minacce alle applicazioni Web. Imperva offre due opzioni di distribuzione WAF:
- Cloud WAF—consente il traffico legittimo e previene il traffico errato., Proteggi le tue applicazioni all’avanguardia con un WAF cloud di classe enterprise.
- Gateway WAF-mantieni al sicuro le applicazioni e le API all’interno della tua rete con Imperva Gateway WAF.
Oltre a WAF, Imperva fornisce una protezione a più livelli per assicurarsi che siti web e applicazioni siano disponibili, facilmente accessibili e sicuri. La soluzione Imperva Application Security include:
- Protezione DDoS-mantenere l’uptime in tutte le situazioni. Impedisci a qualsiasi tipo di attacco DDoS, di qualsiasi dimensione, di impedire l’accesso al tuo sito web e all’infrastruttura di rete.,
- CDN-migliora le prestazioni del sito web e riduci i costi di larghezza di banda con una CDN progettata per gli sviluppatori. Cache risorse statiche all’edge, accelerando le API e i siti Web dinamici.
- Gestione bot-analizza il traffico bot per individuare le anomalie, identifica cattivo comportamento bot e lo convalida tramite meccanismi di sfida che non influenzano il traffico degli utenti.
- API security: protegge le API garantendo che solo il traffico desiderato possa accedere al tuo endpoint API, oltre a rilevare e bloccare gli exploit delle vulnerabilità.,
- Account takeover protection-utilizza un processo di rilevamento intent-based per identificare e difende contro i tentativi di prendere in consegna gli account degli utenti per scopi dannosi.
- RASP-mantenere le applicazioni al sicuro dall’interno contro gli attacchi noti e zero-day. Protezione veloce e precisa senza firma o modalità di apprendimento.
- Analisi degli attacchi: mitigare e rispondere alle minacce alla sicurezza reali in modo efficiente e accurato con informazioni utili su tutti i livelli di difesa.