Close

Il nostro approccio alla gestione delle vulnerabilità


Il nostro approccio alla gestione delle vulnerabilità della sicurezza in Atlassian

Atlassian riconosce che, a un certo livello, le vulnerabilità della sicurezza sono parte integrante di qualsiasi processo di sviluppo software. Tuttavia, ci adoperiamo costantemente per ridurre sia la gravità che la frequenza con cui emergono delle vulnerabilità nei nostri prodotti e servizi.

A tale scopo, abbiamo adottato un approccio multiforme alla gestione delle vulnerabilità che si basa su una combinazione di processi sia automatizzati che manuali. Crediamo che questo sia il modo più efficace per limitare l'eventualità che le vulnerabilità possano passare inosservate e non vengano rilevate per un lungo periodo di tempo.

In questo documento forniamo una panoramica del modo in cui gestiamo le vulnerabilità nei nostri prodotti e nelle nostre infrastrutture e di come sviluppiamo costantemente questo approccio integrando gli strumenti, i metodi e le idee più recenti per garantire che la nostra gestione delle vulnerabilità rimanga efficace in futuro.

Una panoramica del nostro processo di identificazione e risoluzione delle vulnerabilità

Disponiamo di un processo metodico per identificare, monitorare e risolvere le vulnerabilità, indipendentemente dal tipo.

Individuazione e attribuzione continue degli asset

Individuazione continua degli asset interni: ci avvaliamo di un sistema in-house per gestire l'inventario di tutti gli asset EC2 e AWS con bilanciamento del carico usando AWSConfig e attribuendolo al responsabile giusto. Conserviamo il valore di un anno di asset per un totale di 50-60 milioni di asset.

Identificazione delle vulnerabilità

Ci avvaliamo di un'ampia gamma di strumenti all'avanguardia per il rilevamento delle vulnerabilità che vengono eseguiti regolarmente sui nostri prodotti e nell'infrastruttura per cercare e identificare automaticamente le vulnerabilità. Sono inclusi i prodotti Atlassian Cloud e Server, le immagini delle applicazioni Docker, le applicazioni interne, le applicazioni mobili e di terze parti, nonché la nostra infrastruttura on-premise e nel cloud. Questi strumenti analizzano automaticamente e identificano le vulnerabilità esistenti e includono:

  • Scansioni basate su host: al momento usiamo Assetnote per eseguire scansioni di sicurezza continue del nostro perimetro e Tenable.io per eseguire scansioni regolari sia internamente che esternamente. Questi strumenti vengono utilizzati per identificare porte aperte, servizi e applicazioni in esecuzione nel nostro ambiente, nonché le eventuali vulnerabilità su host di rete.
  • Scansioni delle immagini dei contenitori: utilizziamo i contenitori Docker per la distribuzione di molte delle nostre applicazioni. Eseguiamo una scansione di sicurezza delle immagini dei contenitori quando vengono distribuiti nei nostri ambienti di produzione o di pre-produzione. A tale scopo utilizziamo lo strumento Snyk. Maggiori dettagli sono forniti più avanti in questa pagina.
  • Scansioni delle dipendenze open source: utilizziamo Snyk per identificare le vulnerabilità presenti nelle dipendenze di codice open source o di terze parti. Maggiori dettagli sono forniti più avanti in questo documento.
  • Monitoraggio della configurazione AWS: distribuiamo e integriamo Lacework nell'ambiente Atlassian AWS Cloud per fornire un monitoraggio continuo della configurazione rispetto alle linee di base stabilite per i nostri ambienti AWS.

Esaminiamo continuamente gli strumenti più recenti disponibili e li aggiungiamo alla suite che utilizziamo se riteniamo che possano contribuire a migliorare le nostre capacità di rilevamento delle vulnerabilità.

Abbiamo anche una serie di ulteriori risorse che utilizziamo per identificare le vulnerabilità in combinazione con le scansioni automatiche che eseguiamo, come:

Il nostro programma Bug Bounty: utilizziamo Bugcrowd per eseguire il programma Bug Bounty. Bugcrowd ci consente di accedere a una comunità esperta e affidabile costituita da decine di migliaia di ricercatori di sicurezza informatica che testano costantemente i nostri prodotti e segnalano eventuali vulnerabilità individuate. Il nostro programma Bug Bounty è stato riconosciuto come il migliore del settore nel 2018 e nel 2019.

Report di clienti e utenti: gli utenti dei nostri prodotti possono segnalare in qualsiasi momento gli eventuali bug riscontrati tramite l'Assistenza Atlassian. Collaboreremo con loro per raccogliere tutti i dati necessari in modo che la vulnerabilità possa essere segnalata internamente e corretta (subordinatamente alla convalida per garantire che la vulnerabilità sia reale e non un falso positivo). Questo processo coinvolge anche il personale di Atlassian, che può segnalare eventuali problemi riscontrati all'interno dei propri prodotti (esternamente o internamente) direttamente al team di sicurezza oppure aprire un ticket di assistenza.

Test di penetrazione esterni: ci avvaliamo di società di consulenza specializzate in sicurezza per condurre test di penetrazione strutturali con accesso al codice su prodotti e infrastruttura ad alto rischio. Vedi "Il nostro approccio ai test di sicurezza esterni" per maggiori dettagli.

Team di sicurezza dei prodotti Atlassian: conduciamo revisioni mirate del codice, sia manuali che assistite da strumenti, e collaboriamo a stretto contatto con i nostri team di sviluppo dei prodotti per migliorare la loro capacità di rilevare e risolvere automaticamente le vulnerabilità prima che il codice ci venga inviato.

Team rosso di Atlassian: disponiamo di un team rosso interno che ha il compito di simulare il ruolo degli avversari che cercano di identificare e sfruttare le vulnerabilità esistenti all'interno dei nostri sistemi, processi e ambienti, in modo da identificarle e risolverle il prima possibile.

Monitoraggio e risoluzione delle vulnerabilità

Utilizziamo un sistema interno di ticketing ed escalation per monitorare tutte le vulnerabilità che abbiamo individuato e che cerchiamo di risolvere. In particolare, indipendentemente dal fatto che una vulnerabilità venga individuata tramite uno dei nostri strumenti di scansione o una delle altre risorse esaminate in precedenza, viene creato un ticket dedicato per ogni vulnerabilità individuata e viene segnalato al team di prodotto interessato affinché provveda alla risoluzione. Gli obiettivi a livello di servizio (SLO) per la correzione che abbiamo pubblicato nella nostra Policy di correzione dei bug relativi alla sicurezza vengono monitorati per ogni vulnerabilità.

Il nostro team di sicurezza assicura la supervisione del processo e collabora con i team di prodotto e infrastruttura per garantire che tutte le vulnerabilità siano accurate e rispondere alle domande relative alle correzioni.

Una volta sviluppata, la correzione per la vulnerabilità viene testata accuratamente e, nel caso dei nostri prodotti cloud, incorporata nella nostra pipeline CI/CD per la distribuzione. Per i prodotti server e data center, le correzioni vengono implementate in una nuova versione e distribuite regolarmente insieme ad altre correzioni in conformità alla nostra cadenza di rilascio standard. I ticket delle vulnerabilità individuate dagli strumenti di scansione vengono chiusi automaticamente una volta che le scansioni successive non rilevano più alcuna vulnerabilità. I ticket delle vulnerabilità individuate manualmente vengono chiusi dai membri dei team del prodotto, dell'infrastruttura o della sicurezza una volta che la correzione è stata resa disponibile per i clienti.

Prevenzione delle vulnerabilità durante il processo di sviluppo

Scansioni delle immagini dei contenitori

Atlassian distribuisce la maggior parte delle sue applicazioni utilizzando le immagini dei contenitori Docker. I contenitori Docker forniscono un ambiente integrato e indipendente composto da librerie di sistema pertinenti, strumenti, impostazioni di configurazione e qualsiasi altra dipendenza richiesta affinché i nostri prodotti possano essere eseguiti indipendentemente dai singoli parametri di configurazione della macchina. Il contenitore fornisce un efficace livello di astrazione, separando il codice software dall'infrastruttura sottostante in modo che i nostri prodotti possano funzionare senza problemi su macchine diverse.

Sebbene i contenitori offrano grandi vantaggi per i nostri sviluppatori e clienti in termini di capacità di distribuzione di codice utilizzabile in una varietà di ambienti, possono essere anche una fonte di vulnerabilità della sicurezza se il contenuto delle immagini è costituito da librerie o componenti obsoleti o comunque non sicuri.

Per gestire questo aspetto, Atlassian integra un processo di scansione della sicurezza dei contenitori determinato dagli eventi che monitora le distribuzioni effettuate attraverso la nostra piattaforma di distribuzione Micros per qualsiasi contenitore distribuito nei nostri ambienti di produzione. Inoltre gli sviluppatori possono integrare un processo di scansione nella nostra pipeline CI/CD per qualsiasi contenitore distribuito nei nostri ambienti di sviluppo. A tale scopo, utilizziamo il motore per la gestione dei contenitori Snyk. Snyk fornisce una serie di strumenti che effettua un'ispezione approfondita di tutte le immagini dei contenitori distribuite dai nostri sviluppatori. Ciò include un'analisi dettagliata delle immagini per identificare i vari componenti che contengono e determinare quelli che presentano vulnerabilità note.

Dipendenze open source

Sebbene sia importante trovare e correggere le vulnerabilità presenti nel nostro codice, i nostri prodotti e servizi si basano anche su numerose librerie di terze parti. Per noi è quindi altrettanto importante sapere quali sono le librerie che stiamo usando e assicurarci che siano aggiornate con le ultime correzioni di bug di sicurezza. A tale scopo, utilizziamo lo strumento Snyk. Snyk fornisce uno scanner in grado di identificare le dipendenze in una qualsiasi delle nostre build software e può quindi confrontare queste librerie con un database di vulnerabilità di sicurezza note.

Le vulnerabilità individuate vengono quindi segnalate automaticamente tramite un ticket Jira formale al team di prodotto interessato in conformità al processo di gestione delle vulnerabilità descritto in precedenza in questa pagina.

Altre iniziative intraprese per contrastare le vulnerabilità

Finora abbiamo ampiamente descritto in questo documento le misure che adottiamo per gestire le vulnerabilità al "backend", ovvero ciò che facciamo per risolvere le vulnerabilità identificate nei nostri prodotti o nelle nostre piattaforme. Tuttavia, innanzitutto ci adoperiamo costantemente per ridurre la frequenza con cui emergono. A tale scopo, abbiamo incorporato alcune iniziative uniche nel "frontend" del nostro processo di sviluppo per garantire che i nostri prodotti siano creati da zero in un'ottica di sicurezza.

Security Champions Program

Nel 2017 abbiamo iniziato a implementare il Security Champions Program in Atlassian per nominare un leader della sicurezza all'interno di ciascuno dei nostri team di prodotto e servizi. I nostri promotori seguono anche corsi di formazione dedicati che li aiutano a comprendere e identificare le vulnerabilità della sicurezza delle applicazioni, nonché i processi per la scrittura di codice sicuro. L'obiettivo di questo programma è di avere all'interno di ogni team un promotore dedicato che si assuma la responsabilità di diffondere messaggi di sicurezza chiave tra i membri del team e segnali eventuali problemi di sicurezza al nostro team di sicurezza centrale per facilitare flussi di comunicazione migliorati.

I promotori della sicurezza di Atlassian si incontrano una volta al mese per condividere strumenti e conoscenze sulle più recenti problematiche e sfide di sicurezza che devono affrontare, affinché tutti i nostri team possano trarne vantaggio. L'obiettivo finale è di utilizzare questo programma come trampolino di lancio per integrare in misura ancora maggiore la sicurezza nella nostra cultura. Siamo convinti che questo tipo di approccio sia un elemento chiave nel modo in cui cerchiamo di ridurre al minimo le vulnerabilità.

Tecnici della sicurezza dei prodotti

Nessuna discussione sulla gestione delle vulnerabilità sarebbe completa senza una spiegazione del ruolo chiave che i nostri tecnici della sicurezza dei prodotti assumono sia nell'eliminazione dei bug che nella progettazione di strumenti migliori.

In Atlassian, i tecnici della sicurezza dei prodotti completano la valutazione iniziale delle nuove vulnerabilità segnalate e collaborano con i team di progettazione dei prodotti per individuare la correzione migliore. Queste figure professionali, esperte nella sicurezza delle applicazioni, operano a livello globale per garantire una collaborazione efficiente e tempestiva con i team di progettazione dei prodotti.

I nostri tecnici della sicurezza hanno ruoli di sicurezza proattivi e reattivi in relazione al prodotto assegnato tra cui, a titolo esemplificativo ma non esaustivo:

  • Revisione e analisi dei modelli di minaccia aggiornati per la ricerca di rischi nuovi ed emergenti.
  • Revisione e analisi della sicurezza delle nuove funzioni.
  • Esecuzione della revisione manuale del codice.
  • Esecuzione di test di penetrazione.
  • Esecuzione di una revisione della piattaforma e dell'architettura.
  • Monitoraggio delle principali attività relative ai progetti e fornitura di indicazioni quando necessario.
  • Valutazione e presentazione, risoluzione rapida e ricompensa per i problemi segnalati tramite il nostro programma Bug Bounty.
  • Redazione di nuovi strumenti di automazione e degli strumenti di automazione esistenti per ottimizzare la copertura e l'efficienza.

Scorecard di sicurezza

Con i dati raccolti dai sistemi descritti in questo documento, possiamo eseguire il benchmark reciproco di team e prodotti per identificare in modo proattivo le aree di miglioramento.

In sintesi

Per gestire le vulnerabilità dei suoi prodotti e delle sue piattaforme, Atlassian adotta un approccio multiforme che utilizza una combinazione di strumenti di scansione automatici, del programma Bug Bounty e di una serie di altri meccanismi in continua evoluzione per garantire l'identificazione e la risoluzione tempestive delle vulnerabilità che si presentano e ridurne al minimo la frequenza.

Desideri approfondire l'argomento?

Desideri approfondire l'argomento?

È disponibile una serie di altre risorse a cui abbiamo fatto riferimento in questo documento o che è possibile consultare in altro modo per ottenere maggiori informazioni sul nostro approccio alla gestione delle vulnerabilità e, in generale, alla sicurezza.

In questa pagina, il termine "vulnerabilità" assume lo stesso significato di "bug", che è il termine utilizzato nel documento separato sul nostro approccio ai test di sicurezza.