Training aziendale

Cybersecurity training

Percorsi formativi specializzati per aiutare team e organizzazioni a comprendere, prevenire e gestire i rischi di sicurezza del software moderno

I contenuti vengono adattati al contesto operativo dell'azienda, al livello di esperienza dei partecipanti e agli obiettivi concreti del team. L'approccio è tecnico, pragmatico e orientato alla comprensione dei meccanismi reali dietro vulnerabilità, attacchi e difese.

Secure Coding Di Applicazioni Web

Il training affronta 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.

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 - Secure Coding using AI
  • Working with AI tools
  • Secure Code Review with AI
  • Parte 4 - Conclusione
  • Lettura e comprensione di un report di sicurezza
  • Cenni al vulnerability management
  • Esame finale
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.
  • Utilizzare gli strumenti di AI per supportare i processi di sviluppo e di analisi del codice.
Target 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

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

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.

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.

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.

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.

Web Application Penetration Testing (Wapt)

Il corso affronta la sicurezza delle applicazioni web con un focus sull'aspetto offensive. Nello specifico è sviluppato per insegnare come effettuare dei test di sicurezza ad applicativi web. A tale fine, si effettua un test di sicurezza su una applicazione vulnerbile scritta in C# tramite il framework .NET core, e si scopriranno più di 40 vulnerabilità.

Programma del corso
  • Introduzione alla Software Security
  • Proprietà di sicurezza (CIA)
  • Vulnerabilità del Software
  • Rischio di sicurezza digitale
  • Attività di testing
  • Il sistema CVE
  • Il sistema CVSS
  • OWASP
  • Imparare tramite le CTF
  • Introduzione al WAPT
  • Ripasso protocollo HTTP
  • Configurazione del proxy HTTP
  • Deployment di applicazioni vulnerabili
  • Utilizzo di Burp Suite
  • WAPT Testing
  • Information Disclosure
  • Injection Vulnerabilities
  • Authentication
  • Authorization
  • Session Management
  • Business Logic Vulnerabilities
  • Validation Vulnerabilities
  • Cryptography
  • Insecure Configuration
  • WAPT Report Writing
  • Come scrivere un PoC
  • Come organizzare un report