Come tester di penetrazione, questa formulazione è esposta nella Dichiarazione di lavoro, tuttavia, come tester, non raccomando che il tester interrompa il test una volta ottenuto l'accesso. Lo scopo di un test di penetrazione è di ottenere un accesso molto simile a come un utente malintenzionato potrebbe ottenere l'accesso. Fermando il test, non si può mai sapere cos'altro è sfruttabile. Diamo un'occhiata a quanto segue:
pentest
Yournetwork 172.16.1.0/24
Indichiamo che il tester inizia a 172.16.1.0 e ha accesso a 172.16.1.10, il tester trova una macchina altamente sfruttabile, ottiene il controllo completo e interrompe il test. Di cosa hai beneficiato se 244 macchine non fossero state testate?
Uno dei maggiori ostacoli che noi (tester) affrontiamo è che a volte siamo limitati in ciò che possiamo testare e come possiamo testarlo. In generale, mirano a utilizzare exploit affidabili che non influenzano la rete di un cliente (servizi di crash, causa smentite di servizio). Molte volte le tecniche che un attaccante in buona fede userebbe sono del tavolo per me. Ad esempio, concatenare gli exploit, dove posso trovare uno script cross-site (XSS) di basso livello, ma l'unico modo per sfruttarlo è aggiungere un vettore di ingegneria sociale (inviare via e-mail al dipendente un link).
Ci sono pro e contro con i pentests, e lo standard: "Mira a uno strumento in questo blocco di rete, se non riesci ad entrare, siamo al sicuro" non funziona mai. Questo perché il test è una pistola carica. Come tester professionista, so che non posso fare qualcosa per interrompere le tue operazioni, quindi non lo avrò. Un attaccante in buona fede non ha intenzione di affermare: "beh, se eseguo questo exploit, potrei mandare in crash il suo sistema ... Meglio di no" o "beh, questo è solo un attacco XSS ... Meglio non usarlo in un messaggio di posta elettronica "o" Ho trovato la prima macchina sfruttabile ... dovrei smettere di sfruttare il resto della rete ". Al contrario, un utente malintenzionato eseguirà qualsiasi exploit desiderino, non gli interesserà se si bloccherà qualcosa e concatenerà gli exploit.
Preferisco eseguire blackbox interni (qualsiasi cosa vada) test dall'interno. Con e senza credenziali contro test remoto. Questa è una logica semplice: "Supponiamo che ce l'abbiano fatta davanti alla porta ... Cosa possono fare?" Ciò mi consente di avere il cliente a determinare la sua postura di sicurezza dall'interno verso l'esterno, dove i test esterni vengono eseguiti DOPO. Ho scoperto che questo approccio produce risultati molto migliori rispetto al licenziamento a un IP esterno.
Inoltre, a seconda della tua struttura, ho incontrato troppi provider di hosting di terze parti. Questo è il punto in cui l'infrastruttura Web del cliente viene visualizzata su Amazon o su un altro provider di hosting, a cui non è possibile eseguire il test, poiché i provider di cloud non controllano i test di penetrazione. Quindi probabilmente otterrai un rapporto distorto.
Il mio consiglio è, se hai intenzione di far testare qualcuno, dovrebbe essere tutto o niente. I tester più competenti sono consapevoli delle insidie che ho menzionato qui. La maggior parte dovrebbe già sapere: "non userete mai gli exploit che manderanno in crash qualcosa", quindi saranno loro i responsabili. Tuttavia, non smetterei di eseguire i test e otterresti un maggior numero di tentativi per eseguire test interni (ciechi e con credenziali), seguiti da test esterni.