Il problema delle componenti opensource

Mentre i componenti opensource sono fondamentalmente indispensabili nel moderno sviluppo del software, devono essere gestiti con cura. In questo post, spiegherò nel modo più semplice possibile il problema con i componenti opensource: userò una metafora che sembra essere efficace nello spiegare il problema ai nostri clienti.

Costruire una casa.

Quando si costruisce una casa, è necessario lavorare molto, partendo dalla pianificazione fino alla costruzione effettiva delle fondamenta, delle infrastrutture, delle pareti, dei soffitti e del tetto. Questo lavoro è diverso per ogni casa e molto specifico, quindi è necessario avere un processo molto solido per assicurarsi che gli standard di qualità siano abbastanza alti da una varietà di punti di vista.

C’è un’enorme quantità di attenzione su ogni aspetto ed è sempre supportata da una serie rigorosa di pratiche e processi. Ora, quando costruisci una casa, ci sono molte cose che non vuoi necessariamente creare da zero: oggetti come finestre e porte, ad esempio, sono componenti facilmente reperibili sul mercato in una varietà di forme e dimensioni. Non è necessario crearli da zero: ciò richiederebbe artigiani specifici e una quantità considerevole di tempo. È sufficiente acquistare questi componenti, trovare quelli giusti e integrarli nella tua casa.

Il tuo team ha quindi costruito i muri e l’infrastruttura, con un processo molto severo che ti garantisce che tutto sia solido e duraturo. Ma che dire di finestre e porte? Hai comprato quei componenti da un fornitore: cosa sai della loro qualità? Le serrature sono resistenti? I vetri sono davvero a prova di rottura o sono affetti da qualche difetto di progettazione? Quanto della tua casa hai comprato da altri produttori? E quanto tempo fa era? Qual è la garanzia? Sei rimasto al caldo quest’inverno o le finestre erano piene di correnti d’aria?

Questo è il problema con i componenti opensource.

Costruire un’applicazione software.

In un moderno processo di sviluppo, il tuo team di sviluppo sta “costruendo la casa”, scrive il codice che contiene la logica di business della tua applicazione. Hanno anche bisogno di molto altro codice per svolgere varie attività ordinarie, come parlare con un database, esporre un’API, parlare con altri servizi, scambiare dati usando un formati intermedi come JSON o XML. La comunità Open Source ha già messo a disposizione componenti pronti all’uso che semplicemente si incorporano nel progetto, risparmiando enormi quantità di denaro e riducendo drasticamente il time to market: quelle sono le “finestre” e le “porte”. In un’applicazione software, però, questi componenti software esterni possono arrivare fino all’80% del codice inviato alla produzione, rendendoli una risorsa molto critica da tenere sotto controllo.

Quello che stiamo riscontrando quando incontriamo potenziali clienti è che hanno un processo molto rigido per quanto riguarda il codice scritto dal loro team, spesso supportato da una varietà di strumenti al fine di garantire che sia solido e sicuro. La stessa attenzione, tuttavia, non viene estesa ai componenti opensource utilizzati, che sono semplicemente incorporati nell codice spedito in produzione, senza alcun controllo particolare.
I componenti opensource sono come le “porte” e le “finestre” della tua “casa”: sono sicuri? Ogni giorno vengono scoperte in media 40 nuove vulnerabilità in componenti esterni, e nuove versioni di queste vengono spesso rilasciate mensilmente. È fondamentale mantenere aggiornati i componenti utilizzati nelle applicazioni e sostituirli immediatamente, per evitare qualcosa di simile a quello che è successo a Equifax, che semplicemente non ha aggiornato un componente software vulnerabile, Apache Struts.

Sai quanta parte della tua applicazione è opensource? Sai quando hai aggiornato questi componenti l’ultima volta? E conosci tutti i dettagli degni di nota degli aggiornamenti di quei componenti esterni?

Che cosa si puo fare?

Il nostro software, Meterian, fa esattamente questo lavoro. Controllerà continuamente i componenti opensource utilizzati dalla tua applicazione in modo da non avere brutte sorprese a causa loro. Ci vogliono 5 minuti per configurarlo nel tuo processo, e puoi anche semplicemente eseguirlo sul tuo codice senza alcuna installazione. Non è necessario essere uno sviluppatore per eseguirlo e produce anche un report chiaro che è comprensibile e immediatamente utilizzabile.

Ti incoraggiamo vivamente a fare un tentativo, o forse dare un’occhiata ai nostri report per alcune librerie comuni come Alibaba/FastJson o Netflix/ Zuul, entrambi segnando un sonoro 0 in sicurezza al momento della scrittura.

In alternativa, puoi anche provare ad analizzare il tuo sito web con il nostro online web scanner e, se il tuo team ha progetti pubblici si Github o Bitbucket, puoi anche usare il nostro online project scanner.

Mantieni la tua casa al sicuro, tieni tutti i componenti esterni sotto controllo!

(indice dei contenuti in italiano)