Domanda

Abbiamo centinaia di siti web che sono stati sviluppati in asp, .net e java e stiamo pagando un sacco di soldi per un'agenzia esterna di fare un test di penetrazione per i nostri siti di controllare le falle di sicurezza.Ci sono (buona) software (a pagamento o gratis) per fare questo?

o..ci sono articoli tecnici che mi può aiutare a sviluppare questo strumento?

È stato utile?

Soluzione

Ci sono un paio di direzioni diverse si può andare con strumenti di test automatici per le applicazioni web.

Ci sono, innanzitutto, il commerciale web scanner, quale HP WebInspect e Rational AppScan, sono i due più popolari.Questi sono "all-in-one", "fire-and-forget" gli strumenti che si scarica e si installa sul desktop di Windows e quindi dare un URL di ragno tuo sito, effettuate per la ben nota vulnerabilità (vale a dire, le cose che hanno colpito di Bugtraq), e la sonda per il cross-site scripting e la vulnerabilità di tipo SQL injection.

In secondo luogo, ci sono i il codice sorgente di scansione strumenti, di cui Coverity e Fortificare sono probabilmente i due più noti.Questi sono strumenti che si installa su un developer del desktop del processo di Java o C# codice sorgente e guardare per ben noti motivi di insicurezza codice, come il povero convalida dell'input.

Infine, ci sono i test di penetrazione strumenti.Il più popolare di web app strumento di test di penetrazione tra i professionisti della sicurezza è Burp Suite, che si può trovare presso il http://www.portswigger.net/proxy.Altri includono Spike Proxy e OWASP WebScarab.Di nuovo, potrete installare questo sul desktop di Windows.Funzionerà come un proxy HTTP, e ti punta il tuo browser.Potrete utilizzare le vostre applicazioni come un normale utente, mentre registra le tue azioni.Si può poi tornare indietro per ogni singola pagina o HTTP azione e sonda per problemi di sicurezza.

In un ambiente complesso, e soprattutto se stai pensando a qualcosa di fai da te, Ti consiglio vivamente la penetrazione di strumenti di test.Ecco perché:

Commerciale web scanner di fornire un sacco di "ampiezza", insieme con ottimi rapporti.Tuttavia:

  • Essi tendono a perdere le cose, perché ogni applicazione è diversa.

  • Sono costosi (WebInspect inizia il 10 di migliaia).

  • Stai pagando per le cose che non è necessario (come i database del noto bad Cgi dagli anni '90).

  • Sono difficili da personalizzare.

  • Essi possono produrre rumoroso risultati.

Il codice sorgente degli scanner più approfondita di web scanner.Tuttavia:

  • Essi sono anche più costosi rispetto al web scanner.

  • Essi richiedono il codice sorgente di operare.

  • Per essere efficaci, necessitano spesso di annotare il codice sorgente (per esempio, per individuare percorsi di ingresso).

  • Essi hanno la tendenza a produrre falsi positivi.

Entrambi scanner commerciali e il codice sorgente scanner hanno la cattiva abitudine di diventare shelfware.Peggio, anche se lavorano, il loro costo è paragonabile a recupero di 1 o 2 intere applicazioni controllati da una società di consulenza;se ti fidi del tuo consulenti, avrete la garanzia di ottenere i migliori risultati da loro che dagli strumenti.

Test di penetrazione strumenti sono aspetti negativi di troppo:

  • Sono molto più difficili da usare rispetto a fire-and-forget scanner commerciali.

  • Essi presuppongono alcune competenze in le vulnerabilità delle applicazioni web --- devi sapere quello che stai cercando.

  • Essi producono poco o nessun formale segnalazione.

D'altra parte:

  • Sono molto, molto più conveniente --- il migliore del lotto, Burp Suite, costa solo 99EU, e dispone di una versione gratuita.

  • Sono facili da personalizzare e aggiungere ad una fase di verifica del flusso di lavoro.

  • Sono molto meglio ad aiutare a "conoscere" le applicazioni da interno.

Qui è qualcosa che devi fare con una penna-strumento di test per un'applicazione web di base:

  1. L'accesso all'applicazione tramite il proxy

  2. Creare un "hit list" delle principali aree funzionali dell'applicazione, e di esercitare ogni volta.

  3. Utilizzare il "ragno" strumento penna-applicazione di test per trovare tutte le pagine e le azioni e i gestori nell'applicazione.

  4. Per ogni pagina dinamica e ogni modulo HTML ragno scopre, utilizzare il "fuzzer" strumento (Burp chiama un "intruso") per l'esercizio di ogni parametro di input non validi.La maggior parte fuzzers venire con test di base che contenga:

    • SQL metacaratteri

    • HTML/Javascript sfugge e metacaratteri

    • Internazionalizzati varianti di questi per eludere i filtri di ingresso

    • Noto default nomi dei campi del form e valori

    • Noto i nomi delle directory, i nomi di file e gestore di verbi

  5. Trascorrere alcune ore di filtraggio i conseguenti errori (un tipico fuzz di un modulo potrebbe generare 1000 di loro), alla ricerca di sospetti risposte.

Questo è un lavoro intensivo, "bare-metal" approccio.Ma quando la società è proprietaria di applicazioni vere e proprie, il bare-metal approccio paga, perché si può usare per costruire regressione suite di test che verrà eseguito come un orologio ogni dev ciclo per ogni app.Questa è una vittoria per tutta una serie di ragioni:

  • Il test di sicurezza avrà una quantità prevedibile di tempo e di risorse per l'applicazione, che consente di bilancio e la valutazione.

  • La tua squadra al massimo accurata ed approfondita dei risultati, dal momento che il test sta per essere ottimizzata per le applicazioni.

  • Costerà meno di scanner commerciali e a meno di consulenti.

Naturalmente, se si va questa strada, tu sei fondamentalmente se stessi girando in un consulente di sicurezza per la vostra azienda.Non credo che sia un male;se non si desidera che la competenza, WebInspect o Fortificare non sta andando per aiutarvi a molto comunque.

Altri suggerimenti

So che hai chiesto, in particolare, sulle pentesting strumenti, ma dal momento che coloro che sono già stati ampiamente risposto (io di solito andare con un mix di AppScan e addestrati pentester), credo sia importante sottolineare che il pentesting non è l'unico modo per "controllare le falle di sicurezza", ed è spesso non è il più efficace.

L'analisi del codice sorgente di strumenti in grado di fornire una visibilità decisamente migliore nel tuo codice, e trovare molti difetti che il pentesting non.

Questi includono Fortificare e OunceLabs (costoso e per molte lingue), VisualStudio.NET CodeAnalysis (per .NET e C++, la connessione con VSTS, decente ma non eccezionale), OWASP la LASSO per Java (connessione decente non grande), CheckMarx (non a buon mercato, strumento fantastico per .NET e Java, ma in alto, sopra la testa), e molti altri.

Un punto importante che è necessario prendere nota - (la maggior parte) i strumenti automatizzati e non trovare tutte le vulnerabilità, non è nemmeno vicino.Ci si può aspettare gli strumenti automatizzati per trovare circa il 35-40% del secbugs che si sarebbe trovato da un professionista pentester;lo stesso vale per la automatizzati vsmanuale per l'analisi del codice sorgente.

E, naturalmente, una corretta SDLC (Security Development Lifecycle), compresa la Minaccia di Modellazione, Design Review, ecc, aiuterà ancora di più...

Ho sentito buone cose su di SpiDynamics WebInspect quanto riguarda le soluzioni a pagamento va, come Nikto (per una soluzione gratuita) e di strumenti open source.Nessus è un ottimo strumento per le infrastrutture, nel caso in cui è necessario verificare che il livello.Si può prendere un cd live con diversi strumenti su di esso chiamato Nubuntu (Sindaco, Elica, o un qualsiasi altro titolo di distribuzione basati su opere di troppo) e poi con Google qualche tutorial per lo specifico strumento.Sempre, sempre assicurarsi di scansione della rete locale però.Si corre il rischio di avere voi stessi, bloccati dalla data center se si esegue la scansione di un box da WAN senza autorizzazione.Abbiamo imparato la lezione nel modo più duro.;)

Skipfish, w3af, arachni, ratproxy, ZAP, WebScarab :tutti gratuiti e molto bene IMO

http://www.nessus.org/nessus/ -- Nessus aiuterà suggerisce modi per rendere il vostro server di meglio.Non può realmente test di applicazioni personalizzate per sé, anche se credo che i plugin sono relativamente facili da creare sul proprio.

Guarda Razionale Applicazione Di Scansione (usato per essere chiamato Watchfire).La sua non è gratis, ma ha una bella interfaccia utente, è morto potente, genera report (su misura e contro standard di conformità quadri come Basel2) e credo che tu possa script nel tuo CI build.

Come circa nikto ?

Per questo tipo di test si vuole veramente essere alla ricerca di un qualche tipo di fuzz tester. SPIKE Proxy è uno di un paio di fuzz tester per applicazioni web.È open source e scritto in Python.Io credo che ci sono un paio di video da BlackHat o DefCON sull'utilizzo di SPIKE là fuori da qualche parte, ma sto avendo difficoltà a trovare loro.

Ci sono un paio di high-end professionali pacchetti software che farà la web app di test e molto altro ancora.Uno dei più popolari strumenti sarebbe CoreImpact

Se avete intenzione di fare con la Penna Prova su tuo consiglio vivamente di leggere molto di OWASP Progetto di documentazione.In particolare l'OWASP Applicazione della Verifica di Sicurezza e di Test/Sviluppo di guide.La mentalità è necessario testare la tua applicazione è un po ' diversa da tuo normale sviluppo di mentalità (non che DOVREBBE essere diverso, ma di solito è).

che dire ratto proxy?

Semi-automatizzato, in gran parte passiva web applicazione strumento di controllo della sicurezza, ottimizzato per un'accurata e rilevazione sensibile, e automatico annotazione, di potenziali problemi e rilevanti per la sicurezza, design patterns basata sull'osservazione dell'esistente, iniziata dall'utente traffico web complesse 2.0 ambienti.

Rileva e dà la priorità grandi classi problemi di sicurezza, come dinamica cross-site modello di trust considerazioni, inclusione di script problemi, contenuto servire problemi, insufficiente XSRF e XSS difese, e molto di più

Ratproxy è attualmente ritiene di supportare Linux, FreeBSD, mac os X e Windows (Cygwin) ambienti.

So che hai chiesto, in particolare, sulle pentesting strumenti, ma dal momento che coloro che sono già stati ampiamente risposto (io di solito andare con un mix di AppScan e addestrati pentester), credo sia importante sottolineare che il pentesting non è l'unico modo per "controllare le falle di sicurezza", e spesso non è il più efficace.

L'analisi del codice sorgente di strumenti in grado di fornire una visibilità decisamente migliore nel tuo codice, e trovare molti difetti che il pentesting non.

Questi includono Fortificare e OunceLabs (costoso e per molte lingue), VisualStudio.NET CodeAnalysis (per .NET e C++, la connessione con VSTS, decente ma non eccezionale), OWASP la LASSO per Java (connessione decente non grande), CheckMarx (non a buon mercato, strumento fantastico per .NET e Java, ma in alto, sopra la testa), e molti altri.

Un punto importante che è necessario prendere nota - (la maggior parte) i strumenti automatizzati e non trovare tutte le vulnerabilità, non è nemmeno vicino.Ci si può aspettare gli strumenti automatizzati per trovare circa il 35-40% del secbugs che si sarebbe trovato da un professionista pentester;lo stesso vale per la automatizzati vsmanuale per l'analisi del codice sorgente.

E, naturalmente, una corretta SDLC (Security Development Lifecycle), compresa la Minaccia di Modellazione, Design Review, ecc, aiuterà ancora di più...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top