Technology Experience
Software

Riflessioni a metà strada tra VSTS, TFS e SDL

dove:
VSTS sta per Visual Studio Team System
TFS sta per Team Foundation Server
SDL sta per Security Development Lifecycle

Sto (quasi) finendo di leggere The Security Development Lifecycle, di Micheal Howard e Steve Lipner. Il giorno in cui lo acquistai, mi chiesi se faceva al caso mio. Qualcuno di UGI – via Messenger – mi fece la stessa domanda. Quel giorno lo acquistai perchè andai ad un evento Microsoft Technet, la sicurezza la faceva da padrone e Francesca Di Massimo durante la sua sessione mise particolare enfasi sull’argomento SDL, per cui mi sono fatto convincere ad acquistare il libro dal banchetto di Gorilla.it.

Stasera ho raggiunto poco più della metà del libro, c’è ancora molto da leggere, ma un’idea me la sono fatta. Conoscendo Sua Maestà Raffaele di persona, sapevo già che la sicurezza è un argomento che bisogna affrontare sempre, ma il libro mi ha ficcato bene in testa molte spiegazioni. Innanzitutto, ficchiamoci bene in testa una cosa molto semplice: la sicurezza riguarda ogni tipo di software, dal Blocco Note a Microsoft Money. E non è una battuta. Se Blocco Note soffrisse di una qualche vulnerabilità, ne risentirebbe l’intero sistema, perchp basterebbe sfruttare quella falla per scatenare un DoS sul sistema. La sicurezza riguarda l’affidabilità, e per diretta conseguenza la qualità di un sistema software, riguarda la protezione dei dati, la garanzia che i dati vengano trattati rispettando la privacy, etc. etc.

SDL è un insieme di procedure/processi/best practices che consentono di progettare e disegnare software avendo come obiettivo ultimo la sicurezza. I punti previsti da SDL sono davvero tanti e complessi e sicuramente sono la persona meno adatta a spiegarveli uno per uno. SDL riguarda l’analisi dei requisiti, evidenzia porzioni di codice a diversi livelli di rischio, permette di capire quali features abilitare di default oppure no durante il setup dell’applicazione, prevede la creazione di documentazione aggiornata al codice per evidenziare possibili punti critici dell’applicazione, detta le basi per testare l’applicazione stessa usando logiche di Fuzz Testing, Penetration Testing e Unit-Testing, etc. etc. A…dimenticavo…eccetera, eccetera, eccetera. C’è molto davvero.

Si parla anche di come organizzare il team affinchè sia possibile aderire il più possibile ai processi previsti dalla SDL. Ingegneri, architetti, developer, esperti di security, altri tecnici: tutti devono collaborare, rispetto i ruoli dei lead, e dialogare assieme per raggiungere gli obiettivi. Questo significa poter accedere alla stessa documentazione (aggiornata), poter accedere tutti assieme ai bugs rilevati per poter determinare dove si trova la nostra “bug bar”, poter verificare in ogni momento a che punto siamo con lo stato d’avanzamento del progetto e così via. Riporto una frase tratta dal libro:

Constant communication to the software development team about the progress of the security push is absolutely critical to the push process. Communication colud include the following: regular e-mail messages, an intranet site with live statistics.

Il testo va avanti, dicendo che nelle comunicazioni dovrebbero includere: numero di bug trovati, numero di nuovi bug rilevati nelle ultime 24 ore, numero di files contenuti nel progetto, test eseguiti con l’esito sotto forma di grafico, il nome dei bug-hunter più bravi, e così via. Devo proprio dirlo che mi sembra la descrizione della combinazione VSTS+TFS?

TFS gestisce ogni Team Project con un portale dedicato basato su Sharepoint (collaborare e dialogare), attraverso il quale l’intero team può avere accesso a tutte la documentazione necessaria allo sviluppo. Non solo: possiamo accedere a statistiche costantemente aggiornate su quanti WorkItems mancano alla fine del lavoro, quanti bug sono stati corretti, quanti test sono stati eseguiti e con quale esito, quanto codice è stato committato oggi e via dicendo. TFS permette di tracciare i bugs rilevati con i WorkItem. Ancora una volta, è chiaro come il tandem VSTS+TFS non sia solo un semplice tandem di software, ma sono due strumenti che fanno parte di uno scenario più ampio, che si incastrano perfettamente in uno scenario molto più vasto. In questo caso, la piena predisposizione all’aderenza alla SDL.

Uno dei processi finali della SDL è la FSR, che sta per Final Release Review, una sorta di esame finale della nostra applicazione, per vedere se è stata sviluppata con tutti i criteri previsti dalla SDL. Questo significa un miliardo di cose: documentazione sulla superficie di attacco, documentazione sul threat model, documentazione sui protocolli di rete, situazione di ciascun bug, documentazione sulla risk analysis. Sarebbe uno sbaglio terrificante mettersi a scrivere tutto alla fine, e questo è ovvio. L’utilizzo di una piattaforma basata su TFS semplifica significativamente tutti i processi previsti dalla SDL: semplifica la gestione, il mantenimento e l’accessibilità delle informazioni e di conseguenza il nostro lavoro. Lavoro di chiunque, dal capo-progetto al più piccolo dei developer.

Technorati Tags:   

Send to Kindle

Igor Damiani

La sua passione per l'informatica nasce nella prima metà degli anni '80, quando suo padre acquistò un Texas Instruments TI-99. Da allora ha continuato a seguire l'evoluzione sia hardware che software avvenuta nel corso degli anni. E' un utente, un videogiocatore ed uno sviluppatore software a tempo pieno. Igor ha lavorato e lavora anche oggi con le più moderne tecnologie Microsoft per lo sviluppo di applicazioni: .NET Framework, XAML, Universal Windows Platform, su diverse piattaforme, tra cui spiccano Windows 10 piattaforme mobile. Numerose sono le app che Igor ha creato e pubblicato sul marketplace sotto il nome VivendoByte, suo personale marchio di fabbrica. Adora mantenere i contatti attraverso Twitter e soprattutto attraverso gli eventi delle community .NET.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.