Arduino abbraccia la sicurezza come parte integrante del ciclo di vita dello sviluppo al fine di fornire ai propri clienti, hardware, software e servizi digitali sicuri.
I principi della sicurezza vengono applicati in Arduino nelle diverse aree inerenti prodotti e servizi digitali. La piattaforma Arduino segue infatti un approccio DevSecOps con particolare attenzione alla sicurezza durante ciascuna delle seguenti fasi:
- Plan: i requisiti di sicurezza sono identificati e analizzati. Ciò comporta la valutazione dei rischi e delle minacce alla sicurezza e la determinazione dei controlli e delle misure di sicurezza necessari.
- Design: i requisiti di sicurezza sono considerati durante la definizione dell'architettura del prodotto. Qualsiasi flusso di lavoro che richieda particolare attenzione alla sicurezza viene progettato e rivisto in dettaglio prima dell'implementazione.
- Build: vengono seguiti principi di codifica sicura e best practice per ridurre al minimo le vulnerabilità.
- Test: vengono utilizzati strumenti di test di sicurezza automatizzati, come i test di sicurezza delle applicazioni statiche (SAST), per scansionare il codice sorgente e identificare potenziali falle di sicurezza. Viene eseguita anche l'analisi dei componenti sicuri per garantire che i componenti esterni non compromettano la sicurezza del nostro software. Le pipeline CI/CD sono configurate per eseguire questi test di sicurezza come parte dei processi di compilazione e test. Le vulnerabilità di sicurezza sono identificate e classificate in base alla loro priorità e rischio, in modo che qualsiasi problema critico possa essere risolto prima di passare alla fase successiva.
- Release: vengono utilizzate le migliori pratiche di sicurezza per garantire che l'ambiente di distribuzione sia sicuro. Ciò comporta l'applicazione di configurazioni sicure, la gestione dei controlli di accesso e l'implementazione di architetture di rete sicure.
- Funzionamento: vengono condotti regolari controlli di sicurezza e test di penetrazione per valutare la resilienza del sistema agli attacchi e garantire la conformità alle migliori pratiche di sicurezza.
- Monitoraggio: gli strumenti di monitoraggio vengono utilizzati per fornire visibilità sullo stato dei servizi Cloud e rilevare comportamenti anomali e potenziali minacce. In caso di incidente o violazione della sicurezza, i tecnici collaborano con i team operativi e di sviluppo per affrontare l'incidente, mitigare l'impatto e ripristinare la sicurezza e la funzionalità del sistema. Durante ciascuna di queste fasi, la sicurezza non è vista come una funzione separata, ma piuttosto come una responsabilità integrata di tutti i team coinvolti nel processo di sviluppo e operativo del software, ispirata da un approccio alla sicurezza Shift-Left. Gli ingegneri della sicurezza lavorano al fianco degli sviluppatori e del personale operativo per fornire indicazioni, condurre valutazioni della sicurezza e garantire che i controlli di sicurezza siano implementati in modo efficace in ogni fase del processo di sviluppo.