Strumenti dinamici per test di sicurezza delle applicazioni

7

Esiste uno strumento di verifica della sicurezza delle applicazioni dinamiche (DAST) che può essere eseguito su applicazioni dinamiche html / JavaScript ajax? Un'opzione open source sarebbe l'ideale - o se questo non esiste, allora una caratteristica di uno strumento Enterprise sarebbe la risposta alla medaglia d'argento.

Ho un'applicazione ExtJS (JavaScript) e ho provato ad usare HP Fortify, ma questo strumento vede solo la pagina indice e di conseguenza non può eseguire l'analisi dell'applicazione come risultato.

Non sto cercando uno strumento per fornire protezione da solo, ma come un elemento nella mia cintura degli attrezzi per aiutare a fornire una notifica che sono presenti errori evidenti o evidenti nell'applicazione (Altri strumenti sono recensioni di codice, test di penetrazione , ecc.) Qualsiasi risultato impostato dallo strumento dovrebbe informare la presenza di problemi, ma capisco che nessuno strumento sarebbe in grado di informare della loro assenza.

Inoltre, qualsiasi strumento verrebbe utilizzato in aggiunta ai test di penetrazione simultanea. Gli esempi in cui avete personalmente esperienza con lo strumento riceveranno una risposta, come dopo la demo di IBM AppScan e la discussione su NTO Spider, non ho ancora nulla di concreto (non materiale di marketing) che indica se questo problema è solo una tana del coniglio.

    
posta Thronk 28.02.2013 - 15:41
fonte

3 risposte

4

Stai cercando il "proiettile d'argento" per la scansione delle vulnerabilità. Ogni scanner di vulnerabilità afferma di supportare applicazioni basate su JavaScript e servizi Web e costituisce una menzogna completa e totale. La verità è che questo è un problema molto difficile da risolvere e un team di vendita ti dirà qualsiasi cosa per farti aprire il tuo portafoglio.

Eseguo il test di queste applicazioni utilizzando un approccio manuale e automatizzato combinato. Lo strumento che uso è Burp Intruder. Uso manualmente l'applicazione con un browser, Burp tiene traccia delle richieste e quindi le mando all'intruso per la fuzzing. Se non ti senti a tuo agio nel costruire i tuoi casi di test fuzz e scrivere codice di exploit, allora dovresti probabilmente assumere un tester di penetrazione professionale.

L'esecuzione di uno strumento non ti impedisce di essere violata.

    
risposta data 28.02.2013 - 19:24
fonte
2

Penso che questo sia un problema molto complesso da risolvere e tutti gli strumenti che abbiamo sono relativamente giovani. Tuttavia, penso che ci siano alcune buone opzioni là fuori, e alcune persone pioniere in questo settore.

Penso che ci siano due aspetti del problema proposto:

  • La più ovvia è la scansione. Lo strumento deve essere in grado di mappare l'intera applicazione, comprese eventuali richieste del server che potrebbe fare, al fine di ottenere una buona copertura / ampiezza. Tradizionalmente questo si ottiene semplicemente eseguendo la scansione della pagina HTML per collegamenti e moduli che puntano a più pagine, ma questo diventa difficile con le comunicazioni Ajax e le applicazioni a pagina singola.

  • Inoltre, le applicazioni client-pesanti, con un sacco di codice Javascript che esegue la logica dell'applicazione nell'agent user, hanno più probabilità di avere bug di sicurezza nel codice lato client stesso. Difetti come lo scripting cross-site basato su DOM possono verificarsi in qualsiasi applicazione che utilizzi script sul lato client, quindi gli strumenti hanno idealmente bisogno della possibilità di individuare vulnerabilità anche in questo codice.

Alcuni strumenti hanno dimostrato di possedere queste capacità e il denominatore comune è la capacità di elaborare Javascript. Ad esempio, strumenti come Crawljax possono essere utilizzati dai pentesters per mappare le applicazioni elaborando effettivamente ogni pagina come se fosse in un browser (a volte effettivamente caricando in un'istanza del browser). Abbiamo anche ottime utility come PhantomJS che consente di elaborare il codice Javascript in modalità headless.

Qui ci sono un paio di strumenti che ho usato per tentare di raggiungere quanto sopra - entrambi sono open source:

  • OWASP Zed Attack Proxy (ZAP) - OWASP ZAP include un crawler AJAX (oltre a un crawler tradizionale) che genera in realtà istanze del browser per rendere ed elaborare pagine e identificare nuovi percorsi attraverso l'applicazione. Non penso gli scanner automatici rileveranno ancora numerosi problemi relativi al codice lato client, ma ZAP ha almeno introdotto alcune funzioni utili per testarli manualmente.

  • Arachni - Questo è, a mano in giù, il miglior scanner automatico che ho usato personalmente, e un progetto davvero fantastico secondo me. Sembra fare un ottimo lavoro di scansione della maggior parte delle applicazioni HTML5 e utilizza PhantomJS per elaborare Javascript (senza testa). Anche i test per XSS basati su DOM e simili sembrano funzionare abbastanza bene.

Non penso che nessuno strumento sia particolarmente lucido quando si tratta di moderne applicazioni web HTML5, ma ci sono certamente alcuni progressi, e andranno solo meglio.

Dovrebbe essere ovvio che gli strumenti di test automatici sono molto limitati rispetto ai test di penetrazione, specialmente nell'arena appsec, e dovrebbero pertanto essere usati insieme (come ha riconosciuto l'OP). La mia risposta ha presupposto che sia necessaria una soluzione completamente automatizzata. Dove un operatore umano può essere costantemente coinvolto, qualcosa come Burp Suite è sicuramente una buona opzione.

    
risposta data 05.05.2015 - 02:14
fonte
-1

IBM ha uno strumento per analizzare le applicazioni Web Javascript e AJAX-y per le vulnerabilità. Si chiama Javascript Security Analyzer , e penso che è incluso in alcune versioni di IBM AppScan. Non ho esperienza personale con esso, ma alcune delle loro pubblicazioni fanno sembrare che potrebbe essere quello che stai cercando. Scansiona in modo dinamico il tuo sito Web per trovare ed esercitare tutto il codice Javascript, quindi analizza staticamente Javascript e pagine Web per XSS lato client e altre vulnerabilità simili.

Non conosco alcuno strumento open-source di questo tipo. Gli strumenti di pentesting Web in genere non hanno la capacità di analizzare il codice Javascript per le vulnerabilità e trovare XSS lato client può essere non banale.

    
risposta data 06.03.2013 - 20:00
fonte

Leggi altre domande sui tag