Diventa Autore per CoreTech | Scopri di più
18/11/21 CoreTech Blog
Fare shift left è ora una tendenza popolare nella sicurezza delle informazioni. Significa che dovresti saltare sul carro e strapparti i capelli solo per spostare la sicurezza a sinistra? No. In realtà, nella maggior parte dei casi, se salti alla cieca su questo carrozzone, potresti spararti ai piedi. Ecco perché.
Fare shift left non è un nuovo termine. Non è un termine di sicurezza delle applicazioni web. Non è nemmeno un termine di sicurezza delle informazioni.
Ciò a cui si applica lo shift left è, fondamentalmente, trovare tutti i tipi di difetti del software il prima possibile. Questo vale per la sicurezza delle informazioni o per le vulnerabilità della sicurezza delle applicazioni Web, ma può anche significare difetti della logica aziendale che non hanno nulla a che fare con la sicurezza.
Perché questa strana combinazione di parole? Bene, i diagrammi dell'organizzazione dello sviluppo del software di solito vanno da sinistra a destra, dove a sinistra hai le prime fasi di sviluppo e a destra hai il rilascio. Pertanto, spostare la fase di test verso le fasi precedenti è, nel diagramma, sinonimo di spostare una casella (shift) da destra a sinistra (left).
Il termine è stato coniato nel lontano 2001. È stato utilizzato per la prima volta in un articolo di Larry Smith nel Dr. Dobb's Journal. Come ha scritto Larry Smith, "il test shift-left è il modo in cui mi riferisco a un modo migliore per integrare la garanzia di qualità (QA) e le parti di sviluppo di un progetto software".
L'ideologia dello spostamento a sinistra è molto in linea con le pratiche di sviluppo agile. Nel caso di tali metodologie, il QA è incluso nel processo di sviluppo, non solo rimandato alle fasi successive prima del rilascio come nelle metodologie più vecchie come la cascata.
Il problema più grande con il termine spostamento a sinistra (shift left) è che è molto probabile che venga frainteso. La parola spostamento (shift) significa spostare o far muovere da un luogo all'altro, specialmente su una piccola distanza. Pertanto, spostarsi a sinistra significa rimuovere i test dalle fasi successive.
Invece del termine shift left, dovremmo usare il termine expand left! In caso contrario, molte persone, entusiaste di seguire la tendenza, distoglieranno effettivamente i propri sforzi per la sicurezza dagli ambienti di staging e cercheranno di fare tutto il prima possibile. E questo è un terribile errore.
È anche un errore che in realtà è incoraggiato e vantaggioso per i fornitori di soluzioni, che funzionano solo nelle fasi iniziali, ad esempio gli strumenti SAST. Uno strumento SAST non può essere utilizzato in fasi successive (a differenza di uno strumento DAST che può farlo) perché si occupa solo del codice sorgente o del codice precompilato. Se fraintendi il termine shift a sinistra potresti effettivamente pensare che la scansione delle tue app web con uno strumento SAST sarà sufficiente per la loro sicurezza. Beh, non lo farà.
Il termine spostamento a destra (shift right) è stato coniato per contrastare l'equivoco del termine spostamento a sinistra, ma è anche suscettibile di essere frainteso. Prima di qualsiasi spostamento, il test viene eseguito in ambienti di staging (che si trovano sul lato destro dei diagrammi). Pertanto, se ci spostiamo a sinistra e a destra dalla posizione originale di test (già a destra), otteniamo test nello sviluppo iniziale e test in produzione (che è a destra dello staging). Ciò significa che non rimangono prove di stadiazione!
Considera anche il fatto che mentre il nostro software è assolutamente in grado di testare un'applicazione in produzione, dovresti esaminare molto attentamente le potenziali conseguenze. Certo, le nostre applicazioni eseguono i test in modo innocuo, ma i test possono essere molto intensi e avere effetti collaterali, che possono includere negazione del servizio accidentale, inondazione di e-mail e altro ancora. A meno che tu non sia consapevole e pronto a mitigare tali effetti collaterali, il test in un ambiente di produzione live potrebbe effettivamente essere più dannoso che non testarlo affatto.
Non fraintendetemi, i test in produzione sono fantastici se fatti nel modo giusto e testati con molta attenzione prima con mitigazione e consapevolezza adeguate. Proprio come lo spostamento a sinistra, l'espansione a destra è solo qualcosa che non dovrebbe essere seguito ciecamente!
Per essere sicuro di avere la sicurezza della tua applicazione web coperta, non c'è modo al mondo che tu possa saltare l'ultima fase del test quando tutto è in un ambiente di staging. Dopotutto, è solo qui che hai tempo per eseguire ulteriori test di penetrazione manuali per scoprire vulnerabilità che gli strumenti automatizzati non riescono a trovare.