mercoledì 28 novembre 2012

L'hacking è un gioco da ragazzi - SQL injection con Havij da 3 anni


Sai cosa mi colpisce circa un sacco di hack che abbiamo visto ultimamente? Sembra semplicemente troppo facile . Voglio dire che stiamo vedendo un gran numero di attacchi (un numero senza precedenti, da alcune figure) e troppo spesso l'autore del reato è un bambino.Non voglio dire che, in un senso relativo a me stesso man mano che invecchio, voglio dire,letteralmente un bambino .
Il problema, naturalmente, è che molti di questi "hack" sono diventate semplice punto e affari scattare utilizzando strumenti liberamente disponibili. Nel caso di SQL injection, strumenti come Havij significa che, anche se non si conoscono gli indici ai tuoi regole di confronto o le UDF dai tuoi DMV, fintanto che è possibile copiare e incollare un URL che può essere un istante "hacker" .
In realtà mi sa che è così facile che anche il mio 3 anni può essere un hacker di successo. E 'venuto fuori che non è troppo lontano dalla verità:
Vedi come è facile? Andiamo avanti e lascia che ti dia un po 'di contesto in giro per la facilità e la prevalenza di questi attacchi. In primo luogo, ricordare che l'iniezione rimane nella posizione numero uno nella OWASP Top 10 . Ciò che rende particolarmente pericoloso SQLI è che è classificato come sia "facile" da sfruttare (e credo che ora possiamo tutti d'accordo) e con un impatto di "gravi".
Quanto è grave? Come nell'esempio precedente, SQLI può essere facilmente utilizzato per accedere alle credenziali archiviate in un sito vulnerabile e anche se queste sono state salate e hash, faranno facilmente cadere vittima di un attacco di forza bruta . L'anno scorsoè stato SQLI che ha portato verso il basso Sony Pictures ed è stato anche presumibilmente SQLI che era dietro violazione LinkedIn quest'anno . E 'molto, molto diffusa.
Un rapido sguardo attraverso YouTube e vedrete tutorial come SQL iniettando Havij che si distingue non per il suo contenuto , ma piuttosto per il suo presentatore . Così come il ragazzo che suona come se fosse di circa 15 anni, è anche chiaro che ha un'idea molto poco di quello che è un database SQL o anche come Havij funziona realmente. Questa non è una critica del ragazzo di per sé, è semplicemente un'osservazione su come gli strumenti accessibili come Havij sono. YouTube è piena di esempi simili.
Ora tenere a mente che Havij è uno strumento che "aiuta penetration tester" e in effetti ITSecTeam chi rende il prodotto è una società di sicurezza legittimo. Ma - e questo è un grande "ma" - fare una rapida ricerca su YouTube e non troverete troppi video di test di penetrazione e non troverete molti commenti da parte di persone con una più ampia vocab di Ari. No, questi sono i ragazzi solo in cerca di distruggere e prendere tutto il possibile da siti web vulnerabili.
Naturalmente Havij non è l'unico strumento di questo tipo, prodotti come sqlMap sono estremamente popolari e in questo caso, anche open source. A differenza Havij è puramente riga di comando basata (probabilmente un po 'più complicato per un anno 3 anni che non è in grado di leggere ancora), e anche a differenza Havij il pubblico commentando il via YouTube e altri forum è un po' più, beh, maturo.
E 'interessante osservare il modus operandi di come questi strumenti vengono utilizzati. In questo video su Come utilizzare Havij stiamo prima volta mostrato come sbloccare la versione Pro con una chiave di cracking poi come l'autore ha una lista di "Dorks" - chiaramente Dorks Google - con modelli di URL potenzialmente vulnerabili. Ciò equivale a niente di più che gli URL con una stringa di query chiamato "ID". Questi ragazzi sono semplicemente pesca a strascico Internet, che punta a Havij URL potenzialmente vulnerabili e dando un colpo. Quando non funziona faranno solo passare a quella successiva.
E questo è l'ultimo bit di comprensione vi lascio con, essendo un obiettivo non significa essere una grande multinazionale o di sostenere una causa che non si concilia con hacktivisti Né significa che presenta una sorta di rialzo finanziaria a coloro che può rompere la vostra sicurezza. No, essendo un obiettivo significa essere su Internet. Fine della storia.

martedì 6 novembre 2012

Come il tuo sito web è in fase di pwned mentre non siete in cerca


Chi ci hacking? Come siamo (come sviluppatori) rendendo possibile tutto questo? Quali sono alcuni dei difetti più comuni che stiamo costruendo nel software? E che cosa è "pwned" comunque?!
Tutte queste domande e molto di più venire e ottenere risposta nella presentazione che ho fatto per Sviluppatori Developers Developers! a Sydney qualche mese fa. Fortunatamente la brava gente SSW stato abbastanza gentile da registrare e molto professionalmente producono un certo numero di sessioni poi renderli disponibili attraverso il loro canale TV SSW.
Nonostante i responsabili della struttura per conferenze facendo del loro meglio per emulare una sauna svedese per l'avviamento del calore fino a 11, sono stato molto contento del modo in cui la presentazione è andata. Per coloro che intorno a Sydney, sarò tenere una conferenza in uno stile simile al Web Conference Sud la prossima settimana con gran parte del nuovo materiale.
Un'ultima cosa - ho bisogno di dare un po 'di credito a Mikko Hypponen per il materiale relativo alle tre fonti di hacker (criminali, hacktivisti e governi). Sono stato ispirato dal suo discorso TED dal titolo Combattere virus, Difendere la rete dove si fa riferimento a queste minacce tra molti altri osservazioni perspicaci circa il panorama della sicurezza on-line. In realtà mi sono ispirato per la maggior parte delle cose Mikko dice e il modo in cui pronuncia il suo messaggio in modo fatevi un favore e controllare il suo materiale.


lunedì 5 novembre 2012

5 modi per fare controllo del codice sorgente molto, molto male


La settimana scorsa, con l'aiuto dei bravi ragazzi di Red Gate, ho creato una piccola competizione per dare via 5 licenze del loro molto eccellente controllo del codice sorgente SQL prodotto. I criteri di ingresso era semplice - condividi la tua esperienza più dolorosa che avrebbe potuto essere evitato utilizzando controllo del codice sorgente.
Molte storie dolorose emerse ma ho pensato che vale la pena condividere e commentare i 5 vincitori, come ho sentito questa volta il dolore e più volte negli anni passati. Così, godetevi queste storie e, auspicabilmente, portare via un po 'di pepite di conoscenza che potrebbe aiutare a evitare le trappole stesse in futuro.
Per i vincitori: si spera tali licenze saranno contribuire ad alleviare i dolorosi ricordi di errori passati! Sarò in contatto con i premi a breve.

1. Controllo del codice sorgente tramite CTRL-Z

La prima storia arriva per gentile concessione di MyChickenNinja e fa male letteralmente la testa per leggere! In questo caso particolare, le applicazioni sono stati sabotati da un ex-dipendente, che sta andando sempre essere doloroso, ma almeno ci sono di solito più mezzi di ristabilire il codice, se non i dati.
Il primo problema era backup che erano 3 settimane che in sé è una lezione - sono i vostri ambienti effettivamente eseguito il backup? Torneremo a quello di altre storie poco, la Pearler reale era il quasi-source controllo via via di CTRL-Z:
Corsero il loro codice, che hanno aggiornato costantemente, come il loro ambiente di produzione e usate Ctrl-Z per annullare le modifiche cattivi.
Ora, questo è seriamente mindboggling - cosa succede se l'applicazione che ha fatto la modifica è chiusa? O anche a PC spento? E appendere -? Ti ha appena detto hanno usato l'ambiente in cui si cura il codice come il loro ambiente di produzione UNDO NON CONTROLLO FONTE!

2. Basi di dati multiple e dolori di integrazione

La seconda storia è tramite Brandon Thompson dove ha avuto il dispiacere estremo di lavorare in un ambiente con molte fonti della banca di dati in fase di sviluppo attivo e nessun processo di integrazione reale al di là Yakka duro . Questo significava che fare con i backup del database multipli tra cui un gruppo si trova in mare aperto:
Il nostro team di sviluppo è stato in mare aperto, in modo che anche avuto una propria serie di banche dati che non ho mai visto, ma che avrebbero mandato su file con le modifiche da applicare ai nostri ambienti di sviluppo.
Quello che trovo più doloroso di questo è il lavoro manuale coinvolta semplicemente per chiunque voglia giocare bene insieme. Questo è lo sforzo che non va in innovazione o qualsiasi tipo di attività a valore aggiunto come la costruzione di nuove caratteristiche, è lo sforzo che si traduce in nulla da mostrare per esso al di là di codice che è stato già scritto in realtà di lavoro!
Controllo del codice sorgente è uno di quei grassi che si limita a tenere tutto funziona senza problemi insieme. E 'la stessa cosa con un ambiente di integrazione continua e la possibilità di distribuire automaticamente. Si tratta di "pane e burro" di sviluppo del software e devonoessere il fondamento su cui ogni squadra di successo scrive il codice.

3. A seconda del backup non testate

Il prossimo è Barry Anderson che ha realizzato un dolore che molti di noi hanno sperimentato prima, non essere in grado di ripristinare dal backup. Infatti in caso di Barry, i backup non era ancora accaduto per i mesi scorsi che di per sé, era male, ma è chiaro che coloro che dipendevano i backup, inoltre, non erano a conoscenza di un tale controllo critico.
Sicuramente c'è una buona ragione per tale controllo? Barry spiega:
Il nostro manager (non la squadra di archiviazione (!)) Poi ci ha detto che non c'era né il tempo né lo spazio per ripristini di prova!
Backup è una cosa, ma non meno importante, essere in grado di ripristinare da tali copie di backup è altrettanto importante. Recentemente ho avuto una esperienza nella configurazione di un certo numero di nuovi ambienti in cui sono stati i backup dovrebberoaccadere, ma semplicemente non lo erano. Solo insistendo su un funzionamento a secco di ripristino è stato il problema emerso. Per molte altre persone, il problema è emerso quando sono in realtà cercando di recuperare da un grave problema di perdita di dati. Verifica il tuo backup e ripristino gente e nessuno fiducia!

4. Lo strumento di unione umana

Da Graham Sutherland arriva una storia di uomo che fa lavoro di macchina:
Abbiamo avuto solo un paio di sviluppatori, e ognuno aveva una copia di tutto il progetto sul proprio disco. Ogni volta che un cambiamento è stato quello di essere spinto, abbiamo scaricato una copia del codice sorgente del dev lead (il suo codice di sviluppo in tempo reale) e utilizzato diff per identificare le modifiche, quindi aggiornato manualmente. Riga per riga. Tutto a mano.
Per quanto strano possa sembrare, in realtà ho visto fare prima, quando il controllo di origineha esiste! Perplesso sul motivo per cui un solo membro del team in mare aperto sembrava commettere, una discussione inglese maccheronico seguì nel corso della quale la logica è stato spiegato: lo sviluppatore principale necessario per verificare il lavoro degli sviluppatori di altri prima di essere commesso. Di sola andata "discussione" in chiaro, diretto inglese australiano seguito rapidamente.
Questo è davvero analoga a quella precedente punto di avere più database da integrare, abbiamo la tecnologia per risolvere questi problemi! Ogni volta che un essere umano si impegna in qualsiasi intensità di lavoro, durante il processo per fasi successive di sviluppo del software, è davvero di fermarsi e chiedere "C'è un modo migliore"? Di solito c'è.

5. Tagliare e incollare versioni

Storia di Robin Vessey è in risonanza con me perché è la forma più comune di quasi-VCS in corso, di taglio (o la copia) e incolla in nuove posizioni. Spesso il modello comporta effettivamente duplicare la directory che contiene il codice di denominazione poi la copia con una data o qualche altra forma di identificatore per indicare un periodo di tempo.
Nel caso di Robin, che stava cercando di spostare una struttura di directory in una rete:
È semplice ma efficace. Ho fatto un copia e incolla di un albero di directory, tutto ciò che, attraverso la rete ... i file lasciato il mio fianco, non sono mai arrivati ​​dall'altra parte, ancora non so perché.
Devo ammettere, mi avvicino ogni taglia e incolla file dell'azione estrema cautela, perché ho ​​visto accadere tante volte anche su un file system locale e tanto meno attraverso le idiosincrasie di una rete.
Il pungiglione nella coda della storia di Robin era che non c'erano backup stanno prendendo per il ripristino da perché avevano "fermato il backup di qualche tempo fa, perché non abbiamo avuto più spazio". Chiunque vedere un modello emergente qui?!

Riassunto

Se si lavora senza tutto sia sotto controllo del codice sorgente non è allo stesso tempo un pensiero spaventoso e un ricordo lontano - E smetti di giocare! Scherzi a parte gente, siamo veramente bene e al di là di questo come una professione e ora ci sono prodotti così tanti grandi VCS, servizi ospitati e strumenti di integrazione a disposizione non c'è davvero nessuna scusa per non avere tutto il codice - compreso il vostro database - sotto controllo del codice sorgente.
La maggior parte di questi sono gratuiti, alcuni sono dotati di uscite finanziarie e fatica molto minimale. Se ti è stato detto che non c'è le risorse per farlo (o testare i backup, in questo caso), poi qualcuno proprio non lo capisco. Onestamente, questi strumenti non sono più negoziabili che dare agli sviluppatori una sedia per sedersi e le cinque storie di cui sopra (più quelli formare i secondi classificati), dovrebbe servire come prova di questo.