Un framework per l'integrazione della sicurezza delle applicazioni nell'ingegneria del software (FIASSE) basato sul Securable Software Engineering Model (SSEM)
Nota: questa repository è un lavoro in corso. I contributi sono benvenuti!
TL;DR: leggi il DOC. Esplora il sito FIASSE. Visita le GitHub Discussions per contribuire.
Questa repository contiene risorse e materiali per il framework OWASP per l'integrazione della sicurezza applicativa nell'ingegneria del software (FIASSE). FIASSE (pronunciato /feiz/ come 'phase') promuove un approccio basato su principi e incentrato sullo sviluppatore per creare software sicurizzabile, riconoscendo che la sicurezza è un processo dinamico e continuo come lo sviluppo. Introduce il Securable Software Engineering Model (SSEM) come linguaggio di progettazione comune che utilizza termini consolidati di ingegneria del software per integrare la sicurezza nell'architettura, nel design e nell'ingegneria del software. Integra la sicurezza nei principi che modellano il codice stesso. Il framework mira a creare applicazioni resilienti in grado di resistere alle minacce nel tempo.
Fornire linee guida pratiche che mettano in grado gli sviluppatori di creare software sicurizzabile senza richiedere competenze di sicurezza approfondite e di guidare i professionisti della sicurezza nell'integrare efficacemente la loro esperienza nell'ingegneria del software. FIASSE raggiunge questo obiettivo attraverso una prospettiva di ingegneria del software, riducendo il carico cognitivo e favorendo la collaborazione tra i team di sviluppo e quelli di sicurezza.
Mentre i progetti incentrati sull'assurance, come l'OWASP Top 10, evidenziano cosa evitare (una block list), OWASP FIASSE fornisce una serie di attributi e pratiche positive da seguire (una allow list). Questo approccio sfrutta le competenze esistenti di ingegneria del software per costruire software sicurizzabile, piuttosto che richiedere agli sviluppatori di imparare tecniche di exploit o adottare una mentalità incentrata sulle vulnerabilità. L'enfasi è sul consentire una codifica sicura e pratica attraverso principi ingegneristici familiari.
Definendo chiaramente il ruolo pratico della sicurezza all'interno del processo di sviluppo, questo framework garantisce che il valore aziendale sia catturato efficacemente. Stabilendo le aspettative in questo modo, si riduce significativamente la probabilità che i difetti di sicurezza vengano scoperti e debbano essere corretti in seguito.
/docsQuesta repository definisce il software sicurizzabile come sistemi affidabili, resilienti e adattabili. Sottolinea che la vera sicurezza è un processo continuo, non un risultato statico. Introduce il Securable Software Engineering Model (SSEM), che inquadra la sicurezza come un insieme intrinseco di qualità del software ben ingegnerizzato. A tal fine, presenta le categorie di attributi Maintainability, Trustworthiness e Reliability (che include Resilience). FIASSE sostiene l'integrazione delle pratiche di sicurezza nel flusso di lavoro di sviluppo, dove hanno il maggiore impatto. Si passa da un approccio "sicurezza come ripensamento" o "shift left" a un modello proattivo e collaborativo. L'idea è che product owner, sviluppatori e professionisti della sicurezza lavorino insieme fin dalle prime fasi di progettazione, in particolare attraverso attività come la definizione dei requisiti di sicurezza, la modellazione collaborativa delle minacce e i criteri di accettazione. Questo stabilisce aspettative chiare per le attività di codifica e i test. Agli ingegneri del software vengono fornite indicazioni su come bilanciare flessibilità e controllo. Viene inoltre fornito loro un modello definitivo per prendere decisioni di sicurezza. In definitiva, questo mette in grado tutte le parti interessate di contribuire a costruire sistemi più robusti, affidabili e intrinsecamente sicurizzabili.
FIASSE differisce dagli approcci esistenti perché non richiede agli sviluppatori di diventare esperti di sicurezza o di adottare una mentalità avversaria. Questo approccio mira a ridurre il carico cognitivo degli sviluppatori, garantendo al contempo che chi si occupa di sicurezza possa essere certo che le proprie preoccupazioni vengano affrontate attraverso specifici attributi del codice e dei processi di ingegneria del software.
FIASSE intende essere aperto, accessibile e collaborativo.
Traguardi iniziali per il progetto FIASSE: