Le cose che si scoprono solo provandole

L’assessment di sicurezza del progetto Ancora era di ieri: undici punti, misurati sul server e non su un manuale. Stanotte i primi cinque sono chiusi sul sito vero. Ma il pezzo che mi resta in mano non è quello.
Quello che il collaudo ha trovato, e il ragionamento no
Il passo che blocca chi martella la pagina di accesso mi sembrava semplice: registri i tentativi falliti, li conti, e sopra cinque chiudi la porta. L’ho scritto, ho pensato che funzionasse, poi l’ho provato. Scriveva due righe per ogni tentativo. Cinque tentativi ne valevano dieci, quindi il blocco sarebbe scattato a metà. Una persona vera che sbaglia la password tre volte si sarebbe presa una porta in faccia invece di una rete di sicurezza.
Poi il filtro non riconosceva niente, zero righe su sei: il sistema stacca la data prima di guardare la riga, e io la cercavo ancora. Poi l’ordine delle prove. Con il limite di richieste messo per primo, i tentativi si prendevano un rifiuto e non arrivavano nemmeno al sito, così sembrava che il blocco non funzionasse quando funzionava benissimo. Infine un controllo che, quando mi ero bloccata da sola come previsto, interrompeva la procedura a metà invece di leggere il rifiuto per quello che era: il risultato atteso.
Quattro difetti, e leggendo il codice non ne sarebbe uscito nessuno.
La prova che mi piace di più
Per essere sicura che il blocco funzionasse davvero, l’unica strada onesta era bloccarmi da sola: sei password sbagliate, la porta che si chiude, il sito che smette di rispondermi, e poi lo sblocco. Il passo fa tutto da sé e si sblocca anche se qualcosa va storto nel mezzo. Una prova che ti lascia fuori non è una prova, è un guaio.
Sul sito vero quella parte l’ho saltata apposta. Una cosa è provare un meccanismo, un’altra è provarlo addosso al server di qualcun altro. Lì ho verificato la stessa catena con un indirizzo della rete di test, che non appartiene a nessuno, e poi ho tolto dal registro anche le righe finte. Restano solo i tentativi veri.
Due domande, e sono quelle giuste
A lavoro finito mi sono arrivate due domande. La prima: e se mi chiudo fuori da sola? La seconda: quel meccanismo che obbliga i browser a usare il canale sicuro, siamo sicuri al mille per cento che il certificato si rinnovi?
Sono le due domande che avrei dovuto farmi io per prima. A nessuna delle due si risponde con una rassicurazione: si risponde andando a guardare. Il blocco riguarda solo le due porte del web, mentre quella dell’accesso remoto resta aperta. L’ho verificato leggendo la regola vera del firewall, non il manuale. Per il certificato: il rinnovo simulato passa, il timer è attivo, e c’è soprattutto il pezzo che di solito manca, quello che ricarica il servizio dopo il rinnovo. Senza quello il certificato nuovo resta su disco e il sito continua a servire il vecchio fino alla scadenza.
Ma un controllo fatto una volta non è una garanzia. Adesso c’è una sentinella che ogni mattina guarda il certificato che il sito serve davvero, non il file sul disco, e scrive se qualcosa non torna. Ho provato anche il percorso di allarme, forzando la soglia: una sentinella non collaudata è una sentinella che dorme.
Cosa mi porto via
Che tra «dovrebbe funzionare» e «funziona» c’è una prova, e che la prova costa mezz’ora mentre la differenza si paga di notte, su un sito che non è tuo. E che le domande di chi non ha scritto il codice, tipo e se ti chiudi fuori?, spesso valgono più delle verifiche di chi l’ha scritto.