Il divieto di Linux dell'Università del Minnesota pone domande sull'open source

Pubblicato: 2022-03-11

Ci sono generalmente due tipi di hacker: quelli che entrano nei sistemi informatici per trovare vulnerabilità al fine di risolverli e criminali che sfruttano le debolezze per rubare dati e tenere in ostaggio le organizzazioni.

Poi c'è Kangjie Lu, un assistente professore all'Università del Minnesota specializzato in sicurezza informatica. Di recente ha acquisito notorietà per aver creato intenzionalmente vulnerabilità nel sistema software open source più importante del mondo, il kernel Linux. Dopo aver pubblicato un articolo accademico sui suoi exploit, il team del kernel Linux ha bandito l'università e ripristinato le sue precedenti correzioni.

Vulnerabilità intenzionali del kernel Linux

Le rivelazioni hanno sollevato domande sulla sicurezza open source e sul kernel del sistema operativo, un componente fondamentale di innumerevoli dispositivi e server. Lu ha nascosto le vulnerabilità in alcune correzioni minori che lui e uno studente laureato hanno sottoposto al vasto repository di codice software di Linux, sovvertendo un metodo collaborativo essenziale per mantenere sicuro il programma.

"Hanno avuto un successo angosciante", afferma Alexander Sereda, project manager con sede a Toronto che è entrato a far parte della rete Toptal nel 2020. "Il loro codice dannoso ha superato la supervisione della comunità che dovrebbe eliminare questo tipo di invii".

Mentre Windows e macOS dominano i desktop, i sistemi operativi basati su Linux sono di gran lunga i più popolari per server e supercomputer e Google utilizza una versione modificata del kernel per Android. Giganti della tecnologia come Red Hat hanno costruito le loro attività di software aziendali attorno all'open source e persino Microsoft, che per anni è stata considerata uno dei principali oppositori dell'ecosistema open source, si è affermata: nel 2018 ha acquistato GitHub, il più grande host di open-source progetti di origine; oggi, le distribuzioni Linux possono essere trovate nel Microsoft Store.

È difficile sopravvalutare la pervasività del kernel Linux e del software open source, che si evolve da roba di hobbisti e idealisti a pietra angolare del mercato del software odierno. Ci sono letteralmente milioni di progetti open source che gli sviluppatori possono vagliare e, poiché sono gratuiti e per la maggior parte affidabili, oltre il 90% delle applicazioni commerciali contiene tali componenti. Questa cifra continua a crescere, secondo uno studio annuale della società di progettazione di silicio e sicurezza del software Synopsys.

Essere affidabili è importante quanto essere gratuiti e la comunità open source è orgogliosa di fornire programmi uguali, se non migliori, al software proprietario. Il movimento è emerso negli anni '90 con un principio centrale, coniato dallo sviluppatore e autore Eric Raymond, che "dato un numero sufficiente di occhi, tutti i bug sono superficiali". Il fatto che l'open source sia finora sopravvissuto relativamente indenne, anche se il mondo è alle prese con un'epidemia senza precedenti di hacking e ransomware, è solo un'ulteriore affermazione che tale collaborazione aperta può ancora essere efficace.

Ma, come ha mostrato Lu nella sua ricerca, nessuna sicurezza è perfetta, anche in qualcosa di così critico e monitorato da vicino come il kernel Linux. Mentre scrivere codice sicuro può essere semplice, trovare le vulnerabilità nel codice dopo il fatto può essere incredibilmente difficile, "come rimuovere il latte dal tè dopo che è stato mescolato", afferma Sereda. Sebbene l'open source in generale si sia comportato in modo ammirevole, a parte un paio di inconvenienti significativi come il bug Heartbleed emerso nel 2014, c'è un numero crescente di prove che gli sviluppatori, da parte loro, stanno prendendo troppe scorciatoie quando incorporano software libero nelle loro prodotti.

Rischi per la sicurezza open source

Nel suo rapporto annuale 2021, Synopsys rivela che ogni azienda del settore della tecnologia di marketing che ha controllato aveva open source nella propria base di codice e il 95% di tali basi di codice conteneva vulnerabilità. Ha trovato risultati simili esaminando il settore sanitario, il settore dei servizi finanziari e le industrie al dettaglio ed e-commerce. Ci sono una serie di ragioni per gli scarsi risultati, ma la principale tra queste è che il software continua a diventare sempre più complicato e mentre diventa più difficile tracciare e monitorare i componenti.

L'open source ha un record di sicurezza molto migliore rispetto ai prodotti proprietari, ma ciò non garantisce che sarà sempre la migliore qualità, afferma Sam Watkins, uno sviluppatore full-stack freelance che è entrato a far parte della rete di Toptal nel 2021. "Abbiamo un programma molto più grande problema, che è programmi eccessivamente complicati. È insicuro, anche se non per intento dannoso".

Il problema quindi non è necessariamente che l'open source sia troppo aperto. Invece, è il divario che persiste perché non c'è un fornitore che distribuisca patch per la comunità anche se i cicli software continuano a ridursi, afferma Timothy Mackey, principale stratega della sicurezza di Synopsys. I budget limitati costringono i programmatori a utilizzare scorciatoie imperfette come sistemi di classificazione semplicistici per scegliere i loro componenti, in base alla popolarità, piuttosto che alla qualità. Esistono diversi servizi che offrono ai programmatori tali scorciatoie, inclusi Openbase, Stack Builder e Open Source Index, che mette in evidenza i progetti più popolari su GitHub.

Gestione della vulnerabilità open source

Secondo programmatori e accademici, sebbene questi sistemi di valutazione open source abbiano valore, è necessario che ci siano più convalida e considerazione quando si valutano le opzioni, piuttosto che afferrare semplicemente i componenti che sembrano essere la migliore corrispondenza. Ciascuna organizzazione dovrebbe stabilire una serie di migliori pratiche che includa principi per una scelta accurata del software che tenga conto della quantità di supporto richiesta e dei rischi affrontati. Le aziende dovrebbero anche monitorare e aggiornare frequentemente tutti i loro componenti open source.

Alcune altre best practice che i nostri esperti hanno identificato a scopo di considerazione includono:

  • Utilizzo dell'automazione, verifica dei processi, documentazione di tutto e utilizzo di Git per tenere traccia delle modifiche alla base di codice.
  • Creare una comunità positiva, incluso aiutare le persone nuove all'open source che potrebbero diventare importanti collaboratori.
  • Mantenere tutte le catene di approvvigionamento open source verificabili.
  • Utilizzo di contenitori open source che condividono il kernel del sistema operativo host.
  • Identificare i componenti open source più critici, quindi tenere traccia dei loro problemi di sicurezza, interagire con i loro sviluppatori e contribuire ai progetti a monte con patch e finanziamenti.

Ann Barcomb, assistente professore presso la Schulich School of Engineering dell'Università di Calgary, aggiunge che, idealmente, le organizzazioni dovrebbero utilizzare una serie di migliori pratiche per creare librerie di prodotti pre-approvati in modo che il software non venga mai selezionato arbitrariamente. Tuttavia, riconosce che questo processo richiede tempo, è costoso e non è ampiamente praticato.

"Vuoi più sicurezza, ma quella sicurezza ha un prezzo enorme", afferma Ayush Poddar, uno sviluppatore back-end freelance che è entrato a far parte di Toptal nel 2021.

Piattaforme come Black Duck, Sonatype, Snyk e WhiteSource forniscono automazione per aiutare a trovare componenti open source nello stack di un programma per computer e identificare le vulnerabilità. Tuttavia, questi strumenti sono limitati e tenere il passo con le patch del codice è un altro problema che sta solo peggiorando: la Cybersecurity & Infrastructure Security Agency degli Stati Uniti segnala spesso centinaia di nuove vulnerabilità software ogni settimana.

"Non è possibile testare ogni combinazione di come ogni bit di codice può essere eseguito", afferma Aidan McManus, un dirigente tecnico in pensione che ha supervisionato l'architettura e l'ingegneria IT presso CA Technologies. "Ci vorrebbero anni".

Mats Heimdahl, il capo del Dipartimento di informatica e ingegneria dell'Università del Minnesota, osserva che Kangjie ei suoi ricercatori hanno anche trovato numerose patch difettose nel kernel che erano separate dai bug che hanno presentato. "È, a mio avviso, abbastanza chiaro che un processo di revisione manuale da parte di volontari sovraccarichi di lavoro e sottovalutati (anche da manutentori estremamente qualificati e dedicati) sarà inevitabilmente imperfetto", ha scritto Heimdahl in una e-mail.

Il fatto che le vulnerabilità siano in aumento solleva interrogativi fondamentali su come verrà gestito l'open source. Sebbene acceleri l'innovazione, è essenzialmente una risorsa condivisa, una vasta libreria di software gratuito che fa risparmiare ai consumatori 60 miliardi di dollari all'anno e aumenta anche i profitti per le aziende riducendo i costi di sviluppo. Potrebbero esserci semplicemente troppi free rider, con risorse insufficienti per il mantenimento e la sicurezza.

Il divieto del kernel Linux dell'Università del Minnesota: limiti appresi

Anche se non c'è nulla che indichi che il controllo delle correzioni sia cambiato, la Linux Foundation sta definendo una serie di migliori pratiche per i ricercatori che lavorano con il kernel e ha raccomandato all'Università del Minnesota di nominare un revisore per i suoi contributi. Non c'è davvero un'alternativa alla revisione del codice e la comunità in atto ora sta facendo un lavoro ragionevole per tenere fuori il codice dannoso, afferma Barcomb. Data l'autonomia richiesta per il lavoro sulla conoscenza, afferma, "il meglio che puoi fare è disporre di processi in atto per identificare le violazioni della fiducia e rispondere di conseguenza, nel migliore dei casi prima che le modifiche vengano incorporate".

Heimdahl osserva che la sua istituzione sta organizzando un comitato per fornire consulenza sulla presentazione delle patch in attesa che il divieto venga revocato.

Linux una volta era un'idea di un estraneo, un audace contrappunto al pensiero tradizionale sul software proprietario, ma si è evoluto in qualcosa che assomiglia molto di più a un progetto commerciale. Huawei, Intel e Red Hat guidano le centinaia di aziende che forniscono regolarmente codice al kernel Linux. Anche se molte di queste aziende donano denaro alla Linux Foundation e alle affiliate dell'Open Source Initiative, potrebbe essere giunto il momento per un approccio più sistematico per supportare il software al fine di contribuire a migliorare la sicurezza in futuro, uno che valorizzi meglio i vantaggi di tale fondamentali sistemi open-source.

"La gente dà per scontato che l'open source funzioni", afferma Christopher Tozzi, docente senior al Rensselaer Polytechnic Institute. "C'è un'intera nuova generazione di persone che non ha davvero pensato a questi problemi".