Secure Coding di Applicazioni Web

Il training si proprone di affrontare i concetti e le tecniche necessarie per analizzare in modo strutturato e metodologico le problematiche di sicurezza più significative nel contesto delle applicazioni web. Questa conoscenza viene sviluppata al fine di supportare le attività di design, sviluppo e manutenzione del software e diminuire il rischio di sicurezza introdotto e gestito durante il ciclo di vita del software.

Course Image

I primi capitoli del training vanno ad introdurre le fondamenta della sicurezza del software, in modo da offrire delle solide basi anche a coloro che non hanno mai studiato l'argomento. La seconda metà del corso entra in profondità nelle aree di interesse relative alla sicurezza di una applicazione web, elencate a seguire:

  • Data Validation
  • Authentication
  • Authorization / Access Control
  • Session Management
  • Business Logic
  • Configuration
  • Cryptography
  • Analisi Report di Sicurezza

Il corso termina analizzando come leggere in modo critico un report di sicurezza al fine di comprendere i rischi esposti e supportare le attività di fixing.

Se sei interessato al training puoi pronotare una chiamata conoscitiva.

Metodologia di Insegnamento

L'approccio per ogni argomento affrontato è simile: si parte da una descrizione del contesto per poi introdurre i rischi e le vulnerabilità di sicurezza inerenti al contesto.

Per ogni problematica esposta si procedere ad analizzare le best-practices, parziali o totali, che possono essere adottate per proteggere l'applicativo, sia sviluppando codice sicuro che non contiene nuove vulnerabilità, e sia sistemando le vulnerabilità già presenti, analizzando attentamente come le scelte di design ed implementazione determinano il rischio di sicurezza a cui l'applicativo è esposto.

Course Image
Utilizzo di BurpSuite come proxy per intercettare e modificare il traffico HTTP.

Durante la trattazione saranno presentati svariati esempi pratici, come ad esempio codici vulnerabili sviluppati appositamente per il corso e analisi di vulnerabilità note riprese da contesti reali.

Course Image
Analisi del design delle API.

Il contenuto pratico del corso ha l'obiettivo di aiutare lo sviluppo di una profonda comprensione sulla natura delle vulnerabilità e sul modo in cui le vulnerabilità sono sfruttate al fine di danneggiare l'applicativo, gli utenti dell'applicativo, ed il business. Questa conoscenza può essere poi utilizzata per difendere l'applicativo tramite pratiche di secure coding.

Competenze acquisite

Al termine del corso, i partecipanti avranno acquisito le seguenti conoscenze e competenze:

  • Comprensione di cosa significa mettere in sicurezza un applicativo web.
  • Conoscenza su quali sono le principali minacce nel contesto dello sviluppo web.
  • Comprensione sugli strumenti utilizzati per analizzare la sicurezza di un applicativo web.
  • Ragionare in modo critico sul rischio di sicurezza.
  • Imparare a minimizzare il rischio di sicurezza durante lo sviluppo.
  • Leggere ed interpretare correttamente un report di sicurezza.
Course Image
Esempio parziale di Proof of Concept (PoC).

Figure di riferimento

Il target di riferimento del training è composto da personale tecnico coinvolto nei processi di sviluppo del software (Software Development Life Cycle), tra cui troviamo:

  • Software Architect
  • Technical Lead
  • Software Developer Fullstack
  • Software Developer Backend
  • Software Developer Frontend
  • DevOps Engineer
  • QA Tester

Livello di preparazione Consigliato

Il training non necessita conoscenza pregressa nel contesto della cybersecurity. Sono però consigliate alcune conoscenze base sullo sviluppo software, tra cui troviamo:

  • Conoscenza sul networking e sul protocollo HTTP
  • Conoscenza sui linguaggi frontend (HTML, CSS, JavaScript)
  • Conoscenza sui linguaggi backend (Java, C#, Python, JavaScript)
  • Conoscenza sul funzionamento base di una applicazione web
Course Image
Codice C# vulnerabile a SQL injection.

Rispetto ai linguaggi di programmazione, non è richiesta una conoscenza approfondita.

Programma del corso

A seguire è possibile trovare il syllabus del corso contenente i principali argomenti. Questi argomenti possono poi essere specializzati nel contesto delle tecnologie utilizzate dal cliente.

  • Parte 1 - Introduzione alla Software Security
    • Introduzione alla sicurezza informatica
    • Verso l'industria della cybersecurity
    • Introduzione alla Web Security
    • Principi di Secure Design
  • Parte 2 - Web Security
    • Data Validation
    • Authentication
    • Authorization / Access Control
    • Session Management
    • Business Logic
    • Configuration
    • Cryptography
  • Parte 3 - Conclusione
    • Lettura e comprensione di un report di sicurezza
    • Cenni al vulnerability management
    • Esame finale

Formazione flessibile e personalizzata

Il programma del corso può essere personalizzato sia rispetto alla durata e sia rispetto alle specifiche tecnologie trattate per rispondere al meglio alle esigenze tecniche e organizzative del cliente, garantendo un percorso formativo mirato ed efficace.

Rispetto alle tecnologie ad esempio il corso può essere ottimizzato e specializzato per parlare di una o più delle seguenti tecnologie:

  • Spring Framework (Java)
  • ASP.NET Core (C#)
  • Flask (Python)
  • FastAPI (Python)
  • Django (Python)
  • NodeJS (JavaScript)

Si offre in ogni caso la possibilità di preparare materiale ad-hoc per tecnologie specializzate a seconda delle necessità del cliente.