Le trappole delle librerie di terze parti

  • Le trappole delle librerie di terze parti

Oggi ho parlato del recente exploit scoperto in una libreria di logging di terze parti, che può essere sfruttato con una soglia molto bassa per eseguire comandi remoti. Una libreria di logging e i comandi remoti sembrano del tutto estranei, ma le librerie di terze parti superflue sono ovunque.

Più codice leggo, più mi rendo conto che il livello di molti progetti open source è molto scarso, indipendentemente dal numero di stelle k che hanno; le stelle rappresentano la domanda, non il livello di sviluppo.

I vantaggi dell’open source sono che più persone partecipano allo sviluppo, con il vantaggio che le caratteristiche aumentano rapidamente, i bug vengono risolti da qualcuno e il codice viene revisionato da qualcuno, ma i livelli sono irregolari.

Senza un forte vincolo sui commit, è difficile garantire la qualità del codice.

Più codice si aggiunge, più superfici di attacco si aumentano.

Sebbene non sia bene reinventare la ruota, le esigenze del prodotto sono come le ruote di un passeggino: una ruota di plastica non si romperà mai, ma installare una ruota di aereo aumenta inutilmente le superfici di attacco e i costi di manutenzione. Pertanto, se sono necessarie solo le ruote di un passeggino, non è il caso di usare strumenti troppo sofisticati.

Alto costo di manutenzione: le librerie di terze parti richiedono processi e personale specializzati per la manutenzione. Un framework di testing modificato da Huawei ha causato direttamente il fallimento dei test durante l’aggiornamento del compilatore, creando conflitti tra l’aggiornamento del framework di testing e quello del compilatore, richiedendo molto tempo per continuare a modificare questo percorso. Come partecipante, ho sperimentato profondamente le difficoltà delle librerie di terze parti modificate. Se le caratteristiche modificate possono essere integrate nel repository open source, va bene; ma se si sviluppa in modo invasivo per le proprie esigenze, sarà difficile da mantenere.

Huawei ha creato una serie di processi per gestire le librerie di terze parti, che possono essere descritti come pieni di ostacoli.

Le barriere sono state alzate al massimo: l’aggiunta di librerie di terze parti richiede la revisione di esperti di livello 18 e direttori di livello 20, e fondamentalmente solo le librerie di terze parti di lunga fama possono essere utilizzate.

Tutte le librerie di terze parti sono collocate nella cartella thirdparty, e durante la compilazione completa il CI viene confrontato con il repository sorgente, vietando rigorosamente le modifiche invasive.

Strumenti specializzati tracciano tutte le versioni delle librerie di terze parti; questa parte è gestita da personale esterno. Se gli sviluppatori richiedono l’aggiornamento della versione, devono presentare una richiesta, che deve essere approvata dal direttore.

È difficile trovare un direttore per gestire queste cose; quando un processo è molto complesso, in realtà scoraggia dal farlo.

Nei confronti delle librerie di terze parti, si dovrebbe mantenere un atteggiamento di non credulità cieca, ma piuttosto fidarsi degli sviluppatori interni.