Il mondo è sempre più appannaggio del software e il Secure code auditor si spende affinché sia affidabile e integro. Il secure coding è sempre più essenziale per fornire dei software di qualità che decretano il successo sia di chi li sviluppa sia di chi li usa.
È l’uomo o la donna che lavora nelle retrovie, fa parte delle linee di difesa e deve possedere delle conoscenze di ordine tecnologico e altre più soft come, per esempio, la capacità di prevedere le conseguenze anche soltanto teoriche delle debolezze di un software.
Poiché sarà il software a governare il futuro e poiché le minacce tendono a evolvere per numero e sofisticatezza, è facile dedurre che quella del Secure code auditor sarà una professione sempre più richiesta.
Indice degli argomenti
Introduzione alla professione del Secure code auditor
Software e applicazioni in genere sono cruciali. Non si parla di solo di software gestionale o specifico incluso quello sviluppato all’interno delle organizzazioni che ne fanno uso, c’è un mondo sconfinato di dispositivi IoT e IIoT che stanno rivoluzionando il modo di fare impresa e che sono a loro volta gestiti da codice espressamente sviluppato.
C’è anche un emisfero di API che consente l’integrazione di applicativi con altri applicativi e, a prescindere, ci sono software che dialogano tra loro mediante apposite interfacce capaci di riverberare eventuali falle nel codice.
Trovare le falle prima che vengano scovate e usate in modo poco onesto è uno dei compiti del Secure code auditor.
Chi è il Secure code auditor: definizione e ruolo
Il compito del Secure code auditor, tuttavia, non è limitato all’individuazione di falle nel codice, deve comprendere le architetture del software – incluse quindi le API e i protocolli di rete – per valutare i rischi nella loro complessità e suggerire le soluzioni per mitigarli.
Questo, come vedremo, richiede competenze ampie e variegate, oltre alla cura del dettaglio e alla capacità di anticipare e risolvere i problemi. Siamo davanti a una delle tante nuove professioni della cyber security che hanno la peculiarità di essere scoppiettanti e sempre in evoluzione con l’aumentare della sofisticatezza delle tecniche degli attaccanti.
Verifica del codice sorgente di applicazioni e sistemi, identificazione delle vulnerabilità e misure di mitigazione sono quindi parti integranti della professione del Secure code auditor.
Le contromisure e i miglioramenti suggeriti dal Secure code auditor impattano sia su chi sviluppa codice sia sull’ufficio legale dell’azienda, chiamato a redigere le policy d’uso del software tenendo conto dei potenziali rischi a cui sono esposti gli utenti.
Campo d’azione: dove lavora un Secure code auditor
Laddove è inquadrato in un’azienda privata o pubblica, fornisce le proprie competenze all’interno del Security Operation Center (SOC). Come vedremo, quella del Secure code auditor è una figura che trova spazio anche nell’ambito dell’istruzione e della ricerca.
Ancora prima, va considerato che in un SOC esistono figure professionali i cui compiti, almeno in parte, tendono a sovrapporsi a quelli del Secure code auditor: tra queste, per esempio, il Security auditor e il Security analyst.
Il primo, nella misura in cui è chiamato a valutare anche le policy di sicurezza, deve lavorare a stretto contatto con il Secure code auditor così come dovrebbe fare il Security analyst il quale, in virtù delle sue mansioni, è deputato alla diffusione della cultura cyber all’interno dell’azienda.
L’importanza del Secure code auditor
Quanto scritto finora aiuta a sottolineare l’importanza del Secure code auditor. È una figura fondamentale le cui competenze e il cui operato sono compartecipi del successo (o dell’insuccesso) del software prodotto e, di conseguenza, della continuità del business di chi ne fa uso.
Un’azienda che produce software lacunosi dal punto di vista della sicurezza è destinata a scomparire e, parimenti, le organizzazioni che ne fanno uso ne pagano lo scotto.
Il compito del Secure code auditor è quello di rilevare e mitigare le minacce prima che possano essere sfruttate dagli attaccanti e questo, in modo diretto, ha a che fare anche con la protezione dei dati e dei servizi digitali nel loro insieme.
Competenze richieste per diventare Secure code auditor
Le competenze sono trasversali e non sono tutte riconducibili alle discipline tecniche o tecnologiche. Infatti, come vedremo sotto, servono tra le altre anche competenze negli ambiti della logica e della comunicazione. Vediamo però nel dettaglio quali sono le competenze fondamentali di un Secure code auditor.
Capacità matematiche e logiche
La matematica è il fil rouge che accomuna le professioni della cyber security tra i cui principi cardine figurano la crittografia e l’analisi dei dati per inquadrare e prevenire le minacce potenziali.
Pure essendo discipline diverse, la matematica e la logica propriamente dette vanno spesso a braccetto. Nel caso del Secure code auditor, deputato anche a prevedere falle funzionali e logiche del codice, va da sé che la stessa logica sia una capacità fondante, così come è cruciale per valutare in modo ragionato le evidenze risultanti dalle analisi dei dati.
Entrando in profondità della logica intesa in senso lato, ricopre un ruolo essenziale la logica booleana che serve anche a definire le procedure di offuscamento del codice che limitano i rischi di reverse engineering tanto caro agli hacker.
Familiarità con tecnologie informatiche e linguaggi di programmazione
Senza possedere una solida conoscenza dei linguaggi e delle logiche di programmazione, il Secure code auditor non potrebbe fare il proprio mestiere. Inoltre, devono fare parte del suo sapere anche le vulnerabilità quali, per esempio, Cross-Site Scripting (XSS), SQL Injection, Buffer overflow e molte altre ancora, anche più recenti e quindi meno note.
Capacità di risolvere problemi e di pensare in modo analitico
L’analisi critica è essenziale per effettuare revisioni efficaci del codice davvero utili all’individuazione di rischi e vulnerabilità che non appaiono a primo acchito. Ciò rimanda alla necessaria predisposizione al dettaglio e alla precisione, proprio perché gli hacker fanno leva anche (e in alcuni casi, soprattutto) sulle vulnerabilità di minore portata.
Non di meno, la capacità di un Secure code auditor di proporre soluzioni per la mitigazione dei rischi richiede una spiccata predisposizione al problem solving, altra dote comune a tutte le professioni della cyber security.
Strumenti e tecniche che un Secure code auditor dovrebbe conoscere
In primis, il Secure code auditor deve essere un evangelista delle best practice di sicurezza come, per esempio, OWASP (Open Web Application Security Project) e SANS (SysAdmin, Audit, Network, and Security Institute)
A queste, sempre in primissima istanza, vanno aggiunti gli strumenti automatici per l’analisi del codice. I più diffusi sono Checkmarx, Fortify e SonarQube.
C’è però dell’altro tra le competenze e le tecniche che un Secure code auditor deve avere tra le proprie corde.
Modelli statistici
Le minacce sono in continua evoluzione e i modelli statistici sono preziosi per individuare schemi insoliti che possono coincidere con violazioni della sicurezza, favorendo così le risposte agli incidenti.
I modelli quantitativi, utili alla gestione del rischio, favoriscono anche la prioritizzazione delle strategia di risposta.
L’uso di modelli e l’analisi di grandi moli di dati sono fondamentali per identificare le tendenze delle minacce. Torna ancora una volta una naturale predisposizione alla logica e alla matematica, entrambe utili alle interpretazioni dei dati che rientrano nei compiti del Secure code auditor.
Capacità comunicative
Il Secure code auditor ha sulle proprie spalle, tra gli altri, anche il compito di comunicare il frutto del proprio lavoro a tutte le parti coinvolte, gli stakeholder.
La chiarezza diventa fondamentale perché non tutti sono avvezzi ai termini tipici dell’ITC e della cyber security.
Allo stesso modo, le raccomandazioni risultanti dalle analisi del codice devono essere dettagliate e chiare.
Sapere comunicare è una delle soft skill indispensabili ed è una di quelle doti che possono essere affinate fino a un certo punto ma che si basano su capacità innate nel singolo.
Percorso formativo per diventare Secure code auditor
La laurea in Informatica, in Ingegneria del software o un titolo equivalente è quanto tende a richiedere il mercato del lavoro che, però, non disdegna l’esperienza acquisita sul campo.
A corredo, le certificazioni quali la Certified Ethical Hacker (CEH), la Certified Information Systems Security Professional (CISSP) oppure la Offensive Security Certified Professional (OSCP) sono credenziali più che valide sul curriculum vitae di chi ambisce alla professione del Secure code auditor.
L’istruzione formale, pure essendo fondamentale, costituisce solo una parte del bagaglio di conoscenze richieste.
In altre parole, il percorso formativo per diventare Secure code auditor è articolato e prevede anche l’esperienza pratica.
Corsi e aggiornamento continuo
La formazione passa anche attraverso i corsi (ne abbiamo segnalati alcuni qui) di cyber security ma anche di programmazione sicura.
Molti spunti sono offerti dai workshop e dalle conferenze più popolari al cui centro vengono spesso messe le tecniche più recenti nel campo della sicurezza. Seguire conferenze ed eventi come Black Hat, Defcon oppure OWASP AppSec è cruciale per l’aggiornamento che può essere garantito anche dalle letture di settore o l’adesione a forum specifici.
Esperienza sul campo e opportunità di stage
Le opportunità di stage sono sempre benefiche, soprattutto per chi parte da posizioni di sviluppatore oppure di Security analyst.
Tuttavia, dopo avere effettuato diverse ricerche online, possiamo asserire che il mercato del lavoro italiano è poco ricettivo alla figura del Secure code auditor.
Risulta quindi più percorribile l’ipotesi di esercitare una delle tante professioni legate alla cyber security e, con il passare del tempo, sfruttare tutte le possibilità che si aprono per avvicinarsi alla funzione del Secure code auditor passando, per esempio, per i ruoli di Application security engineer oppure di Secure code reviewer.
Carriera e prospettive future per un Secure code auditor
La professione di Secure code auditor può essere considerata intermedia per chi ha ambizioni più alte e vuole ricoprire il ruolo di Security architect, di Security manager e financo quello di Chief information security officer (Ciso).
Le prospettive future sono strettamente legate all’evoluzione delle minacce informatiche, aspetto questo che non ha mai smesso di verificarsi negli ultimi lustri e che, in attesa di chiare indicazioni contrarie, continuerà ad ascendere sia nel numero sia nella sofisticatezza.
Non di meno, le norme sempre più stringenti (si pensi soprattutto al GDPR europeo o alla compliance in auge in diversi Stati extra Ue) esigono che i produttori siano sempre più ligi nel garantire la sicurezza di ciò che sviluppano.
Diverse opportunità nel settore pubblico e privato
Soprattutto all’estero e solo di sponda in Italia, le opportunità di lavoro per un Secure code auditor sono molte, così come sono diverse le tipologie di organizzazioni in cui può inserirsi. Tra queste:
- Aziende commerciali dedito allo sviluppo di software
- Grandi aziende che sviluppano software al proprio interno come, banche, Telco, assicurazioni o attori della sanità
- Aziende di consulenza
- Agenzie governative che si occupano di difesa o che gestiscono dati di persone fisiche o giuridiche
- Istituzioni scolastiche e di ricerca. La tutela dei sistemi e del codice non è appannaggio solo dei settori tipicamente commerciali.
C’è poi la sempre valida via della libera professione che, però, può avere più appeal in altri Paesi rispetto all’Italia.
Compensi attesi e crescita professionale
Le ricerche online hanno dato esiti diversi anche per quanto riguarda le remunerazioni. In Europa si va dai 60mila ai 75 mila euro circa all’anno. Negli Stati Uniti si può ambire a compensi superiori, nell’ordine dei 100mila dollari, ovvero poco meno di 92mila euro annui.
La crescita professionale, benché ci si muova nel campo delle ipotesi, sarà sempre più dettata dal cloud e dalla IoT security.
Con il crescere dell’adozione di queste due tecnologie, anche le aziende meno grandi avranno bisogno di scrivere codice proprietario per creare applicazioni cloud e interfacce per la raccolta dei dati da elaborare.
I Secure code auditor avranno così modo di specializzarsi e di diventare parte sempre più integrante delle organizzazioni per le quali lavorano.