HomeTechIl debito tecnico rappresenta un rischio per la sicurezza informatica

Il debito tecnico rappresenta un rischio per la sicurezza informatica

Alla ricerca di una spiegazione profano del “debito tecnico” e perche e importante? Terumi Laskowsky, un istruttore presso DevelopIntelligence, una societa Pluralsight, illustra le basi in questa breve intervista e discute le implicazioni per i leader aziendali.

Che cos’e il debito tecnico?

Il coautore del Manifesto Agile che ha concepito il termine “debito tecnico”, lo ha spiegato con una metafora finanziaria: andare avanti per sviluppare una nuova applicazione software e come ottenere un prestito (debito). 

Immagina di costruire un prodotto utilizzando una tecnologia nuova di zecca. Stai affrontando molte incognite e ci sono alcuni tentativi ed errori. Fai del tuo meglio con quello che sai ora, andando avanti di fronte all’incertezza. Quando scopri cosa funziona bene e cosa no, usi questa conoscenza per migliorare il codice. Migliorare il codice man mano che impari dall’esperienza e simile a rimborsare il prestito. Questo e un concetto che da potere, giusto?

Negli ultimi anni, tuttavia, la definizione di debito tecnico si e modificata rispetto al concetto originario di Cunningham. Oggi, la maggior parte delle organizzazioni pensa al debito tecnico come a un codice con carenze e inefficienze note. Se lasci quel codice scadente, stai permettendo al debito tecnologico di crescere.

La ricerca dello speed-to-market sta causando un maggiore debito tecnico?

Il debito tecnico (secondo la definizione odierna) puo accumularsi in questo modo. Poiche gli sviluppatori devono completare nuove funzionalita e miglioramenti, potrebbero non avere tempo nelle loro pianificazioni per correggere il codice delle versioni precedenti. A meno che un cliente non si lamenti del software o che non funzioni, un team puo scegliere di lasciare le imperfezioni in atto, piuttosto che “perdere” tempo con le correzioni.

Se un’organizzazione non ha tempo per scrivere codice pulito in primo luogo, perche dovrebbe impiegare tempo per farlo in seguito? 

Se non torni mai indietro per migliorare il codice, permetti al debito di persistere e crescere. Ci stai pagando degli interessi. Questo “interesse” potrebbe assumere molte forme, ad esempio clienti insoddisfatti o scarsa quota di mercato perche il tuo prodotto e scadente rispetto alle offerte della concorrenza.

In che modo il debito tecnico influisce sulla sicurezza?

Una vulnerabilita e qualsiasi punto debole che potrebbe portare a dati, sistemi, reputazione del marchio compromessi e cosi via. Un rischio per la sicurezza IT si riferisce alle potenziali conseguenze che un’azienda potrebbe affrontare se un utente malintenzionato sfrutta con successo queste vulnerabilita. 

Gli sviluppatori e le aziende devono bilanciare la ricerca della velocita con i fattori di funzionalita, usabilita e sicurezza. Sfortunatamente, queste priorita sono in conflitto. 

E se le funzionalita di sicurezza rendessero un prodotto piu difficile da usare? Chi vince? Funzionalita, usabilita o sicurezza? Se sei nel governo o in un settore altamente regolamentato, e piu probabile che la sicurezza vinca. Ma per tutti gli altri, funzionalita e usabilita troppo spesso vincono a scapito della sicurezza. 

E se un’azienda non da priorita alla sicurezza all’inizio, cosa succede quando c’e una cultura del “devo muoverci velocemente, quindi inseriamola piu tardi”? Proprio come con le auto, la velocita uccide. 

Ecco un’altra nota importante: un’organizzazione puo scrivere codice pulito e continuare a prendere scorciatoie sulla sicurezza. Hai bisogno sia di codice pulito che di un focus sulla sicurezza.

Chi e responsabile della sicurezza dell’applicazione?

La sicurezza e ancora un ripensamento per molti team di sviluppo software. Potrebbero vederlo come una responsabilita di qualcun altro e/o qualcosa che accade piu avanti nel ciclo di vita dello sviluppo del software. Il lavoro tipico di un programmatore e creare cose nuove. Quella persona spesso non e un esperto di sicurezza. Per scrivere codice tenendo presente la sicurezza, gli sviluppatori di software necessitano di una formazione sui principi di codifica sicura. 

Inoltre, ogni team di sviluppo software dovrebbe fare riferimento a un documento dei requisiti durante la creazione del prodotto. Questo documento stabilisce le specifiche di cio che il software deve essere in grado di fare (requisiti funzionali), nonche altri parametri che sono vitali ma potrebbero non essere direttamente visibili all’utente (requisiti non funzionali come la sicurezza). 

Molte organizzazioni non addestrano i loro programmatori con queste conoscenze o non definiscono requisiti di sicurezza completi all’inizio del progetto, anche se un guasto precoce nella sicurezza puo causare un rischio significativo per l’azienda.

Quali problemi di sicurezza possono causare il debito tecnico?

I problemi piu comuni riguardano i controlli di sicurezza nel codice o nel sistema. Il National Institute of Standards and Technology (NIST) definisce un controllo di sicurezza come “una salvaguardia o contromisura prescritta per un sistema informativo o un’organizzazione per proteggere la riservatezza, l’integrita e la disponibilita delle sue informazioni”.

I controlli di sicurezza servono a mitigare i potenziali rischi. Se questi controlli mancano o sono mal implementati a causa di un atteggiamento “lo faremo meglio in seguito”, l’azienda potrebbe essere responsabile della mancanza di due diligence e governance per proteggere i dati e i sistemi dei propri stakeholder.

I professionisti IT parlano della distinzione tra sicurezza “integrata” e “bolt on”. La sicurezza non e qualcosa che puoi fissare alla fine di un prodotto. Deve essere integrato fin dall’inizio. Piu ignori o ritarderai a concentrarti sulla sicurezza, piu difficile sara risolverlo in un secondo momento. 

Se il codice presenta delle vulnerabilita, il modo per renderlo sicuro e rifattorizzarlo (rifarlo) per correggere le vulnerabilita. In caso contrario, i problemi di sicurezza persisteranno. Attaccare qualcosa in cima come “correzione” e simile all’applicazione di una benda su una brutta ferita. La benda puo farti guadagnare tempo per andare da un medico, ma non risolve la ferita.

La tua attenzione alla velocita puo finire per costare piu di qualsiasi vantaggio pensassi di aver ottenuto, se devi tornare al refactoring.

In che modo i leader aziendali possono aiutare a ridurre il debito tecnico?

Poiche sempre piu rischi aziendali sono legati al rischio tecnologico, e importante che tutti i leader aziendali abbiano una corretta comprensione del debito tecnico, che cos’e, cosa lo causa e le potenziali implicazioni sulla sicurezza, in modo da sentirsi autorizzati a porre domande a proposito. 

Se la tua organizzazione premia l’automazione e la velocita, probabilmente stai acquisendo debiti tecnici. Quindi, vuoi assicurarti che sia un debito accettabile. 

Il giusto tipo di debito tecnico aumenta la velocita e l’agilita della tua attivita. Il tipo sbagliato di debito tecnico esporra inutilmente la tua organizzazione a maggiori rischi per la sicurezza. Parla di questa distinzione come gruppo dirigente. Le priorita aziendali che enfatizzi guidano i comportamenti che tengono sotto controllo il debito tecnico o, al contrario, lo fanno crescere.

La C-suite deve supportare il CISO nell’assicurarsi che gli sviluppatori e gli altri coinvolti nei progetti software abbiano le migliori conoscenze attuali sulla sicurezza. Hai addestrato i tuoi programmatori a fare codifica sicura? Stai cercando di includere il maggior numero possibile di test di sicurezza automatizzati nel processo CI/CD per applicare le migliori pratiche di sicurezza?

La leadership, la C-suite, deve dare il giusto tono agli sviluppatori per quanto riguarda l’importanza della sicurezza IT. Gli sviluppatori faranno cio che i leader premiano. Se stai premiando la velocita rispetto alla sicurezza e alla qualita del codice, potresti aumentare il rischio di sicurezza informatica della tua organizzazione.

RELATED ARTICLES

Most Popular