← Ultimi articoli
💻 computer science

A Security Analysis of CheriBSD and Morello Linux

Questo articolo analizza la sicurezza di CheriBSD e Morello Linux, dimostrando che, nonostante l'efficacia dell'architettura CHERI contro la corruzione della memoria, gli esistenti meccanismi di compartimentazione rimangono vulnerabili al superamento tramite semplici bug e attacchi, e propone mitigazioni e raccomandazioni specifiche per affrontare tali debolezze.

Autori originali: Dariy Guzairov, Alex Potanin, Stephen Kell, Alwen Tiu

Pubblicato 2026-01-28
📖 6 min di lettura🧠 Approfondimento

Autori originali: Dariy Guzairov, Alex Potanin, Stephen Kell, Alwen Tiu

Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo

Immaginate una cassaforte di una banca ad alta sicurezza. In passato, se un ladro rompeva una finestra (un bug del software), poteva correre sfrenato all'interno della banca, rubando tutto, dalla scrivania del cassiere alla cassaforte del CEO.

Per fermare questo, gli ingegneri hanno costruito un nuovo tipo di cassaforte chiamato CHERI. Invece di limitarsi a chiudere le porte, hanno dato a ogni singolo oggetto della banca una "chiave magica" speciale (chiamata capability). Questa chiave non dice solo "apri questa porta"; dice: "Puoi aprire questa specifica porta, ma solo tra le 9:00 e le 17:00, e puoi solo guardare dentro, non toccare nulla".

L'obiettivo di CHERI è la Compartimentazione: dividere la banca in stanze minuscole e isolate. Se un ladro entra nella stanza del "Gift Shop" (il Negozio di Regali), le chiavi magiche che trova lì dovrebbero permettergli di aprire solo le porte del Gift Shop. Non dovrebbe poter entrare nella stanza della "Cassaforte".

Questo articolo è come un rapporto di audit sulla sicurezza. I ricercatori si sono chiesti: "Se un ladro entra nel Gift Shop, può comunque intrufolarsi nella Cassaforte?". Hanno testato questo su due diverse versioni del sistema bancario: Morello Linux e CheriBSD.

Ecco cosa hanno scoperto, spiegato in modo semplice:

Il Problema Centrale: La Fuga delle Chiavi Master

Anche se le pareti sono forti, i ricercatori hanno trovato quattro modi in cui il ladro del "Gift Shop" potrebbe rubare le chiaoli che aprono la "Cassaforte".

1. L'Attacco "Stack Walking" (Guardare nei rifiuti)

L'Analogia: Immaginate che ogni volta che un impiegato della banca svolge un compito, scriva degli appunti su un post-it e lo attacchi su una pila sulla sua scrivania. Quando finisce, passa al compito successivo, ma a volte si dimentica di buttare via i vecchi post-it.
L'Attacco: Il ladro nel Gift Shop guarda la pila di post-it lasciati indietro dai precedenti impiegati. Trova un appunto che dice: "Ecco la chiave per la Cassaforte". Poiché il sistema non ha pulito gli appunti (la memoria), il ladro ruba la chiave e cammina dritto verso la Cassaforte.
La Soluzione: I ricercatori suggeriscono che la banca dovrebbe avere una "squadra di pulizia" che cancelli ogni post-it dalla scrivania immediatamente dopo l'uso, o dare a ogni impiegato la propria scrivania privata in modo che non possano vedere gli appunti degli altri.

2. Il Leak "Dlopen" (La mappa difettosa)

L'Analogia: La banca ha un elenco centrale (una mappa) che dice dove si trovano tutte le stanze. Quando viene aggiunta una nuova stanza, l'elenco si aggiorna. Il ladro chiede all'elenco la mappa del "Gift Shop".
L'Attacco: L'elenco gli fornisce una mappa, ma è una versione "difettosa". Invece di mostrare solo il Gift Shop, include accidentalmente una lista segreta di tutte le stanze della banca, inclusa la Cassaforte, l'ufficio del CEO e il caveau. Il ladro usa questa lista accidentale per trovare le chiavi di ovunque.
La Soluzione: I ricercatori suggeriscono che l'elenco dovrebbe fornire al ladro una mappa "sigillata". Il ladro può vedere la mappa, ma non può leggere le parti segrete a meno che non abbia uno strumento speciale per rompere il sigillo (che non possiede).

3. L'Attacco "Heap Scavenging" (Scavare nel mucchio)

L'Analogia: La banca ha un grande mucchio di scatole scartate (memoria) in un angolo. Quando una scatola viene buttata via, dovrebbe essere vuota. Ma a volte, i lavoratori buttano via scatole che contengono ancora strumenti o chiavi perché si sono dimenticati di svuotarle prima.
L'Attacco: Il ladro scava nel mucchio di scatole scartate, cercando una che contenga ancora una chiave all'interno. Se trova una chiave lasciata indietro dall'impiegato della "Cassaforta", può usarla per aprire la Cassaforte.
La Soluzione: La banca ha bisogno di una regola che dica: "Prima di buttare via una scatola, devi spazzarla pulita". Oppure, il ladro dovrebbe essere autorizzato a scavare solo in un mucchio di scatole che appartiene al Gift Shop, non all'intera banca.

4. L'Attacco "Heap Storing" (La bomba a tempo)

L'Analogia: Il ladro prende una scatola dal mucchio, ci scrive sopra il proprio nome e la nasconde in tasca. Più tardi, la banca butta via quella stessa scatola e la consegna a un nuovo impiegato.
L'Attacco: Il ladro aspetta. Più tardi, controlla la sua tasca. La scatola sta ora venendo usata dal nuovo impiegato per conservare l'oro della Cassaforte. Poiché il ladro ha ancora un "pointer" (una nota mentale) a quella specifica scatola, può infilarsi dentro e rubare l'oro, anche se non dovrebbe essere lì.
La Soluzione: La banca ha bisogno di un sistema che "revoca" (distrugge) le vecchie chiavi di una scatola nel momento stesso in cui viene buttata via, in modo che la nota mentale del ladro diventi inutile.

I Risultati: Due Banche Diverse

I ricercatori hanno testato questi trucchi su due sistemi diversi:

  • Morello Linux: Questo sistema era molto vulnerabile. Il ladro poteva usare tutti e quattro i trucchi per uscire dal Gift Shop e rubare le chiavi private dalla cassaforte principale. Era come una banca senza guardie giurate e con post-it sporchi ovunque.
  • CheriBSD: Questo sistema era molto migliore. Aveva delle guardie integrate (chiamate c18n e heap revocation).
    • Il trucco "Stack Walking" non funzionava perché ogni impiegato aveva la propria scrivania privata (stack isolati).
    • Il trucco "Heap Storing" non funzionava perché la banca aveva un sistema che distruggeva le vecchie chiavi immediatamente.
    • Tuttavia, il leak "Dlopen" e l'attacco "Heap Scavenging" funzionavano ancora. Il ladro poteva ancora trovare la mappa segreta e scavare tra le scatole sporche.

La Grande Conclusione

I ricercatori hanno costruito una "Proof of Concept" (un caso di test) in cui sono riusciti a rubare una chiave privata (come una password master) da un programma sicuro usando il leak "Dlopen".

La Conclusione:
L'architettura CHERI è un'invenzione fantastica che ferma molti furti "vecchia scuola" (come sfondare le pareti). Tuttavia, il software che gira sopra di essa (i sistemi operativi e le librerie) presenta ancora dei bug. Questi bug agiscono come finestre aperte o chiavi smarrite, permettendo a un ladro di aggirare la sicurezza anche se le pareti sono solide.

Il documento conclude che, sebbene l'hardware sia sicuro, dobbiamo correggere il software (pulire i post-it, sistemare le mappe difettose e spazzare le scatole) per rendere il sistema davvero sicuro.

Sommerso dagli articoli nel tuo campo?

Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.

Prova Digest →