Da dove iniziare con i test di sicurezza?

13

A partire da un team di QA che si occupa principalmente di test dei requisiti funzionali e ha poca esperienza di test di sicurezza reali, quali semplici cose pratiche dovrebbe iniziare il team di QA per iniziare a pensare come un aggressore?

Un paio di esempi che posso immediatamente pensare sono:

  1. uso di caratteri speciali nei campi di immissione del testo, ad es. '%$<>|" ecc.
  2. tentare di sovraccaricare i campi di testo, ad es. %codice%
  3. casi limite, condizioni limite
posta Colin Cassidy 12.04.2012 - 15:18
fonte

6 risposte

12

Consiglierei di assumere qualcuno (o qualche sviluppatore potrebbe farlo) per istruire il team addetto al QA usando OWASP Top 10 o WASC TC . Se desideri una guida dettagliata su come dovrebbero apparire i test di sicurezza, puoi utilizzare Guida ai test OWASP , che ti darà una buona immagine.

    
risposta data 12.04.2012 - 16:04
fonte
12

Per aggiungere alla risposta di ewanm89, un approccio generale ai test di penetrazione viene fatto dividendo il test in diverse fasi:

  • Pianificazione
  • Discovery / Information Gathering
  • Attacco
  • Report

Pianificazione

Durante la fase di pianificazione, in genere si imposta l'ambito di attacco (quali sistemi e quali parti di esso testare)

Scoperta / raccolta informazioni

Rilevamento host, individuazione dei servizi, mappatura della topologia di rete, ricerca dei campi dei moduli http / html che possono essere ulteriormente testati. Quali informazioni è necessario raccogliere dipende dal tipo di test di sicurezza che si intende eseguire.

Attacco

Sondare le vulnerabilità sui servizi che hai indicato nella fase precedente. Molto probabilmente troverai nuove e più rilevanti informazioni durante la fase di attacco, ti sposti tra la fase di scoperta e quella di attacco. Cioè backend sql server dietro il server web.

rapporto

In questa sezione si riportano i risultati. Il report finale ha in genere le seguenti sezioni:

  • Riepilogo esecutivo
  • Risultati dettagliati
  • Livelli di vulnerabilità riscontrati
  • Impatto aziendale
  • Raccomandazioni
  • Conclusione

Il seguente link descrive questo approccio con i dettagli: Fasi del pentimento

    
risposta data 12.04.2012 - 16:05
fonte
3

Potresti fare molto di peggio che iniziare con il manuale Testing Open Source Security (è il manuale che è open source e non il target ).

Guardando il tuo elenco corrente, l'iniezione di codice (in particolare, ma non esclusivamente SQL) dovrebbe essere in cima alla lista.

Se si tratta di un'applicazione basata sul Web, dovresti considerare la fissazione della sessione / il dirottamento, XSS. Dai un'occhiata a arachni .

Se stai per indirizzare DDOS, dai uno sguardo agli sloloris e alla strozzatura della risposta.

Portare le persone a pensare come un attaccante è complicato (e discutibile per i suoi benefici: un attaccante ha bisogno solo di una debolezza, un difensore deve coprirle tutte). Forse dare loro dei honeypot per affinare le loro abilità?

    
risposta data 12.04.2012 - 17:45
fonte
2

In definitiva dipende da cosa viene testato. La prima cosa che fa un aggressore professionista è la ricerca di ciò che è in esecuzione, quali punti deboli potrebbero già essere ben noti quali tipi di debolezze potrebbero essere stati aggiunti.

Se si tratta di qualcosa con un back-end di database, proverò a test di SQL injection. Per i servizi Web cercherò attacchi XSS e CSRF. Gli overflow del buffer sono probabilmente solo contro il Web Server / Virtual Machine sottostante, a meno che non si stia parlando di codice nativo qui (alcuni client di home rolled).

Non c'è una risposta, dipende da cosa si sta guardando.

    
risposta data 12.04.2012 - 15:26
fonte
2

Ho trovato il libro "Metasploit: la guida del tester di penetrazione" utile in una situazione simile; pur essendo principalmente una guida per Metasploit, tratta anche le basi dei test di penetrazione.

Un po 'fuori tema, ma potresti voler dare un'occhiata a Backtrack , un sistema operativo avviabile su disco per i test di penetrazione. Backtrack ha Metasploit integrato. Poiché puoi avviarlo da un disco o da una memory stick, il tuo team può sperimentarlo senza dover installare nulla.

    
risposta data 12.04.2012 - 18:14
fonte
1

I tipi di esempi che hai dato sono un ottimo inizio. In generale, vuoi che i tuoi test imitino la mentalità dell'attaccante di "come posso abusare di questa risorsa". Sì, esegui test deliberatamente eseguiti (e fornendo input) che sono al di fuori dei requisiti e progettati, controllando le risposte cattive o pericolose.

Bretik fa anche riferimento a una buona risorsa, nella Guida ai test OWASP. Molti di questi possono essere più avanzati, tuttavia, e meglio utilizzati per tester di sicurezza appositamente allineati.

Potresti anche considerare di avere gli specialisti della sicurezza che lavorano per creare strumenti e amp; verifica che il tuo QA possa essere eseguito per testare le applicazioni. Alcuni strumenti di analisi della sicurezza dinamici e statici ora forniscono ganci o metodi per il controllo qualità da eseguire. Ad esempio, una PMI della sicurezza potrebbe utilizzare W3AF (http://w3af.sourceforge.net/) per creare uno script python che il tuo tester QA possa eseguire su un'applicazione

    
risposta data 18.04.2012 - 22:01
fonte

Leggi altre domande sui tag