Esiste un metodo standard per dimostrare la sicurezza delle password ai non matematici?


16

Il mio client ha un server che viene sottoposto a tentativi di accesso a forza bruta da una botnet. A causa dei capricci del server e del client del client, non possiamo bloccare facilmente i tentativi attraverso un firewall, la modifica della porta o la modifica del nome dell'account di accesso.

È stata presa la decisione di lasciarlo aperto agli attacchi, ma trovare un metodo per proteggere la password. La direzione e alcuni altri consulenti hanno stabilito che la cosa migliore da fare è installare un software di rotazione della password per ruotare la password ogni dieci minuti e fornire la nuova password agli utenti che devono accedere.

I tentativi di forza bruta si verificano due volte al secondo.

Devo dimostrare che l'implementazione di una password complessa con 12-15 caratteri è una soluzione più semplice e gratuita. So come dimostrarlo con la matematica, ma scriverei qualcosa del tipo "ci sono x molte possibili permutazioni della nostra password e l'attaccante può provare solo n tentativi al giorno, quindi ci aspetteremmo che vadano x / 2 giorni in media prima che indovinino la nostra password ". Esiste una "prova" più standard di questo?

Risposte:


14

L'uso di fail2ban con iptables è un ottimo modo.

Ecco la matematica per te:

L'alfabeto misto maiuscolo e minuscolo e i simboli comuni, lunghi 8 caratteri, danno 2,9 quadrilioni di conbinazioni e con 10.000 tentativi al secondo impiegheranno 9.488 anni. Questo è il massimo ovviamente: aspettati che la tua password venga violata in 4000 anni. 1000 anni se non ti senti fortunato.

Come puoi vedere non dovresti avere problemi se fai una password di 15 caratteri come:

dJ&3${bs2ujc"qX

In che modo fail2ban aiuterebbe contro una botnet?
innaM,

2
l'unico problema che avrai è che nessuno può ricordare le loro password ...
Jeff Atwood,

Questo è un link davvero interessante, ma ho notato (in fondo alla pagina) che i loro tempi di attacco sono basati su Pentium 100s! Forse un po 'obsoleto ora, ma comunque una buona lettura.
Coops

8

Oltre a fail2ban,

Se stai utilizzando un moderno UNIX, puoi generalmente modificare il tempo di sospensione per l'inserimento della password errata fino a 5 secondi, rallentando la velocità di attacco del 2000%. [Solaris 10 ce l'ha in / etc / default / login, cerca SLEEPTIME] Che usando le stesse tolleranze significherebbe che potresti ruotare la password ogni 3 ore e 20 minuti.

Inoltre, provare la password prima del blocco sarebbe un'opzione praticabile, ma sospetto che non sia per te perché hai più utenti che condividono un account e non vuoi che venga bloccato sempre.

Richiedere una password di 12-15 caratteri aiuta, ma se si viene continuamente attaccati, un'altra soluzione è probabilmente migliore. Non so quale sia la tolleranza del budget della tua azienda su questo, ma le chiavi RSA per tutti coloro che devono accedere a quell'account lo risolverebbero. L'autenticazione a due fattori spinge la probabilità nel tempo di calcolo quantico.

L'approccio della forza bruta che dura abbastanza a lungo da poter pubblicare su questo forum è piuttosto sorprendente. In generale, è piuttosto modesto e nella migliore delle ipotesi è un compilatore di tronchi mentre è in corso un vero attacco.


6

Che ne dici di un appello all'autorità? Puoi fare riferimento alle Linee guida per l'implementazione tecnica della sicurezza DoD (iase.disa.mil/stigs/stig) e dire "Se è abbastanza buono per il Dipartimento della Difesa, è abbastanza buono per noi"


5

Qualcosa da considerare: se hai una password che non cambia e gli attacchi di forza bruta stanno testando un universo di password che include la tua, l'attacco di forza bruta è garantito per colpire alla fine e rimarrai vulnerabile dopo.

La "possibilità" che una scelta casuale colpisca la tua password può essere calcolata, come hai suggerito, ma ciò potrebbe non raccontare l'intera storia.

Se osservi i tentativi della forza bruta, ad esempio, e vedi che la password più lunga che provano è di 10 caratteri, selezionando qualcosa su 12 assicurerai che non verrai mai colpito.

Fai molta attenzione quando cerchi di applicare le statistiche a un caso particolare; prevedono solo il comportamento generale con un gran numero di campioni.

A parte questo, se la matematica non convince (o non riesce) a convincere qualcuno, prova a trovare qualcosa che abbia circa le stesse possibilità di verificarsi ma che sia familiare, come forse lotterie o incidenti stradali o colpita da un fulmine. Se puoi dire "la possibilità che qualcuno colpisca questa password è quasi uguale a vincere la lotteria per sei settimane consecutive", potrebbe dare loro una sensazione migliore.


3
Perché non scegliere una password che l'hacker ha già provato? Stavo solo scherzando.
innaM,

4

Una cosa che non è stata presa in considerazione è il nome utente utilizzato dalla botnet per Bruteforce. In tutti i casi che ho visto, le forze brute sono state per le variazioni di admin e root, e in un raro caso nomi utente cancellati dal sito web corp.

Modificherei anche le restrizioni di accesso interattivo in modo che il tuo account di root sia disabilitato (preferito) o limitato alla tua sottorete locale o intervallo di indirizzi simile.


2

Due volte al secondo non è male. Abbiamo visto migliaia di tentativi al minuto, prima di implementare fail2ban , che bloccherà un determinato IP fuori dalla rete per un determinato periodo di tempo dopo tanti tentativi falliti (tutti configurabili).

Questo ha funzionato benissimo per noi.


2

In realtà, puoi eseguire una scansione selettiva contro attacchi ssh a forza bruta usando iptables, se questo funziona per te.

Queste due stringhe:

iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set --name sshscans 
iptables -A INPUT -m recent --rcheck --seconds 60 --hitcount 5 --name sshscans --rsource -j DROP 

bloccherà l'accesso a chiunque tenti di connettersi a SSH più di 5 volte in un intervallo di 60 secondi. È possibile modificare il numero "--hitcount" se si desidera consentire un numero maggiore di 5 al secondo.



2

È sorprendente quante persone non capiscano le curve esponenziali, ma tutti conoscono la differenza tra 10, 100 e 1000, quindi potrebbe essere un buon posto per iniziare a fare confronti.

Un'altra tattica potrebbe essere quella di mostrare alle persone il tempo necessario per forzare una password di 6 caratteri. Se hai qualche conoscenza di programmazione, puoi mettere insieme uno strumento rapido che lo fa.



2

Questo potrebbe essere un po 'offtopico, ma sto usando denyhosts ed è notevolmente ridotto i tentativi di forza bruta sui miei box Linux.

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.