Test, test ed ancora test. Su questo si basa la fase di Verification, atta a garantire che il codice prodotto rispetti i requisiti di sicurezza definiti nelle fasi precedenti.
On top troviamo la verifica di integrità dei dati passanti nel nostro software. Perchè questo? Tempo fa scrivevo di questo assioma fondamentale di SDL:
“Customers will be empowered to control the collection, use, and distribution of their personal information. ”
Quindi i dati devono rispettare i crismi di confidenzialità ed integrità definiti dal team, senza eccezioni.
Dopo di che vi è tutta la fase di test e verifica mediante tool, che vale per ogni singolo componente della nostra soluzione. Per valutare il tutto si definisce una Security Bar che verrà poi “riempita” con i dati dello STRIDE, quelli dei tool utilizzati (MiniFuzz, Application Verifier, log di verifica del DDK, quando necessario) e quelli dei vari test “convenzionali”.
A seguito di questo si passa alla fase di Security Push, ossia il momento in cui si valuta il risultato della Security Bar, e si pianificano i possibili interventi da compiere (hotfix, piuttosto che scrivere documentazione). Il Security Push necessità di un training, sugli aspetti di analisi che verranno utilizzati nella fase stessa.
E’ un momento che porta diversi benefici al team, in quanto si può rivalutare la superficie di attacco che ha il nostro software, ad esempio.
Nel prossimo post vedremo il meccanismo di Release.