← Torna all’elenco

SAST vs DAST vs IAST: Test di sicurezza per complementarità dei tre fratelli, non sostituzione

itadol5j

Le tre abbreviazioni più comuni nei test di sicurezza delle applicazioni sono SAST, DAST, IAST. La prima reazione di molte persone era quella di “selezionare uno dei più forti”, ma era una proposizione ipocrita — i tre fratelli non erano concorrenti, ma hanno visto lo stesso problema da prospettive diverse. La scelta non dipende da chi è più avanzato, ma sul palco sei nel ciclo di vita del software, che tipo di loophole si desidera trovare e quanto si può sopportare.

Panoramica dell'applicazione dei tre metodi di test di sicurezza

I. DEFINIZIONI SULLA PRIMA RIFERIZIONE

  • SAST (test di sicurezza applicazione statica)Altri organiNon eseguire il programma, sotto il quale il codice sorgente di scansione/bite codice trova una scappatoia, che appartiene alla White Box.
  • QUESTOAltri organiProgramma di esecuzioneLe richieste di lancio esterne, gli attacchi simulati sono “scatole nere” e non è richiesto alcun codice sorgente.
  • IAST (Interactive Application Safety Test)Altri organiEseguire il programma dall'internoPlug-in (agente), combinato con il contesto di flusso e codice, appartiene al Grey Box.

La chiave per comprendere questi tre è che ognuno risponde a diverse domande: SAST chiede: "Dove può esserci un errore nel codice?" DAST chiede: "Possiamo davvero passare quando corriamo?" IAST chiede: "In questa operazione, quale flusso di dati scorre realmente al punto di pericolo."

SAST: Strangling del problema nella fase di scrittura del codice

SAST analizza direttamente il codice sorgente (o compila prodotti intermedi) e non esegue il programma. Il vantaggio è di essere in grado di rilevare i problemi in una fase iniziale, o anche quando il codice viene inviato, per individuare documenti specifici e numeri di linea, con bassi costi di riparazione. Esso copre i "codici possono essere spazzati " e non dipende dall'ambiente di tempo in esecuzione.

Pantalone: Il tasso di errore di solito è alto perché non determina se un certo numero di codici verrà attivato nel business reale; i problemi che sono esposti solo durante l'esecuzione (ad esempio, errori di configurazione, bypass di garanzia, catena di chiamata effettiva di affidamento sulla libreria) non sono pienamente visti; il codice sorgente è necessario e la componente di terze parti di risorse chiuse non è funzionale.

Scenario tipico: le porte di invio del codice della linea di streaming CI sono chiuse per prevenire l'iniezione visibile, la chiave di codifica rigida, le chiamate della funzione di pericolo nella spina dorsale.

DAST: Verificare "Sta davvero funzionando?"

DAST utilizza l'obiettivo come una scatola nera per inviare richieste dall'esterno, costruire carichi di attacco e osservare la risposta. Il suo più grande valore è...Vicino a un vero attacco.— Il problema dell’ “accesso reale alla corsa” è stato riscontrato, con un rapporto relativamente basso. Non è necessario alcun codice sorgente, così i componenti di terze parti, gli strati di configurazione possono anche essere coperti.

PantaloneSpesso solo fino all'implementazione che il rilevamento del rilevamento tardivo e il costo della riparazione è alto; la copertura è limitata a rettili e percorsi di prova che possono essere raggiunti per esempio, senza rilevazione di punti funzionali non rilevabili; è difficile individuare il codice sorgente con precisione, e lo sviluppo e la segnalazione è spesso conosciuto solo "che URL è problematico"; e i costi di configurazione sono elevati per scenari che richiedono il login, processi aziendali multi-step.

Scenario tipico: sdoganamento di sicurezza prima di andare online, scansione periodica di ambienti distribuiti.

IV. IAST: Spine a tempo di esecuzione, contesto di bilanciamento con flussi di dati reali

IAST osserva anche l'esecuzione del codice e il flusso esterno durante l'esecuzione del programma impiantando antent nell'applicazione. Può vedere come vengono richieste e come i dati fluiscono nel codice, in modo che possa essere dato.Prendi tutte le prove della locanda.Di solito è inferiore a SAST ed è esatto.

PantaloneLa necessità di essere in grado di distribuire sonde nell'ambiente di destinazione (a causa delle preoccupazioni per l'ambiente di produzione); affidamento sulla copertura di prova, che non può essere trovata senza che il codice sia implementato, che è spesso legato a test funzionali/automatizzati; differenze nel supporto linguistico e quadro; e determinati costi di prestazione.

Scenario tipico: eseguito nell'ambiente di prova in combinazione con test automatizzati, sia per convalidare la funzionalità sia per sincronizzare le conclusioni di sicurezza di uscita.

Guarda il flusso dei dati e chiama stack dal codice interno

Cinque, tre contro uno.

DimensioniQUESTOQUESTOULTIMA
OggettoFonte/byte (non in esecuzione)Obiettivo attivo (esterno)Applicazioni operative ( spine interne)
ProspettiveScatola biancaScatola neraScatola grigio
Tempo di interventoPrima fase di codifica/sottomissioneDopo la distribuzioneTest/Runtime
Codice sorgenteSi'.Non serve.Requisito (può essere collegato)
Livello erratoAltoBassoIn basso
Precisione di posizioneA file/lineaA URL/InterfacciaA Call Inn/Data Stream
Dipendenza sovrascritturaLimitato (vedere parte del codice sorgente)Esibizione di override durante la corsaLimitato dal percorso di esecuzione
Scena tipicaCodice CI Banale della portaControllare e accettare prima di andare online.Combinato con test automatizzati

VI. Perché la complementarità piuttosto che la sostituzione

Se mettete insieme i tre, trovano le loro zone cieche per essere complementari:

  • SAST vede il codice ma non sa se verrà attivato; DAST sa se può essere attivato ma non sa in quale linea il problema è; IAST entrambi, ma richiede che il codice venga eseguito.
  • SAST copre presto, largo e rumoroso; DAST ha un piccolo rumore ma un intervento tardivo, una copertura stretta; e IAST ha alta precisione ma può collegare e funzionare abbastanza bene.
  • Basta andare a SAST, che è vulnerabile a “un mazzo di nastro rosso” stanchezza; andare a DAST, dove la scappatoia è spesso esposta sulla linea; andare a IAST, dove il percorso a cui non è raggiunto è cieco.

La risposta alla realtà non è una o due, ma un approccio fase-per-stadio: l'uso precoce di SAST per incedere un chiaro modello di cattivo gusto e pericolo, la fase di prova di IAST da convalidare con precisione con IAST in combinazione con l'automazione, e l'uso up- e down-line di DAST per l'accettazione esterna dalla prospettiva dell'aggressore. Tre superstizioni costituiscono un loop chiuso di prova di applicazione senza lacune significative.

Test statici, dinamici, interattivi formano un cerchio chiuso.

VII. ISSU PRATICHE SULL'INTERNO

1. Misreporting che si occupa di esso

In ogni caso, nessuno risolve il rapporto, nessuno lo fa. C'è un chiaro processo di triage: chi vede, quanto tempo chiudere, come contrassegnare "accettare il rischio ". In particolare, SAST ha bisogno di gestione di base, altrimenti l'eredità della storia annegherà nuovi problemi.

La copertura è più importante delle marche di utensili

La capacità di IAST da scoprire dipende direttamente da quanti codici sono coperti dal test; DAST dipende da quante interfacce sono raggiunte da rettili. È più significativo misurare “il tasso di rilevamento” prima di andare online che sostituire uno strumento più costoso.

3. Non trattare i test di sicurezza come test one-off Prendilo.

I test di sicurezza devono essere incorporati in un processo continuo di R & S, piuttosto che centralizzati prima di andare online. CI gestisce SAST, testa l'ambiente IAST, regolarmente fa DAST per la produzione, quindi non deve fare affidamento sulla carne umana per salvare il fuoco.

4. Focus sulle sinergie tra gli strumenti

Lo stato ideale è che tre tipi di risultati possono essere raggruppati nella stessa vista: la stessa scappatoia, SAST dà la posizione del codice, IAST fornisce le prove del flusso di dati e DAST convalida la disponibilità. Vale molto di più delle tre isole di guerra.

VIII. Elenco delle decisioni

  • Si'.Fase di sottomissioneBasta tenere fuori l'ovvia scappatoia su SAST, concentrarsi su chiusure di porta e linee di base.
  • Per verificareIl sistema distribuito è davvero in grado di attaccare? • Su con DAST, concentrandosi sulla copertura e sulla configurazione di login.
  • Per ottenere conclusioni di sicurezza.Produzione con test automatizzatiE trova esattamente l'ULTI.
  • Le risorse limitate possono essere utilizzate solo come prima priorità per SAST per stabilire una linea di fondo e poi gradualmente per completare l'IAEA/DAST.
  • Non esiste la ricerca di una soluzione permanente "one-size-fits-all", ma il modo per organizzare e elaborare è la risposta.

SAST è possibile, DAST è pratico, IAST è specifico — combinato è un quadro completo.