lunedì 27 agosto 2012

Benvenuti allo scheduler ASafaWeb


Ho iniziato a costruire ASafaWeb - l'analizzatore automatico di sicurezza per i siti web ASP.NET - circa un anno fa per cercare di automatizzare i processi che ho trovato ho continuato a fare manualmente, vale a dire il controllo della configurazione di sicurezza di ASP.NET applicazioni web. Vedete, il problema è che sono stato coinvolto nella costruzione di un sacco di applicazioni grandi, ma la gente spesso ottenere configurazioni di sicurezza poco male, la mancanza di un pagina personalizzata degli errori, analisi dello stack zampillante o richiesta di convalida è spento tra numerosi altri reati web app di sicurezza.
Il fatto è che tutte queste cose sono molto facilmente rilevabili a distanza senza alcun accesso al codice sorgente, è solo bisogno di fare alcune richieste HTTP e trarre alcune conclusioni in base alla struttura delle risposte. Volevo rendere morto facile per le persone a eseguire queste scansioni sui loro siti in modo ho costruito ASafaWeb , inserire una casella di testo grande grande in prima pagina per prendere un URL e disse: "Ecco qui". Questo è stato - ed è tuttora - ASafaWeb su richiesta:
ASafaWeb su richiesta
Dal dicembre 2011, quando ho iniziato la registrazione de-identificati dati, ASafaWeb ha collezionato più di 27.000 su scansioni su richiesta. Quando ho analizzato la scansione risultaun paio di mesi fa, i due terzi dei siti web sono stati trovati ad avere gravi vulnerabilità di configurazione. Chiaramente ASafaWeb era trovare un sacco di problemi con i siti Web ASP.NET.
Ma una cosa che mi ha continuato a nag è che i siti web non sono statici, un sito web che passa una scansione oggi non garantisce che passerà domani. La facilità di configurazione in ASP.NET rimane, sia un punto di forza e di debolezza e ogni volta che abbiamo comunicato non c'è il rischio che un cambiamento nella configurazione ha introdotto una vulnerabilità. È per questo che oggi ho rilasciato la prossima fase di beta ASafaWeb al pubblico - scheduler:
Logo2
Dovrebbe essere evidente con il suo nome, ma la mia intenzione con lo scheduler è non solo di assicurarsi che il sito è oggi "sicuro", ma che rimane in quel modo. Questo è il mio bisogno, e credo che sia il bisogno di molti altri.

I casi d'uso

Vorrei sottolineare alcuni casi in cui un programmatore ha senso. Uno che Mi capita spesso di vedere è quando gli sviluppatori sono le eccezioni non gestite risoluzione dei problemi sul sito. Un sito web ben configurato ha errori personalizzati acceso e un default redirect per mostrare una pagina di errore descrittivo quando le cose vanno male. Il problema è che questo non vi dice esattamente quale sia la causa principale è - che è esattamente il modo in cui dovrebbe essere. Messaggi di errore interno dovrebbero mai essere mostrato al pubblico. Così l'autore si spegne errori personalizzati, pubblica il web.config e identifica la causa principale. Poi si dimentica di accendere di nuovo su.
Che lo scheduler ASafaWeb si è assicura che se questo scenario si pone, si trova su di esso presto perché il sito è regolarmente in fase di test per le vulnerabilità di configurazione come questa. Naturalmente per lo sviluppatore, l'opzione migliore è quella di utilizzare ELMAH per registrare gli errori da qualche parte visibile solo a loro - fintanto che tenere al sicuro. E c'è il nostro caso d'uso successivo - è facile da configurare ELMAH errata (vedere quel link precedente) e, anche se si ritiene che il configurazione di sicurezza è buona, la guida può cambiare nel corso del tempo, così come il lavaggio-up dal mio post.
Un altro caso classico è l'uso di nuove vulnerabilità. La questione hash DoS da dicembre colto tutti di sorpresa, ma il giorno dopo la patch di Microsoft, ASafaWeb era in grado di rilevare a distanza la presenza della patch. Ora, con lo scheduler, quando qualcosa del genere accade prossimo (e ricordate, hash DoS non è stato il primo episodio del genere ) ASafaWeb sarà in grado di identificare la non-patched siti e avvertire coloro che hanno configurato un programma in brevissimo tempo.

Impostazione di un programma di

Quindi, come si fa a impostare un programma di ASafaWeb? Ho fatto il più semplice possibile con un minimo assoluto nudo di attrito. Tutto quello che dovete fare è lì solo perché non avrebbe funzionato senza di essa e voglio spiegare ognuno di questi passi adesso.
In primo luogo, è necessario registrarsi . In realtà ci sono alcune ragioni per questo tra cui il fatto che avete bisogno di un po 'di metodo di accesso al scansioni personali. È necessario lasciare un indirizzo e-mail in modo da poter essere contattati, se necessario, dopo l'esecuzione della scansione e, infine, il programma di pianificazione consente di eseguire un sacco di scansioni su base regolare e non ci deve essere una qualche forma di responsabilità per questo. Tale responsabilità è che avete bisogno di identificarsi (più su quello a breve).Passando, ecco cosa ti verrà richiesto al momento della registrazione:
Modulo di registrazione
Il fuso orario è probabilmente l'unico campo che non esporre immediatamente il suo scopo.Quando si pianifica una scansione, tutto viene riconvertito l'ora locale e l'unico modo ASafaWeb può fare è che ha bisogno di sapere che cosa "locale" significa per voi.
Dopo l'iscrizione è necessario per verificare il tuo indirizzo e-mail. Avete tutti visto in azione su altri siti prima - subito dopo registrati si ottiene una e-mail con un "clicca qui per verificare" link allora sei in Questo torna alla responsabilità di nuovo, vi è il rischio di abuso e la verifica delle e-mail in qualche modo a mitigare tale.
Una volta verificato, si può immediatamente il login e iniziare a creare le scansioni pianificate dal link "Schedule" nella barra di navigazione:
Il link "Schedule" nella barra di navigazione
Non avrete alcun scansioni pianificate per cominciare così la prima cosa che si vede è un grande grande link "Crea". Ecco che cosa c'è dietro (l'ho già compilato per indicare scopo dei campi):
immagine
Lasciate che si esegue attraverso ciò che sta succedendo qui. In primo luogo, è necessario un URL, che è molto più evidente. Ciò che non è immediatamente evidente è che l'URL deve essere univoco per ogni utente, non si può effettivamente eseguire la stessa scansione ogni ora con la creazione di 24 programmi giornalieri per lo stesso URL.
A proposito di orari, è possibile pianificare le scansioni per funzionare sia ogni giorno o ogni settimana. Quando sono settimanale è possibile scegliere il giorno della settimana e in entrambi i casi si sceglie l'ora del giorno in cui si desidera che venga eseguito fino ad un intervallo di cinque minuti. Ciò consente di pianificare la scansione attorno a un ciclo di rilascio o di un incontro settimanale o semplicemente in modo che ti sta aspettando prima cosa ogni mattina.
Le notifiche sono ASafaWeb modo di comunicare i risultati della scansione a voi. Si può essere im Plicit o ex Plicit su come si desidera essere comunicato con. L'approccio esplicito deve essere notificata ogni volta il programma viene eseguito indipendentemente dal fatto che trova qualcosa o no. Significa che è possibile ottenere un feedback positivo sullo stato del vostro sito (s) senza chiedersi se la cosa funziona, semplicemente perché non ha trovato un problema. Naturalmente l'approccio inverso è solo una notifica quando qualcosa è andato storto. In realtà inizialmente questo è quello che ho pensato la maggior parte delle persone vorrebbe - dimmi solo dopo che l'ho rotto - ma il feedback del beta privata era che alcune persone vogliono la comunicazione in più, o per lo meno la possibilità di scegliere.
Se si decide di essere informato una volta che qualcosa va storto, è quindi necessario scegliere cosa deve andare male per essere notificato. Lasciate che vi faccia un esempio: dire che hai un sito DotNetNuke e si desidera impostare una pianificazione ASafaWeb. Ora, purtroppo, DotNetNuke fallirà sempre la scansione convalida della richiesta in modo da essere in grado di scegliere di ignorare questo è importante.
Una volta che la scansione impostato apparirà indietro sulla pagina programma insieme a tutti quelli successivi si aggiunge:
Eseguire la scansione della pagina di pianificazione
Ora si può sempre basta premere il pulsante "Scan Now", che richiama verso il ASafaWeb classico scansione su richiesta, ma anche aggiornare il record pianificato. Oppure, in alternativa, aspettare fino a quando il programma viene intorno e fa sì che venga eseguita la scansione in questo caso si otterrà una bella email con tutti i dettagli:
immagine
Una volta che l'esecuzione della scansione, lo stato nella pagina programma sarà aggiornato e in questo caso, la scansione non riesce:
immagine
È inoltre possibile sempre e solo mettere in pausa la scansione poi reattiva in un secondo momento (per esempio, si sa che ha problemi si sta risolvendo) o eliminare la cosa in modo permanente. Inoltre, naturalmente, puoi sempre tornare indietro e modificarlo.

Monitoraggio e privacy

Fino ad oggi, una cosa che ho sempre stato irremovibile circa con ASafaWeb non è in possesso di alcun dato assolutamente, positivamente non ha bisogno di tenere. Non c'è modo più sicuro di non averlo rivelato piuttosto che non avere in primo luogo!
I cambiamenti di programma, ma solo per un po '. Chiaramente ASafaWeb deve ora seguire l'URL da controllare nel programma e, ovviamente, per il raggiungimento degli stati nella schermata afferra sopra di esso ha bisogno di memorizzare questi contro tali URL. Per ovviare a questo, non ci sono dati storici memorizzati (è solo lo stato della scansione) più non c'è fedeltà memorizzate su ciò scansione non riuscita (stack ad esempio).
Nel corso del tempo, terrò d'occhio il feedback in merito alla legittimità di questo approccio rispetto al valore di contenere più dati. Già ho avuto feedback da parte della beta privata che la gente vorrebbe essere in grado di visualizzare i risultati storici (vale a dire come profilo di sicurezza di un sito è cambiato nel corso del tempo), e questa è una possibilità per il futuro (tra molte altre possibilità).

Avvertenze

Sono finora riuscita a evitare termini e condizioni e gli accordi inane che soddisfano nessuno al di fuori della professione di avvocato e sarò mantenendo in questo modo il più a lungo possibile. Ma ci sono alcune cose di essere a conoscenza e sono per lo più le cose di buon senso:
  1. Le scansioni pianificate sono un "Best Effort" sforzo. In altre parole, ASafaWeb farà tutto il possibile per eseguire la scansione, al momento previsto, ma non ci sono garanzie. Ci potrebbe essere una coda massiccia di scansioni contemporaneamente, ci potrebbero essere interruzioni della rete, ci potrebbero essere interruzioni piattaforma.Detto questo, è dimostrato altamente affidabile nel mesi di test, quindi sono cautamente ottimista.
  2. Non c'è ancora la prova della proprietà necessaria per eseguire una scansione su un sito web, è possibile letteralmente correre contro qualcosa. Tuttavia, vi è ora una funzione "lista nera", che è un peccato sottoprodotto di incidenti precedenti (sì, c'è stato più di uno) in cui un proprietario del sito ha richiesto ASafaWeb non eseguire la scansione del sito. E `una reazione eccessiva? Forse, sono innocui richieste HTTP in un mare di quelli maligni (a giudicare da alcune delle richieste che vedo), ma è meglio per giocare a questo al sicuro. In breve, si prega di pianificare le scansioni contro ivostri siti!
  3. Mi tengo il tag "beta". A torto oa ragione, questo è un esempio che io ancora non considerano ASafaWeb essere "completo". Ora, naturalmente, implica che ci uno stato assoluto in cui non succede un ulteriore sviluppo che tutti conosciamo se non il caso (né deve essere), ma ci sono un paio di cose in cantiere che a mio avviso devono essere completate prima di considerare questo un approccio olistico offrendo. Tutto questo è quello che accadrà dopo ...

Che cosa succederà dopo?

ASafaWeb ha una tabella di marcia - orari è una delle fermate lungo il percorso, ma ci sono molti, molti di più a venire. La tabella di marcia si rompe in realtà giù in un paio di sfaccettature che si può pensare come funzioni su un asse (di cui la programmazione è uno) e analizza sull'altro asse.
Le caratteristiche hanno una tabella di marcia che prevede la ricerca di modi migliori per legare scansioni in punti chiave del ciclo di rilascio di un'applicazione oltre a rendere più facile per eseguire la scansione di più dei vostri siti. Terrò i dettagli un po 'tranquilla, per ora, ma questo è il senso generale.
Ci sono molte opzioni a sinistra per le scansioni troppo, in realtà ci sono una serie di attributi aggiuntivi configurazione di sicurezza che possono essere rilevati dai modelli esistenti di richiesta per non parlare di quelli che possono essere perseguiti facendo più richieste. Il trucco è che con le scansioni fatte richieste HTTP è costoso . Non in termini di dollari (almeno non direttamente), ma in termini di risorse di sistema legare con lunghi processi in esecuzione.
La tabella di marcia per entrambe le caratteristiche e le scansioni scorrerà sulle con contributi continui a ciascuno. In realtà parlare di continuo, il concetto di erogazione continua è molto caro al mio cuore e alcune di queste nuove funzionalità si legano in quella molto bene. Restate sintonizzati!

Go for it!

In modo che è tutto per ora - gli orari sono finalmente dal vivo! Mi piacerebbe il tuo feedback su questa funzione e, infatti, che è il modo migliore per assicurarsi che sia pertinente e utile a tutti. Come prima, anche al di fuori delle nuove funzionalità ASafaWeb continuerà ad evolversi, non una settimana è passato dal momento del lancio, che non ho scritto almeno un manciata miglioramenti che vanno da semplici modifiche CSS alla compatibilità cellulare per modifiche funzionali per la scansione comportamento. In modo da mantenere il feedback venire e mi aiuta a fare ASafaWeb una risorsa davvero preziosa per voi.

Nessun commento:

Posta un commento