OWASP I 10 principali rischi per la sicurezza | Panoramica

Sommario

OWASP Top 10 Panoramica

Che cos'è OWASP?

OWASP è un'organizzazione senza scopo di lucro dedicata alla formazione sulla sicurezza delle app Web. 

I materiali didattici OWASP sono accessibili sul loro sito web. I loro strumenti sono utili per migliorare la sicurezza delle applicazioni web. Ciò include documenti, strumenti, video e forum.

OWASP Top 10 è un elenco che evidenzia i principali problemi di sicurezza per le app Web oggi. Raccomandano a tutte le aziende di includere questo rapporto nei loro processi per ridurre i rischi per la sicurezza. Di seguito è riportato un elenco dei rischi per la sicurezza inclusi nel report OWASP Top 10 2017.

SQL Injection

L'iniezione SQL si verifica quando un utente malintenzionato invia dati inappropriati a un'app Web per interrompere il programma nell'applicazione.

Un esempio di SQL Injection:

L'attaccante potrebbe inserire una query SQL in un modulo di input che richiede un nome utente in chiaro. Se il modulo di input non è protetto, comporterà l'esecuzione di una query SQL. Questo è riferito come SQL injection.

Per proteggere le applicazioni Web dall'inserimento di codice, assicurati che i tuoi sviluppatori utilizzino la convalida dell'input sui dati inviati dagli utenti. La convalida qui si riferisce al rifiuto di input non validi. Un gestore di database può anche impostare controlli per ridurre la quantità di informazioni che può essere divulgato in un attacco di iniezione.

Per impedire l'iniezione SQL, OWASP consiglia di mantenere i dati separati da comandi e query. L'opzione preferibile è usare un secure API per impedire l'uso di un interprete o per migrare a Object Relational Mapping Tools (ORM).

Autenticazione non funzionante

Le vulnerabilità dell'autenticazione possono consentire a un utente malintenzionato di accedere agli account utente e compromettere un sistema utilizzando un account amministratore. Un criminale informatico può utilizzare uno script per provare migliaia di combinazioni di password su un sistema per vedere quale funziona. Una volta che il criminale informatico è entrato, può falsificare l'identità dell'utente, dandogli accesso a informazioni riservate.

Esiste una vulnerabilità di autenticazione interrotta nelle applicazioni Web che consentono accessi automatici. Un modo popolare per correggere la vulnerabilità dell'autenticazione è l'uso dell'autenticazione a più fattori. Inoltre, un limite di velocità di accesso potrebbe essere incluso nell'app Web per prevenire attacchi di forza bruta.

Esposizione dati sensibili

Se le applicazioni Web non proteggono, gli aggressori sensibili possono accedervi e utilizzarle a proprio vantaggio. Un attacco sul percorso è un metodo popolare per rubare informazioni sensibili. Il rischio di esposizione può essere minimo quando tutti i dati sensibili sono crittografati. Gli sviluppatori Web dovrebbero garantire che nessun dato sensibile venga esposto nel browser o archiviato inutilmente.

Entità esterne XML (XEE)

Un criminale informatico può essere in grado di caricare o includere contenuto, comandi o codice XML dannosi all'interno di un documento XML. Ciò consente loro di visualizzare i file sul file system del server delle applicazioni. Una volta che hanno accesso, possono interagire con il server per eseguire attacchi SSRF (server-side request forgery)..

Gli attacchi di entità esterne XML possono essere impedito da consentendo alle applicazioni Web di accettare tipi di dati meno complessi come JSON. La disabilitazione dell'elaborazione di entità esterne XML riduce anche le possibilità di un attacco XEE.

Controllo degli accessi interrotti

Il controllo degli accessi è un protocollo di sistema che limita gli utenti non autorizzati alle informazioni riservate. Se un sistema di controllo degli accessi viene violato, gli aggressori possono aggirare l'autenticazione. Ciò consente loro di accedere a informazioni sensibili come se disponessero dell'autorizzazione. Il controllo degli accessi può essere protetto implementando token di autorizzazione all'accesso dell'utente. Ad ogni richiesta effettuata da un utente mentre è autenticato, viene verificato il token di autorizzazione con l'utente, segnalando che l'utente è autorizzato a effettuare tale richiesta.

Configurazione errata della sicurezza

La configurazione errata della sicurezza è un problema comune che sicurezza informatica specialisti osservano nelle applicazioni web. Ciò si verifica a causa di intestazioni HTTP configurate in modo errato, controlli di accesso interrotti e visualizzazione di errori che espongono informazioni in un'app Web. È possibile correggere un errore di configurazione della sicurezza rimuovendo le funzionalità inutilizzate. Dovresti anche correggere o aggiornare i tuoi pacchetti software.

Cross-Site Scripting (XSS)

La vulnerabilità XSS si verifica quando un utente malintenzionato manipola l'API DOM di un sito Web attendibile per eseguire codice dannoso nel browser di un utente. L'esecuzione di questo codice dannoso si verifica spesso quando un utente fa clic su un collegamento che sembra provenire da un sito Web attendibile. Se il sito Web non è protetto dalla vulnerabilità XSS, può farlo essere compromesso. Il codice dannoso che viene eseguito consente a un utente malintenzionato di accedere alla sessione di accesso degli utenti, ai dettagli della carta di credito e ad altri dati sensibili.

Per prevenire Cross-site Scripting (XSS), assicurati che il tuo codice HTML sia ben ripulito. Questo può essere raggiunto da scegliendo framework affidabili a seconda della lingua scelta. Puoi usare linguaggi come .Net, Ruby on Rails e React JS poiché ti aiuteranno ad analizzare e pulire il tuo codice HTML. Trattare tutti i dati di utenti autenticati o non autenticati come non attendibili può ridurre il rischio di attacchi XSS.

Deserializzazione insicura

La deserializzazione è la trasformazione dei dati serializzati da un server a un oggetto. La deserializzazione dei dati è un evento comune nello sviluppo del software. Non è sicuro quando data è deserializzato da una fonte non attendibile. Questo può potenzialmente esporre la tua applicazione agli attacchi. La deserializzazione non sicura si verifica quando i dati deserializzati provenienti da una fonte non attendibile portano ad attacchi DDOS, attacchi di esecuzione di codice in modalità remota o bypass dell'autenticazione.

Per evitare la deserializzazione insicura, la regola pratica è di non fidarsi mai dei dati degli utenti. Tutti i dati di input dell'utente dovrebbero essere trattati as potenzialmente maligno. Evita la deserializzazione dei dati da fonti non attendibili. Assicurarsi che la funzione di deserializzazione to essere utilizzato nella tua applicazione web è al sicuro.

Utilizzo di componenti con vulnerabilità note

Librerie e framework hanno reso molto più veloce lo sviluppo di applicazioni Web senza dover reinventare la ruota. Ciò riduce la ridondanza nella valutazione del codice. Consentono agli sviluppatori di concentrarsi su aspetti più importanti delle applicazioni. Se gli aggressori scoprono exploit in questi framework, ogni base di codice che utilizza il framework lo farebbe essere compromesso.

Gli sviluppatori di componenti offrono spesso patch di sicurezza e aggiornamenti per le librerie di componenti. Per evitare le vulnerabilità dei componenti, dovresti imparare a mantenere aggiornate le tue applicazioni con le patch e gli aggiornamenti di sicurezza più recenti. I componenti inutilizzati dovrebbero essere rimosso dall'applicazione per tagliare i vettori di attacco.

Registrazione e monitoraggio insufficienti

La registrazione e il monitoraggio sono importanti per mostrare le attività nella tua applicazione web. La registrazione semplifica la tracciabilità degli errori, monitore accessi utente e attività.

La registrazione e il monitoraggio insufficienti si verificano quando gli eventi critici per la sicurezza non vengono registrati propriamente. Gli aggressori traggono vantaggio da questo per eseguire attacchi alla tua applicazione prima che ci sia una risposta evidente.

La registrazione può aiutare la tua azienda a risparmiare tempo e denaro perché i tuoi sviluppatori possono farlo facilmente trova bug. Ciò consente loro di concentrarsi maggiormente sulla risoluzione dei bug piuttosto che sulla loro ricerca. In effetti, la registrazione può aiutare a mantenere i tuoi siti e server attivi e funzionanti ogni volta senza che subiscano tempi di inattività.

Conclusione

Il buon codice non lo è ad appena per quanto riguarda la funzionalità, si tratta di proteggere gli utenti e l'applicazione. OWASP Top 10 è un elenco dei rischi per la sicurezza delle applicazioni più critici è un'ottima risorsa gratuita per gli sviluppatori per scrivere app Web e mobili sicure. Formare gli sviluppatori del tuo team per valutare e registrare i rischi può far risparmiare tempo e denaro al tuo team a lungo termine. Se vuoi scopri di più su come formare la tua squadra nella OWASP Top 10 clicca qui.