Nello sviluppo del software esistono rischi –in genere bug o errori di programmazione –che possono causare vulnerabilità di sicurezza sfruttabili in un attacco. Anche se nel settore è raro che esistano versioni software completamente prive di errori, i bug e altre imprecisioni che mettono a rischio la sicurezza dovrebbero sempre essere identificati e corretti. Tuttavia, se il lavoro in ambito di sicurezza si limitasse a risolvere i problemi riscontrati solo dopo i test sul software finito, le correzioni (sebbene importanti) potrebbero essere solo di forma e non risolvere opportunamente i problemi sottostanti.
Axis ritiene che la sicurezza debba essere considerata fin dall'inizio e per tutto il processo di sviluppo, non solo alla fine. Questo perché si prendono molte decisioni in diverse fasi di sviluppo del software: dalla definizione dei requisiti dell'applicazione, alle fasi di progettazione e implementazione, fino alla verifica e alla distribuzione. In ogni fase, sviluppatori, architetti e proprietari dei prodotti prenderanno decisioni difficili da cambiare quando il software sarà terminato.
Axis Security Development Model
Per affrontare in modo efficace la cybersecurity e garantire che sia integrata nel ciclo di vita dello sviluppo software, Axis ha messo in atto una metodologia denominata Axis Security Development Model(ASDM). Descrive le varie attività di sicurezza da considerare durante le fasi di sviluppo del software. Lo scopo è ridurre le vulnerabilità –ma anche i costi di sviluppo –stabilendo criteri di base per la cybersecurity e fornendo indicazioni. In questo modo, per i team di sviluppo è più facile conoscere le aspettative e comunicare le decisioni relative alla sicurezza.
Il toolbox ASDM prescrive una serie di attività –valutazione dei rischi, modellazione delle minacce, test del modellodi minaccia, analisi statica del codice, scansione delle vulnerabilità e valutazione dei fornitori –per affrontare diversi problemi di sicurezza. Gli sviluppatori possono partecipare o meno a determinate attività, in base al tipo di software da sviluppare. L'ASDM prevede un approccio basato sul rischio ed è ideale perché garantisce che le operazioni di sicurezza siano svolte nel momento più importante. L'obiettivo è perseguire la cybersecurity, anziché ottenere la conformità a un processo.
Quando si applica l'ASDM, si inizia con il valutare se una nuova funzionalità o applicazione presenti un rischio per la sicurezza. Nella maggior parte dei casi, la valutazione dei rischi è seguita dalla modellazione delle minacce e dai test su tali modelli. Quindi si determinano il sistema, i casi d'uso, le minacce e le contromisure. Il codice viene rivisto e analizzato, poi si procede alla verifica.
I test di penetrazione (attacchi informatici simulati) su vari software Axis vengono svolti annualmente da società esterne specializzate. I test, avviati da Axis e dai suoi Partner, costituiscono una revisione indipendente del software e contribuiscono agli sforzi dell'azienda verso la sicurezza. I risultati dei test vengono utilizzati dall'Axis Software Security Group per valutare il lavoro svolto tramite l'ASDM ed eventuali miglioramenti. Lo stesso vale per le nuove vulnerabilità riscontrate, che vengono segnalate da ricercatori esterni all'Axis Product Security Team. I risultati dei ricercatori e dei test di penetrazione condotti da terzi aiutano a migliorare i nostri prodotti e il modo di lavorare. È importante notare che l'Axis Security Development Model è in continua evoluzione.
Un elemento chiave dell'Axis Security Development Model è il suo approccio incentrato sul team. Il team di sviluppo che crea il software è anche responsabile del suo stato di sicurezza. Tutti i giorni, più di 1100 sviluppatori e 50 team Axis applicano l'ASDM al loro lavoro. Ad assistere i team di sviluppo ci sono più di 40 sviluppatori che lavorano nell'Axis Software Security Group (SSG) e negli SSG Satellite per il supporto di prima linea.L'SSG è responsabile della formazione e del toolbox di sicurezza, ma segue anche i vari team e apporta miglioramenti all'ASDM in caso di necessità. Gli SSG Satellite, nel frattempo, aiutano ad adeguare l'ASDM alle esigenze di ciascun team, perché esistono molti stack tecnologici e modi di lavorare diversi. I direttori dei team di sviluppo sono quindi responsabili del follow-up per verificare la conformità con l'ASDM e della sicurezza del software.
La nascita dell'ASDM
L'ASDM è stato istituito nel 2015 ed èdiventato obbligatorio per i team di sviluppo software Axis nel 2017. Prima della sua introduzione, i team Axis seguivano diverse best practice per lo sviluppo software ispirate alla mentalità Axis, che incoraggia la proprietà, l'eccellenza ingegneristica, la trasparenza e la revisione tra pari. Sebbene i team abbiano raggiunto standard di alta qualità, Axis non aveva un metodo comune per definire come integrare le considerazioni sulla sicurezza nel processo di sviluppo. La maggiore importanza attribuita alla sicurezza informatica e l'evoluzione delle best practice, inoltre, rendevano indispensabile un miglioramento delle modalità di lavoro.
Per trovare un approccio comune e praticabile, Axis ha esaminato le normative e i framework di sicurezza informaticaesistenti –come ISO 27001, IEC 62443, NIST, BSIMM e CMMC –che trattano direttamente o indirettamente la sicurezza in fase di sviluppo. Il filo conduttore di questi standard e framework è che la sicurezza deve essere integrata in diverse fasi di sviluppo. Inoltre, illustrano agli utenti le prassi ottimali e creano un vocabolario comune che semplifica ai vari stakeholder la comunicazione in merito alla cybersecurity.
L'ASDM, tuttavia, non è una semplice implementazione di uno standard o un framework esistente. Adotta molti aspetti benefici di diversi standard e framework ed è adattato alla cultura aziendale e alle prassi di sviluppo Axis. Essendo un modello su misura, è rilevante per vari tipi di software; in un ambiente caratterizzato da minacce informatiche e contromisure che cambiano di continuo, è anche in grado di accogliere nuove best practice. In breve, l'ASDM consente ai team di sviluppo Axis di ottenere il massimo impatto possibile e integrare concretamente la sicurezza nel software.