Diventa Autore per CoreTech | Scopri di più
13/07/21 CoreTech Blog
Il termine esposizione di dati sensibili significa consentire a parti non autorizzate di accedere a informazioni sensibili memorizzate o trasmesse come numeri di carta di credito o password. La maggior parte delle principali violazioni della sicurezza in tutto il mondo comporta una sorta di esposizione dei dati sensibili.
Sfruttare un vettore di attacco come una vulnerabilità web è solo il primo passo che l'aggressore compie. Ulteriori passaggi di solito comportano uno dei tre obiettivi: furto di informazioni sensibili, installazione di software dannoso (ad esempio, per attaccare altri obiettivi o consentire il controllo/spionaggio permanente) o l'escalation verso altri sistemi (dove questa scelta si ripete). Ovviamente, rubare informazioni sensibili come i dati della carta di credito è l'obiettivo più redditizio per l'attaccante e la maggior parte degli attacchi informatici è guidata dal denaro, quindi l'esposizione dei dati sensibili è l'obiettivo di attacco più comune.
Proprio come è possibile creare software con quasi nessuna vulnerabilità, è anche possibile creare software che impedisca all'attaccante di accedere a informazioni sensibili. L'esposizione di dati sensibili è causata da una cattiva progettazione o implementazione di sistemi informatici e software, nonché da un'errata configurazione di tali sistemi e software.
Quando crei un'applicazione web, devi definire chiaramente quali dati consideri sensibili. Mentre alcuni esempi sono ovvi, come numeri di carta di credito, credenziali di autenticazione o cartelle cliniche, altri potrebbero non sembrare così semplici. Anche se un'informazione deve essere visualizzata sullo schermo dall'applicazione, può comunque essere considerata sensibile durante il trasporto e l'archiviazione.
Qualsiasi tipo di dati che possono essere considerati dati personali o dati privati dovrebbe essere considerato sensibile. Ciò significa anche dati come nome e cognome, data di nascita o persino un indirizzo e-mail. I criminali cercano tali dati perché possono correlare le informazioni personali rubate da altre fonti per creare profili per il furto di identità.
Anche tutti i dati relativi ai dati finanziari dovrebbero essere considerati sensibili e questo non significa solo numeri di carta di credito. Ad esempio, anche i numeri di conto bancario, sia interno che IBAN, dovrebbero essere considerati sensibili così come gli eventuali importi delle transazioni.
A seconda del settore in cui opera la tua azienda, alcuni dati potrebbero non solo essere considerati sensibili, ma anche coperti dalle normative di conformità. Assicurati che tutti i dati siano protetti, sia in transito che in deposito, altrimenti perderai la tua conformità.
La maggior parte dei siti Web e delle applicazioni Web oggigiorno sono accessibili tramite connessioni SSL/TLS sicure. Molti arrivano al punto di imporre tali connessioni utilizzando HTTP strict transport security (HSTS). Di conseguenza, molti progettisti di applicazioni Web pensano che sia sicuro trasmettere informazioni sensibili tra il client e il server utilizzando testo in chiaro.
Questa mentalità è la causa principale dell'esposizione di dati sensibili in transito. Sfortunatamente, nonostante il fatto che SSL/TLS fornisca un alto grado di protezione, ci sono casi in cui è possibile un attacco man-in-the-middle (MITM) sul traffico di rete. Se l'attaccante riesce in qualche modo ad accedere ai dati trasmessi tra l'applicazione web e l'utente, e questi dati includono, ad esempio, numeri di carta di credito o password in chiaro, l'attacco finisce nell'esposizione di dati sensibili.
Pertanto, il modo migliore per proteggere la tua applicazione web dall'esposizione di dati sensibili è non trasmettere mai dati sensibili utilizzando testo in chiaro e utilizzare sempre algoritmi crittografici per proteggerli. Si noti che questi non dovrebbero essere algoritmi crittografici deboli perché l'attaccante potrebbe archiviare i dati intercettati e successivamente tentare di violare la crittografia utilizzando potenti GPU.
Conservare i dati sensibili in modo sicuro è importante quanto trasmetterli in modo sicuro, se non di più. Se un utente malintenzionato sfrutta una vulnerabilità e ottiene l'accesso al tuo sito Web o applicazione Web, ad esempio utilizzando un'iniezione SQL, potrebbe essere in grado di accedere al contenuto dell'intero database. Se nel database vengono archiviate informazioni sensibili senza crittografia, è una perdita garantita.
Quando si archiviano informazioni sensibili, l'utilizzo di algoritmi di crittografia rinomati, sicuri e potenti è ancora più importante che in caso di transito. Un algoritmo debole consentirà all'attaccante di eseguire rapidamente attacchi di forza bruta sui dati crittografati rubati e di decodificare le informazioni originali.
Oltre alla crittografia avanzata del database, alcuni tipi di dati sensibili richiedono una protezione aggiuntiva. Ad esempio, le password crittografate o con hash utilizzando anche gli algoritmi più potenti possono essere facilmente violate se la password stessa è una password debole. Pertanto, evitare le vulnerabilità comuni delle password è importante quanto la crittografia o l'hashing.
È scioccante vedere quante aziende e istituzioni dimenticano che la posta elettronica non è un canale sicuro e che i dati sensibili non dovrebbero mai essere trasmessi utilizzando questo mezzo. Le connessioni e-mail tra il client e il server possono essere crittografate, ma le connessioni tra i server vengono generalmente eseguite utilizzando testo normale. Anche il corpo dell'e-mail non è crittografato. E il destinatario dell'e-mail non ha alcun controllo sulla sicurezza con cui il contenuto della sua e-mail viene archiviato o se viene effettivamente distrutto quando l'e-mail viene eliminata lato client.
Se la tua applicazione web invia e-mail, non dovresti mai inviare dati sensibili nelle e-mail e, invece, utilizzare l'applicazione web stessa per presentare o accettare informazioni sensibili. Ad esempio, non dovresti mai inviare una nuova password tramite e-mail e mostrarla invece per l'utente su una pagina web. Inoltre, un'istituzione non dovrebbe mai inviare dati personali e sensibili in chiaro tramite e-mail, che è, purtroppo, il modo in cui lo fanno molte istituzioni governative in molti paesi.
I dati sensibili sono considerati sufficientemente importanti da OWASP (Open Web Application Security Project) da includerli nella Top 10 di OWASP come categoria separata. Nell'edizione 2017, questa categoria è stata considerata il terzo difetto comune più importante. Riteniamo inoltre che nella prossima OWASP Top 10 del 2021 questa categoria non farà che aumentare di importanza. Pertanto, dovresti prestare molta attenzione a proteggere le tue informazioni sensibili ed evitare l'esposizione di dati sensibili.
Proteggere i tuoi dati sensibili è davvero semplice se utilizzi algoritmi crittografici in transito e in memoria insieme a eventuali misure collaterali come, ad esempio, una corretta gestione delle chiavi (in modo che le tue chiavi siano sicure quanto i dati stessi). In alcuni casi, non è nemmeno necessario trasmettere o archiviare dati crittografati, è possibile utilizzare algoritmi di hash. L'hashing delle password è il modo più efficiente per assicurarsi che le password non vengano mai rubate, sia in transito che in memoria.