OWASP Top 10 - 2017
Sta per essere formalmente rilasciato (20/11/2017) il nuovo rapporto sulla classifica dei primi 10 problemi di sicurezza delle applicazioni web edita da OWASP, una Fondazione FOSS emanazione di una community che si occupa di sicurezza, al fine di promuovere una filosofia pratica di Security by Design, ossia di inserimento di pratiche di sicurezza pro-attivamente fin dalle prime fasi di sviluppo di un progetto. (...)
Riportiamo l'elenco dei 10 problemi di sicurezza mettendo in evidenza in particolare la parte di "pratica" di cui ogni proprietario di applicativi web, come siti web e blog, e-commerce, e-learning, etc dovrebbe preoccuparsi.
A1. Injection: si verifica quando un attaccante può inviare dati ostili a un interprete, ossia un software che prende questi dati e li "esegue". Per questo motivo è bene preoccuparsi che i form di un sito web siano gestiti in modo tale da validare e/o codificare i caratteri speciali inviati e, per finire, di porre un sistema di limitazione dell'invio automatico dei form.
A2. Broken Authentication: tentativo di bypassare le procedure di conferma dell'identità dell'utente, dell'autenticazione e gestione delle sessioni di navigazione. Per bloccare questo tentativo si può scegliere se attivare procedure di registrazione al sito -non sempre sono necessarie- se gestire la registrazione al sito con meccanismo non automatico, utilizzare password non facilmente indovinabili con attacchi automatici e utilizzare componenti per la gestione degli accessi al sito che bloccano l'utente dopo un numero specifico di tentativi falliti di invio del form. Se si utilizza il computer da una postazione "non ad accesso riservato" effettuare sempre il logout alla fine di una sessione.
A3. Sensitive Data Exposure: quando i dati transitano da e verso il sito o applicativo web in chiaro -posta, ftp, http, etc- questi possono essere intercettati e utilizzati in seguito dall'attaccante. Preferire sempre ove possibile le connessioni crittate quindi protocollo https, smtp su ssl, sftp, etc in modo che i dati transitino in maniera non utilizzabile da un attaccante. Il protocollo crittato deve essere disponibile sul server e deve essere configurato il client -browser, programma di posta, FTP, etc- per l'uso.
A4. XML External Entities (XXE): se applicazioni e servizi Web basati su XML possono caricare file XML possono essere attaccate includendo contenuti ostili in un documento XML, sfruttando codice vulnerabile, dipendenze o integrazioni. Come norma generale se un'applicativo web deve accettare xml questi dovrebbero sempre provenire da "trusted" user, e possibilmente validati prima di essere utilizzati.
A5. Broken Access Control: alterate restrizioni su ciò che gli utenti autenticati sono autorizzati a fare. Se gli utenti possono agire al di fuori dei loro ambiti previsti, questo comporta accesso, modifica, distruzione o divulgazioni di informazioni non autorizzate, o autorizzate in contesti/utenti differenti. Se il proprio applicativo prevede aree riservate utilizzare un componente che gestisce le ACL -liste di controllo di accesso- in modo da poter confinare ogni singolo ruolo/utente nell'ambito in cui ha accesso al minimo di permessi per eseguire i propri compiti.
A6. Security Misconfiguration: configurazioni errate possono portare a problemi di sicurezza per questo è bene utilizzare una piattaforma minima senza caratteristiche, componenti, documentazione non necessaria, rimuovendo o non installando funzionalità ed estensioni non utilizzati. Prevedere un processo di revisione sistematica e periodica di ciò che è installato e configurato sull'applicativo previene problemi di sicurezza di questo tipo.
A7. Cross-Site Scripting (XSS): esistono tre forme di XSS, che attaccano i browser degli utenti che possono causare il furto di credenziali, sessioni o il trasferimento di malware, etc. inoltre ci sono strumenti automatici che sono in grado di rilevare e sfruttare tutte e tre le forme di XSS. Anche in questo caso, ridurre al minimo la superficie di attacco, installando solo ciò che è effettivamente necessario, utilizzare componenti software che implementano misure di sicurezza anti XSS.
A8. Insecure Deserialization: la serializzazione di codici utilizzata per la gestione di servizi che utilizzano identificativi di sessione -forum, e-commerce, e-learning, etc- come cookies e tokens possono essere fonte di attacco. Come indicazione generale rimuovere tutto ciò che non serve dal sistema ed utilizzare solo componenti che effettuano un controllo dalla fonte di provenienza dei codici di serializzazione.
A9. Using Components with Known Vulnerabilities: l'uso consapevole o meno, direttamente o indirettamente, di software di cui sono note vulnerabilità di sicurezza espone a vari possibili attacchi. E' necessario mettere in atto un piano per il monitoraggio, smistamento e applicazione di aggiornamenti o modifiche alla configurazione per tutta la durata d'uso dell'applicazione, ossia finché questa è raggiungibile online, indipendentemente da se ancora in uso attivo.
A10. Insufficient Logging & Monitoring: gli attacchi iniziano di solito con un sondaggio sulle vulnerabilità degli applicativi e in mancanza di monitoraggio e risposta tempestiva gli attaccanti hanno tempo di effettuare i propositi dell'attacco ma anche di scoprire altri potenziali punti di attacco.
Investire tempo ed energie, anche economiche, per la sicurezza a volte sembra superfluo, "chi può avere interesse ad attaccare proprio il mio sito?" ma la realtà che in questi ultimi anni è emersa dice tutt'altro. Oggi, differentemente da ciò che accadeva nel passato, spesso non è più un attaccante umano, motivato a cercare una breccia negli applicativi web di grandi e interessanti Enti, ma sono dei bot -software automatici- che scansionano la rete alla ricerca di software di cui sono note le vulnerabilità e poi sfruttate -exploited- spesso automaticamente. Come ogni software che si rispetti oggi giorno, anche i bot sono diventati molto performanti e "intelligenti", vale la pena quindi di prendere tutte le dovute precauzioni, in maniera sistematica e preventiva. Dopo tutto, come la sicurezza perimetrale di una costruzione abitativa viene oggi considerata la normalità, allo stesso modo pratiche di selezione, controllo e verifica di ciò che mettiamo online deve essere parte della nostra quotidianità.