Quali sono le migliori pratiche / raccomandazioni / strategie per mitigare minacce / attacchi zero day da una prospettiva di sviluppo del software?
Quali sono le migliori pratiche / raccomandazioni / strategie per mitigare minacce / attacchi zero day da una prospettiva di sviluppo del software?
SDL olistico.
Per definizione, non puoi difenderti da un attacco specifico che non conosci prima.
Tuttavia, se hai implementato un ciclo di vita di sviluppo sicuro completo attraverso tutte le fasi, compresa la modellazione delle minacce appropriata, e attenui le minacce (non gli attacchi), allora dovresti essere relativamente ok
Il modo migliore per mitigare gli exploit zero day è di impedire agli scrittori di exploit zero day di scrivere exploit zero day.
Il modo migliore per impedire agli scrittori di exploit zero day di scrivere exploit zero day è di incoraggiarli a trovare altri modi per guadagnare denaro o guadagnare fama, il che richiederebbe la semplificazione e la profittabilità dell'estrazione dei dati, oltre a identificare il furto e il concetto di "hacking" è meno divertente.
Per rendere l'estrazione dei dati e identificare il furto meno facile / redditizio, dobbiamo in qualche modo cambiare il gioco, cioè sbarazzarci dei dati delle carte di pagamento e degli identificativi emessi dal governo, come i numeri di previdenza sociale. Potremmo dover cambiare il modo in cui usiamo nomi e numeri, soprattutto insieme.
Per rendere l'hacking meno divertente, dobbiamo renderlo noioso e inutile, magari rendendo un'attività più innovativa più entusiasmante dell'hacking, e in qualche modo rendere l'hacking meno emozionante, ad esempio, la tessitura subacquea del basket o la contabilità subacquea.
Se i metodi di cui sopra falliscono, forse sarebbe meglio scoraggiare l'uso criminale degli exploit zero day mediante la riabilitazione criminale, l'imprigionamento, le multe e altre forme di punizione. Tuttavia, al fine di esigere la punizione, in primo luogo dobbiamo catturare i criminali usando gli exploit zero day. Un uso pseudo-criminale di exploit zero day è "al di sopra della legge", proprio come lo spionaggio è a livello di nazione (es. Il personaggio immaginario James Bond ha una "licenza per uccidere" e ci sono forse alcuni hacker che hanno "licenze per usa gli exploit zero day ").
Supponendo che ciò non vada a buon fine, allora dobbiamo renderlo troppo costoso per gli scrittori zero-day per scrivere exploit zero day. Credo che questa sia la strategia che Microsoft ha adottato per quanto riguarda alcuni dei loro prodotti. Esiste al di fuori dell'SDL e in genere implica contromisure per lo sfruttamento quali DEP, ASLR e l'uso di tecniche trovate in strumenti come EMET .
Alcuni contributori di Linux hanno intrapreso questa strada inventando ASLR e implementando altri concetti nelle loro grsecurity patch del kernel. Tuttavia, né Microsoft né gli sviluppatori di grsecurity possono prevedere exploit non tradizionali, come quelli basati su applicazioni Web, exploit del kernel, condizioni di gara e altri difetti esoterici o di progettazione.
Per quanto riguarda la tecnologia, è molto più difficile risolvere il problema dello zero day exploit. Questo è il motivo per cui ho fornito per lo più una lista di soluzioni umane al problema dello sfruttamento a zero giorni, che credo avrà un impatto maggiore. Non sono un esperto nel risolvere questi problemi sociali umani - se lo fossi, userei questi poteri magici per combattere la fame, le malattie o altri problemi che sono molto più profondi degli exploit zero day.
Forse è meglio lasciare che avvengano gli exploit zero day. Non puoi impedire che vengano rilasciati. Una cosa che puoi fare è aiutare la tua organizzazione a diventare meno un obiettivo di exploit zero day, ovvero eseguire su un'infrastruttura che non è mai stata (o molto raramente) presa di mira da exploit zero day, ma questo può portare alla sicurezza dall'oscurità. Come esempio di questa strategia fallita, AOL utilizzava le apparecchiature a tolleranza d'errore Stratus, ma ciò non impedì loro di essere violati.
Uno dei metodi più noti fino ad oggi è quello di sfruttare honeypot, monitoraggio di integrità del file / kernel / memoria / processo (ad esempio BitLocker con TPM, Tripwire, ecc.) e sotterfugi per fornire livelli di difesa, e quindi seguire un offesa rapida e spietata, molto simile alla guerra moderna. Ancora una volta, questo riguarda principalmente il lavoro a livello umano senza un notevole sollevamento della tecnologia. Alcuni di questi metodi possono essere combinati usando tecniche di business intelligence, e questo è quello che alcuni prodotti SIEM (e lo strumento SIEM open-source OSSIM) tentano di fare, ma questi sono ancora nelle prime fasi di maturità e progresso, quindi non dovrebbero essere fatto da soli, ma parte di una metodologia più ampia e di un programma di gestione degli exploit contro zero day.
Se stai parlando di Zero Day attacca contro qualsiasi applicazione all'interno della tua rete. Suggerirei:
Utilizzare il filtro Ingress sul firewall di rete e utilizzare anche Filtro Egress in modo da limitare il traffico che può viaggiare in uscita dal sistema il che significa che se una macchina dovesse essere influenzata da un exploit Zero Day, si spera che non sarebbe in grado di comunicare in uscita.
L'utilizzo di un IDS / IPS per rilevare modelli di traffico insoliti può anche rivelarsi efficace.
Un punto non del tutto menzionato da Avi o Mark è il vecchio mantra di "difesa in profondità". Può essere una frase molto banale, ma con più livelli di sicurezza un utente malintenzionato deve utilizzare più di un giorno zero per accedere e ogni livello può offrire più opportunità di individuare l'attacco (tramite IDS ecc.) O di rispondere.
Sviluppa in modo definitivo l'SDL e usa IDS, IPS e altri strumenti, ma crea un'architettura sicura e migliorerà in modo misurabile la tua sicurezza.
Se intendi proteggere te stesso da una vulnerabilità nota in un'applicazione che non ha ancora alcuna patch ufficiale, ecco alcuni modi:
Se si tratta di software open source, di solito le patch non ufficiali sono disponibili molto rapidamente. Altrimenti, puoi anche provare a correggerlo da solo se disponi delle risorse.
Le vulnerabilità spesso dipendono da configurazioni / configurazioni specifiche. Prova a vedere se puoi configurare una configurazione che non sarebbe vulnerabile (ad esempio disabilitando un'estensione).
Nient'altro che posso pensare a parte i soliti metodi di sicurezza che non sono specifici per la domanda.
Leggi altre domande sui tag attack-prevention zero-day