vuoi
o PayPal
tutte le volte che vuoi
L'aspetto più importante affinché questo modello abbia successo è assicurarsi che i prototipi
sviluppati siano riutilizzabili.
Il modello RAD distribuisce le fasi di analisi, progettazione, costruzione e test in una serie di
cicli di sviluppo brevi e iterativi. Le fasi principali sono : Modellazione aziendale (modello di bussiness del
prodotto in termini di flusso di informazioni e distribuzione delle informazioni), modellazione dei dati
(creazione di oggetti di che contengono dati vitali per l’azienda), Modellazione dei processi (creazione di
processi tra cui aggiunta eliminazione recupero e modifica di un oggetto di dati), Generazione di applicazioni
(viene costruito il sistema), Test e Fatturato (il tempo di test è ridotto perchè i prototipi vengono testati
indipendentemente durante ogni iterazione).
Lezione 022
02. Descrivere il modello a spirale.
Il modello a spirale combina l’idea di sviluppo iterativo con gli aspetti sistematici e controllati del modello a
cascata e si concentra molto sull’analisi del rischio. infatti consente il rilascio incrementale del prodotto
attraverso iterazioni intorno alla spirale. Il progetto inizia su scala molto piccola, esplora i rischi, li gestisce e
decide se passare alla fase successiva. Questo tipo di modello rappresenta il modello SLDC più flessibile.
Infatti permette di creare software altamente personalizzato e di incorporare il feedback degli utenti nelle
prime fasi. bisogna prestare attenzione a non cadere in una spirale infinita e si potrebbe incorrere in costi
molto alti. Le quattro fasi sono pianificazione, analisi del rischio, ingegneria e valutazione. Queste quattro fasi
vengono ripetute in ogni turno.
La pianificazione è la prima fase in cui vengono raccolte le informazioni e analizzate. Segue l’analisi del
rischio che individua, stima e monitora la fattibilità tecnica e cerca di trovare soluzioni al progetto. La fase di
ingegneria, terza fase, consente l’inizio dello sviluppo del software. In questa fase il software viene
implementato testato e distribuito nell’ambiente del cliente. La fase finale è la valutazione in cui viene
valutato l’output del progetto.
Lezione 023
03. Descrivere il modello agile.
Il modello Agile è una combinazione di modelli di processo iterativi e incrementali con attenzione
all’adattabilità del processo e alla soddisfazione del cliente grazie alla rapida consegna del prodotto
funzionante. I metodi agili suddividono il prodotto in piccole unità incrementali. Queste build sono fornite in
iterazioni che vengono definite sprint. Ogni sprint dura fino a 4 settimane e alla fine viene verificato il
prodotto e consegnato al cliente. I test vengono eseguiti in ogni sprint per ridurre al minimo il rischio di
eventuali danni. Il feedback viene utilizzato per eventuali miglioramenti. La priorità di questo modello è
soddisfare il cliente rilasciando software di valore fin da subito in maniera continua. I principi su cui si basa
sono: Individui e Interazioni, Software funzionante, Collaborazione con il cliente e rispondere al
cambiamento.
Lezione 024
03. Descrivere il modello DevOps.
il modello devops si distribuisce in 8 fasi: Plan (Inizialmente va pianificata l’applicazione da sviluppare), Code
(la fase che prevede la scrittura del codice secondo i requisiti definiti nella fase precedente), Build ( le nuove
funzionalità sono integrate con il codice esistente), Test, Release (se la fase di test va a buon fine è il
momento di rilasciare l’applicazione in produzione), Deploy (distribuire il codice in cloud per altri utilizzi. Il
processo di distribuzione avviene in modo continuo), Operate (eseguire l’operazione sul codice), Monitor (il
team si prende cura dei comportamenti del sistema e monitora eventuali bug) . Nel modello devops lo
sviluppo del software avviene constantemente. l’intero processo di sviluppo è separato in piccoli cicli.
Lezione 025
05. Cos'è il Secure Development Lifecycle?
Il Secure Development Lifecycle è un insieme di pratiche di sviluppo per rafforzare la sicurezza e la
conformità; queste pratiche dovrebbero essere integrate in tutte le fasi di sviluppo e manutenzione.
Consente di avere maggiore sicurezza, riduzione dei costi e conformità normativa.
Lezione 026
04. Quale è la differenza tra SAST e DAST?
SAST - Static Application Scanning Tools esaminano il codice scritto ed individuano potenziali punti deboli
senza eseguire l’applicazione. DAST - Dynamic application scanning tools espongono le vulnerabilità
simulando gli attacchi degli hacker in fase di esecuzione. Per ridurre i falsi positivi è possibile usare un
approccio combinato che integra scansione in runtime con monitoraggio del codice e del flusso di dati
dell’applicazione. Oltre a rilevare le vulnerabilità regolari questa scansione individua anche errori di
configurazione che influiscono sulla sicurezza
Lezione 027
04. Descrivere il Microsoft Security Development Lifecycle.
Il Microsoft SDL introduce considerazioni sulla sicurezza e sulla privacy in tutte le fase del processo di
sviluppo. Attualmente contiene 12 procedure (fornire addestramento, definire i requisiti di sicurezza,
definizione metriche, modellazione minacce, requisiti di progettazione, standard di crittografia, gestione
rischio per componenti di terze parti, usare strumenti approvati, test statici, test dinamici, penetration test,
processo di gestione e risposta incidenti)
Lezione 028
05. Come si può gestire il rischio per la sicurezza dell'utilizzo di componenti di terze parti?
La maggior parte dei progetti software viene sviluppata utilizzando componenti di terze parti e per questo è
importante gestirne la sicurezza. Per questo motivo è utile avere a disposizione strumenti per il controllo di
componenti di terze parti e cercare vulnerabilità. Ovviamente è necessario predisporre di un piano per
rispondere ad eventuali problematiche nel caso in cui venga scoperta una vulnerabilità nel software di terze
parti.
Lezione 029
05. Quali sono i pilastri della sicurezza del software secondo Gary McGraw?
I pilastri della sicurezza secondo Gary McGraw sono 3. Il primo è la gestione del rischio, il secondo sono i
punti di contatto (i touchpoint) della sicurezza del software ed il terzo pilastro la conoscenza.
Lezione 030
04. Che cos'è il Risk Management Software e quali fasi prevede.
Un risk management software prevede di gestire il rischio seguendo 5 fasi.
1 - La prima fase riguarda la comprensione del contesto aziendale (estrazione e descrizione obiettivi
aziendali, stabilire priorità, capire quali rischi considerare)
2- Identificare i rischi aziendali e tecnici (capire e quantificare la possibilità che determinati eventi abbiano
impatto sugli obiettivi aziendali)
3- Sintetizzare e classificare i rischi (probabilità di rischio, impatto, numero di rischi emergenti nel tempo)
4- Definire la strategia per mitigare il rischio (Costo, tempo di implementazione, probabilità di successo,
impatto)
5- Eseguire le correzioni necessarie e convalidare (implementare la strategia di mitigazione)
Lezione 031
05. Quali sono i Touchpoints in ordine di efficacia in base all'esperienza di McGraw?
I Touchpoint identificati da McGraw sono 7 e, in ordine di efficacia, sono: revisione del codice, analisi del
rischio architettonico (identificazione flaw), Penetration Test, Test di sicurezza basati sul rischio
(comprendono black box penetration test), Casi di abuso (entrare nella mente dell’aggressore), Requisiti di
sicurezza (definizione, assunzione e soddisfazione di tali requisiti), Operazioni di sicurezza.
Lezione 032
04. Quali sono i cataloghi della conoscenza del terzo pilastro della sicurezza del software secondo McGraw?
I cataloghi della conoscenza del terzo pilastro sono 7 che sono a loro volta raggruppati in 3 categorie
(conoscenza prescrittiva, diagnostica e storica). I 7 cataloghi sono: Principi (dichiarazione di saggezza che
deriva dall’esperienza), linee guida (raccomandazione su cosa fare e non fare a livello semantico), regole
(raccomandazione di cosa fare e non fare descritto a livello sintattico), vulnerabilità (difetto software che
può essere sfruttato da un malintenzionato per accedere al sistema o recarne danno), exploit (una istanza di
un attacco che sfrutta una vulnerabilità) , schemi di attacco (pattern sviluppato ragionando su ampi set di
exploit) e rischi storici (rischio identificato nel corso di uno sforzo di sviluppo software).
Lezione 033
04. Descrivere il SAFECode.
Il Software Assurance Forum for Excellence in Code (SAFECode) è un’organizzazione senza scopo di lucro che
ha lo scopo di aumentare la fiducia nei prodotti e nei servizi tecnologici promuovendo pratiche per lo
sviluppo e la fornitura di software hardware e servizi sicuri e affidabili. Le pratiche fondamentali riguardano
la garanzia, la capacità del software di resistere agli attacchi. Ovviamente non basta un semplice strumento
per garantire questa capacità ma è il risultato di un processo completo e sicuro di ingegneria del software
che è presente in tutte le fasi del ciclo di vita dello stesso.Il SafeCode utilizza 8 pratiche fondamentali :
Definizione del controllo della sicurezza dell’applicazione, progettazione, Pratiche di codifica sicure, sicurezza
per uso di componenti di terze parti, test e convalida, gestire i risultati in sicurezza, risposta e divulgazione
delle vulnerabilità, pianificazione e distribuzione sviluppo sicuro
Lezione 034
04. Quali sono le pratiche fondamentali presenti nelle linee guida di SAFECode?
Il SafeCode utilizza 8 pratiche fondamentali : Definizione del controllo della sicurezza dell’applicazione,
progettazione, Pratiche di codifica sicure, sicurezza per uso di componenti di terze parti, test e convalida,
gestire i risultati in sicurezza, risposta e divulgazione delle vulnerabilità, pianificazione e distribuzione
sviluppo sicuro
Lezione 035
04. Che cos'è SAMM?
Il Software Assurance Maturity Model (SAMM) è un framework aperto per aiutare le organizzazioni a
formulare e implementare una strategia per la sicurezza
del software su misura, per i rischi specifici che l'organizzazione deve affrontare. SAMM supporta l'intero
ciclo di vita del software ed è indipendente dalla tecnologia e dal processo. Le tre caratteristiche principali di
SAMM sono:
• Misurabile: livelli di maturità definiti tra le pratiche di
sicurezza;
• Attuabile: percorsi chiari per migliorare i livelli di
maturità;
• Versatile: tecnologia, processo e organizzazione
indipendenti.
Lezione 036
04. Elencare almeno una pratica di sicurezza di ogni funzione aziendale del modello SAMM v1.0.
Le funzioni aziendali nel modello SAMM v1.0 sono 4.
1 - Pratiche di Governance - tra cui troviamo Strategy & Met