Come rilevare e mitigare l'escalation di Intel della vulnerabilità dei privilegi su un sistema Linux (CVE-2017-5689)?


26

Secondo il post del centro di sicurezza Intel datato 1 maggio 2017, esiste una vulnerabilità critica sui processori Intel che potrebbe consentire a un utente malintenzionato di ottenere privilegi (escalation di privilegi) utilizzando AMT, ISM e SBT.

Poiché AMT ha accesso diretto all'hardware di rete del computer, questa vulnerabilità hardware consentirà a un utente malintenzionato di accedere a qualsiasi sistema.

Esiste un'escalation della vulnerabilità dei privilegi nelle versioni Intel® Active Management Technology (AMT), Intel® Standard Manageability (ISM) e Intel® Small Business Technology versioni 6.x, 7.x, 8.x 9.x, 10 .x, 11.0, 11.5 e 11.6 che possono consentire a un utente malintenzionato privo di privilegi di ottenere il controllo delle funzionalità di gestibilità fornite da questi prodotti. Questa vulnerabilità non esiste sui PC consumer basati su Intel.

Intel ha rilasciato uno strumento di rilevamento disponibile per Windows 7 e 10. Sto usando le informazioni da dmidecode -t 4e cercando sul sito Web di Intel che ho scoperto che utilizza il mio processore Intel® Active Management Technology (Intel® AMT) 8.0.

Prodotti interessati:

Il problema è stato riscontrato nelle versioni del firmware di gestibilità Intel 6.x, 7.x, 8.x 9.x, 10.x, 11.0, 11.5 e 11.6 per la tecnologia Intel® Active Management, la tecnologia Intel® Small Business e Intel ® Gestibilità standard. Le versioni precedenti alla 6 o successive alla 11.6 non sono interessate.

La descrizione:

Un utente malintenzionato locale senza privilegi potrebbe fornire funzionalità di gestibilità ottenendo privilegi di rete o privilegi di sistema locali senza privilegi su SKU di gestibilità Intel: Intel® Active Management Technology (AMT), Intel® Standard Manageability (ISM) e Intel® Small Business Technology (SBT)

Come posso facilmente rilevare e mitigare l'escalation di Intel della vulnerabilità dei privilegi su un sistema Linux?


1
Il caso è ulteriormente complicato quando molti di noi usano macchine virtuali; per macchine reali sarebbe sufficiente cercare la presenza del servizio in UDP 16992? +1
Rui F Ribeiro,

2
Passaggi preventivi: utilizzare SPARC (lo so, lo so, non una soluzione fattibile). Prendi un +1
Fox,

3
@Fox in modo abbastanza divertente la CPU ME nei processori Intel è oggigiorno uno SPARC ;-).
Stephen Kitt,

2
@StephenKitt Davvero? Potrei dover ripensare la mia posizione sui chip di Intel! Quasi tutte le mie macchine sono PPC o SPARC, quindi devo ammettere che il mio pregiudizio è reale
Fox,

Risposte:


18

Il post più chiaro che ho visto su questo problema è quello di Matthew Garrett (inclusi i commenti).

Matthew ha ora rilasciato uno strumento per controllare localmente il tuo sistema: crealo, eseguilo con

sudo ./mei-amt-check

e indicherà se AMT è abilitato e sottoposto a provisioning e, se lo è, le versioni del firmware (vedi sotto). Il file README ha maggiori dettagli.

Per eseguire la scansione della rete alla ricerca di sistemi potenzialmente vulnerabili, eseguire la scansione delle porte da 623, 624 e da 16992 a 16993 (come descritto nel documento di mitigazione di Intel ); per esempio

nmap -p16992,16993,16994,16995,623,664 192.168.1.0/24

eseguirà la scansione della rete 192.168.1 / 24 e segnalerà lo stato di tutti gli host che rispondono. Essere in grado di connettersi alla porta 623 potrebbe essere un falso positivo (altri sistemi IPMI usano quella porta), ma qualsiasi porta aperta dal 16992 al 16995 è un ottimo indicatore di AMT abilitato (almeno se rispondono in modo appropriato: con AMT, ciò significa una risposta HTTP su 16992 e 16993, quest'ultima con TLS).

Se vedi le risposte sulle porte 16992 o 16993, la connessione a queste e la richiesta /tramite HTTP restituiranno una risposta con una Serverlinea contenente "Tecnologia Intel (R) Active Management" su sistemi con AMT abilitato; quella stessa riga conterrà anche la versione del firmware AMT in uso, che può quindi essere confrontata con l'elenco fornito nell'advisory di Intel per determinare se è vulnerabile.

Vedi la risposta di CerberusSec per un link a uno script che automatizza quanto sopra.

Esistono due modi per risolvere il problema "correttamente":

  • aggiornare il firmware, una volta che il produttore del sistema fornisce un aggiornamento (se mai);
  • evitare di utilizzare la porta di rete che fornisce AMT, sia utilizzando un'interfaccia di rete non compatibile con AMT sul sistema, sia utilizzando un adattatore USB (molte stazioni di lavoro AMT, come i sistemi C226 Xeon E3 con porte di rete i210, dispongono di un solo AMT- interfaccia di rete capace - il resto è sicuro; nota che AMT può funzionare su Wi-Fi, almeno su Windows, quindi l'uso di Wi-Fi integrato può anche portare a una compromissione).

Se nessuna di queste opzioni è disponibile, ci si trova nel territorio di mitigazione. Se il tuo sistema compatibile con AMT non è mai stato predisposto per AMT, allora sei ragionevolmente sicuro; abilitare AMT in quel caso apparentemente può essere fatto solo localmente e, per quanto ne so, richiede l'uso del firmware del sistema o del software Windows. Se AMT è abilitato, è possibile riavviare e utilizzare il firmware per disabilitarlo (premere CtrlPquando viene visualizzato il messaggio AMT durante l'avvio).

Fondamentalmente, mentre la vulnerabilità dei privilegi è piuttosto brutta, sembra che la maggior parte dei sistemi Intel non siano effettivamente interessati. Per i tuoi sistemi che eseguono Linux o un altro sistema operativo simile a Unix, l'escalation probabilmente richiede l'accesso fisico al sistema per abilitare AMT in primo luogo. (Windows è un'altra storia.) Sui sistemi con più interfacce di rete, come sottolineato da Rui F Ribeiro , dovresti trattare le interfacce compatibili con AMT allo stesso modo in cui tratteresti qualsiasi interfaccia amministrativa (compatibile con IPMI o l'interfaccia host) per un hypervisor VM) e isolarlo su una rete amministrativa (fisica o VLAN). Non puoi fare affidamento su un host per proteggersi: iptablesecc. Qui sono inefficaci, perché AMT vede i pacchetti prima del sistema operativo (e mantiene i pacchetti AMT su se stesso).

Le macchine virtuali possono complicare le cose, ma solo nel senso che possono confondere AMT e quindi produrre risultati di scansione confusi se AMT è abilitato. amt-howto(7)fornisce l'esempio dei sistemi Xen in cui AMT utilizza l'indirizzo fornito a una DomU tramite DHCP, se presente, il che significa che una scansione mostrerebbe AMT attivo sulla DomU, non su Dom0 ...


Non esiste un modo locale per rilevare AMT da Linux sulla macchina? Usando /proc/cpuinfoo dmidecode?
dolmen,

Ciò significa che se un sistema non risponde a nessuna di queste porte è al sicuro da questa vulnerabilità o può comunque essere sfruttato localmente?
comfreak,

La mitigazione sui laptop può assumere la forma di utilizzare schede NIC USB anziché integrate.
Michael Mol,

1
Scrivi "nota che AMT può funzionare su Wi-Fi, almeno su Windows". Pensavo che questa vulnerabilità funzionasse indipendentemente dal sistema operativo?
Wurtel,

1
@wurtel la vulnerabilità è indipendente dal sistema operativo sulle interfacce cablate, ma sulla rete Wi-Fi AMT sembra aver bisogno della collaborazione del driver del sistema operativo in esecuzione: non intercetta i pacchetti, si affida al sistema operativo che inoltra i pacchetti appropriati (a quanto ho capito) - nota che non ho provato questo lato delle cose).
Stephen Kitt,

8

Il semplice rilevamento delle porte aperte per questo servizio è insufficiente, non indica se la versione è interessata o meno. Il nostro team ha creato uno script Python disponibile sul nostro github: CerberusSecurity / CVE-2017-5689 che rileva se un sistema di destinazione è vulnerabile agli attacchi remoti.

Esempio di utilizzo:

python CVE_2017_5689_detector.py 10.100.33.252-255

Ciò dovrebbe consentirti di verificare se sei sfruttabile da remoto. Se sei interessato, abbiamo anche scritto un breve post sul blog all'indirizzo http://cerberussec.org/ con la nostra opinione su questa vulnerabilità.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.