È un buffer overflow? Un bug nel codice? È la nuova vulnerabilità critica delle distro Linux: The Real Shim Shady!

2

Nell’ultimo periodo l’attenzione degli addetti alla sicurezza delle distribuzioni Linux si sta sempre più focalizzando su qualcosa di inedito: l’ambiente di boot. Solo lo scorso dicembre raccontavamo di LogoFAIL, la “pittoresca” modalità di attacco con cui era possibile sfruttare le immagine per eseguire codice binario sui sistemi, ed oggi siamo a parlare di una nuova vulnerabilità che, almeno da quanto appare leggendo la CVE-2023-40547 risulta ancora più grave, tanto da essere classificata con uno score di ben 9.8.

La componente affetta, che è trasversale alla maggioranza delle distribuzioni Linux è Shim, elemento critico che si trova nel firmware e viene eseguito all’inizio del processo di avvio, quindi prima che il sistema operativo vero e proprio venga avviato, e si pone come intermediario tra Secure Boot (sempre lì torniamo) e l’avvio effettivo di Linux.

Il bug nel codice consente ad un potenziale attaccante di inserirsi nel sistema, attraverso un firmware malevolo caricabile mediante buffer overflow, prima che il sistema operativo venga avviato.

ARSTechnica riporta le parole di Matthew Garrett, sviluppatore e tra gli autori originali di Shim, che descrive la vulnerabilità come particolarmente pericolosa:

An attacker would need to be able to coerce a system into booting from HTTP if it’s not already doing so, and either be in a position to run the HTTP server in question or MITM traffic to it, an attacker (physically present or who has already compromised root on the system) could use this to subvert secure boot (add a new boot entry to a server they control, compromise shim, execute arbitrary code).

Un attaccante potrebbe essere in grado di forzare un sistema ad avviarsi da HTTP, se non lo sta già facendo, ed essere in grado di eseguire il server HTTP in questione o il traffico MITM [Man In The Middle] ad esso, un attaccante (fisicamente presente o che ha già root compromesso sul sistema) potrebbero usarlo per sovvertire l’avvio sicuro (aggiungendo una nuova voce di avvio a un server controllato, compromettendo shim, ed eseguendo codice arbitrario).

Quindi nella sostanza la vulnerabilità è sfruttabile intercettando le chiamate http in fase di boot (ponendosi come Man In The Middle ed offrendo un firmware diverso da quello previsto), oppure avendo accesso fisico alla macchina.

Quindi, prosegue Garrett, il problema non è tanto quello di compromettere il firmware vero e proprio, quanto il fatto di poter modificare il boot loader ed il Kernel del sistema attaccato, rendendo quindi la superficie di attacco letteralmente sconfinata.

Dettagli sulla vulnerabilità, le modalità di attacco, insieme ad alcune remediation (SPOILER: confinamento di accessi e comunicazioni ed aggiornamenti costanti salvano sempre la pelle) sono presenti nell’articolo The Real Shim Shady – How CVE-2023-40547 Impacts Most Linux Systems pubblicato da Paul Asadoorian dell’azienda Eclypsium che per prima ha scoperchiato questo bel vaso di Pandora.

Anche se forse “bello” non è forse l’aggettivo più azzeccato.

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.