Struttura del corso
1. Concetti e ambito dell’analisi statica del codice
- Definizioni: analisi statica, SAST, categorie di regole e livelli di gravità
- Ambito dell’analisi statica nel contesto di uno SDLC sicuro e nella copertura dei rischi informatici
- Il ruolo di SonarQube nei controlli di sicurezza e nei flussi di lavoro degli sviluppatori
2. Panoramica su SonarQube: funzionalità e architettura
- Servizi principali, database e componenti di analisi del codice
- Quality Gates, Quality Profiles e best practice per la loro configurazione
- Funzionalità legate alla sicurezza: vulnerabilità, regole SAST e mappatura CWE
3. Navigazione e utilizzo dell’interfaccia utente di SonarQube
- Visita guidata dell’interfaccia: progetti, problemi individuati, regole, metriche e strumenti di governance
- Interpretazione delle pagine dei problemi, tracciabilità degli errori e indicazioni per la loro risoluzione
- Opzioni di generazione ed esportazione dei report
4. Configurazione di SonarScanner con gli strumenti di compilazione
- Impostazione di SonarScanner per Maven, Gradle, Ant e MSBuild
- Best practice relative alle proprietà di configurazione, alle esclusioni di file e alla gestione dei progetti multi-modulo
- Generazione dei dati di test necessari e dei report sulla copertura del codice per un’analisi precisa
5. Integrazione con Azure DevOps
- Configurazione delle connessioni di servizio SonarQube in Azure DevOps
- Aggiunta dei task SonarQube nei pipeline di Azure e personalizzazione delle pull request
- Importazione dei repository di Azure Repos in SonarQube e automatizzazione delle analisi periodiche
6. Configurazione del progetto e utilizzo degli analizzatori di terze parti
- Selezione dei Quality Profile a livello di progetto e scelta delle regole per Java e Angular
- Lavorare con analizzatori forniti da terzi e comprendere il ciclo di vita dei plugin
- Definizione e gestione ereditaria dei parametri di analisi del codice
7. Ruoli, responsabilità e valutazione delle metodologie di sviluppo sicuro
- Distribuzione dei ruoli: sviluppatori, revisori, ingegneri DevOps e referenti della sicurezza
- Creazione di una matrice chiara dei ruoli e delle responsabilità all’interno dei processi CI/CD
- Analisi critica e suggerimenti per migliorare le metodologie di sviluppo sicuro attualmente in uso
8. Avanzato: aggiunta di regole, ottimizzazione ed espansione delle funzionalità di sicurezza globali
- Utilizzo dell’API Web di SonarQube per creare e gestire regole personalizzate
- Personalizzazione dei Quality Gates e applicazione automatica delle policy di sicurezza
- Miglioramento della sicurezza del server SonarQube e adozione di best practice per il controllo degli accessi
9. Sessioni pratiche in laboratorio (applicative)
- Laboratorio A: Configurazione di SonarScanner per 5 repository Java (con Quarkus dove applicabile) e analisi dei risultati ottenuti
- Laboratorio B: Analisi del codice in un front-end Angular e interpretazione delle scoperte rilevate
- Laboratorio C: Creazione di un intero pipeline che integri SonarQube con Azure DevOps e abiliti la decorazione automatica delle pull request
10. Test, risoluzione dei problemi e interpretazione dei report
- Strategie per generare dati di test realistici e misurare la copertura del codice analizzato
- Individuazione e risoluzione dei problemi più comuni: errori nello scanner, nei pipeline o nei permessi d’accesso
- Modalità di lettura e presentazione dei report SonarQube a pubblici tecnici e non tecnici
11. Best practice e raccomandazioni strategiche
- Scelta ottimale degli insiemi di regole e strategie per una loro applicazione graduale
- Suggerimenti pratici per migliorare i flussi di lavoro tra sviluppatori, revisori e pipeline di compilazione automatica
- Linee guida per lo scaling efficace di SonarQube in ambienti aziendali complessi
Sintesi finale e prossimi passi da compiere
Requisiti
- Conoscenza del ciclo di vita dello sviluppo software
- Esperienza nell’utilizzo dei sistemi di controllo versione e nei concetti base dei processi CI/CD
- Familiarità con gli ambienti di sviluppo Java o Angular
Destinatari
- Sviluppatori (Java / Quarkus / Angular)
- Ingegneri DevOps e specialisti dei processi CI/CD
- Ingegneri della sicurezza e revisori di sicurezza applicativa
Recensioni (1)
Coinvolgente e pratica manuale.
Balavignesh Elumalai - Scottish Power
Corso - SonarQube for DevOps
Traduzione automatica