Come gli scanner trovano le vulnerabilità
01/03/21 CoreTech Blog
Gli scanner di vulnerabilità non sono così diversi dagli scanner di virus. In entrambi i casi, l'obiettivo del software è trovare qualcosa fuori dall'ordinario nel target. Uno scanner antivirus esegue la scansione delle risorse locali e della memoria locale di un computer per trovare software potenzialmente dannoso. Uno scanner di vulnerabilità esegue la scansione di un tipo di obiettivo per trovare software potenzialmente vulnerabile. Entrambi usano tecniche simili per farlo.
Scansione basata sulla firma
Nel caso della scansione basata sulla firma, lo scanner cerca modelli riconoscibili, che sono preparati dal produttore dello scanner o presi da un database pubblico. Per esempio:
- Uno scanner antivirus cerca una certa catena di byte presenti in un file eseguibile dannoso. Se trova quella catena di byte, presume che il file dannoso sia stato trovato.
- Uno scanner di rete cerca una determinata risposta dal server per riconoscere la versione esatta del software utilizzato dal server. Può essere semplice come il software risponde effettivamente con le informazioni sulla versione o più complesso, ad esempio, riconoscendo un determinato comportamento tipico.
Ci sono diversi vantaggi nella scansione basata sulla firma:
- Di solito è abbastanza veloce perché non è necessario eseguire alcuna operazione tranne il confronto di catene di byte dalla libreria dello scanner con catene di byte ricevuti dalla destinazione.
- È meno invadente e non ha quasi effetti collaterali.
- È molto semplice per il produttore dello scanner perché non è necessario scrivere codice personalizzato. Esistono anche database di firme di dominio pubblico, che possono essere utilizzati per creare il proprio database.
Sfortunatamente, ci sono anche alcuni importanti svantaggi in questo tipo di scansione:
- Non è sempre molto preciso. La firma non garantisce che il risultato trovato sia dannoso.
- Non c'è assolutamente alcuna prova che il risultato segnalato sia dannoso. Poiché lo scanner confronta solo le firme, non verifica se le sue ipotesi sono vere.
- La maggior parte degli scanner è limitata alle firme note e non è in grado di riconoscere mutazioni (ad esempio, una firma con un byte diverso), irregolarità (ad esempio, un server configurato in modo diverso) o nuove minacce.
Scansione basata sul comportamento (scansione euristica)
L'altro modo per eseguire la scansione di contenuti dannosi è analizzare effettivamente il comportamento del target. Ciò significa che lo scanner deve comprendere il modo in cui funziona l'obiettivo, non solo confrontare una firma. Per esempio:
- Quando uno scanner antivirus euristico trova un file potenzialmente eseguibile, può eseguire il reverse engineering su di esso per verificare esattamente cosa fa il codice (per verificare se le sue azioni sono dannose). Potrebbe anche provare a eseguire il codice in un ambiente sicuro per vedere i risultati.
- Quando uno scanner di vulnerabilità web trova un elemento che consente l'input dell'utente, cerca di "ingannare il bersaglio" inviando dati imprevisti. Quindi analizza la risposta del target per vedere se ha avuto successo.
La scansione euristica presenta alcuni importanti vantaggi:
- Teoricamente, è in grado di trovare qualsiasi tipo di minaccia, anche personalizzata o zero-day. Ovviamente, dipende da quanto è avanzato il software.
- È più preciso perché controlla effettivamente se le sue ipotesi sono corrette. A volte, può persino fornire una prova.
Sfortunatamente, anche la scansione euristica presenta alcuni svantaggi:
- Potresti trovarlo molto più dispendioso in termini di risorse rispetto alla scansione basata sulla firma. Uno scanner euristico ha bisogno di più tempo per trovare i risultati e potrebbe rallentare il target più di uno scanner basato sulla firma.
- Costruire un buon scanner euristico è molto difficile e richiede il massimo talento. A differenza degli scanner basati sulla firma, ogni nuovo tipo di attacco deve essere programmato e simulato. Una libreria di scanner euristici non è solo un elenco di stringhe da confrontare: richiede un software personalizzato effettivo per ogni tipo di controllo.
Il meglio dei due mondi
Molti scanner professionali tentano di utilizzare entrambi i tipi di scansione, ma il tipo principale dipende molto dal tipo di scansione eseguita:
- Gli scanner antivirus sono quasi sempre principalmente basati sulle firme. Alcuni scanner antivirus avanzati dispongono anche di una scansione basata sul comportamento, ma spesso è facoltativa (poiché tali scansioni richiedono più tempo e risorse).
- Gli scanner di rete sono quasi sempre basati sulla firma. Questo perché gli scanner di rete si concentrano sulla ricerca di versioni software obsolete e configurazioni errate, che possono essere facilmente riconosciute utilizzando le firme.
- Gli scanner di vulnerabilità Web sono sempre principalmente euristici, ma possono utilizzare firme laddove appropriato.