Best practice per la sicurezza CI/CD [Cheat Sheet]
In questo cheat sheet di 13 pagine tratteremo le best practice nelle seguenti aree della pipeline CI/CD: sicurezza dell'infrastruttura, sicurezza del codice, gestione dei segreti, accesso e autenticazione, monitoraggio e risposta.
Che cos'è il test di sicurezza delle applicazioni interattive (IAST)?
IAST (Interactive Application Security Testing) è un metodo di test di sicurezza che monitora le applicazioni in tempo reale durante il runtime per rilevare le vulnerabilità analizzando il comportamento del codice e il flusso di dati negli ambienti live.
Team di esperti Wiz
6 minuti letti
IAST (Interactive Application Security Testing) è una metodologia di test di sicurezza per identificare le vulnerabilità nelle applicazioni web. Funziona monitorando un'applicazione in tempo reale mentre è in esecuzione e testata attivamente, spesso durante i processi di QA o test automatizzati. Gli strumenti IAST si integrano con l'applicazione e ne analizzano il comportamento e Flusso di dati per rilevare problemi di sicurezza, fornendo informazioni dettagliate su potenziali vulnerabilità, in particolare nella base di codice.
In caso di problemi, IAST avvisa il team di sviluppo con informazioni sul caso di test non riuscito, sul contesto della posizione del codice e sull'applicazione'durante il test.
La velocità di sviluppo è fondamentale. Ottenere nuove funzionalità e correggere rapidamente i bug può creare o distruggere un progetto'. Ma sacrificare la sicurezza in nome della velocità di sviluppo può ostacolare il processo di sviluppo a lungo termine. La creazione di sistemi sicuri può aggiungere ulteriore lavoro, sia con lunghi test che sovraccaricando gli sviluppatori di falsi positivi che in realtà non portano a problemi di sicurezza in produzione. Fortunatamente, con i test di sicurezza delle applicazioni interattive (IAST), c'è un modo per identificare le vulnerabilità senza rallentare la consegna.
Diamo un'occhiata più da vicino a IAST, a come funziona e perché potresti prenderlo in considerazione per mantenere i tuoi sistemi sicuri.
Come funziona IAST?
IAST utilizza librerie di sensori che tengono traccia del comportamento dell'app durante il test. Il processo sposta i test di sicurezza dai team di sicurezza ai team di sviluppo, richiedendo agli sviluppatori di integrare queste librerie nel codice dell'applicazione; l'utilizzo di IAST con un'applicazione non modificata non funziona.
I sensori forniscono a IAST l'accesso al codice dell'applicazione, al flusso di dati, alla configurazione del sistema, ai componenti e alle connessioni di rete, consentendogli di tracciare il software'durante il test e inviare avvisi se viene rilevato un comportamento vulnerabile.
IAST può essere eseguito nel DevSecOps pipeline dopo il passaggio di compilazione, poiché l'applicazione deve essere eseguita per il funzionamento dei test.
In che modo IAST è diverso dagli altri metodi di test di sicurezza?
SAST scans source code for suspicious patterns. It’s very fast and can run without compiling or executing an application, enabling it to run inside an IDE, as seen in figure 2.Still, it can’t catch all security vulnerabilities; some are too complex or manifest only in specific security contexts.
IAST is slower than SAST because it requires execution for its sensors to work. However, this also gives IAST the context that SAST is missing and allows IAST to report fewer false positives, a major pain point with SAST scanning.
IAST contro DAST
Definition
Comparison with IAST
DAST is a black-box testing method and therefore doesn’t see the code. DAST only executes the application and checks its outputs for vulnerabilities. It’s much slower than SAST but catches different application vulnerabilities.
In contrast to IAST, DAST doesn’t require changes to the code, considering it doesn’t use sensor libraries. However, because of the missing sensors, it has less context than IAST and requires many more test cases, which gives IAST a speed advantage over DAST.
IAST contro SCA
Definition
Comparison with IAST
SCA detects potential security vulnerabilities in your application's third-party source components. It scans the packages you use, checks which have entries in the list of known vulnerabilities, and reports these issues. SCA is a very fast process because it doesn’t evaluate or scan your application code.
In short, SCA only checks if you use dependencies with vulnerabilities. Nonetheless, SCA usually has a high rate of false positives, as it doesn’t check if you use a dependency's vulnerable parts.
SCA is much faster than IAST but only reports vulnerabilities in third-party code. It also tends to have a high rate of false positives.While IAST is slower, it covers your own code and that of third parties. Its sensors ensure that only vulnerabilities in executed code lead to an alert, minimizing false positives.
Quali sono i vantaggi e i limiti dello IAST?
Sebbene IAST possa sembrare un'alternativa migliore a SAST e DAST, non è la soluzione perfetta per tutti i problemi di sicurezza. Esploriamo i suoi vantaggi e limiti per comprenderne meglio l'applicabilità.
I vantaggi di IAST
Automazione: Come per altri metodi di test di sicurezza, è possibile automatizzare il processo IAST e integrarlo in una pipeline CI/CD per garantire che venga sempre eseguito prima che il nuovo codice venga distribuito in produzione.
Copertura completa in fase di esecuzione: I sensori IAST tengono traccia dell'intera applicazione in fase di esecuzione. Ciò significa che coprono il comportamento del tuo codice e del codice nelle librerie di terze parti. IAST segnalerà se qualcosa effettua una richiesta di rete o accede a una posizione specifica.
Trasparenza: I sensori forniscono a IAST l'accesso al contesto di esecuzione, come un debugger. Ciò consente a IAST di collegare le vulnerabilità a sezioni specifiche del codice sorgente, rendendo più facile per gli sviluppatori individuarle e risolverle.
Feedback in tempo reale: Supponiamo che un test sia condotto da un essere umano e non automaticamente in un Pipeline CI/CD. In tal caso, IAST può fornire un feedback in tempo reale avvisando il tester di potenziali vulnerabilità quando un sensore le rileva.
Casi d'uso della produzione: Anche il requisito di esecuzione di IAST può essere un vantaggio, in quanto consente agli sviluppatori di riprodurre i problemi menzionati nelle segnalazioni di bug e di testarli con i sensori di runtime.
Limiti dello IAST
Mancanza di supporto universale per i linguaggi di programmazione: Il più grande limite degli strumenti IAST è che dipendono dal linguaggio di programmazione. Poiché è necessario installare le librerie dei sensori per fornire a IAST il contesto richiesto, si è sfortunati se il linguaggio di programmazione scelto non è supportato da uno strumento IAST. A meno che non si utilizzi un linguaggio di programmazione popolare, IAST semplicemente lo è't un'opzione.
Feedback in ritardo nell'SDLC: IAST richiede che l'applicazione sia compilata ed eseguita per essere eseguita successivamente in Il ciclo di vita dello sviluppo del software, rendendo il suo feedback molto più lento rispetto agli scanner di sicurezza che lavorano direttamente con il codice sorgente. IAST non può fornire un feedback a uno sviluppatore all'interno di un IDE durante l'implementazione di una funzionalità.
Implementazione ad alto sforzo: Lo sforzo di integrazione per IAST è molto più elevato di quello di SAST o DAST perché richiede l'installazione e l'impostazione delle librerie di sensori. SAST o DAST possono testare l'applicazione così com'è senza alcuna modifica.
Falsi negativi: Poiché i sensori IAST tracciano solo il codice eseguito, non rilevano problemi con il codice che non viene eseguito nei test. Ciò aumenta il rischio di falsi negativi in basi di codice di grandi dimensioni che sono più difficili da testare.
Costi elevati: La compilazione e l'esecuzione del codice per i test è molto più costosa rispetto alla semplice esecuzione di SAST, che esegue semplicemente la scansione del codice così com'è. Inoltre, anche le informazioni in tempo reale provenienti dai sensori IAST non sono gratuite.
IAST è una potente aggiunta all'ecosistema di test di sicurezza delle applicazioni. I falsi positivi e le suite di test a lunga durata sono problemi enormi per la velocità di sviluppo e IAST risolve questi problemi. A differenza di SAST e SCA, i sensori IAST assicurano che solo le vulnerabilità nel codice eseguito generino avvisi. In questo modo si riduce la frequenza dei falsi positivi perché i problemi nel codice morto vengono ignorati. I sensori aggiungono anche il contesto mancante in DAST, trasformandolo da una scatola nera a un metodo di test a scatola grigia con approfondimenti sull'ambiente di runtime. Un contesto più ampio consente di coprire un numero maggiore di vulnerabilità con meno test rispetto a DAST.
Codice Wiz + IAST
Wiz Code offre funzionalità per acquisire e integrare i risultati di vari strumenti di test della sicurezza delle applicazioni, tra cui IAST. La capacità di Wiz Code di acquisire i risultati IAST è progettata per migliorare la protezione completa delle applicazioni native per il cloud.
Integrando i risultati IAST, Wiz Code può portare le informazioni sulle vulnerabilità di runtime direttamente nella sua piattaforma, consentendo una visione più approfondita dei potenziali rischi nelle applicazioni in esecuzione in ambienti cloud.
Qui's come gli utenti possono trarre vantaggio dall'inserimento dei risultati IAST in Wiz Code:
Rilevamento migliorato in ambienti di pre-produzione: I risultati di IAST si concentrano sulle vulnerabilità di runtime nelle applicazioni durante la pre-produzione o i test di controllo qualità, non nella produzione live. Integrando i risultati IAST in Wiz Code, gli utenti possono scoprire le vulnerabilità che si manifestano in condizioni di runtime realistiche, come difetti di iniezione o configurazioni errate nella logica dell'applicazione, prima che raggiungano la produzione. Queste informazioni preventive aiutano a prevenire problemi che potrebbero altrimenti portare a vulnerabilità costose o dirompenti negli ambienti live.
Visione completa oltre le vulnerabilità a livello di applicazione: Mentre i risultati di IAST mirano alle vulnerabilità a livello di applicazione in modo isolato dall'infrastruttura cloud o dai carichi di lavoro, Wiz Code completa il quadro correlando questi risultati con le informazioni di Wiz Cloud. Questa prospettiva più ampia aiuta gli utenti a vedere in che modo i problemi delle applicazioni possono interagire con i componenti cloud sottostanti, fornendo una visione completa dello stack che si allinea con la sicurezza cloud completa.
Precisione grazie all'ingestione del grafo di sicurezza: I risultati IAST in genere collegano le vulnerabilità a specifiche righe di codice, in modo simile ai test statici di sicurezza delle applicazioni (SAST). Mappando questi risultati nel Security Graph di Wiz Code, gli utenti ottengono una precisione millimetrica nell'identificare e affrontare le vulnerabilità direttamente all'interno della base di codice. Nel frattempo, Wiz Cloud offre ulteriori informazioni sulla sicurezza, fornendo un contesto su come questi problemi a livello di applicazione potrebbero influire o essere correlati all'ambiente cloud.
Con l'acquisizione di IAST in Wiz, gli utenti beneficiano di informazioni mirate sulle vulnerabilità delle applicazioni in pre-produzione, migliorate dalla visibilità end-to-end di Wiz Cloud sia sull'applicazione che sull'infrastruttura cloud. Vuoi vedere Wiz Code in azione? Richiedi una demo Per scoprire in che modo l'avvio di Secure in Code consente di rimanere al sicuro nel cloud.
Secure your cloud from code to production
Learn why CISOs at the fastest growing companies trust Wiz to accelerate secure cloud development.