Come prevenire gli attacchi zero day


21

Tradizionalmente, tutti i programmi antivirus e i sistemi IPS funzionano utilizzando tecniche basate su firma. Tuttavia, questo non aiuta molto a prevenire attacchi zero-day .

Pertanto, cosa si può fare per prevenire attacchi zero-day?


1
Oltre ai punti nella risposta che ho suggerito di seguito, anche se si esegue un software con un exploit zero-day. Se non esegui quel sistema su Internet pubblico, non sei direttamente vulnerabile. Quindi i firewall sono i tuoi amici e se vuoi davvero eseguire qualche nuovo software di rischio per la sicurezza, puoi configurarlo su un'altra rete nel cloud, dove può essere violato e non influire su altri sistemi.
Tom H,

Le minacce di 0 giorni e sconosciute sono esattamente il motivo per cui l'euristica viene utilizzata in qualsiasi software antivirus / antimalware degno di questo nome. Sfortunatamente l'euristica è spesso disabilitata a causa del successo delle prestazioni.
John Gardeniers,

0days è solo una categoria, ogni membro di questa categoria è molto diverso dall'altro. Non puoi avere un approccio in cui consideri l'implementazione della sicurezza contro 0days. È la qualità del tuo sistema di sicurezza che alla fine farà la differenza tra un'intrusione furtiva di successo e un exploit non funzionante o un exploit rilevato. Come qualcuno ha detto, concentrati sul rilevamento e sui tempi di risposta rapidi. Monitora ogni sistema, traffico e tieniti aggiornato con gli aggiornamenti di sicurezza. È un lavoro a tempo pieno, o almeno, dovrebbe essere.
Aki

Probabilmente riceverai delle buone risposte anche da qui - security.stackexchange.com
Bratch

Linux ovunque. niente finestre. chiedi a google.
Neil McGuigan,

Risposte:


37

Penso che tu abbia riconosciuto un'interessante verità sys-admin lì, che è quella

a meno che non si può ridurre la probabilità di essere violato a zero poi alla fine , ad un certo punto, si sta per ottenere hacked .

Questa è solo una verità di base di matematica e probabilità, quella per qualsiasi probabilità diversa da zero di un evento. L'evento alla fine accade ...

Quindi le 2 regole d'oro per ridurre l'impatto di questo evento "eventualmente compromesso" sono queste;

  1. Il principio del privilegio minimo

    È necessario configurare i servizi in modo che vengano eseguiti come utente con i diritti meno possibili necessari per completare le attività del servizio. Questo può contenere un hacker anche dopo essere entrato in una macchina.

    Ad esempio, un hacker che irrompa in un sistema usando un exploit zero-day del servizio web server Apache è molto probabilmente limitato alla sola memoria di sistema e alle risorse di file a cui è possibile accedere da quel processo. L'hacker sarebbe in grado di scaricare i file sorgente html e php e probabilmente esaminare il database mysql, ma non dovrebbe essere in grado di ottenere il root o estendere la propria intrusione oltre i file accessibili da apache.

    Molte installazioni di server web Apache predefinite creano l'utente e il gruppo 'apache' per impostazione predefinita e puoi facilmente configurare il file di configurazione principale di Apache (httpd.conf) per eseguire apache usando questi gruppi.

  2. Il principio di separazione dei privilegi

    Se il tuo sito web necessita solo dell'accesso in sola lettura al database, crea un account con autorizzazioni di sola lettura e solo a quel database.

    SElinux è una buona scelta per creare un contesto di sicurezza, l' app-armatura è un altro strumento. La Bastiglia era una scelta precedente per l'indurimento.

    Ridurre le conseguenze di qualsiasi attacco, separando il potere del servizio che è stato compromesso nella propria "scatola".

Anche le regole d'argento sono buone.

Usa gli strumenti disponibili. (È altamente improbabile che tu possa fare così come i ragazzi che sono esperti di sicurezza, quindi usa il loro talento per proteggerti.)

  1. la crittografia a chiave pubblica offre un'eccellente sicurezza. usalo. ovunque.
  2. gli utenti sono idioti, impongono la complessità della password
  3. capire perché stai facendo eccezioni alle regole sopra. rivedi regolarmente le tue eccezioni.
  4. trattenere qualcuno per spiegare l'errore. ti tiene in guardia.

Penso che questa sia la verità - per definizione, non c'è molto che puoi fare per prevenire un exploit di 0 giorni. Se disponi di un software vulnerabile, disponi di un software vulnerabile, pertanto l'unico modo di agire è ridurre l'impatto e la superficie di attacco. Punto eccellente sui firewall, anche se vale la pena ricordare che un exploit di 0 giorni per MS Outlook potrebbe essere inviato via e-mail, ad esempio.
Dan,

2
Sì, punto preso sui prodotti di MS mail. Ma ci sono analogie con i firewall per la posta, ad esempio chiunque avesse tutte le estensioni di tipo VBscript, ActiveX, OLE disabilitate avrebbe perso completamente tutto l'hacking, beato inconsapevolmente della carneficina ... ;-)
Tom H

1
+1 ma scritto alla regola d'argento 1 "Chiunque pensi che il suo problema possa essere risolto usando la crittografia, non capisce il suo problema e non capisce la crittografia." - Needham / Lampson;)
Peanut

@Peanut Mi piace la chiave pubblica perché evita l'uso delle password. Dopo l'intrusione teorica, non è necessario reimpostare le password perché non ci sono password da reimpostare e viene compromessa solo la chiave pubblica. È possibile utilizzare anche un database di password con hash per verificare o account crack offline.
Tom H,

@TomH Il mio commento è stato ironico :) Interessante, quindi nel tuo sistema presumibilmente il server invia al client un nonce + altri dati per firmare e il client utilizza un nome utente + i dati firmati per accedere?
Peanut,

16

Lista bianca, non nella lista nera

Stai descrivendo un approccio nella lista nera. Un approccio alla whitelist sarebbe molto più sicuro.

Un club esclusivo non cercherà mai di elencare tutti coloro che non possono entrare; elencheranno tutti quelli che possono entrare ed escluderanno quelli non presenti nell'elenco.

Allo stesso modo, il tentativo di elencare tutto ciò che non dovrebbe accedere a una macchina è condannato. Limitare l'accesso a un breve elenco di programmi / indirizzi IP / utenti sarebbe più efficace.

Naturalmente, come qualsiasi altra cosa, ciò comporta alcuni compromessi. In particolare, una whitelist è estremamente scomoda e richiede una manutenzione costante.

Per andare ancora oltre nel compromesso, puoi ottenere una grande sicurezza disconnettendo la macchina dalla rete.


+1 Questa è una grande aggiunta alla risposta di Tom H.
Chad Harrison,

1
Il pericolo sta nel fatto che un tale insieme di regole stia diventando una dimensione in cui non può essere compreso, mantenuto, spiegato, verificato. È micidiale.
rackandboneman,

11

Il rilevamento è più semplice (e più affidabile) della prevenzione

Per definizione, non puoi impedire un attacco zero day. Come altri hanno sottolineato, puoi fare molto per ridurre l'impatto di un attacco zero day, e dovresti, ma questa non è la fine della storia.

Vorrei sottolineare che, inoltre, dovresti dedicare risorse per rilevare quando si è verificato un attacco, cosa ha fatto l'attaccante e come l'ha fatto l'attaccante. La registrazione completa e sicura di tutte le attività che un hacker potrebbe intraprendere faciliterà sia il rilevamento di un attacco sia, soprattutto, la determinazione del danno arrecato e la riparazione necessaria per riprendersi dall'attacco.

In molti contesti di servizi finanziari, il costo della sicurezza in termini di ritardi e costi generali nell'esecuzione delle transazioni è così elevato che ha più senso concentrare le risorse sul rilevamento e sull'inversione di transazioni fraudolente piuttosto che adottare misure estese volte a prevenirle in primo luogo . La teoria è che nessuna quantità di misure sarà efficace al 100%, quindi i meccanismi di rilevazione e inversione devono essere comunque costruiti. Inoltre, questo approccio ha resistito alla prova del tempo.


1
+1 Sì, immagino che non puoi rispondere se non sai che è successo ... data un'altra possibilità di risposta, probabilmente mi sarei bloccato in qualcosa su SANS 6 passaggi ...
Tom H

+1, molto vero. La prevenzione richiederebbe un controllo. E l'auditing non può dimostrare che un sistema non abbia alcun difetto.
Aki

@ Tom, puoi sempre modificare la tua risposta.
Old Pro,

4

Zero day non significa che la firma non sia nota. Significa che non esiste alcuna patch disponibile per gli utenti del software, che chiude la vulnerabilità. Quindi IPS è utile per proteggere dallo sfruttamento delle vulnerabilità zero-day. Ma non dovresti fare affidamento solo su di esso. Creare e seguire una solida politica di sicurezza, rafforzare i server, aggiornare il software e disporre sempre di un "Piano B"


3

Grsecurity o SELinux aiutano a prevenire attacchi di 0 giorni indurendo il kernel.

Citazione dal sito Web "Solo grsecurity fornisce protezione contro zero-day e altre minacce avanzate che offrono agli amministratori tempo prezioso mentre le correzioni delle vulnerabilità si fanno strada verso le distribuzioni e i test di produzione".


2

Se stai usando Apache, moduli come mod_security possono aiutarti a prevenire i comuni vettori di attacco. Con mod_security puoi

  • richieste di blocco simili a attacchi di iniezione SQL
  • bloccare i client i cui indirizzi IP sono inseriti nella blacklist in alcuni RBL
  • reindirizzare la richiesta in un'altra posizione se sono soddisfatte alcune condizioni definite
  • bloccare le richieste in base al paese del cliente
  • rilevare e bloccare automaticamente i bot dannosi comuni

... e molto altro ancora. Ovviamente, usando un modulo complesso come mod_security è del tutto possibile bloccare anche i vostri clienti reali, e sul lato server mod_security aggiunge un overhead.

È inoltre obbligatorio mantenere aggiornato il software del server e assicurarsi di aver disabilitato tutti i moduli e i demoni che non verranno utilizzati.

Criteri firewall rigorosi sono indispensabili e in molti casi ulteriori miglioramenti della sicurezza come SELinux o grsecurity potrebbero bloccare l'attacco.

Ma qualunque cosa tu faccia, i cattivi sono molto pazienti, molto creativi e molto abili. Avere un piano dettagliato su cosa fare quando vieni violato.


1

Vorrei aggiungere alcune regole di bronzo:

  1. Se esposto, non eseguire ciò che non deve essere eseguito.

  2. Non renderti un bersaglio degno di un attacco mirato e dedicato.

  3. Garantire ogni possibile attacco mirato è spesso spesso antieconomico / impraticabile. Controlla chi potrebbe avere un serio interesse a rompere cosa e inizia lì.

  4. Considerare "minimizzare le informazioni disponibili esternamente" e "allontanarsi da valori predefiniti noti" non è altro che sicurezza dall'oscurità (spesso frainteso come "inutile" in contrapposizione a "uno strato che di per sé insufficiente") e ometterla è pericolosa arroganza. Una serratura hackable su una porta non terrà fuori il ladro ma probabilmente terrà fuori il lupo.


1

Una macchina gonfia con un'enorme suite di sicurezza spesso trasforma i PC mediocri in dinosauri e quad core in normali vecchi pc. Ho risolto abbastanza (migliaia) per capire che è per lo più vero. Se si capisce che nulla è sicurezza al 100% e il costo delle prestazioni diminuisce in modo esponenziale poiché la sicurezza mentre la probabilità di infezione diminuisce solo in modo lineare. La maggior parte dei risultati quando ho smesso di guardare i confronti sono stati del 90% al massimo su un test del mondo reale di migliaia di rischi, il che significa che il 10% delle infezioni non è stato rilevato o troppo tardi. mentre la latenza del PC era aumentata dal 200 al 900%. OSX si trova in una situazione ideale in cui è essenziale non essere migliori in termini di sicurezza, ma i rischi di attacco erano minori a causa degli obiettivi più piccoli con solo il 4% della quota di mercato nei prodotti non telefonici / pad nel 2010. Ciò cambierà ma non cambierò la mia filosofia di mantenere il mio sistema operativo pulito, snello e cattivo. Faccio lo stesso per XP e Win7. Ho un grande arsenale di strumenti di riparazione, ma ho bisogno solo di un'app per riparare tutti coloro che vengono infettati e ci vogliono solo da 10 a 20 minuti, non ore o giorni.

I miei metodi che funzionano;

  1. Educare gli utenti, non fare clic sugli avvisi di sicurezza a meno che non si sappia davvero cosa sono in contrasto con le centinaia di ROgue che sono copie carbone di buoni avvisi. Quelli che non possono essere addestrati ottengono facilmente account non amministrativi e browser sand-box con java e JS disabilitati. Ma se lo abilito per loro, non preoccuparti, solo 15 ~ 20 minuti per ripristinare o riparare.

    1. SYstem Restore è buono, ma presenta molte limitazioni, tra cui gli elementi nella cartella Documenti e nelle cartelle Temp utente sono protetti in cui i driver non autorizzati possono essere installati e avviati e infettati all'avvio successivo.

    2. Controllo dell'account utente è utile per molte cose, ma un PITA tale che non uso mai e non faccio affidamento su strumenti migliori per rilevare startup e / o nuovi processi, inclusi ma non limitati a;

      • Winpatrol.com è ancora il miglior investimento che ho fatto per la sicurezza e ancora gratuito per gli altri. Copre l'80% dei problemi in cui le startup vengono aggiunte prima dell'esecuzione e possono essere rilevate, disabilitate o eliminate dal prompt dell'utente. Tuttavia, se sei il tipo ansioso che non può prendere decisioni prendere una pillola o semplicemente utilizzare Windows Defender . Non il migliore per la copertura ma uno dei più alti per rapporto bang / buck .. pretection / perdita di performace o aumento del rapporto di latenza.

      • L'utilità di avvio di Mike Lin è l'interceptor più leggero di startup archiviate in oltre una dozzina di posizioni del registro

      • Script Guard è un utile intercettore di script per script kiddy

      • ProcessGuard è un vecchio programma defunto che funziona come un firewall per qualsiasi nuovo esecuabile, ma ti assilla per l'approvazione, tuttavia è sicuro e snello dopo aver accettato una fonte attendibile o ignorare o bloccare una fonte non attendibile.

      • Un componente aggiuntivo Blacklist per il tuo browser è buono come Web of trust (WOT) , ma Chrome ne ha incluso parte in modo simile ma in misura minore.

      • una lista nera può diventare enorme per i file HOSTS e se lo usi (> 1 MB è enorme quando viene scansionato in blocchi 4KB ogni 10 minuti., Se lo fai, ti consiglio vivamente di disabilitare il servizio di cache DNS per ridurre le scansioni periodiche ridondanti di ogni app che è attivo con i firewall privati.

      • Disabilita l'indicizzazione dei file se non lo usi davvero per e-mail e cose, perché genera la tua suite AV per scansionare ogni file a cui accedi ogni volta, ancora e ancora .. quanto ridondante.

Alcuni potrebbero fare un'eccezione a questo elenco parziale nella parte superiore della mia testa, ma risparmio tempo a proteggere il mio PC e operare in un ambiente snello. Controlli regolari per confermare che la mia sicurezza vengono effettuati di notte dimostrano che la mia pratica senza preoccupazioni è giustificata. Ho ancora un migliaio di registri HJT, registri combofix.txt e registri Runscanner per supportare le mie opinioni sulle cure e un migliore equilibrio sicurezza / prestazioni.

  • Evita il download / installazione disattento di file multimediali di exe o windows che possono eseguire script (ad esempio .WMA, .WMV) a differenza di .mp3 o .avi.

  • Evita tutti gli annunci indirizzati a pulsanti di grandi dimensioni per scaricare o aggiornare la tua sicurezza che potrebbe distrarre la tua attenzione all'aggiornamento gratuito sugli aggregatori di download come ippopotamo com .. cnet non è male. Essere molto attenti. Alcuni siti utilizzano annunci di terze parti e non hanno alcun controllo sui contenuti.

  • Ho documentato un esempio perfetto in una presentazione powerpoint di 10 pagine, se qualcuno è interessato, chiedi. Quanto è facile ignorare l'adive sopra può infettarti.

Per ora è tutto.

Tony Stewart EE dal 1975.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.