posts - 512, comments - 1780, trackbacks - 360

Security e developer

Si, ancora il grande Michael Howard che presenta una vera raffica di consigli per gli sviluppatori.

DSCN0803

Il punto di partenza è che la security non si può vendere come feature ma è necessario aprire gli occhi e valutare quanto potrebbe costare un eventual exploit dell'applicazione.

Il primo consiglio pratico dovrebbe essere noto a tutti: non fidsarsi mai dei dati che arrivano alla nostra applicazione. "Data is evil" è meglio di qualsiasi altra spiegazione.

Poi un consiglio d'oro che viene ripreso più volte durante la sessione: nel codice non bisogna mai cercare condizioni per cui uscire se non sono valide, ma sempre e solo le condizioni per cui è sicuro continuare a processare i dati. La slide delle 4 ï" in turco è più che mai emblematica.

DSCN0800

Poi arriva il consiglio di usare i tools di fuzzing che forniscono input randomico alla nostra applicazione. I tool possono fornire un input 'dump' (totalmente casuale) oppure 'smart' cioè che conoscono il formato dei dati e randomizzano precise parti dei nostri dati (per esempio Microsoft crea in modo automatico file file mp3, wmv etc. corrotti per testare media player). I test vanno ripetuti almeno 100'000 volte e ripetuti se c'è anche solo un fallimento.

Sempre per il fuzzing, Michael consiglia di costruire un "evil layer" che spari dati corrotti. Per esempio RPC ha un evil layer per testare a fondo RPC nella rete.

Poi si passa al threat modeling che è il primo obbligatorio passo che un architetto deve affrontare quando inizia una nuovo progetto.

Quindi si passa ad una lunga lista di elementi da prendere in considerazione per decidere da quale codice cominciare ad eseguire la review di sicurezza.

DSCN0799

Si termina poi con una serie di altri consigli tra cui quello di non usare algoritmi crittografici basati su stream o ECB a meno che non ci siano dei requisiti specifici in tal senso.

DSCN0801

Nulla da dire se non impeccabile e per l'enorme esperienza che Michael dimostra in tutti i suoi esempi.

Print | posted on giovedì 8 novembre 2007 15.12 |

Feedback

Gravatar

# re: Security e developer

Dall' ultima immagine si vede come ECB preservi i pattern presenti all' interno del plaintext (stessi plaintext-->stessi ciphertext) e per questo si usa CBC. Mi piacerebbe però capire le motivazioni per le quali non utilizzare stream cipher. Ad esempio utilizzando un generatore di numeri pseudo-casuali crittograficamente sicuro (Blum blum shub), ci si avvicina di molto ad una cifratura ideale di tipo one time pad; il grado di sicurezza dovrebbe quindi essere elevato.
Ti dico questo Raf, perchè proprio lunedi ho un esame che per gran parte verte sulla crittografia :)
08/11/2007 19.36 | Luca Del Tongo
Gravatar

# re: Security e developer

Rispetto Howard perché ha una grande esperienza e capacità (lo ricordo dal suo Writing Secure Code), ma perché insistere sul termine "Threat" per il "modeling" invece che chiamarlo "attack modeling"?

Un buffer overflow non è una minaccia, ma una tipologia di attacco che sfrutta certe vulnerabilità. Perché annoverarlo nelle minacce?

Gary McGraw nel suo libro scrive più volte che questo problema terminologico continua ad imperversare in Microsoft, pur riconoscendo che i contenuti sono validi ed utilizzabili.

Cosa ne pensi?
11/11/2007 2.51 | kensihro
Gravatar

# re: Security e developer

Il modello Swiderski impostava il threat modeling dal punto di vista dell'attacker.
Questo modello sta andando in obsolescenza perché l'analisi dal punto di vista dell'attacker sarebbe esaustiva solo se conoscessimo tutti i potenziali attacchi.
Invece chi attacca può inventare cose nuove e quindi il modello va redatto dal punto di vista del defender.

Il vantaggio del defender è che può prendere più precauzioni rispetto a quelle realmente soggette ad essere sfruttate. Si passa quindi all'analisi accurata dell'architettura (primo elemento che favorisce problemi di sicurezza) e di tutti gli use-cases combinati con i privilegi degli utenti e dei servizi coinvolti.
In nuovo modello i concetti sono più semplici e si passa dal classico "DREAD" a PI (Probability, Impact) il cui prodotto è il rischio (R = P * I). E poi STRIDE che viene ridotto a CIA (Confidentiality, Integrity e Availability) che permette la stesura di un threat modeling decisamente più semplice.

È lo stesso Howard che a mia domanda mi ha chiaramente detto che il nuovo modello è la strada da scegliere, nonostante ancora in tanti blog si parli dei concetti del primo (che sono ancora importanti perché è su quello che Microsoft ha consolidato dati ed esperienza).

A corredo dell'ultimo threat modeling c'è il tool TAM (Threat Modeling and Analisys) che è realizzato dal team ACE di Microsoft e disponibile gratuitamente sulla home page del threat modeling.
Ho già avuto modo in diverse occasioni di parlare di questo tool. Ho incontrato personalmente gli sviluppatori del tool e devo dire che è realmente efficace anche se in scenari complessi il lavoro da fare è ancora tanto nonostante i wizard.

Il termine threat è stato coniato prima del secondo modello ma certamente ora è più che mai attuale e valido.

Se SDL è ormai molto stabile come metodologia nel suo complesso, la parte che invece è ancora in evoluzione è proprio quella del threat modeling che evolverà (in ottica di semplificazione) nel prossimo futuro.
11/11/2007 15.47 | Raffaele Rialdi
Gravatar

# re: Security e developer

ma le slide non e' che sono disponibili?
o un web cast?

grazie mille
24/11/2007 17.36 | spleen2060
Gravatar

# re: Security e developer

forse l'ho trovato
lo posto a beneficio di altri [sfaticati come me ;-) ]

http://support.microsoft.com/kb/942698/en-us
24/11/2007 17.41 | spleen2060
Gravatar

# re: Security e developer

sorry di nuovo il link precedente si riferisce ad un'altro web-cast

quello giusto e' qui'

http://www.cigital.com/ssw/presentations.php

PS:se puoi/vuoi cancella pure i commenti precedenti ... thanks
24/11/2007 17.58 | spleen2060
Gravatar

# re: Security e developer

Il TechEd è una conferenza a pagamento e quindi è chiaro che le sessioni sono tipicamente disponbili solo a chi ha partecipato.
28/11/2007 8.44 | Raffaele Rialdi
Gravatar

# Incest sex free stories.

Incest sex stories incest. Free incest sex stories. Incest sex stories. Incest stories. Incest stories incest.
17/12/2008 7.47 | Incest stories.
Gravatar

# Rape pics.

Rape video. Rape. Anime rape.
28/12/2008 21.00 | Rape porno.
Gravatar

# Blowjob.

Blowjob.
29/12/2008 5.26 | Blowjob.
Gravatar

# Free xxx movies.

Jays xxx links.
30/12/2008 20.39 | Free xxx video.
Gravatar

# Rape videos.

Fantasy rape stories.
31/12/2008 9.23 | Free rape pics.
Gravatar

# Incest sex free stories.

Free incest stories. Incest stories.
31/12/2008 14.19 | Incest stories.
Gravatar

# Meridia.

Meridia generic. Buy meridia buy cheap meridia online. Meridia effectiveness. Buy cheap meridia. Meridia. Meridia reviews.
01/01/2009 2.17 | Meridia reviews.
Gravatar

# Asian sex.

Asian sex.
03/01/2009 16.16 | Asian sex movies.
Gravatar

# Incest forum.

Free erotic incest stories.
05/01/2009 5.18 | Incest mother.
Gravatar

# Incest stories.

Family incest free stories. Young incest stories. Incest pictures stories.
05/01/2009 16.16 | Teen incest stories teen.

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 1 and 2 and type the answer here:

Powered by: