Tipi comuni di vulnerabilità della sicurezza e modi per risolverli
Pubblicato: 2022-07-11Una vulnerabilità nell'Exchange Server di Microsoft ha contribuito a un'ampia serie di attacchi informatici che hanno colpito oltre 60.000 aziende private negli Stati Uniti. E solo un mese prima, una società aerospaziale, Bombardier, aveva violato i dati dei suoi dipendenti e fornitori a causa di debolezze nella sua app di trasferimento file di terze parti.
Esistono molti tipi di vulnerabilità della sicurezza che possono mettere il tuo sistema IT nel radar degli hacker. Da pratiche di codifica scadenti a componenti esterni difettosi, non importa quale sia il motivo, molte aziende finiscono per essere scoperte. Per mitigare questo problema, le aziende traggono vantaggio dal controllo qualità e dai servizi di test per valutare il proprio software e le proprie reti e valutare i rischi per la sicurezza dei componenti di fornitori esterni.
Quindi, quali tipi di vulnerabilità della sicurezza potrebbero esporre il tuo sistema a minacce informatiche in questo preciso momento? Come si manifestano le vulnerabilità? E come possiamo mitigarli?
Che cos'è una vulnerabilità del software e da dove ha origine?
Una vulnerabilità di sicurezza è una caratteristica non intenzionale di un sistema o di un componente che amplifica il rischio di intrusione o perdita di dati, a causa di esposizione accidentale, attacco intenzionale o conflitto con nuovi componenti. Tale vulnerabilità può essere un difetto di progettazione, un bug di implementazione, una configurazione errata, ecc.
Prima di procedere ulteriormente, chiariamo la differenza tra una vulnerabilità, un exploit e una minaccia.
- Esiste una vulnerabilità nel sistema senza alcuno sforzo da parte di estranei
- Un exploit è il modo in cui gli intrusi utilizzano una debolezza del sistema esistente per sferrare un attacco
- Una minaccia è l'incidente reale quando uno o più exploit utilizzano una vulnerabilità per penetrare in un sistema
Gli esperti di sicurezza possono eliminare le vulnerabilità al momento della scoperta utilizzando patch software, sostituzione hardware e riconfigurazione del sistema. Anche la formazione degli utenti finali sulle pratiche di sicurezza e l'aggiornamento di tutti i componenti impediranno e ridurranno al minimo le vulnerabilità. Inoltre, i team di sicurezza devono tenere presente che man mano che i sistemi si evolvono, compaiono nuovi punti deboli. Pertanto, le aziende devono scansionare sistematicamente software, hardware e reti alla ricerca di vulnerabilità emergenti e risolverle prima che vengano scoperte e sfruttate.
Nuove vulnerabilità di sicurezza continuano a emergere rapidamente, poiché il National Vulnerability Database (NVD) del governo degli Stati Uniti ha pubblicato oltre 8.000 nuove voci nel primo trimestre del 2022. Con questo ritmo rapido, molte aziende non riescono a tenere il passo e lasciano aperte debolezze per anni, esponendo le loro sistemi. Uno studio sulle vulnerabilità del software ha rivelato che il 75% degli attacchi lanciati nel 2020 sfruttava esposizioni che avevano almeno due anni, mentre il 18% faceva affidamento su punti deboli segnalati nel 2013!
In che modo le vulnerabilità della sicurezza entrano nel software e nelle reti?
Secondo una ricerca, il 75% delle applicazioni sviluppate dai fornitori di software non è conforme agli standard OWASP (Open Web Application Security Project) Top 10. Questi standard sono disponibili pubblicamente. Allora, perché così tanti continuano a non riuscire a produrre un'applicazione sicura? Ecco i motivi principali:
Codice vulnerabile di terze parti e altri componenti. È una pratica comune riutilizzare componenti di terze parti, poiché ciò accelera notevolmente il processo di sviluppo. Tuttavia, gli utenti tendono a prendere alla leggera la sicurezza di queste parti e spesso le distribuiscono senza una valutazione approfondita. Lo stesso vale per copiare e incollare codice da sorgenti, come Stack Overflow, senza valutarne la sicurezza.
Pratiche di codifica insicure. Studi recenti mostrano che la sicurezza non è nemmeno sul radar per la maggior parte degli sviluppatori. In un esperimento che ha esplorato l'atteggiamento di 1.200 sviluppatori, i ricercatori hanno concluso che solo il 14% considera la sicurezza una priorità durante la scrittura del codice. Inoltre, tieni presente che molte organizzazioni richiedono ai loro sviluppatori di produrre codice rapidamente in tempi stretti, il che semplicemente non lascia spazio a una valutazione approfondita della sicurezza e provoca vulnerabilità del codice.
Panorama in rapida evoluzione degli attacchi informatici. Gli aggressori scoprono costantemente nuovi modi per violare la sicurezza delle applicazioni. Quindi, le parti che prima erano considerate immuni possono diventare vulnerabili oggi. Se il team IT non valuta sistematicamente le vulnerabilità delle applicazioni e delle reti e non mantiene aggiornato tutto il software, è solo questione di tempo prima che inizino a emergere le debolezze.
Classificazione dei tipi di vulnerabilità di sicurezza
Esistono due piattaforme, OWASP e CWE, che offrono un elenco di vulnerabilità di sicurezza affidabile e dettagliato. Aggiornano i loro elenchi per includere eventuali debolezze emergenti. Entrambe le risorse possono essere utilizzate per istruire programmatori, tester e ingegneri.
OWASP è una comunità globale senza scopo di lucro e pubblica regolarmente l'elenco delle 10 principali vulnerabilità del software OWASP. Common Weakness Enumeration (CWE) è una composizione di vulnerabilità software e hardware sviluppate anche da una comunità dedicata e include 25 voci.
Ecco 18 delle vulnerabilità di sicurezza più importanti che vogliamo evidenziare in questo articolo, ordinate per dominio. Questi possono manifestarsi in qualsiasi sistema IT, come il cloud, le configurazioni basate su IoT e le app mobili.
1. Mancanza di solide pratiche di crittografia
Anche se la crittografia non fermerebbe un attacco informatico, è essenziale garantire che i dati sensibili rimangano al sicuro anche in caso di violazione della sua piattaforma di archiviazione. Gli aggressori non possono abusare dei dati crittografati finché non li decodificano, il che dà all'azienda violata il tempo di adottare le misure necessarie, come informare le parti interessate e preparare contromisure per il furto di identità.
La ricerca mostra che molte aziende non hanno in programma di crittografare i dati su chiavette USB, laptop e desktop. E parlando di normative sulla protezione dei dati, il GDPR non richiede esplicitamente la crittografia, ma la descrive come "misure tecniche e organizzative adeguate" per la sicurezza dei dati.
Nel suo rapporto Cost of a Data Breach, IBM ha sottolineato che la crittografia è uno dei fattori più impattanti in grado di ridurre il costo medio delle violazioni dei dati.
2. Esposizione di dati sensibili
I dati possono essere esposti a causa di un errore umano quando un dipendente negligente li carica su un database pubblico o su un sito web. Ma questo tipo di vulnerabilità della sicurezza può essere supportato anche da processi interni che consentono effettivamente a un dipendente non autorizzato di accedere e manipolare dati sensibili.
Egress, una società di sicurezza informatica, ha condotto un sondaggio da cui è emerso che l'83% delle organizzazioni statunitensi ha esposto accidentalmente dati sensibili tramite e-mail, condivisione di file, software di collaborazione e app di messaggistica.
3. Protezione insufficiente dello strato di trasporto
Questo tipo di vulnerabilità riguarda lo scambio di informazioni tra il client e l'applicazione server. Tali informazioni possono contenere dati sensibili, comprese le credenziali dell'utente e gli estremi della carta di credito. Quando il trasporto dei dati non è protetto, la comunicazione può essere intercettata e gli aggressori possono accedere ai dati e decifrare la crittografia se vengono utilizzati algoritmi deboli.
4. Componenti di sistema configurati in modo errato e interazioni rischiose
La configurazione errata dei componenti e delle interazioni tra di essi è un altro problema di sicurezza che incontriamo spesso. Ad esempio, durante la configurazione di un sistema IT, l'amministratore dimentica di ignorare le impostazioni predefinite del produttore e disabilitare gli elenchi di directory, lasciando il sistema esposto. Un altro esempio è dimenticare di limitare l'accesso ai dispositivi esterni.
Parlando di interazioni, è consigliabile che le applicazioni adottino un approccio zero-trust e considerino ogni input come rischioso prima che venga verificato e dimostrato legittimo. Ciò consentirà di evitare attacchi, come il cross-site scripting, in cui gli aggressori infondono un'applicazione con dati non attendibili.
Questo aspetto è particolarmente rilevante per le soluzioni basate su cloud. Una ricerca ha riportato che configurazioni errate del server hanno contribuito a 200 violazioni del cloud in due anni. Un altro studio mostra che circa il 70% delle violazioni della sicurezza del cloud inizia con un'architettura difettosa. Ad esempio, un bucket di archiviazione AWS configurato in modo errato ha esposto 750.000 domande di certificati di nascita negli Stati Uniti nel 2019.
5. Controllo lato server debole
Questo tipo di vulnerabilità della sicurezza rappresenta tutto ciò che può andare storto sul lato server, dall'autenticazione scadente alle configurazioni errate della sicurezza che consentono attacchi, come la falsificazione di richieste tra siti in cui il browser di un utente invia azioni non autorizzate al server all'insaputa dell'utente.
Ad esempio, un'errata configurazione in un server di database può far sì che i dati diventino accessibili tramite una ricerca web di base. E se contiene credenziali di amministratore, gli intrusi possono accedere al resto del sistema.
6. Esecuzione del codice a distanza
Ciò significa che le vulnerabilità della sicurezza del software presentate dal tuo sistema consentono agli intrusi di eseguire codice dannoso su Internet sui tuoi dispositivi. Ad esempio, quando un dipendente fa clic su un collegamento e-mail su un sito Web di terze parti, l'hacker dietro questa configurazione inietta malware nel computer della vittima e da lì assume il controllo. L'estraneo può accedere a dati sensibili o bloccare la macchina e chiedere un riscatto.
7. Vulnerabilità note basate sul sistema operativo
Ogni sistema operativo ha il suo elenco di vulnerabilità del software. Alcuni elenchi sono pubblicati online affinché tutti possano vederli. Ad esempio, ecco l'elenco dei 10 principali punti deboli del sistema operativo Windows 10, ed ecco l'elenco corrispondente per OS X. Spetta ai team di sicurezza esaminare questi punti e affrontarli per ridurre al minimo le aperture per gli attacchi.
8. Esecuzione di script senza controllo antivirus
Questo è un tipo di vulnerabilità di sicurezza comune presente in alcuni browser web. Ad esempio, Safari consente di eseguire script "fidati" senza l'autorizzazione esplicita dell'utente. Gli hacker tendono a sfruttare questa debolezza tentando di eseguire un codice dannoso che può essere confuso con uno script "sicuro". Fortunatamente, è spesso possibile disabilitare questa "funzione".
9. Credenziali deboli
Gli intrusi possono ottenere l'accesso forzando le credenziali degli utenti. Ciò è particolarmente facile quando la sola password “123456” viene utilizzata da oltre 23 milioni di persone. Questo si aggiunge alle password, come "admin", "password" e "qwerty", anch'esse comuni e piuttosto facili da hackerare.
Questo tipo di vulnerabilità del software è considerato creato dall'uomo, ma le aziende possono implementare misure che costringerebbero i dipendenti a scegliere opzioni più efficaci e a modificare le proprie credenziali abbastanza spesso. Questo è fondamentale, dato il ruolo svolto dalle credenziali deboli nella sicurezza del sistema. Le statistiche mostrano che l'80% delle violazioni della sicurezza è stato consentito da password deboli e che il 61% degli utenti tende a utilizzare una frase di sicurezza per più servizi.
10. Utilizzo di componenti con vulnerabilità note
La distribuzione di componenti di terze parti, come librerie, API, set di dati e framework, può ridurre significativamente lo sforzo necessario per avere il sistema attivo e funzionante. Ma può anche introdurre vulnerabilità. È importante rimanere diligenti e valutare questi componenti per assicurarsi che non lascino aperte backdoor per accedere a dati sensibili.
Anche il download e l'utilizzo di immagini di terze parti potrebbe essere pericoloso. Nel 2021, 30 immagini Docker Hub con un volume di download di 20 milioni sono state distribuite per diffondere malware di criptovalute.
11. Design insicuro
Questo è un tipo di vulnerabilità di sicurezza relativamente nuovo apparso su OWASP nel 2021. L'organizzazione richiede modelli di progettazione sicuri, modellazione delle minacce e architettura di riferimento per eliminare i punti deboli sin dall'inizio.
La progettazione sicura è una metodologia che valuta costantemente le minacce e garantisce la robustezza del codice. Incoraggia test sistematici contro metodi di attacco noti. Considera la sicurezza come una parte essenziale dello sviluppo del software, non come un componente aggiuntivo o una caratteristica utile.
12. Bug di sicurezza nelle API
Le API (Application Programming Interface) consentono ai componenti software di interagire tra loro, che è una parte essenziale di un sistema IT. Tuttavia, le API con misure di sicurezza deboli possono aprire molteplici scappatoie, come l'autenticazione interrotta e consentire l'iniezione di codice e altre pratiche dannose.
Ad esempio, un'API costruita in modo sconsiderato, che fa affidamento sul lato client per filtrare le informazioni prima di presentarle agli utenti, può esporre i dati, rendendoli disponibili. I dati sensibili devono essere filtrati sul lato server. Ecco un altro esempio di questo tipo di vulnerabilità della sicurezza: se un'API non limita il numero di richieste in entrata, può aprire l'opportunità per attacchi Denial of Services (DoS).
Ecco l'elenco OWASP delle 10 principali vulnerabilità di sicurezza relative alle API da prendere in considerazione. Le API non sicure hanno aperto la porta a molti attacchi negli ultimi anni. Un esempio famigerato viene da LinkedIn, poiché un attore malintenzionato ha utilizzato l'API senza autenticazione della piattaforma per scaricare i dati di 700 milioni di utenti. Utilizzando una simile violazione dell'API, un intruso ha recuperato informazioni su 1,3 milioni di utenti di Clubhouse e le ha pubblicate su un forum di hacker.
13. Autenticazione inadeguata
Le misure di autenticazione deboli consentono agli hacker di sfruttare l'opzione "password dimenticata" per ripristinare gli account o avviare un attacco di acquisizione dell'account. Aiuta l'intruso quando la domanda di autenticazione è qualcosa come la data di nascita o il nome dell'animale domestico dell'utente, poiché si tratta di informazioni pubblicamente disponibili grazie ai social media. Seguire un processo di autenticazione a più fattori aumenterà la sicurezza. Purtroppo, la ricerca mostra che solo il 26% delle aziende statunitensi utilizza questo metodo di autenticazione forte.
14. Monitoraggio e registri insufficienti
I registri memorizzano i dati su eventi di sistema, attività di rete e azioni dell'utente. Monitorando i log, i team di sicurezza possono osservare tutte le attività che hanno avuto luogo di recente e identificare eventi sospetti. Se i registri non vengono esaminati sistematicamente, si crea una lacuna di informazioni in cui le vulnerabilità del software e le attività dannose non vengono rilevate.
15. Privilegi di superutente
Meno dati può accedere un utente, meno danni può causare il suo account se compromesso. Tuttavia, alcune aziende concedono ancora per negligenza i privilegi di superutente a destra ea sinistra e non riescono a limitare l'accesso dei dipendenti a ciò di cui hanno bisogno per svolgere i loro compiti quotidiani. Se un intruso si impossessa di un account a livello di amministratore, può disabilitare il software antivirus e il firewall, installare app dannose, assumere la proprietà dei file, ecc.
Secondo una ricerca, il 74% delle violazioni dei dati inizia con l'abuso di credenziali privilegiate.
16. Software obsoleto
La maggior parte delle aziende si rende conto che un aggiornamento software tempestivo è la chiave per un sistema sicuro. Tuttavia, sembra che solo pochi seguano effettivamente questa pratica. Cybernews riporta un recente studio che indaga sulla frequenza degli aggiornamenti software. Questa ricerca è stata condotta per un periodo di 18 mesi e ha scoperto che il 95% dei siti Web esaminati funziona effettivamente con software obsoleto con vulnerabilità note. Il team di ricerca ha anche scoperto che un prodotto software medio è in genere indietro di quattro anni rispetto all'ultima patch.
Inoltre, Kaspersky ha stabilito che le aziende che eseguono software obsoleto rischiano di sostenere il 47% in più di costi in caso di violazione.
Per fare un esempio, la catena di hotel Marriott aveva 500 milioni di record di dati compromessi in una violazione della sicurezza causata da un software senza patch.
17. Vulnerabilità nel codice sorgente
Le vulnerabilità del codice si insinuano durante lo sviluppo del software. Ad esempio, un programma potrebbe trasmettere dati sensibili senza crittografia o utilizzare una stringa randomizzata, che in realtà non è casuale. Tali errori vengono spesso rilevati durante la fase di test del software.
Secondo un recente sondaggio Secure Code Warrior, l'86% degli sviluppatori partecipanti ha ammesso di non considerare la sicurezza delle applicazioni come una priorità assoluta durante la scrittura di un codice, con il 36% che lo attribuisce a scadenze ravvicinate. Il sondaggio ha anche rivelato che il 33% degli intervistati non capisce nemmeno cosa renda vulnerabile il proprio codice.

18. Iniezione SQL
Questo tipo di vulnerabilità della sicurezza è rilevante per i siti Web e le applicazioni basati su SQL (Structured Query Language). Consente all'attaccante di alterare le istruzioni SQL fornite dall'utente e ingannare l'interprete per eseguire comandi non intenzionali e concedere l'accesso al database. In questo modo, gli intrusi possono manipolare i dati sensibili sostituendo/cancellando/modificando i campi sensibili.
Questa è una vulnerabilità piuttosto vecchia che ha rappresentato oltre il 65% degli attacchi alle app software già nel 2019.
Tipi di vulnerabilità della sicurezza specifici del sistema e come prevenire queste vulnerabilità del software
Dopo aver evidenziato le vulnerabilità di sicurezza comuni, passiamo ai punti deboli specifici dell'applicazione e del sistema e scopriamo come proteggerli da essi.
La nuvola
Esiste un elenco completo di possibili tipi di vulnerabilità della sicurezza nel cloud, indipendentemente dal fatto che si tratti di Azure, AWS, GCP o di qualsiasi altro provider di servizi cloud. Il nostro esperto di cloud, Alexey Zhadov, divide queste vulnerabilità per livelli e fornisce suggerimenti su come prevenirle.
Vulnerabilità a livello di sistema
Qualunque sia il servizio cloud su cui è in esecuzione il tuo software, c'è sempre un sistema operativo sotto il cofano. Anche se puoi accedere solo a un pannello di controllo per la tua risorsa. Ogni sistema operativo ha i suoi "buchi" e "backdoor". Gli sviluppatori di sistemi operativi cercano costantemente questi punti deboli, cercando di coprire le basi. Ecco perché è importante mantenere aggiornato il software ed essere in contatto con gli ultimi sviluppi nel campo della sicurezza informatica su problemi noti.
Vulnerabilità a livello di rete
Ogni risorsa cloud è in esecuzione su una rete cloud. E con questo arriva la possibilità di connettersi alla risorsa esternamente. Il team di sicurezza deve garantire che la configurazione di rete sia adeguata. Non aprire mai porte che non prevedi di implementare, utilizza la whitelist degli IP che conosci e delle reti che dovrebbero connettersi alla tua soluzione. Prestare attenzione all'apertura di una connessione diretta alle porte RDP/SSH da qualsiasi luogo diverso da IP noti.
Vulnerabilità del livello di configurazione
Il cloud deve essere opportunamente configurato in base alle esigenze e agli obiettivi dell'utente e tale configurazione deve essere sempre mantenuta aggiornata. Impostare politiche e procedure di gestione della configurazione e monitorare eventuali attività sospette.
Vulnerabilità del fattore umano
Non dimenticare gli utenti finali e gli amministratori che hanno accesso alla soluzione cloud. Il dirottamento dell'account è uno dei punti deboli più comuni in qualsiasi sistema IT. Se un intruso ottiene l'accesso alle credenziali dell'account di qualcuno, può entrare e manipolare liberamente il sistema nell'ambito dei diritti dell'account e nessuno lo fermerà fino a quando non riceverà una notifica dall'utente violato. Di seguito è riportato l'elenco dei tipi più comuni di vulnerabilità di sicurezza nelle applicazioni cloud:
- Reti e firewall configurati in modo errato
- Archiviazione cloud non configurata correttamente
- API non sicure
- Scarsa gestione degli accessi
- Dirottamento dell'account
- Insider malevoli
- Vulnerabilità del sistema
- Vulnerabilità della locazione condivisa
- Mancanza di autenticazione a più fattori per utenti e dispositivi che desiderano accedere alla rete
Alexey consiglia alcune semplici regole che le aziende possono implementare per proteggere i propri sistemi cloud:
- Mantieni aggiornati i sistemi operativi
- Proteggi le tue reti
- Usa i bastion server per accedere al tuo perimetro chiuso
- Configura i gruppi di sicurezza di rete e gli elenchi di controllo di accesso
- Limita l'accesso alle porte non necessarie
- Configurare il monitoraggio e la registrazione quando possibile
- Implementare il controllo dell'accesso a più fattori per tutti gli utenti
- Usa firewall e protezione DDoS
- Usa gli strumenti cloud per verificare la conformità agli standard di sicurezza, ad esempio il Centro sicurezza di Azure
Applicazioni web
Alexey si è anche occupato dei problemi di sicurezza del software che perseguitano le applicazioni web. Sfruttando queste vulnerabilità, gli aggressori possono causare gravi danni all'applicazione e all'organizzazione nel suo insieme. Di seguito sono riportati gli attacchi alle app Web più comuni risultanti dalle vulnerabilità della sicurezza delle app Web:
- SQL Injection
- Cross Site Scripting
- Attraversamento del sentiero
- Esecuzione di comandi a distanza
Se i criminali informatici lanciano questi attacchi con successo, possono piantare malware, compromettere gli account utente, accedere a informazioni riservate e altro ancora. Quindi, come testare il software per le vulnerabilità? Alexey consiglia di condurre test di sicurezza delle applicazioni web per valutare i seguenti parametri:
- Convalida dell'ingresso. In che modo l'applicazione può elaborare l'input e può individuare e bloccare eventuali voci dannose?
- Configurazione del server. Utilizza un metodo di crittografia forte?
- Gestione dell'autenticazione. Quali tipi di autorizzazione vengono applicati? Gli utenti possono optare per password deboli?
- Opzioni di autorizzazione. L'app può proteggersi dall'escalation dei privilegi?
- Logica di business. Gli utenti possono inserire dati non validi? Possono saltare i passaggi di autenticazione? È possibile che gli utenti danneggino l'integrità dell'app e dei suoi dati?
Applicazioni mobili
Quando si parla di sicurezza delle app mobili, non possiamo ignorare i tipi di vulnerabilità della sicurezza presentati dal dispositivo stesso oltre all'applicazione. Alexey Zhadov, il nostro esperto di cloud e dispositivi mobili, ha anche condiviso problemi comuni che interessano le app mobili:
- Controllo lato server debole
- Archiviazione dati non sicura
- Protezione insufficiente dello strato di trasporto
- Fuga di dati involontaria
- Scarsa autorizzazione e autenticazione
- Crittografia scadente
- Iniezione lato client
- Input non attendibili
- Gestione impropria della sessione
- Mancanza di protezione binaria
- Utilizzo improprio del sistema operativo
- Traffico non sicuro e chiamate API
- Dispositivi di manomissione del codice e jailbreak
- Registrazione e monitoraggio inadeguati
- Errori di configurazione della sicurezza
Per proteggere le applicazioni mobili, Alexey consiglia alcune semplici pratiche che le aziende possono implementare nella progettazione e manutenzione delle app:
Valutazione del codice open source: la maggior parte delle applicazioni mobili utilizza librerie di terze parti open source disponibili per tutti. Ciò semplifica il processo di sviluppo, ma apre anche backdoor a potenziali intrusi. Pertanto, è obbligatorio testare rigorosamente il codice di terze parti per le vulnerabilità della sicurezza del software prima di incorporarlo nell'app.
Pratiche di crittografia avanzata: crittografare e decrittografare i dati durante il trasferimento. Con una forte tecnica di crittografia dei dati, i dati dell'applicazione, come il codice sorgente, le informazioni sull'utente e le credenziali di accesso, lo spazio di archiviazione dell'app sarà protetto. Una volta crittografati i dati, gli hacker non saranno in grado di interpretarli anche se accedono al contenuto originale.
Certificato di firma del codice: gli sviluppatori possono firmare le applicazioni mobili per proteggerle dagli attacchi informatici e ottenere la fiducia degli utenti. Tale firma garantisce che il codice non sia stato interpretato o alterato dopo la firma dell'app. Il team di sicurezza può trovare diverse opzioni di certificati di firma del codice con cartellini di prezzo modesti. Questa pratica è sia conveniente che affidabile.
Protezione della cache dei dati: i dati memorizzati nella cache contengono informazioni recuperate dall'app per consentire una riapertura più rapida per migliorare le prestazioni dell'app. La cache dei dati viene generalmente archiviata senza ulteriori misure di sicurezza sul dispositivo dell'utente. È una pratica più sicura generare una password e bloccare l'applicazione. Inoltre, Alexey consiglia di cancellare frequentemente i dati memorizzati nella cache e di accedere utilizzando una connessione di rete sicura.
Archiviazione sicura dei dati: ogni applicazione contiene dati che gli intrusi possono utilizzare in modo improprio. Include le informazioni degli utenti e dello sviluppatore di app. Pertanto, è essenziale archiviare questi dati in modo sicuro in un cloud storage protetto, invece di fare affidamento su unità di archiviazione locali.
Tecniche di autenticazione e autorizzazione: è essenziale impostare l'autenticazione a più fattori per prevenire il furto di dati. Include ID utente, password, PIN, OTP, ecc. L'autorizzazione deve sempre avvenire lato server per verificare ruoli e autorizzazioni degli utenti autenticati.
Cancellazione dei dati e blocco del dispositivo: questa funzione viene utilizzata principalmente in applicazioni contenenti dati riservati, come informazioni personali, finanziarie, sanitarie, ecc. È un livello di sicurezza in cui i dati remoti vengono cancellati dopo diversi tentativi di accesso non riusciti da parte dell'utente e il l'applicazione viene bloccata automaticamente. Vieta inoltre agli utenti di scegliere un numero sequenziale per le proprie password invece di lettere maiuscole, caratteri speciali, alfabeti, numeri, ecc.
Contrattazione del reverse engineering: gli hacker utilizzano il reverse engineering per manomettere la funzionalità dell'applicazione. Accedendo al codice sorgente dell'app, gli hacker possono aggirare il processo di autenticazione, falsificare la propria posizione e rubare i dati. L'applicazione della sicurezza del runtime è fondamentale per contrastare il reverse engineering. Impedisce agli intrusi di modificare le funzioni interne di un'app modificandone la struttura del codice per influire sul comportamento dell'applicazione.
Soluzioni IoT
Ciò che rende le soluzioni IoT uniche dal punto di vista della sicurezza è che le capacità di ogni dispositivo sono limitate dai requisiti di utilizzo. Non c'è spazio per implementare funzionalità di sicurezza fantasiose che consumano capacità aggiuntiva, memoria o energia, che rendono vulnerabili i dispositivi IoT.
Il nostro esperto di IoT, Yahor Paloika, evidenzia i seguenti tipi di vulnerabilità della sicurezza nei dispositivi connessi:
- Credenziali codificate. I dispositivi IoT sono dotati di password codificate che a volte gli amministratori dimenticano di modificare, offrendo agli hacker la possibilità di penetrare facilmente nel sistema utilizzando queste credenziali ben note.
- Reti non protette. Alcune reti non applicano l'autenticazione forte, consentendo agli intrusi di aggiungere dispositivi, riconfigurare l'impostazione per modificare il flusso di dati, intercettare i dati e iniettare i propri dati per imitare le letture dei sensori.
- Gestione degli aggiornamenti debole. Molti dispositivi IoT funzionano in modo indipendente e non fanno affidamento sull'interferenza umana per eseguire gli aggiornamenti. In questo caso, un sistema di gestione degli aggiornamenti è responsabile di assicurarsi che gli aggiornamenti automatici arrivino attraverso un canale crittografato, provengano da una fonte verificata e non siano danneggiati. Se un tale sistema è debole, consentirà agli intrusi di corrompere il software e il firmware aggiornati, modificando il comportamento del dispositivo.
- Moduli di codice obsoleti. Dimenticare di eliminare i moduli obsoleti che non vengono più utilizzati offre agli hacker abbastanza tempo per esplorare i problemi di sicurezza del software e trovare scappatoie per penetrare nel sistema. Tutti i moduli che non fanno parte della funzionalità dei dispositivi collegati devono essere rimossi.
- Protezione dati. Tutti i dati che circolano all'interno della rete IoT devono essere crittografati e solo gli utenti autorizzati possono accedervi.
L'hacking nei sistemi IoT può avere un effetto devastante. Ad esempio, in un esperimento, un team di ricercatori potrebbe penetrare nel software dei dispositivi IoT in Jeep Cherokee e inviare comandi dannosi attraverso il sistema di intrattenimento della Jeep. Hanno manomesso l'aria condizionata, abbassando la temperatura, hanno acceso i parabrezza e poi, con orrore del guidatore, hanno disattivato i freni. Per fortuna era solo un esperimento. Ecco alcuni suggerimenti che Yahor consiglia per proteggere i sistemi IoT:
- Utilizzare un protocollo crittografico esistente ad alta intensità di sicurezza, come Transport Layer Security (TLS), per supportare la comunicazione in una rete IoT e compensare la mancanza di sicurezza integrata
- Disporre di un moderno sottosistema integrato di gestione di chiavi e certificati, che fornisce il livello di crittografia e sicurezza richiesto. Inoltre, Yahor consiglia di aggiornare chiavi e certificati almeno una volta ogni sei mesi
- Metti in atto un affidabile sistema di gestione delle password per generare password complesse e modificarle sistematicamente
- Implementare un sistema di gestione degli aggiornamenti che consenta il passaggio degli aggiornamenti protetti solo da una fonte legittima, bloccando qualsiasi tentativo di forzare le modifiche danneggiate
Soluzioni di intelligenza artificiale
C'è un aspetto che differenzia sostanzialmente le soluzioni di intelligenza artificiale (AI) e machine learning (ML) dal resto dei sistemi menzionati in questo articolo: è il fatto che tali modelli sono spesso addestrati per fare previsioni e questo processo di formazione introduce diversi tipi di vulnerabilità della sicurezza. Il nostro esperto di intelligenza artificiale, Maksym Bochok, ha evidenziato i punti deboli più popolari:
- L'autore dell'attacco può manomettere il set di dati di addestramento e costringere il modello a imparare regole false e fare previsioni errate
- Gli ingegneri ML potrebbero optare per i modelli pre-addestrati esistenti che trovano online e questi modelli possono già essere dannosi. Ad esempio, potrebbero contenere il virus Trojan o altro malware.
- L'intruso può entrare in possesso dell'algoritmo stesso e regolare il codice, i pesi e altri parametri per modificare il comportamento del modello.
Inoltre, l'IA è spesso combinata con altre tecnologie, come l'IoT e il cloud, rendendola suscettibile ai tipi di vulnerabilità della sicurezza introdotti da tali sistemi.
Per proteggere i sistemi di intelligenza artificiale, il nostro esperto consiglia quanto segue:
- Quando si utilizzano modelli pre-addestrati e set di dati esterni, verificare che non contengano malware
- Verifica sistematicamente i tuoi algoritmi per l'output desiderato per assicurarti che nessuno abbia manomesso le regole di corrispondenza o introdotto pregiudizi, ecc.
- Monitorare le derive dei dati (modifiche nei dati di input)
- Rileva valori anomali, poiché gli intrusi possono inserire dati potenzialmente pericolosi per distorcere il modello all'output desiderato
- Cerca eventuali valori anomali nel set di dati di addestramento
- Utilizza strumenti generali di valutazione della sicurezza dell'IA, come Counterfit. Aiuterà a garantire che gli algoritmi siano affidabili e robusti.
- Approfitta degli strumenti di protezione dei dati esistenti e salvaguarda i dati riservati quando vengono archiviati e utilizzati. Un esempio è lo strumento Imperva che può fungere da firewall esterno.
In una nota finale
Se sei un'azienda di successo, ci sono buone probabilità che qualcuno stia tentando di penetrare nel tuo sistema per chiedere un riscatto o per causare danni alla reputazione. E poiché gli hacker sono costantemente alla ricerca di scappatoie da sfruttare, il tuo team IT sta lavorando per ridurre i rischi. Per assicurarti di vincere questa gara, consulta un'azienda esperta di sicurezza e test che ti aiuterà a valutare lo stato del tuo sistema e a fornire consigli su come migliorare.
E nel frattempo, per evitare che diversi tipi di vulnerabilità della sicurezza espongano le tue applicazioni, presta attenzione alla configurazione del tuo sistema, assicurati che tutto il tuo software sia aggiornato e istruisci i tuoi dipendenti su pratiche sicure.
Hai dei dubbi sulla sicurezza del tuo sistema esistente? O vuoi creare un'applicazione pensando alla sicurezza? Lascia una riga al team ITRex! I nostri esperti di sicurezza testeranno il tuo hardware e software per rilevare eventuali vulnerabilità e suggeriranno miglioramenti.
Pubblicato originariamente su https://itrexgroup.com il 6 luglio 2022.
