Versione nascosta: preziosa o semplicemente di sicurezza per oscurità?

10

Molti scanner di sicurezza automatici hanno regole incorporate che segnalano la presenza della versione del software e in molti elenchi di sicurezza l'esposizione della versione alla persona arbitraria che accede al sistema è menzionata come uno dei problemi di sicurezza.

Quindi la mia domanda è - è un vero problema e si nasconde la versione aggiunge qualcosa di reale alla sicurezza?

Le argomentazioni dicono che nascondere la versione rende più difficile l'utilizzo di exploit mirati, tuttavia la maggior parte degli hacker ora ha tool di exploit automatizzati che non impiegano tempo per eseguire centinaia di tentativi di exploit contro il target, quindi la differenza è prossima allo zero per un informato attaccante. E uno che non è informato non saprà come utilizzare le informazioni sulla versione. Le versioni nascoste rendono anche più difficile l'auto-scansione per le installazioni vulnerabili di sinistra.

Vedo anche che questa pratica è ampiamente ignorata - ad esempio, la pagina stessa di OWASP che descrive questo come tecnica di sicurezza visualizza apertamente le versioni del software server (OS, Apache, PHP) e il software Wiki. Ma anche se si tenta di nasconderlo, la maggior parte delle applicazioni Web, specialmente quelle complesse, sono facilmente modificabili mediante il rilevamento delle impronte digitali di vari contenuti che generano.

Quindi vale la pena nascondere la versione per un'applicazione web? O per qualsiasi applicazione / OS / piattaforma?

    
posta StasM 08.05.2012 - 01:50
fonte

5 risposte

9

Il problema della sicurezza per oscurità è quando si dipende dall'oscurità per ottenere sicurezza. Se questa è la tua unica o principale forma di difesa, hai un problema.

Detto questo, l'oscurità può aggiungere sicurezza a un sistema che già utilizza strategie migliori per la sicurezza. Non c'è motivo di esporre tali informazioni, quindi non dovresti. È un'informazione utile per un aggressore, quindi dovresti certamente nasconderlo quando possibile. Il problema è quando inizi a pensare sulla falsariga di "bene nascondo queste informazioni, quindi nessun attaccante può scoprirlo e usarlo per attaccare il mio sistema, quindi sono al sicuro".

Il tuo sistema dovrebbe essere sicuro a prescindere dal fatto che tali informazioni rimangano segrete o meno, ma non dovresti fare alcun favore agli attaccanti rilasciandolo.

    
risposta data 08.05.2012 - 03:16
fonte
4

La sicurezza dell'oscurità fa bene alla difesa in profondità; non va bene come unica / primaria modalità di difesa o quando l'oscurità interferisce con le normali operazioni.

Se una vulnerabilità di 0 giorni emerge per la tua applicazione e pubblicizzi il tuo numero di applicazione / versione ovunque (ad esempio, nelle ricerche di google, nell'intestazione di risposta HTTP 'Server: nginx 0.7.1'), lo rendi banale per gli aggressori consapevole della nuova vulnerabilità di trovare il tuo sito e tentare di sfruttarlo, prima che tu abbia avuto il tempo di applicare una patch di sicurezza. Se non fornisci queste informazioni (o altri messaggi di errore), dovranno indovinare l'identità / versione della tua applicazione in base alle funzionalità (e le verifiche di funzionalità oscure potrebbero in linea di principio scartare programmi come fail2ban a un attacco in corso) o provare ogni exploit noto per ogni possibile combinazione di applicazioni / versioni. Questo è molto più ingombrante per l'aggressore.

Sì, è meglio tenere aggiornato il software applicativo con tutte le patch di sicurezza; ma nel mondo reale questo spesso è in ritardo. Non fornire informazioni di debug non necessarie una volta che un'applicazione è attiva (anche se durante il debug è probabilmente utile lasciare le informazioni disponibili).

    
risposta data 08.05.2012 - 17:44
fonte
1

Quando una vulnerabilità utile emerge in una popolare applicazione web, un utente malintenzionato utilizzerà Google Hacking (o talvolta chiamato un Google dork ) per ottenere un elenco di tutti coloro che eseguono quel software. Anche se questo hack di Google potrebbe contenere il numero di versione, alcuni semplici come " Alimentato da Wordpress " è in genere sufficiente. Perché controllare il numero di versione, quando è possibile attivare l'exploit e vedere se riesce.

Quindi oscurare il numero di versione non è importante quanto oscurare l'applicazione da sola.

    
risposta data 08.05.2012 - 03:31
fonte
1

Questa è (non molto) sicurezza per oscurità.

Script kiddies / worms non si preoccuperanno di controllare i banner prima di lanciare attacchi. IME, è anche estremamente semplice identificare diversi fornitori e versioni di software server che non restituiscono informazioni di banner (mappando le risposte a caratteristiche meno comuni e condizioni di errore). Informazioni sull'unico modello di minaccia fornisce protezione da dove l'autore dell'attacco utilizza un motore di ricerca di terze parti per identificare i bersagli - tuttavia la maggior parte dei motori di ricerca non indicizza le informazioni del banner - e spesso ci sono molte informazioni solo negli URL

    
risposta data 08.05.2012 - 11:46
fonte
0

Diamo un'occhiata a 2 scenari. In entrambi la versione è vulnerabile a un exploit (0-day o not-patched).

L'hacker conosce la versione. L'attaccante va sul tuo sito e dopo un semplice controllo (guardando l'intestazione HTTP, googling, guardando i messaggi di errore ...) scopre che tu esegui questa versione. Quindi trova exploit per esso e lancia solo questo exploit. Come risultato il tuo sistema è compromesso. È stato eseguito un solo exploit e pertanto la possibilità che IDS rilevi un attacco non è ampia. Sarà anche più difficile trovare un attaccante osservando i registri poiché non è stata rilevata una quantità di attività dannose.

L'attaccante non conosce la versione. L'attaccante accede al sito e non riesce a trovare la versione. Quindi non può eseguire solo un exoloit. Dovrebbe correre in abbondanza. È probabile che questa attività venga rilevata e registrata e il suo IP verrà probabilmente bloccato da IDS. Il tuo sistema non sarà compromesso perché hai costretto l'aggressore a eseguire un sacco di exploit invece di uno solo.

    
risposta data 09.05.2012 - 13:54
fonte

Leggi altre domande sui tag