Diventa Autore per CoreTech | Scopri di più





5 principali vantaggi dei primi test di sicurezza

04/05/21 CoreTech Blog

test sicurezza

Non è un segreto che i primi test di sicurezza siano vantaggiosi. Tuttavia, sai quanto sia vantaggioso e quali sono le potenziali conseguenze della mancanza di test precoci? Ecco i 5 principali vantaggi dei test di sicurezza precoci insieme ai rischi dei test tardivi.

Vantaggio 1: soluzioni semplificate

La sfida

Una delle maggiori sfide che gli sviluppatori devono affrontare è lavorare con il codice creato da altri sviluppatori. Se hanno il compito di correggere o modificare il codice scritto da qualcun altro, devono prima capire quel codice. Nonostante il fatto che i moderni team di sviluppo abbiano un sacco di meccanismi e standard in atto per renderlo più facile, è ancora un compito difficile.

Questo è il motivo per cui la maggior parte degli sviluppatori è molto più felice di svolgere attività per sviluppare nuove funzionalità o estendere il codice esistente piuttosto che lavorare sulle segnalazioni di bug. La situazione è ancora peggiore con i problemi relativi alla sicurezza informatica (inclusa la sicurezza web), dove la comprensione dell'errore di qualcun altro potrebbe richiedere molte ricerche.

La soluzione

I primi test di sicurezza indicano che il codice non viene mai accettato nel repository a meno che non sia sicuro. Significa che lo sviluppatore deve risolvere i problemi di sicurezza prima di completare l'attività. Ciò, a sua volta, riduce la possibilità che in seguito vengano assegnate segnalazioni di bug di sicurezza e correzioni ad altri sviluppatori.

Ad esempio, se lo sviluppatore sta lavorando in un ambiente DevSecOps , di solito crea un ramo privato in un repository di codice (ad esempio in Git) e quindi esegue un lavoro CI / CD (ad esempio in Jenkins) per creare quel ramo privato. Se il codice viene compilato correttamente, il processo CI / CD esegue una serie di test QA: unit test, test funzionali, test di integrazione e altro ancora. Questi test includono o sono seguiti da test di sicurezza utilizzando uno strumento DAST e / o IAST / SAST . Se questi strumenti ritengono che il software non sia sicuro, la compilazione non riesce. Lo sviluppatore deve eliminare i problemi e riprovare.

Il vantaggio

Con i primi test, lo sviluppatore non sarebbe in grado di completare la propria attività a meno che l'applicazione non sia ritenuta sicura utilizzando uno strumento di test di sicurezza automatizzato. I vantaggi dettagliati sono:

  • Risparmio di tempo: gli sviluppatori raramente perdono tempo cercando di comprendere i problemi di sicurezza introdotti da altri. Devono solo preoccuparsi dei propri bug relativi alla sicurezza.
  • Riduzione dei biglietti: ci sono molti meno biglietti creati per problemi relativi alla sicurezza. Pertanto, i project manager dedicano meno tempo alla gestione dei problemi.

Vantaggio 2: sviluppo della responsabilità dello sviluppatore

La sfida

Molti sviluppatori evitano la sicurezza. Di conseguenza, spesso commettono errori di base. Ad esempio, accettano input non attendibili e lo utilizzano direttamente come parte dell'output.

Poiché la qualità del codice scritto da uno sviluppatore viene solitamente verificata attraverso la revisione del codice peer e quasi mai valutata dal team di sicurezza, l'effetto persiste. Il revisore potrebbe prestare la stessa attenzione alla sicurezza dell'autore originale.

Se le pipeline CI / CD non includono la scansione di sicurezza, tale codice non sicuro entra nel repository. Lo scanner rileva le vulnerabilità nella gestione temporanea e crea nuovi problemi nel tracker dei problemi. Tuttavia, i tuoi manager devono assegnare questi problemi agli sviluppatori. Non hanno modo di sapere chi è stato responsabile dell'introduzione della vulnerabilità e quindi non possono attribuire tali problemi al colpevole originale.

Di conseguenza, è molto probabile che una vulnerabilità di sicurezza introdotta da uno sviluppatore venga risolta da un altro sviluppatore. Gli sviluppatori originali non sono ritenuti responsabili. Quel che è peggio, potrebbero non scoprire nemmeno di aver introdotto la vulnerabilità!

La soluzione

Se esegui i test di sicurezza nella prima fase possibile e configuri il software in modo appropriato, uno sviluppatore non può inviare codice che contiene vulnerabilità. Ciò costringe lo sviluppatore ad assumersi la responsabilità della sicurezza del proprio codice. Se lo sviluppatore scrive male il codice, dovrà tornare indietro e correggerlo finché lo scanner non dice che l'applicazione è sicura.

Il vantaggio

Con i primi test di sicurezza, gli sviluppatori si rendono conto che è nel loro interesse scrivere codice sicuro. Si rendono conto che se evitano la sicurezza, saranno costretti a dedicare molto più tempo alla correzione dei propri errori. E poiché il test di sicurezza viene eseguito automaticamente, non avranno nessuno da incolpare per aver segnalato i propri errori.

I vantaggi dettagliati sono:

  • Sviluppatori che si rendono conto delle proprie responsabilità: a meno che gli sviluppatori non si assumano la responsabilità delle vulnerabilità della sicurezza, non possono completare le attività loro assegnate (le build falliscono).
  • Sviluppatoriche si rendono conto dell'importanza della sicurezza : gli sviluppatori smettono di considerare la sicurezza come non importante perché si rendono conto che devono esserne responsabili.

Vantaggio 3: formazione degli sviluppatori sulla sicurezza

La sfida

Università rinomate spesso insegnano ai loro studenti abilità di sviluppo complesse come la capacità di dimostrare formalmente la correttezza dei loro algoritmi utilizzando invarianti. Tuttavia, le stesse università spesso saltano la formazione di base sulla codifica sicura. Le lezioni spesso non si concentrano affatto (o non abbastanza) sull'importanza di diffidare dell'input dell'utente. Pertanto, non c'è da meravigliarsi che la maggior parte degli sviluppatori semplicemente non sappia come scrivere codice sicuro .

In un ambiente professionale, se un professionista della sicurezza comunica a uno sviluppatore che il suo codice non è sicuro, ciò potrebbe causare diversi problemi. Uno sviluppatore inesperto può sentirsi in ansia per la propria posizione. Uno sviluppatore esperto può mettersi sulla difensiva perché sente di avere abbastanza esperienza per sapere cosa sta facendo. Entrambi potrebbero finire per non gradire il professionista della sicurezza che ha segnalato l'errore.

La soluzione

Il test automatizzato nelle prime fasi del processo di sviluppo elimina potenziali conflitti tra sviluppatori e team di sicurezza perché la vulnerabilità viene segnalata da una macchina, non da una persona. Inoltre, se il test viene eseguito prima, nessuno, tranne lo sviluppatore, è a conoscenza della vulnerabilità. Pertanto, lo sviluppatore non ha bisogno di essere ansioso di essere giudicato.

Allo stesso tempo, un buon strumento di sicurezza non si limiterà a segnalare un problema di sicurezza, ma fornirà anche informazioni sulla causa principale dell'errore di sicurezza e guiderà come risolverlo. In quanto tale, lo sviluppatore imparerà per il futuro come evitare di creare tali errori in primo luogo.

Il vantaggio

I primi test di sicurezza automatizzati rendono gli sviluppatori più a loro agio e li aiutano a imparare a scrivere codice sicuro.

I vantaggi dettagliati sono:

  • Miglioramento delle relazioni: gli sviluppatori apprendono i propri errori da strumenti automatizzati, non da professionisti della sicurezza, e quindi non ci sono conflitti personali o antipatie su questa base.
  • Eliminazione dell'ansia: gli sviluppatori non devono preoccuparsi della sicurezza della loro posizione in azienda se le loro competenze relative alla sicurezza non sono ancora al passo con i tempi.
  • Miglioramento delle capacità di programmazione: gli sviluppatori imparano esercitandosi (risolvendo le proprie vulnerabilità) e leggendo utili informazioni aggiuntive (fornite dallo strumento) e, di conseguenza, migliorano le proprie capacità di scrittura sicura del codice.

Vantaggio 4: risparmio di tempo ancora maggiore

La sfida

Supponiamo il seguente scenario di caso.

Il tuo sviluppatore introduce accidentalmente una grave vulnerabilità in una nuova funzione della tua applicazione. Questa vulnerabilità passa inosservata al revisore del codice e non ci sono test automatici nelle prime fasi dell'SDLC. Questa funzione è molto importante per i tuoi clienti ed è inclusa nella prossima versione critica.

Come molte aziende, esegui i test di sicurezza solo prima delle principali versioni, durante lo staging. In tal caso, il tuo strumento di test ti informerà sulla vulnerabilità della sicurezza subito prima del rilascio critico (diverse settimane dopo che la vulnerabilità è stata effettivamente introdotta nel codice).

Per eliminare la vulnerabilità, devi ritardare il tuo rilascio. Il codice deve tornare agli sviluppatori, quindi passare attraverso le successive fasi di test del QA e, infine, mettere l'applicazione in fase di staging da zero. A causa della mancanza di test di sicurezza precedenti, si scopre che la vulnerabilità non è stata eliminata (lo sviluppatore ha utilizzato una soluzione alternativa inefficace). Torni di nuovo al tavolo da disegno e il rilascio critico è ora seriamente ritardato.

Il costo di una tale scoperta in una fase così avanzata potrebbe essere enorme. Forse il tuo cliente dipende dal rilascio tempestivo e questo ha un impatto significativo sulla tua attività. Tutto a causa di un errore che non è stato individuato abbastanza presto.

La soluzione

Con i primi test, è improbabile che si verifichi una situazione come quella sopra descritta. La maggior parte delle vulnerabilità verrebbe rilevata molto prima che la prima versione dell'applicazione sia pronta per il rilascio. Alcune vulnerabilità meno critiche possono essere scoperte durante lo staging (grazie alla possibilità di testare l'intera applicazione su un server web reale) ma è improbabile che richiedano un pull-back di rilascio. Puoi persino configurare i test iniziali in modo che vengano superati se le vulnerabilità scoperte vengono automaticamente considerate a basso rischio.

Il vantaggio

I ritardi causati dalla mancanza di test precoci tendono a crescere rapidamente. Eliminando le vulnerabilità non appena compaiono, risparmi molto tempo. Questo risparmio di tempo può avere un impatto critico sulla tua attività. Ma non è importante solo risparmiare tempo, è la prevedibilità. In caso contrario, potrebbero verificarsi potenziali ritardi imprevisti appena prima del rilascio, rendendo la pianificazione del rilascio completamente imprevedibile.

I vantaggi dettagliati sono:

  • Rilascio puntuale: se una qualsiasi parte dei test principali, come i test di sicurezza, viene eseguita nell'ultima fase prima del rilascio, i problemi rilevati potrebbero ritardare il rilascio. Con i primi test, ciò non accade.
  • Prevedibilità migliorata: se non si conoscono errori di sicurezza critici fino all'ultimo momento prima del rilascio, non è possibile prevedere i ritardi causati da tale scoperta.

Vantaggio 5: evitare l'esposizione premeditata

La sfida

Se ti trovi di fronte a una situazione come quella sopra descritta, in cui una vulnerabilità scoperta troppo tardi causa un notevole ritardo per un rilascio critico, potresti essere costretto ad andare avanti con il rilascio nonostante la vulnerabilità. Molte aziende affrontano una tale realtà abbastanza spesso se non implementano i primi test di sicurezza.

È ovvio che esporre al pubblico software con una grave vulnerabilità può avere un prezzo molto alto. Cogliere la possibilità che la vulnerabilità non venga scoperta da hacker malintenzionati prima della prossima versione è come giocare alla roulette russa. Nella maggior parte dei casi, le aziende scelgono di proteggere temporaneamente il proprio software utilizzando firewall per applicazioni Web (WAF) . Tuttavia, ciò non è sempre possibile (se, ad esempio, il software viene consegnato a una terza parte e non è ospitato dall'azienda) e la protezione WAF non è infallibile.

La soluzione

I primi test eliminano completamente il rischio di rilasciare intenzionalmente software vulnerabile. Sebbene i test a livello di gestione temporanea e i test di penetrazione manuali aggiuntivi possano esporre alcune vulnerabilità che sono state ignorate durante le scansioni automatiche, il rischio che queste vulnerabilità siano gravi è molto basso.

Il vantaggio

Evitare la necessità di rilasciare intenzionalmente software vulnerabile è di per sé un enorme vantaggio. Tuttavia, evitare tali situazioni comporta molti vantaggi dettagliati aggiuntivi come:

  • Versioni prevedibili: il team non deve preoccuparsi che i problemi vengano scoperti all'ultimo minuto e che richiedano decisioni critiche.
  • Fiducia migliorata: gli stakeholder come il top management oi clienti esterni mantengono la fiducia nella qualità del software e del processo.
  • Nessun rischio per la conformità: se la tua azienda deve scegliere tra ritardare le modifiche di funzionalità critiche o esporre intenzionalmente una vulnerabilità, ciò potrebbe influire sulla conformità.

Articoli su Sicurezza

Sicurezza aziendale: da cosa è minacciata e come proteggerla?Il threat modeling per la sicurezza delle applicazioniScanner di vulnerabilità: ecco come funzionanoWeb security: 5 motivi per cui è essenziale contro i ransomwareChe cos'è DevSecOps e come dovrebbe funzionare?Test di penetrazione vs scansione delle vulnerabilitàConsiderazioni sui test di correzione delle applicazioni WebQuattro modi in cui l'analisi AppSec aiuta i tuoi professionisti DevSecOpsQuattro modi per combattere il divario di competenze di sicurezza informaticaDove i framework di cybersecurity incontrano la sicurezza webCome costruire un piano di risposta agli incidenti informaticiRendi i tuoi utenti parte della soluzione di sicurezza webSei l'unico che può proteggere le tue applicazioni webNuovo studio di settore: il 70% dei team salta i passaggi di sicurezzaConvergenza Dev-Sec: i progressi e le sfide sulla strada per garantire l'innovazioneAggiornamento FISMA: cosa sta cambiando e perché è importanteChe cos'è la sicurezza continua delle applicazioni Web?Sei l'unico che può proteggere le tue applicazioni webCos'è la sicurezza del sito Web: come proteggere il tuo sito Web dall'hackingRendi i tuoi utenti parte della soluzione di sicurezza webConvergenza Dev-Sec: la ricerca illustra i progressi per garantire l'innovazioneAggiornamento FISMA: cosa sta cambiando e perché è importanteChe cos'è la sicurezza continua delle applicazioni Web?La differenza tra XSS e CSRFNuovo studio di settore: il 70% dei team salta i passaggi di sicurezzaPrevenzione e mitigazione XSSStop ai compromessi sulla sicurezza delle applicazioni webSfatare 5 miti sulla sicurezza informaticaBasta compromessi sulla sicurezza delle applicazioni webNozioni di base sulla sicurezza web: la tua applicazione web è sicura?Che cos'è l'iniezione dell’header HTTP?Fare shift left o no?Individuazione e correzione di falle di sicurezza in software di terze partiClassi di vulnerabilità Web nel contesto delle certificazioniScripting tra siti (XSS)Che cos'è un attacco CSRFChe cos'è una SQL Injection (SQLi) e come prevenirlaAttacchi di attraversamento di directoryChe cos'è la falsificazione delle richieste lato server (SSRF)?7 migliori pratiche per la sicurezza delle applicazioni WebBlack Hat 2021: la più grande minaccia alla sicurezza informaticaÈ ben fatto? Chiedi allo sviluppatore!Scegli la soluzione di sicurezza delle applicazioni web che fa per teSicurezza fai-da-te: lo stai facendo bene?Sulla sicurezza delle applicazioni web professionali per MSSPLa cattiva comunicazione è al centro delle sfide di AppSecImpostazione e raggiungimento degli obiettivi di sicurezza delle applicazioniMetriche di sicurezza informatica per le applicazioni WebCome evitare attacchi alla supply chainPerché la maggior parte delle misure di sicurezza delle applicazioni fallisceVuoi che la tua sicurezza sia costruita su scuse?Cos'è SCA e perché ne hai bisognoLa scansione ad hoc non è sufficienteEsposizione dei dati sensibili: come si verificano le violazioniHai paura dei test di sicurezza nell'SDLC?Vantaggi di Web Asset DiscoveryStrumenti di scansione delle vulnerabilità: perché non open source?Protezione WAF - Ottieni il massimo dal tuo firewall per applicazioni webL'errore di comunicazione è al centro delle sfide di AppSecDebugger remoti come vettore di attaccoDAST è una parte essenziale di un programma completo per la sicurezza delle applicazioniCome difendersi dagli attacchi recenti su Microsoft Exchange5 principali vantaggi dei primi test di sicurezzaTecniche di attacco Denial-of-Service con avvelenamento della cacheQuali principali attacchi web possiamo aspettarci nella nuova top 10 di OWASP?Hack di SolarWindsPillole di Sicurezza | Episodio 38Pillole di Sicurezza | Episodio 37Perché gli sviluppatori evitano la sicurezza e cosa puoi fare al riguardoPillole di Sicurezza | Episodio 36Cos'è l'attacco RUDYCos'è la navigazione forzataCome gli scanner trovano le vulnerabilitàPillole di Sicurezza | Episodio 34Pillole di Sicurezza | Episodio 35Come eseguire il benchmark di uno scanner di vulnerabilità Web?Pillole di Sicurezza | Episodio 33Pillole di Sicurezza | Episodio 325 proposte di vendita comuni sulla sicurezza delle applicazioni web5 motivi per non fare affidamento sui programmi BountyPillole di Sicurezza | Episodio 315 motivi per cui la sicurezza web è importante quanto la sicurezza degli endpointPillole di Sicurezza | Episodio 305 motivi per cui la sicurezza web è importante per evitare il ransomwarePillole di Sicurezza | Episodio 293 motivi per cui DAST è il migliore per la sicurezza delle applicazioni WebPillole di Sicurezza | Episodio 28Pillole di Sicurezza | Episodio 27Pillole di Sicurezza | Episodio 24Pillole di Sicurezza | Episodio 25Pillole di Sicurezza | Episodio 21Pillole di Sicurezza | Episodio 22Pillole di Sicurezza | Episodio 20Pillole di Sicurezza | Episodio 17Il flag HttpOnly: protezione dei cookie da XSSPillole di Sicurezza | Episodio 16Il Bug Heartbleed – I vecchi Bug sono duri a morirePillole di Sicurezza | Episodio 15Pillole di Sicurezza | Episodio 14Pillole di Sicurezza | Episodio 13Pillole di Sicurezza | Episodio 12Pillole di Sicurezza | Episodio 11Pillole di Sicurezza | Episodio 10Sicurezza delle reti: gli hacker puntano CitrixCyber hacking: la Germania chiede l’intervento dell’UESicurezza informatica: Cisco rilascia aggiornamentiOcchio al cryptojacking: malware infiltrato in Docker HubSIGRed: bug di sistema in Windows Server scovato dopo 17 anniPillole di Sicurezza | Episodio 9Summit Live - Disponibili le registrazioni delle live di MonteleoneCriminalità informatica: Schmersal sventa un cyber-attaccoPillole di Sicurezza | Episodio 8Pillole di Sicurezza | Episodio 7Analisi pratica dei rischi per il SysAdmin, DevOps e Dev | Summit LivePillole di Sicurezza | Episodio 6Pillole di Sicurezza | Episodio 5Pillole di Sicurezza | Episodio 4Pillole di Sicurezza | Episodio 3Pillole di Sicurezza | Episodio 2Pillole di Sicurezza | Episodio 1Pillole di Sicurezza | Episodio 23