2010-07-18 12 views
5

Sono appena tornato da una conferenza sugli hacker sulla sicurezza di Internet e sono interessato all'apprendimento della sicurezza Web e alla protezione delle aziende dagli hacker. Ma non so da dove cominciare e quali lingue imparare.Inizio sicurezza Web?

Qualcuno potrebbe indicarmi la giusta direzione?

risposta

4

Ognuno ha una propria filosofia di sicurezza. Sviluppare la propria filosofia è vitale. Questo è il motivo per cui Bruce Schneier è così popolare, e ho letto ogni post del blog.

Nello stato attuale di sicurezza il paesaggio è disseminato di sistemi di sicurezza che non funzionano.Credo che questo sia dovuto alla seguente citazione.

"Quello che non riesco a creare, io non capiscono."

--Richard Feynman

Imparare a rompere il software è il passo più importante per imparare a come proteggere dagli attacchi. Devi trovare vulnerabilità nel software e scrivere codice di exploit.

+0

Non sono sicuro di voler dire "devi scrivere codice di exploit", ma vorrei d'accordo con "devi aver riprodotto una vulnerabilità almeno una volta". Per esempio. devi aver provato 'password =" 'OR 1 = 1 "' almeno una volta per ottenere un apprezzamento per l'iniezione SQL. +1 comunque. – deceze

+0

@deceze Se tutto ciò che puoi sfruttare è una semplice tautologia, allora questo è tutto ciò di cui puoi difendere l'antichità. Come si fa a testare una patch? – rook

2

Questo è un campo enorme. Le persone fanno carriera a vita da esso. Come un principiante, ti consigliamo di imparare:

  • HTML, XML e XHTML
  • Javascript, e una volta che lo sai, legge su cross-site scripting attacchi
  • SQL, e una volta che si conosce la basi, attacchi di iniezione
  • Basics circa hash, sali, crittografia a chiave pubblica, e come HTTPS funziona
  • Come funzionano i certificati

Questo dovrebbe essere una buona stella t.

1

Il classico articolo "Smashing the Stack for Fun and Profit" è un must.

Si tratta di buffer overflow - un exploit molto comune. Sebbene sia relativamente di basso livello, la comprensione del buffer overflow è sicuramente un primo passo nell'apprendimento della sicurezza.

+0

che la carta è un po 'datato, questi attacchi non funzionerà un sistema moderno. Anche se ti ho dato un +1 perché sono d'accordo che la comprensione del conservatore degli attaccanti è vitale. – rook

1

Le lingue non contano, non proprio, la sicurezza è un approccio più che un'implementazione. È possibile utilizzare numerosi linguaggi e framework per scrivere applicazioni Internet e la protezione delle applicazioni deve essere incorporata, non sovrapposta. Se si desidera proteggere i siti Web esistenti, è necessario riscrivere il codice vulnerabile o inserire un firewall per applicazioni Web tra l'applicazione e Internet.

È meglio concentrarsi prima sui concetti e imparare come applicarli in lingue di propria scelta. Il ciclo di vita di Microsoft Secure Development e il lavoro che hanno svolto attorno a Threat Modeling devono essere esaminati da qualcos'altro, dal momento che copre la creazione dall'inizio e la creazione di loop di feedback con ogni iterazione di sviluppo.

(Oh, e l'ho fatto scrivere un libro su ASP.NET securityghigno)

+0

È molto carino per te. Respingo fermamente ogni pensiero che il tuo commento sia utile. – blowdart

+0

Nel 2006 il 46% di tutti i numeri CVE pubblicati in relazione a PHP. Un edificio si sbriciolerà se sarà costruito su fondamenta deboli. Microsoft ha la peggiore storia di sicurezza. Anche se sono migliorati, devono ancora corrompere le persone per scrivere blog su quanto sia "sicura" la loro piattaforma. Inoltre, uno 0-day è stato aggiornato su IE, lasciando i propri utenti vulnerabili agli attacchi per circa un mese. Questo è un comportamento completamente e totalmente irresponsabile. – rook

+0

Uh-huh. Eppure è una sorta di ortogonale alla domanda originale (e al commento che hai rimosso). Le vulnerabilità web comuni sono indipendenti dalla piattaforma, e diamine che tu abbia fornito questo con quello di cui sei così orgoglioso (che è stato certamente esilarante). Per i principianti la piattaforma semplicemente non ha importanza, sono i concetti e il modo di pensare. – blowdart

1

Una delle lezioni più importanti da imparare in sede di attuazione della sicurezza in qualsiasi applicazione è NON di utilizzare i sistemi di sicurezza fatta in casa - finisci sempre per rendere l'applicazione meno sicura.

Non tentare di scrivere un nuovo algoritmo di hash, o un metodo di crittografia di streaming o uno qualsiasi di 100 altri pezzi.

Sempre uso noto, moduli e algoritmi quali OpenSSL, Blowfish encryption e salted password hashes ben collaudato.

1

Il punto migliore in cui iniziare è OWASP (Open Web Application Security Project). Dispongono di molte risorse, tra cui la Top Ten OWASP, comprese le 10 vulnerabilità/rischi più critici per le applicazioni Web e la relativa Guida allo sviluppo del codice protetto che può essere letta online (wiki) o scaricata in PDF.

Hanno anche il Web Goat, un'applicazione Web vulnerabile che le persone possono scaricare e utilizzare per conoscere le vulnerabilità, come funzionano e l'approccio migliore per correggerle. È piuttosto interessante e viene fornito con suggerimenti e soluzioni.

Organizzano anche conferenze (controlla la sessione video del sito web, di solito pubblicano i video e le diapositive dei discorsi) ei capitoli di diverse città organizzano riunioni in cui le persone parlano di aspetti interessanti della sicurezza delle app Web. Dovresti considerare di unirti alla tua area.

È possibile tutte le informazioni nel sito web OWASP: http://www.owasp.org