posts - 644, comments - 2003, trackbacks - 137

My Links

News

Raffaele Rialdi website

Su questo sito si trovano i miei articoli, esempi, snippet, tools, etc.

Archives

Post Categories

Image Galleries

Blogs

Links

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 17:12 |

Feedback

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 17:47 | Raffaele Rialdi
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 10:44 | Raffaele Rialdi
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET