Come stimare il tempo impiegato per i test di sicurezza delle applicazioni Web?

3

Mi piacerebbe fare una sorta di stima per il tempo impiegato per testare un sito Web / un'applicazione web per vulnerabilità della sicurezza. Testerò i siti web contro OWASP Top 10

Sulla base delle mie conoscenze, il numero di URL statici / dinamici, il numero di parametri da testare (URL, corpo) in un sito Web, altri punti di inserimento come i parametri dei cookie, il nome del parametro, le intestazioni HTTP, i parametri di stile REST sono tutti fattori che contribuiscono il tempo impiegato Si prega di correggere se ho torto.

Detto ciò, quali sono tutti i fattori che possiamo includere per arrivare in un momento in cui è necessario eseguire la valutazione della sicurezza?

Inoltre, dato che la stima dovrebbe essere fatta prima di iniziare il test e il numero di URL / parametri in un sito web saranno noti in fasi successive (come dopo lo spidering / crawling), c'è un modo per fare preventivamente la stima?

Business Logic, numero di funzioni da testare, il numero di livelli di Privilege può dire il tempo impiegato, ma non si ridurrà al numero di parametri che testeremo?

Vorrei fare questa stima per convincere il mio cliente del tempo impiegato per eseguire la valutazione.

Ad esempio, se il mio cliente chiede di eseguire la valutazione di 10 siti Web in "n" giorni, dovrei essere in grado di dire loro con la prova / stima che impiegherà tempo "X".

Qualcuno potrebbe condividere i tuoi pensieri? C'è qualche metodo per questo?

    
posta Karthikaravind 19.08.2015 - 07:03
fonte

2 risposte

3

Non puoi fornire la prova che ci vorranno n giorni per la valutazione della vulnerabilità. Puoi fornire loro una stima.

Quando cerco un'applicazione per test, ci sono alcune cose che guardo. La maggior parte è ciò che hai già indicato.

  • Che cosa fa l'applicazione (elaborare denaro o dati sulle risorse umane o servire un blog)
  • Quanto è grande l'applicazione (pochi URL / pagine o molto, solo contenuto o molte funzionalità)
  • Quanto è complessa l'applicazione (dimensioni e complessità non sono sempre la stessa cosa)
  • Quanti ruoli sono coinvolti (es. utente, amministratore, super amministratore)
  • Qualsiasi API coinvolta (ad esempio REST, SOAP, personalizzata)
  • Sono coinvolti più client (es. mobile, thick client e web)

Come ogni cosa, serve esperienza per essere in grado di esaminare con precisione un oggetto per il test. Prenderai in considerazione per quanto tempo un'applicazione di dimensioni e complessità simili ti porterebbe a testare e ad avere un ambito appropriato. A seconda di dove lavori, potrebbe esserci una formula per x tempo trascorso su diversi tipi di funzionalità e altri fattori, che dipende dal tuo datore di lavoro.

Se hai l'opzione, ti suggerirei di ascoltare qualcuno che ha una maggiore esperienza nel tuo team, in modo che tu possa capire come lo fanno e perché hanno preso le decisioni che hanno preso. L'under-scoping o l'over-scoping per un client può causare uno o entrambi i problemi. Se lo si sottoriforma, tu o la persona del tuo team potrebbe non avere abbastanza tempo per completare il test e l'over-scoping può far sì che il cliente spenda denaro inutilmente. Gli errori sono fatti naturalmente, è parte del processo di apprendimento, ma è importante capire il motivo per cui le cose sono esaminate nel modo in cui vengono esaminate prima di saltare senza l'esperienza di backup.

    
risposta data 19.08.2015 - 09:39
fonte
3

Vorrei aggiungere la mia opinione su questo. Supponiamo che tu abbia un'applicazione da testare (non includo i thick client qui perché è una pura applicazione web). Le condizioni su cui potrebbe basarsi la stima sono:

Elementi considerevoli

  • Numero di URL che possono essere recuperati tramite Burp's Spider
  • Numero di parametri che possono essere recuperati tramite gli strumenti di coinvolgimento di Burp
  • Numero di vhost se non punta alle stesse risorse dell'applicazione principale
  • Esistenza di servizi Web o API inclusi nell'ambito

    1. Qui ti piacerebbe recuperare le API incluse tramite Questionari
    2. Mappa il parametro dei servizi web (REST o SOAP)
    3. Aggiungi tutto ciò ai puntatori dei servizi Web (somma)

Stima

La complessità e le dimensioni descritte in precedenza nella risposta possono essere determinate accedendo ai vhost, al numero di URL dinamici (solo dinamico significa che l'applicazione sta parlando al back-end a livello di livello dati). Prendi in considerazione l'utilizzo di casi di test come quello che ho riportato nella mia ricerca precedente per i client (questo è privato e uno può definirlo):

Senonseiaconoscenzaehaiquasibisognodistimareunrecapitosullatimeline,usalatabelladiGnattperognimodulodipresentazioneetestcase,cioèdefiniscimoduliinterminiperiodicicome"Casi di test di sicurezza di input validazione", Casi di test di sicurezza per la gestione della sessione, ecc. Uno sguardo alla timeline sottostante deve dare un'idea assoluta di come stimare una corretta pianificazione di consegna aziendale:

Maprimadituttociòcheèpiùsignificativoèlaroadmapdelprogettistadelprogettoedescriverealclienteicasiditestnecessarinelfogliodilavoroinmodocheilclientepossanecessariamentepassareattraversoildocumentodeirequisitiefornireunasottomissioneperlostessopianificazionedellatimelineperte;questopuòesserefattoinunodiquestimodi:

  1. Mappareirequisiti,sewhite-box,qualisonoirequisitidellecredenziali,ecc?
  2. Riempiglispazivuoti,controllal'applicazioneprimadelcommit,qualisonoidettaglipiùrichiesti?
  3. Raggiungisempreleconclusionidallasommatoriadiquantosopra.
  4. Aggiungipiùquantitàdigiornirispettoall'originalederivato,inquestomodogarantiscilaqualità.

Unpianificatorediprogettopuòavereunaspettosimileaquesto,chepuòessereun'esigenzaintegranteperpianificarelefasidelprogettodisicurezzadelleapplicazioniWebepuòaiutartiadefinireletempisticheperilprogetto:

La stima è di nuovo il sottoprodotto e non è necessariamente che non dovresti affrontare alcun problema di scorrimento, ritardo temporale sul progetto, risorse per il progetto, ecc. tra il progetto ( ed è il motivo per cui il post del giorno aggiuntivo su cui si mappano le scadenze). Ora, quello che rimane è quello di puntare il percorso critico e i punti di interruzione del progetto, ad es. cosa potrebbe andare storto e in quale misura, ecc. È necessario gestirlo molto bene e definire tutto in anticipo. Buona fortuna! Spero che queste informazioni siano utili.

    
risposta data 19.08.2015 - 10:30
fonte

Leggi altre domande sui tag