venerdì 21 marzo 2014

Formazione della prossima generazione di sviluppatori di essere attenti alla sicurezza in FireBootCamp di SSW

Sentito parlare di FireBootCamp di SSW prima? E 'come quei campi di boot che vedete giù le spiagge locali e parchi ogni mattina, sapete, quelli in cui un gruppo di (apparentemente) partecipanti disposti sono incessantemente martellato da un sergente istruttore-come personal trainer per 30 minuti di sangue, sudore e lacrime (presumo). Ma a differenza di questa folla, la gente FireBootCamp Non poi asciugamano fuori e freddo per il resto della giornata, invece lo fanno, giorno dopo giorno, settimana dopo settimana per un intero bimestre livello di pieno assalto mondo reale coder formazione.
L'idea del FireBootCamp è che è intenso allenamento per aspiranti sviluppatori di software su tutti i buoni pezzi di tecnologie e pratiche di sviluppo Microsoft. La gente va in con un'esperienza molto limitata (o forse nessuno) nel lavorare con questi strumenti e poi venire con una vasta gamma di competenze che hanno affinato durante la costruzione di software real con il supporto professionale di ogni passo del cammino.
Una delle cose che mi piace davvero il modo SSW ha affrontato questo è che hanno ottenuto vari esperti in materia a parlare di parti specifiche dei processi software edificio. Sto parlando di cose come capire l'ottimizzazione dei motori di ricerca, alle prese con API Web e diciamocelo, la cosa più importante di costruire software (ok, una molto importante), la sicurezza. Mi voltai di scatto per una chiacchierata che è stato registrato e pubblicato , che sono felice di condividere con voi qui. (Per inciso, io amo queste impostazioni più intime dove si può avere un po 'di divertimento e di impegnarsi direttamente con le persone, spero vi piaccia!)

mercoledì 19 marzo 2014

Nuovo corso Pluralsight: Web Security e OWASP Top 10 - "The Big Picture"

E ora per la mia quarta rata Pluralsight: più OWASP ! Aspetta - non è stato fatto questo già?! Sì e no.
Il mio primo corso dal mese di aprile dello scorso anno è stato OWASP Top 10 Rischi applicazioni Web di sicurezza per ASP.NET e come suggerisce il titolo, contiene un mucchio di roba su come OWASP applica ai ASP.NET. In realtà esso contiene tanta roba che è oltre 8 ore di formazione approfondita per gli sviluppatori su (quasi) tutto quello che c'è da sapere per proteggere le loro applicazioni web. NET. A detta di tutti, il corso è stato estremamente popolare e ha costituito la base per molti un set predefinito di organizzazione delle risorse di formazione per sviluppatori. E 'anche valutato molto bene - mese su mese il audience sta salendo ed è valutato 4,8 su 5 dalle centinaia di persone che hanno avuto il tempo di segnare esso.
Il grande cambiamento con questo ultimo corso è che è stato progettato per attirare un pubblico molto più ampio sia in termini di profondità (dettaglio del codice) e ampiezza (range di stack tecnologici). In realtà Pluralsight mi ha avvicinato per creare questo corso basato su richiesta popolare di una risorsa "Big Picture" che potrebbe essere consumato non solo da coloro che scrivono il codice, ma dai loro dirigenti e manager di loro manager e fondamentalmente chiunque abbia un interesse acquisito nel la sicurezza delle loro attività web. Si può vivere in PowerPoint e Outlook, e questo sarà ancora un senso!
Il modo in cui ho deciso di avvicinarsi a questo è quello di attenersi alle illustrazioni e spiegazioni di livello superiore di ciascun rischio. Ho usato l'edizione 2013 del Top 10 questa volta (il corso precedente era l'edizione 2010, anche se il contenuto è molto simile) e ho rotto ciascuno dei Top 10 rischi in quattro parti. Mi spiego meglio:
In primo luogo, io do una panoramica dei rischi spiegare i vettori di attacco, le debolezze di sicurezza e gli impatti tecnici. Questa è uscito da materiale di OWASP e aiuta a contestualizzare la gravità relativa di ogni rischio. Ho anche delineare uno scenario di attacco di altissimo livello. Ecco come si presenta per l'iniezione:
Panoramica Injeciton

martedì 18 marzo 2014

Ho messo il mio sito Azure nella posizione sbagliata, e adesso?!

Io ero piuttosto orgoglioso del mio piccolo sforzo settimana scorsa nella produzione Greatest Demo Azure del mondo e da tutti i conti, è stato eccezionalmente bene ricevuto (ehi, cosa ti aspettavi da una delle demo del mondo?!) Comunque, questo fine settimana sono tornato in e ha preso uno sguardo a ciò che lo Stato avevo lasciato il mio abbonamento Azure e ho visto questo:
Sito unico in esecuzione in modalità standard
Vedete il problema? No? Che ne dici di adesso:
Altri siti web che funzionano in Ovest Regione Uniti

venerdì 28 febbraio 2014

Nuovo. NET Compiler Hits CTP 2

Si andrà a sostituire il compilatore JIT64, permettendo programma si avvia più velocemente.
Nuovo, 64-bit Just-In-Time (JIT) di Microsoft ha raggiunto la prossima pietra miliare nel suo sviluppo, con il rilascio della seconda Community Technology Preview (CTP).
CTP 2 di RyuJIT stata proposta sul NET Framework blog.oggi. RyuJIT sostituisce il compilatore JIT64 vecchio, e in ultima analisi aiutare i programmi compilare ed eseguire più velocemente, con una migliore velocità di compilazione e una maggiore qualità del codice.
RyuJIT CTP1 "ha ricevuto una risposta tonante", secondo l'autore del blog, Mani Ramaswamy, Program Manager per il NET dinamica del codice Execution Team.. E 'stato rilasciato lo scorso settembre, di superare alcuni limiti del compilatore precedente, il blog afferma che "il JIT a 64 bit attualmente in NET non è sempre veloce a compilare il codice, significa che è necessario fare affidamento su altre tecnologie come NGen. o sfondo JIT per ottenere all'avvio del programma veloce ".
Il CTP 2 iterazione del RyuJIT "... genera il codice che è mediamente migliore rispetto al JIT64 esistente, mentre continua a mantenere la velocità 2X vince JIT64," gli stati del blog. Si aggiunge anche nuove funzionalità: chiamate tail "opportunistiche" e Edit & Continue. La squadra. NET Code Generation ha anche fatto CTP 2, più veloce e più ottimizzato, così come la fissazione tutti i bug che è stato trovato o segnalati. "... A questo punto, RyuJIT non ha bug conosciuti," bloggato Ramaswamy.
Un problema che alcuni sviluppatori avevano con CTP 1 era che funzionava solo su Windows 8.1 (e Windows Server 2012 R2). Gli sviluppatori resteranno infelici, come CTP 2 ha le stesse limitazioni.
RyuJIT CTP 2 è disponibile per il download gratuito . Gli sviluppatori che utilizzano dovrebbe ricordare che non è pronto per la produzione ancora, quindi non dovrebbe essere usato in tale ambiente. Nessuna data è stata data o implicita nel blog per quando anteprime future del compilatore sarebbero disponibili.

martedì 5 novembre 2013

Come costruire (e come non costruire) una funzione sicura "ricordati di me"



Ecco lo scenario - un utente accede al tuo sito web, torna domani e ... deve eseguire nuovamente il login.L'idea del "ricordati di me" - e diciamocelo, tutti abbiamo visto questo prima - è che il loro stato autenticato viene mantenuto al di là del campo di applicazione immediata di utilizzo. Che cosa questo significa è che si può chiudere il browser, spegnere il PC poi tornare domani o la prossima settimana o il mese prossimo o comunque molto più tardi si determina è un lasso di tempo ragionevole e il sito lo sa ancora chi sono e li offre tutte le stesse caratteristiche che avevano quando hanno lasciato.
Sto parlando di questo ragazzo poco qui:
"Resta collegato" da Facebook
Sembra facile, vero? Può essere, ma come vedrete non è inoltre raro fare un pasticcio assoluto di esso e anche quando non lo fanno bene, c'è una fila di persone pronte a dirvi come si è, infatti, non abbastanza giusto . Cominciamo con il proprio roba sbagliata e lavorare da lì.

Anti-modelli

Questo sembra ovvio, no? Voglio dire l'attuazione di una funzione di "ricordati di me" è abbastanza fondamentale, non è il genere di cose facilmente ottenuto sbagliato, no? Pare di no.
Vorrei condividere due anti-pattern e vedremo i problemi con loro prima di parlare di come farlo nel modo giusto. Il primo esempio viene fornito per gentile concessione di Black & Decker, che sarebbe la stessa B & D di recente ho scritto in sicurezza è difficile, l'insicurezza è facile . Ecco l'idea quando si effettua il login:
Accesso a Black & Decker
Questo è tutto abbastanza standard, il bit interessante viene dopo l'accesso Diamo uno sguardo ai biscotti:
Black & Decker biscotti
Questo è abbastanza impressionante serie di biscotti, ma è quelli evidenziati che sono veramente interessanti. Questi cookies non otterranno impostare se non si seleziona la casella "Ricordami" così la loro funzione è puramente password potrebbero tornare in seguito. Il mio indirizzo e-mail è abbastanza chiaramente in là, ma che non è la mia parola d'ordine, invece sembra essere una sorta di fortezza impenetrabile di crittografia ... appendere - che è la codifica Base64! La cosa di codifica Base64 è che è perfettamente completato da Base64 di codifica che significa che si può staccare, per un posto comebase64decode.org e fare questo:
Base 64 decodifica il cookie Black & Decker
Ora, non tutti usano Base64 come mezzo di "crittografia" (sì, alcune persone veramente fare questo ), e in effetti si tratta di un modo perfettamente legittimo di rappresentare i dati in un formato ASCII, la vera storia qui però è che questa è la mia password seduto lì nel mio browser in testo normale. Vi chiederete - perché questo è un problema? E 'nel proprio browser, giusto? In che modo un utente malintenzionato ottiene?
Ho intenzione di parlare di due modi molto semplici e il primo si riferisce al collegamento in precedenza circa l'insicurezza essere facile. Black & Decker erano esposti i registri ELMAH e in quei registri di stato ogni eccezione non gestita server interno, da qualche parte a nord di 50.000 di loro al momento ho riferito a loro. Quando ELMAH registra un'eccezione si registra anche tutte le intestazioni di richiesta che significa che i cookie sono registrati. Che si combinano con l'enorme numero di eccezioni non gestite essere generate dal sistema e ora avete un tesoro di credenziali utente. Sì, dovrebbero avere assicurato il loro log ELMAH correttamente per cominciare, ma si tratta di un buon esempio di come si può essere facilmente annullata da una semplice configurazione errata.
Ecco un altro:
Accesso a Aussie Agricoltori diretto
Questo è Aussie Agricoltori diretto ed è una abbastanza tipico log vedendo in forma. Facciamo il login, dirgli di "ricordati di me", poi dare un'occhiata ai biscotti:
Aussie Farmers cookie diretti
Oddio, di nuovo stesso problema, ma senza alcuna codifica Base64. In realtà questo è particolarmente grave perché si può fare cose come questa:
Biscotto impropriamente codificate su Aussie coltivatori diretti
XSS tuo biscotto JSON? Certo! L'altra peculiarità è che cambiando la password non cambia il cookie in modo da tornare al sito in seguito e si tenta di accedere in voi con quello vecchio. Oops.
Aussie Gli agricoltori diretti non hanno esposto i registri ELMAH (essendo sorta di PHP aiuta in questo!) Ma hanno altri rischi, quali XSS (per inciso, questo è stato divulgato in modo responsabile e il rischio sommariamente respinto - più volte). L'altra cosa su entrambi i siti di cui sopra è che quei biscotti che tengono le password non vengono contrassegnati come HttpOnly, si può vedere questo nella seconda colonna da destra nelle liste dei cookie. Che cosa questo significa è che lo script client può accedere a quei biscotti che significa che se si può ottenere un pezzo di XSS sul sito - così come è possibile sul sito Agricoltori australiano - è possibile rubare i cookie contenenti le password se è possibile ottenere un cliente di caricare il carico utile XSS (e ci sono molti modi per farlo). L'attributo HttpOnly manca è sciatto per conto di entrambi i siti, ma il nocciolo della questione è la memorizzazione delle password nei cookies che poi li rende vulnerabili tramite altre sviste.
C'è una ragione di più di fondamentale importanza perché entrambe queste pratiche sono negligenti, che stanno proteggendo le credenziali dei clienti utilizzati su altri siti. Ogni volta che un cliente che utilizza la funzione "ricordati di me" su uno dei siti di cui sopra fa una richiesta, c'è una buona possibilità che stanno inviando il nome utente e la password per la posta elettronica, il loro eBay o la propria banca attraverso il filo, a volte in pianura testo, a volte accessibile tramite script client, sempre seduto lì non protetto nel browser. password riutilizzo è dilagante e mentre quei dannati gli utenti dovrebbero prendere qualche sanguinosa responsabilità (sto parafrasando qui!), noi - come sviluppatori - dobbiamoriconoscere che siamo protezione molto più di nostro sito quando gestiamo credenziali.
Così che dovrebbe stabilire se vi sia un vero e proprio fraintendimento di come la funzione "ricordati di me" dovrebbe essere costruito, andiamo ora passare sulle buone pratiche.

Una implementazione di riferimento del campione

Uno dei mantra si sente spesso nel mondo della sicurezza è "non rotolare il proprio - utilizzare ciò che è già stato dimostrato di essere robusto". Questo è molto spesso applicato alla crittografia e schemi di autenticazione, ma in questo caso si può estendere questo per la caratteristica "ricordati di me", al fine di iniziare con una buona implementazione di riferimento prima di approfondire i dettagli.
In un nuovo sito Web ASP.NET MVC 4 provisioning con Visual Studio 2012 si ottiene questo diritto fuori dalla scatola:
Accesso a un'applicazione di esempio ASP.NET
Altri quadri hanno altri modi standard di implementazione di questa funzione, ma questo è un compito facile per me fare riferimento. Quando abbiamo Login con i campi come sopra (cioè non chiedendole di ricordarsi di me), risultati di autenticazione riusciti nel seguente biscotto da restituire:
path = /; HttpOnly
Questo è semplicemente un cookie di autenticazione e nel mondo senza stato che è HTTP è l'unico piccolo pezzo di dati che lega tutte le richieste altrimenti del tutto indipendenti da una persona insieme.Ogni volta che questo unico-a-me cookie viene inviato, il sito web sa che sono io e che ho già autenticato. Lo possiamo vedere po 'più chiaramente quando lo guardiamo nella raccolta Cookies di Chrome:
I cookie provenienti da un'applicazione di esempio ASP.NET senza la casella "Ricordami" controllati
Per inciso, il secondo cookie è un token antifalsificazione per prevenire attacchi CSRF e non ha nulla a che vedere con il nostro stato autenticato. Oltre a questo, non ci sono altri biscotti.
Vediamo ora il login e chiedere al sito di ricordare me, ecco la risposta di biscotto:
expires = Tue, 02-Jul-2013 00:27:05 GMT; path = /; HttpOnly
Aha - si vede che?! Si diventa più chiaro quando lo vedi suddiviso in Chrome:
I cookie provenienti da un'applicazione di esempio ASP.NET con la casella "Ricordami" controllati
Ora abbiamo una scadenza del cookie, che è di 48 ore da oggi al contrario di non avere scadenza del cookie che significa che verrà scartata quando il browser viene chiuso. Diamo uno sguardo più da vicino a questo.

Guardando auth cookie di scadenza

Questo è in realtà un ridicolmente facile costruire la sicurezza ed è solo alla luce degli esempi precedenti che mi piacerebbe anche pensare che vale la pena scrivere, ma qui siamo. In questa implementazione, il "Remember Me" si riduce semplicemente a quando il cookie di autenticazione scade, perché quello che stai facendo veramente qui è il controllo per quanto tempo si desidera che qualcuno a rimanere connesso per, è così semplice.
Nel precedente esempio, il default ASP.NET di utilizzare un cookie di sessione o in altre parole, un cookie che non ha una data di scadenza esplicita e sarà quindi forzatamente scade quando il browser viene chiuso. Questo è un approccio, un altro è impostare esplicitamente un breve periodo di scadenza in modo che, anche se il browser viene lasciata aperta l'utente verrà automaticamente disconnesso dopo un periodo di tempo. Naturalmente è anche possibile controllare questo comportamento sul server e si può anche tenere estendere la durata di un cookie di autenticazione se il sistema viene utilizzato attivamente dal server aumentando la data di scadenza sulla risposta.
Ricordando qualcuno può essere semplice come mantenere vivo il cookie auth. Quanto tempo dovrebbe essere mantenuto in vita per? L'esempio sopra il default è due giorni che è probabilmente un po 'corto per molti usi legittimi della funzione (anche se è facilmente configurabile in ASP.NET), prova a Facebook e anche se avrai i cookie che durano per un anno. Durata inferiore significa meno rischi ma più inconveniente, durata maggiore rende più facile per l'utente, ma aumenta la finestra di potenziale attacco. Diamo un'occhiata a questo rischio in modo più dettagliato.

Sfruttando stato di autenticazione di lunga durata

Mentre non si dispone dell'autenticazione, la sessione non può essere dirottato. Lo so, roba perspicace!Ma sul serio, prendere un caso come Aussie Agricoltori diretto di cui sopra; che cookie scadrà tra sei mesi e combinato con il fatto che non è contrassegnato come HTTP solo e che non hanno difetti XSS nel sito c'è ora una mezza finestra anno in cui solo a seguito di una link potrebbe causare me a consegnare inavvertitamente le mie credenziali per un attaccante. Se questo periodo è stato, diciamo, un mese sì, avrei ancora alcuni gravi difetti nel loro design, ma poi la finestra di opportunità per un attaccante è stato appena tagliato.
D'altra parte, Black & Decker ha un breve periodo di scadenza di una settimana rispetto così nel loro caso con i registri ELMAH a vista, sì, ci fu una serie di brutti errori da parte loro, ma a meno che qualcuno si era connesso con il "ricordati di me" casella evidenziata nella scorsa settimana e ha causato un'eccezione non gestita, le credenziali non sarebbero stati messi in mostra pubblica. Ok, se siete sul sito per cominciare c'è una buona possibilità che stai già effettuato l'accesso (almeno rispetto al caso di agricoltori in cui non si dovrebbe andare consapevolmente nessuna parte nei pressi del sito di perdere la tua password), ma si può vedere come tale profilo di rischio cambia con il periodo di scadenza dei cookie.
Naturalmente alla base di tutto questo è che il cookie auth deve essere attentamente tutelato; attributi HttpOnly e sicuro sono un must assoluto. Tutte le minacce classiche dirottamento restano pertinenti, ma poi di nuovo, ma si sezionare i questa funzione si sta andando a finire con una dipendenza biscotto quindi si sta andando ad avere bisogno di guardare molto, molto attentamente quei biscotti.
In definitiva si tratta di un compromesso che ha bisogno di prendere in considerazione fattori come il valore di un attaccante di dati dell'utente sul sito, la barriera che non viene autenticato pone a un utente di ritorno e il profilo di sicurezza del resto del sito. Per esempio, Facebook ha alcuni dati molto utili di carattere sociale e gli utenti si aspettano un basso attrito (anche senza processo-attrito) al ritorno, più che hanno fatto enormi investimenti nel loro profilo di sicurezza. Aussie Farmer'S, d'altra parte, contiene i dati di identificazione personale degli utenti più informazioni finanziarie al tempo stesso un servizio che le persone si aspettano per l'autenticazione (servizi di pagamento) hanno ancora una scarsa conoscenza di importanti concetti di sicurezza. Sono profili di rischio molto differenti e che dovrebbero essere molto diverse strategie di scadenza del cookie auth.

Rafforzare l'approccio

Ci saranno persone che guardano l'approccio cookie di autenticazione e roteare gli occhi in preda alla disperazione. La cosa di sicurezza è che c'è sempre un modo migliore a seconda del tempo / denaro / complessità che sei disposto ad aggiungere e c'è anche sempre qualcuno pronto a dirti che hai sbagliato!Utilizzando il cookie auth scadenza come punto di partenza, diamo un'occhiata ad alcuni possibili modi di rafforzare l'approccio.
Un argomento contro la lunga scadenza del cookie auth è che stanno efficacemente mantenendo l'utente autenticato e al rischio di attacchi come CSRF o clickjacking. Ovviamente l'applicazione deve esporre altri rischi in ordine per un utente malintenzionato di sfruttare la lunga durata dei cookie, ma l'intera difesa in profondità l'argomento viene in su di nuovo. Un'alternativa è quella di avere un biscotto dedicato calettata contro l'utente che dopo convalida l'autenticità di esso con il server, possono poi avviare una nuova sessione autenticata il loro ritorno. La sessione originale può quindi scadere rapidamente, il trucco è quello di ripristinare una nuova quando l'utente torna con il "ricordati di me" cookie dedicata e comprende alcuni convalida supplementare nel processo.
Un modo per fornire un'ulteriore convalida è includendo l'indirizzo IP dell'utente / user agent / altro segno distintivo del "ricordati di me" cookie. La logica è che questo offre una certa difesa contro dirottamento del cookie. Il problema, naturalmente, è che ci sono casi in cui tali cambiamenti uso legittimo. Nel mondo mobile, in particolare, non è raro per tornare a un sito con un IP diverso. Anche nel mondo delle connessioni fisiche non si può necessariamente fare affidamento su l'ISP fornisce un indirizzo IP statico. Per quanto riguarda gli interpreti, con browser come Chrome e Firefox l'aggiornamento a quello che sembra come ogni altro giorno, a meno che non sei un po 'selettivi su ciò che gli attributi della stringa user agent che stai memorizzare e confrontare che sta per essere un approccio rischioso. Le stesse difese intorno utilizzando attributi utente e uniche per aggiungere sicurezza sono spesso discussi nel contesto di sessione e cookie auth e mentre sono sicuro che ci sono casi di utilizzo validi per questo (torna al settore bancario di nuovo), non posso dire di ' ve effettivamente visto nel luogo in uno qualsiasi dei siti che ho provato prima. C'è probabilmente una buona ragione per questo ...
A mitigazione più pragmatico è quello di separare ancora il cookie auth da un "ricordati di me" cookie dedicato e utilizzare quest'ultimo per ri-autenticare l'utente , ma imporre alcune restrizioni . La realtà è che il processo di persistenza dello stato automaticamente autenticato di qualcuno - attraverso qualsiasi mezzo - introduce compromessi al modello di sicurezza. A mitigazione potrebbe essere quella di richiedere un utente automaticamente ri-autenticato per fornire espressamente le proprie credenziali di nuovo prima di visualizzare alcune categorie di dati o l'esecuzione di determinate attività. Questo non è inaudito anche al di fuori del campo di applicazione del "ricordati di me", si potrebbe vedere che durante l'esecuzione di attività di alto valore, come il bonifico bancario. In questo caso, stiamo dicendo che l'utente autenticato è più a rischio perché c'è più probabilità che non sono chi dicono di essere (cioè qualcun altro si è seduto al PC ed efficace highjacked una sessione).
L'altra tempra possiamo applicare a questo approccio è di assicurare che il cookie utilizzato per ricordare all'utente viene resettato dopo che è stata utilizzata. Questo significa anche invalidarla sul lato server in modo ci deve essere sia l'unicità e la persistenza del valore del cookie, ad esempio un nonce persisteva sia nel database e il cookie. Questo ha il vantaggio di garantire che, se il cookie viene ottenuto da un utente malintenzionato ha ha solo un unico ambito l'uso - e questo è se l'utente non può utilizzare legittimamente prima di loro. C'è un po 'di buona articolo qui che parla di alcune mitigazioni a questo modello e di nuovo, ci sono casi d'uso in cui questo può essere utile, ma che si sta per investire ulteriore sforzo costruirlo e ci sono casi in cui sarà utenti legittimi disagi (cioè cercando di ricordare te sullo stesso sito su più PC).
L'ultima cosa degna di nota è che gli stessi principi di gestione degli account che devono essere considerati per le sessioni autenticate attivi sono rilevanti nel "ricordati di me" contesto. Ad esempio, sono più sessioni autenticate contemporaneamente consentite da quello utente? Se l'utente cambia la password ti è scollegare le altre sessioni? Può un amministratore di terminare la sessione autenticata? Ci sono tutti i tipi di problemi che vengono in su che sono in realtà parte della discussione su come sessioni autenticate sono verificati e gestiti, la discussione qui è solo su come ripristinare quello.

Quando non si deve permettere "ricordati di me"? (E alcune alternative intermedia)

A volte semplicemente non ha senso per consentire a un utente autenticato di rimanere autenticato per lunghi periodi di tempo. Bancario, ad esempio, è il caso d'uso stereotipato per quando si desidera forzare una nuova autenticazione al più presto possibile in quanto i rischi sono troppo significativi per lasciare le sessioni del browser non utilizzati autenticate in giro il posto.
Ma vi è in realtà un po 'di terra di mezzo che può essere presa qui:
Una casella "ricordati di me" sul sito web American Express
Questo non è del tutto quello che sembra - quando si torna dopo una sessione scaduta, dove lei ha chiesto al sito di "Remember Me", otterrete questo:
Il sito American Express pre-popolare il nome utente sul ritorno
Ho non offuscato il nome utente, il nome utente come appare sopra le stelle sono memorizzati in un cookie che dura per tre mesi insieme ad alcuni altri dati che identificano inevitabilmente l'utente.Francamente, non vedo un sacco di valore in questo, ricordando il nome utente di solito non è il problema!
Ma, inoltre, non deve essere tutto o niente, non c'è via di mezzo. Ad esempio, il punto che ho fatto in precedenza su ri-autenticare prima di processi chiave vengono eseguite se la sessione fosse stata ripresa da una funzione di "ricordati di me". E 'un po' il meglio dei due mondi.

In conclusione ...

Questa è una di quelle caratteristiche che sembra una buona idea, al momento (e talvolta lo è) e di solito è molto facile da ottenere, almeno sufficientemente giusto per ogni uso. Francamente, è ancora un po 'sconcertante come sbagliato i due esempi precedenti si sono particolarmente se si considera che sarebbe stato sufficiente per estendere semplicemente la durata del cookie che già hanno!
L'altro punto di togliere da questo post di là solo la meccanica della funzione "ricordati di me": così la sicurezza è un multi-tiered, bestia come interdipendenti. Potreste essere in grado di cavarsela con le credenziali in cookie di per sé, ma che si combinano con la situazione ELMAH o mancanti solo HTTP attributi e difetti XSS e improvvisamente un sciocche seppur pratica relativamente innocuo diventa un rischio serio. Di che si trattava "difesa in profondità" di nuovo?!

Video: "Hack Yourself First" e altri suggerimenti di sicurezza per gli sviluppatori web

Un po 'di tempo fa ho scritto su Hacking se stessi prima e dettagliato un sacco di modi diversi per gli sviluppatori a cercare i rischi nelle loro applicazioni, si spera prima attaccanti li trovano prima. Sono molto entusiasta di questo approccio e credo che gli sviluppatori hanno bisogno di affinare le capacità di cyber-reato al fine di comprendere correttamente - e proteggere le loro applicazioni da - rischi sul web. C'è un mucchio di più contenuti provenienti da me in questo senso in una varietà di formati e oggi è un video di libera discussione su SSW TV .
Questi ragazzi fanno un po 'di ottimi video su vari argomenti di sviluppo che si trovano sul loro sito web gratis, tra cui anche il mio gruppo di utenti discorso sulla Protezione delle applicazioni web dalla tirannia del male con OWASP registrato lo scorso anno (di fatto a piedi attraverso la OWASP Top 10 per ASP.NET). Il video di oggi è una chat con SSW di Damian Brady e tocchiamo un mucchio di diverse problematiche legate al web, ASP.NET e la sicurezza in generale. Si tratta di un casual, discussione senza copione che contiene spera alcune informazioni utili per lo sviluppatore attento alla sicurezza.

Corso Visual Studio - Corso asp.net
Corso C# - Corso PHP - Corso Joomla - Corsi asp.net - Corso Java

lunedì 7 ottobre 2013

L'inutilità di sicurezza che è l'incorporazione di forme d'accesso sicure all'interno di pagine non sicure

Ho scritto un mucchio di contenuti intorno HTTPS ultimamente e la registrazione di video per dimostrare la facilità con cui le implementazioni insicure di SSL può essere rotto. Ad esempio, vi è stato il pezzo su cui non si può fidare loghi SSL , allora come caricando moduli di login su HTTP, ma annuncio a HTTPS è inutile e, più recentemente, perché quei avvertimenti contenuto misto significa guadagni facili per gli attaccanti sul layer di trasporto . Tutti questi implicano dimostrazioni di lavoro contro i siti reali che proprio non riesce quasi mai HTTPS.
L'esempio di oggi è su ciò che accade quando una pagina di login viene caricato in modo sicuro, anche se incorporato in una pagina non sicura.Questo è un comune di sicurezza anti-modello e vedrete che in molti siti. L'esempio nel video è da conto alla rovescia in Nuova Zelanda , ma ancora una volta, ci sono innumerevoli altri là fuori. Date un'occhiata al video e poi tornerò a come ho montato l'attacco:

Ha senso? In breve, non si può mai fidare della componente HTTP della comunicazione e senza la possibilità di vedere l'URL nel browser caricato su un indirizzo HTTPS con un certificato valido , l'implementazione SSL è quasi inutile.
La meccanica di come ho dimostrato attacchi contro l'uso insufficiente delle SSL comporta l'uso di script di Fiddler . Molti di voi potrebbero già avere familiarità con Fiddler , l'opzione di scripting ci dà la capacità di manipolare il traffico non crittografato sul filo proprio come un utente malintenzionato potrebbe in qualsiasi punto della rete di comunicazione. Chiaramente un attaccante, diciamo un ISP o l'esecuzione di un hotspot wireless canaglia non sarebbe in esecuzione Fiddler, ma la meccanica di manipolazione richieste e risposte è simile ad altri strumenti.
In questo esempio ho semplicemente aggiunto il seguente script in caso OnBeforeResponse:
se ( oSession . HostnameIs ( "www.countdown.co.nz" ) && oSession . PathAndQuery == "/" ) { 
    / / Rimuovere qualsiasi compressione o 
    

    

    Modificare il percorso di login 
    


    Impostare il corpo di risposta al mutato stringa corpo 
    oSession . utilSetResponseBody ( obody ); 
}

In altre parole, quando viene caricata la pagina iniziale è sufficiente sostituire il link al form di login da quello originale per uno dell'attaccante che sembra la stessa. Lavoro fatto.