Struttura del corso

Giorno 1

    Sicurezza informatica e codifica sicura Natura della sicurezza Termini relativi alla sicurezza IT Definizione di rischio Diversi aspetti della sicurezza informatica Requisiti di diverse aree di applicazione Sicurezza IT vs. codifica sicura Dalle vulnerabilità alle botnet e al crimine informatico Natura delle falle di sicurezza Motivi di difficoltà Da un computer infetto ad attacchi mirati
Classificazione delle falle di sicurezza Tassonomia della Landwehr
  • I Sette Regni Perniciosi
  • OWASP Top Ten 2013
  • OWASP Confronto tra i primi dieci 2003 – 2013
  • Introduzione al Microsoft ® ciclo di vita dello sviluppo della sicurezza (SDL) Agenda
  • Applicazioni sotto attacco... Evoluzione del crimine informatico Gli attacchi si concentrano sulle applicazioni
  • La maggior parte delle vulnerabilità si trova nelle app ISV più piccole
  • Origini del Microsoft SDL... Sequenza temporale della sicurezza a Microsoft...
  • Quali app sono necessarie per seguire SDL?
  • Microsoft Ciclo di vita dello sviluppo della sicurezza (SDL) Microsoft Ciclo di vita dello sviluppo della sicurezza (SDL)
  • Requisiti pre-SDL: formazione sulla sicurezza
  • Fase Uno: Requisiti
  • Fase due: progettazione
  • Fase tre: Implementazione
  • Fase quattro: verifica
  • Fase cinque: Rilascio – Piano di risposta
  • Fase cinque: rilascio - Revisione finale della sicurezza
  • Fase Cinque: Rilascio – Archivio
  • Requisito post-SDL: Risposta
  • Linee guida per i processi SDL per le app line-of-business
  • Linee guida SDL per le metodologie Agile
  • Lo sviluppo sicuro del software richiede il miglioramento dei processi
  • Principi di progettazione sicura Superficie di attacco Riduzione della superficie di attacco
  • Superficie di attacco: un esempio
  • Analisi della superficie di attacco
  • Riduzione della superficie di attacco: esempi
  • Privacy Privacy
  • Informazioni sui comportamenti e i problemi dell'applicazione Difesa in profondità Principio fondamentale di SDL: difesa in profondità
  • Difesa in profondità – esempio
  • Principio del privilegio minimo Privilegio minimo – esempio
  • Impostazioni predefinite sicure Impostazioni predefinite sicure – esempi
  • Principi di implementazione sicura Agenda
  • Microsoft Ciclo di vita dello sviluppo della sicurezza (SDL)
  • Nozioni di base sull'overflow del buffer Processori Intel 80x86 – registri principali
  • Il layout dell'indirizzo di memoria
  • Il meccanismo di chiamata della funzione in C/C++ su x86
  • Le variabili locali e lo stack frame
  • Overflow dello stack Overflow del buffer sullo stack
  • Esercizi – introduzione
  • Esercizio BOFIntro
  • Esercizio BOFIntro: determinare il layout dello stack
  • Esercizio BOFIntro: un semplice exploit
  • Convalida dell'input Concetti di convalida dell'input Problemi relativi a numeri interi Rappresentazione di numeri interi negativi
  • Overflow di numeri interi
  • Overflow aritmetico: indovina l'output!
  • Esercizio IntOverflow
  • Qual è il valore di Math.Abs(int. MinValue)?
  • Mitigazione dei problemi di numeri interi Mitigazione dei problemi di numeri interi
  • Evitare l'overflow aritmetico – addizione
  • Evitare l'overflow aritmetico – moltiplicazione
  • Rilevamento dell'overflow con la parola chiave checked in C#
  • Esercizio – Utilizzo della parola chiave checked in C#
  • Eccezioni attivate da overflow in C#
  • Caso di studio - Overflow di numeri interi in .NET Una vulnerabilità di overflow di numeri interi reali
  • Sfruttamento della vulnerabilità di overflow di numeri interi Vulnerabilità dell'attraversamento del percorso Mitigazione dell'attraversamento del percorso
  • Giorno 2
  • Principi di implementazione sicura Iniezione Metodi tipici SQL di attacco injection Iniezione cieca e a tempo SQL SQL Metodi di protezione dall'iniezione Inserimento di comandi
  • Autenticazione interrotta - gestione delle password Esercizio – Debolezza delle password con hash
  • Gestione e archiviazione delle password
  • Algoritmi hash per scopi speciali per l'archiviazione delle password
  • Scripting intersito (XSS) Scripting intersito (XSS)
  • CSS Iniezione
  • Sfruttamento: iniezione attraverso altri HTML tag
  • Prevenzione XSS
  • Controllo dell'accesso a livello di funzione mancante Filtrare i caricamenti di file
  • Crittografia pratica Garantire la riservatezza con la crittografia simmetrica
  • Simed-up di Simede ims
  • Cifrari a blocchi: modalità di funzionamento
  • Hash o digest del messaggio
  • Algoritmi di hash
  • Codice di autenticazione del messaggio (MAC)
  • Garantire integrità e autenticità con una chiave simmetrica
  • Garantire la riservatezza con la crittografia a chiave pubblica
  • Regola empirica: possesso della chiave privata

      Errori tipici nella gestione delle password
    Esercizio – Password codificate
  • Conclusione
  • Principi di verifica sicura Test funzionali e test di sicurezza
  • Vulnerabilità di sicurezza
  • Definizione delle priorità
  • Test di sicurezza nell'SDLC
  • Fasi della pianificazione dei test (analisi dei rischi)
  • Definizione dell'ambito di applicazione e raccolta di informazioni Soggetti interessati
  • Asset
  • La superficie di attacco
  • Obiettivi di sicurezza per i test
  • Modellazione delle minacce Modellazione delle minacce
  • Profili degli utenti malintenzionati
  • Modellazione delle minacce basata sugli alberi degli attacchi
  • Modellazione delle minacce basata su casi di uso improprio/abuso
  • Casi di uso improprio/abuso: un semplice esempio di negozio online
  • Approccio STRIDE per elemento alla modellazione delle minacce – MS SDL
  • Identificazione degli obiettivi di sicurezza
  • Diagrammi – esempi di elementi DFD
  • Diagramma di flusso dei dati – esempio
  • Enumerazione delle minacce: elementi STRIDE e DFD di MS SDL
  • Analisi dei rischi – classificazione delle minacce
  • Il modello di classificazione delle minacce/rischi DREAD
  • Tecniche e strumenti di test di sicurezza Approcci generali ai test
  • Tecniche per le varie fasi dell'SDLC Revisione del codice Revisione del codice per la sicurezza del software
  • Analisi delle contaminazioni
  • Euristica
  • Analisi statica del codice Analisi statica del codice
  • Analisi statica del codice
  • Esercizio – Utilizzo di strumenti di analisi statica del codice
  • Testare l'implementazione Verifica manuale in fase di esecuzione
  • Test di sicurezza manuali e automatizzati a confronto
  • Test di penetrazione
  • Prove di stress
  • Fuzzing Test di sicurezza automatizzati - fuzzing
  • Sfide del fuzzing
  • Scanner di vulnerabilità Web Esercizio – Utilizzo di uno scanner di vulnerabilità
  • Controllo e rafforzamento dell'ambiente Sistema comune di punteggio delle vulnerabilità – CVSS
  • Scanner di vulnerabilità
  • Banche dati pubbliche
  • Caso di studio - Bypass dell'autenticazione basata su form Vulnerabilità di terminazione dei byte NULL
  • Vulnerabilità legata all'elusione dell'autenticazione basata su form nel codice
  • Utilizzo del bypass dell'autenticazione basata su form
  • Fonti di conoscenza Fonti di codifica sicure: uno starter kit
  • Database delle vulnerabilità
  • Linee guida per la codifica sicura di .NET su MSDN
  • Schede informative sulla codifica sicura di .NET
  • Libri consigliati: .NET e ASP.NET
  •  
  •  14 ore

    Numero di Partecipanti



    Prezzo per Partecipante

    Recensioni (10)

    Corsi relativi

    Standard Java Security

    14 ore

    Java and Web Application Security

    21 ore

    Advanced Java Security

    21 ore

    Advanced Java, JEE and Web Application Security

    28 ore

    .NET, C# and ASP.NET Security Development

    14 ore

    Comprehensive C# and .NET Application Security

    21 ore

    Advanced C#, ASP.NET and Web Application Security

    21 ore

    Web Application Security

    14 ore

    Security Testing

    14 ore

    Secure Web Application Development and Testing

    21 ore

    Secure coding in PHP

    21 ore

    Combined C/C++, JAVA and Web Application Security

    28 ore

    Combined JAVA, PHP and Web Application Security

    28 ore

    Android Security

    14 ore

    Categorie relative