skip to main | skip to sidebar
28 commenti

La tastiera infettabile del Mac

Si può infettare una tastiera? Sì, con Apple si può. Think different


Ne avevo accennato in un articolo di qualche mese fa e la storia è saltata fuori più volte nel corso della diretta radiofonica del Disinformatico, per cui ve la racconto in dettaglio anche se non è fresca fresca: le tastiere esterne USB o Bluetooth di Apple si possono infettare con software ostile. La vulnerabilità è stata annunciata a luglio 2009 e a quanto mi risulta non è stata ancora risolta.

Alla conferenza di sicurezza informatica DEFCON 2009, tenutasi appunto a fine luglio scorso a Las Vegas, un ricercatore che si fa chiamare "K. Chen" (immagine qui sopra) ha dimostrato gli effetti di questa falla, che ha poi documentato con un video molto eloquente. Una tastiera infettata in questo modo può essere collegata a qualunque Mac e prenderne il comando, registrando quello che viene digitato e poi riscrivendolo a rovescio. E' come se il computer fosse posseduto (e in effetti lo è, ma non da un'entità ultraterrena):



Come funziona? In sintesi, le tastiere Apple hanno del software a bordo (formalmente si chiama firmware) che ne gestisce il funzionamento tramite circa 8 kilobyte di memoria flash e 256 byte di RAM. Alterando questo software tramite un aggiornamento fasullo, la tastiera può cambiare comportamento.

Per esempio, può essere trasformata in un keylogger, ossia un registratore di tutto quello che viene digitato (1 kilobyte della flash è libero, quindi si possono registrare un bel po' di caratteri), oppure può impartire al computer connesso qualunque comando a scelta dell'aggressore: per esempio "connetti il computer della vittima al mio e dammi il pieno controllo per iniettargli altra porcheria". Ovviamente in computerese quest'ultimo concetto si esprime in altro modo, ma ci siamo capiti: lo spiegone tecnico è nel white paper e nella presentazione di K. Chen qui.

Siccome il firmware opera indipendentemente dal sistema operativo del computer, non c'è antivirus che tenga e la tastiera può prendere il comando direttamente durante l'avvio del Mac. E dato che il firmware risiede nella tastiera anziché nel computer, anche se azzerate il contenuto del disco rigido e reinstallate tutto da capo il Mac rimane infetto. Simpatico.

Come se non bastasse, quest'attacco non richiede l'accesso fisico alla tastiera da infettare, ma può essere attivato via Internet utilizzando altre falle del mondo Mac e un po' di psicologia (social engineering), per esempio spacciandolo per un aggiornamento regolare del firmware, dato che in effetti gli aggiornamenti di questo tipo capitano davvero.

Il problema è mitigabile da parte di Apple bloccando il firmware in modo che non sia modificabile oppure rilasciando aggiornamenti firmware dotati di firma digitale che venga verificata e da parte degli utenti evitando di usare tastiere esterne Apple. La falla mi risulta ancora aperta almeno fino al mese scorso, quando K. Chen era alla conferenza Toorcon di San Diego a presentarla.

Fonti: DigitalSociety.org, SemiAccurate.com.
Invia un commento
I commenti non appaiono subito, devono essere tutti approvati manualmente da un moderatore a sua discrezione: è scomodo, ma è necessario per mantenere la qualità dei commenti e tenere a bada scocciatori, spammer, troll e stupidi.
Inviando un commento date il vostro consenso alla sua pubblicazione, qui e/o altrove.
Maggiori informazioni riguardanti regole e utilizzo dei commenti sono reperibili nella sezione apposita.
NOTA BENE. L'area sottostante per l'invio dei commenti non è contenuta in questa pagina ma è un iframe, cioè una finestra su una pagina di Blogger esterna a questo blog. Ciò significa che dovete assicurarvi che non venga bloccata da estensioni del vostro browser (tipo quelle che eliminano le pubblicità) e/o da altri programmi di protezione antimalware (tipo Kaspersky). Inoltre è necessario che sia permesso accettare i cookie da terze parti (informativa sulla privacy a riguardo).
Commenti
Commenti (28)
Anche se ho un PC e non un MAC quando leggo queste cose apprezzo sempre la mia cara vecchia tastiera a cavo con presa AT...

Oh, non si sa mai. :D

Saluti
Michele
Ma... come fa l'utente a capire se la tastiera è infetta (almeno prima che il danno, ossia furto di password e codici) o meno? E una volta infetta, l'unica soluzione è buttarla via?
beh ormai quasi qualsiasi dispositivo ha dentro per lo meno un microcontroller ed è quindi esposto a questo tipo di rischi

la tastiera apple è solo un esempio. ci sono altri dispositivi che hanno al loro interno non solo microcontrollori (che hanno delle capacità limitate) ma processori e anche piuttosto capaci, e magari sistemi operativi interi dentro il loro firmware. penso ad esempio a modem e router, i quali sono sostanzialmente esposti allo stesso tipo di rischio; in compenso possono fare molti più danni essendo che sono collegati ad internet in prima persona oltre al fatto che sono enormemente più potenti del microcontrollore in oggetto.

sicuramente la differenza che rende teoricamente più vulnerabile la tastiera apple è che questa è "standard", mentre risulta impensabile o quanto meno molto difficoltoso proporre un attacco del genere da remoto su un router, essendo questi di mille mila tipi e versioni diverse.

ma in ogni caso si parla di attacchi che vanno a modificare il firmware, un po' come quegli attacchi che vanno ad alterare il BIOS o l'EFI della macchina. insomma, si, si può sicuramente fare.

con questo voglio dire che non vedo cosa ci sia di sorprendente: chi si sorprende è solo perchè non ha conoscenza di come è fatto un computer / una periferica / un qualsiasi pezzo di elettronica oppure non si ha un po' di fantasia per immaginare quello che si può fare. e si può fare molto di più di così. ad es. con il vostro cellulare.

un computer o un dispositivo è intrinsecamente insicuro. se dev'essere usato automaticamente può essere usato male. e più è usabile, più è facilmente aggiornabile più questo diventa facilmente hackerabile. fa parte del gioco, è nella natura delle cose; basta semplicemente capirlo e capire anche la giusta misura. ovvero che questo è un problema del tutto relativo, nel senso che basta come al solito evitare di cliccare a caso per evitare il 99% dei guai.

15 anni fa si diceva:

meglio il Tequila (un virus nefasto del tempo) sul tuo computer che l'HIV su di te

penso che oggi si ancora valido. meglio aver cliccato a caso e aver preso un virus che aver investito i propri soldi a caso su parmalat o similari =)
Bell'articolo, come quasi tutti gli articoli di questo blog, che seguo ormai fedelmente, devo pero' dire che sono utente Mac da sempre e sono "casualmente" dotato di tastiera Apple wireless, ma non ostante il signor K.Chen mi sento di poter dormire sonni tranquilli :-)
Non bisognerebbe mettere RAM & memoria statica in luoghi dove non é indispensabile.

Un telefonino, ad esempio necessita delle seguenti funzioni:

chiama (se proprio devi)
Rispondi (se non c´é alternativa)
Ignora gli sms (in ogni caso)

I gremlins (ipotetici folletti che provocherebbero malfunzionamenti nei dispositivi) hanno gioco facile nell´impossessarsi di strutture piú complesse.
Io rimango sempre della stessa opinione: se uno è tanto c******* da installare un aggiornamento suggerito da chissà chi, quindi da fonte non sicura, ben gli sta se si prende un virus, trojan e via dicendo. Ognuno è responsabile delle proprie azioni.
In realtà tutti gli aggiornamenti ufficiali di OSX e hardware della mela avvengono tramite il programma "aggiornamento software" o si scaricano dal sito della Apple stessa.

Riuscire a convincere un utente che un aggiornamento per il mac si possa trovare su un sito esterno senza che esso venga minimamente accennato sui due sistemi sopracitati, mi pare abbastanza difficile.

Una delle cose che ha permesso al mondo della mela di rimanere praticamente immune (salvo rari casi) ad attacchi di questo tipo è si sa benissimo che la Apple gestisce in prima persona e in modo automatico tutti gli aggiornamenti software ed hardware.
Riuscire a convincere un utente che un aggiornamento per il mac si possa trovare su un sito esterno senza che esso venga minimamente accennato sui due sistemi sopracitati, mi pare abbastanza difficile.

Metodo difficile: gli tarocchi il file hosts e redirigi Apple.com al sito contenente malware.

Metodo facile: "Ah, non sai che è uscito un aggiornamento che ti cracca Photoshop? Non sai fare gli aggiornamenti? Aspetta, lascia che ti aiuti..."
Faccio una semplice, rapida domanda: quante tastiere Apple sono state infettate? Nessuna?
A voi le conclusioni.
il metodo facilissimo che mi viene in mente (sarà per quello che è il sistema più usato?) è proporre qualcosa che sia sostanzialmente indistinguibile dai canali ufficiali

e voglio vedere chi non ci casca, al di là degli addetti ai lavori

MetalSho: mica penserai davvero che ci sia qualcuno così scemo da proporre degli aggiornamenti senza essersi opportunamente mimetizzati? un po' come dire che "mi sembra difficile che i vecchietti aprano agli sconosciuti quando sanno che devono aprire solamente alle forze dell'ordine o ai tecnici del gas"... pensi davvero che un malintenzionato bussi alla porta vestito da evaso, con magari un paio di cicatrici sulla faccia e la pistola in mano? =)
La prima regola è
se l'hardware funziona regolarmente non c'è bisogno di aggiornare il firmware...
Anche perchè se per qualsiasi disgraziato caso l'aggiornamento si interrompe a metà, il congegno (mobo, router, o tastiera che sia) va allegramente a donnine di facili costumi... Per cui il firmware lo aggiorni solo se è necessario... :)
Altri metodi "validi" sono quelli classici del phishing.

Ma più che altro io non ho capito cosa ci fa un hardware così complesso in una tastiera, benchè wireless.

Vabbè che le classiche tastiere PS/2 han dentro il micro del Commodore 64, però...

E molto nteressante il metodo che si usa per "infiltrarsi" diciamo così nel computer, che dimostra in modo lampante che il sistema operativo non fa differenza, alla fine nessun software è infallibile. E fa anche abbastanza paura.
Paolo ma hai attivato la moderazione dei commenti?
@ evk
Solo perchè i Mac users non se li fila nessuno...
:-)
@ Paolo Attivissimo
E' uscito un aggiornamento per craccare Photoshop ??? Dove???

:DDD
@Grezzo

a. nell'ipotesi che un cracker usi questo PoC per creare software malevolo, l'unico modo per sapere se la tastiera è infettata è leggere il contenuto della sua memoria e confrontarlo con la mappa di memoria ufficiale.
b. Non serve buttarla via: è sufficiente riscrivere la memoria

@Claudio e puffo

avere memoria riprogrammabile in dispositivi embedded, appliance eccetera io lo vedo come un vantaggio: il mio vecchio modem/router ADSL Alcatel SpeedTouch Home alla fine dei vari patching faceva anche il caffè e lo faceva bene :)

@Evk

non esiste ad oggi nessun virus per tastiere Apple per cui difficile trovarne di infettate :) è solo un PoC e non è detto che sia seguito dalla comparsa di malware

@Mousse

sono tastiere particolari: nello specifico caso la tastiera fa anche da hub usb
@paolo
il commento "stupido" sulla moderazione mi è servito per capire che la moderazione era effettivamente attiva, causa scarsa memoria non mi ricordavo se avevo postato effettivamente o se era rimasta solo un'intenzione... :D
@Gian Piero Biancoli

si, si chiama Gimp :D :D :D (che in mani esperte è pure meglio di Fotoschiopp...) ;)
@theDrakkar e tutti: proviamo a fare un riassuntino, perché qui si sfiora il mio mestiere e ci sono vari dettagli da chiarire.

1) Field upgrade, flash program memory eccetera.
Il progettista deve ricorrervi con cautela, dopo mille riflessioni, e mai per mero risparmio da parte del produttore, tentando cioè di tagliare il time to market con l'espediente di metter fuori anzitempo un prodotto con un firmware zoppicante e approssimativo, perché "tanto ci sono gli upgrade".
Nella bolgia del mass market le cose prendono sempre la piega peggiore, secondo la legge di Murphy. Infatti la possibilità di fare upgrade in qualsiasi momento durante la vita utile del device invoglia progettisti anche improvvisati ad uno sviluppo "evolutivo", cioè per prove ed errori. Un metodo che è del tutto inusitato in campo embedded, dove vigono invece regole di progrettazione severe, metodi formali esaustivi per specifica e verifica, normative internazionali assolutamente rigorose.
Tanto per dire, in alcune applicazioni automotive l'uso di MCU con memorie flash è tuttora semplicemente deprecato.

1a) Per tagliare la testa al toro, ci sono sempre due modi per fare le cose: bene, e da schifo.
Se proprio si vuole fornire la possibilità di upgrade, esistono versioni crittografiche anche dei più limitati 8 bit, in grado (come minimo) di supportare in hardware decodifica e verifica di firma del firmware all'atto del loading con una chiave asimmetrica univoca, e molto altro. Inoltre tutto ciò si può implementare anche direttamente nel loader di un generico microcontroller, posto che il loader stesso non sia realizzato tramite microcodice non alterabile, come piaceva molto fare agli asiatici qualche anno fa (es. H8).
Sarà anche il caso di ricordare che di norma le memorie di programma integrate nelle MCU sono scrivibili ma non leggibili esternamente, tranne in alcuni rarissimi design ormai fortunatamente obsoleti (o con metodi invasivi).

2) Non so come sia implementato il design di Apple, ma di norma un hub USB ruota fisicamente attorno ad un single chip ASSP, del tutto privo di firmware (es. AT43312A, USB20H04...). Dunque questo fatto non appare correlato alla necessità di upgrade.
Francamente mi pare velleitario e non giustificato l'uso di un microcontroller con flash in una tastiera, un device la cui specifica è alquanto stabile (e banale: manipola make/break code, e poco altro). Si veda comunque il punto 1a).

3) Nelle tastiere originali IBM si trova un bel 8048, un microcontroller Intel, parente stretto del grandioso 8051.
Non ha la benché minima attinenza con il processore MOS6502 e con suo cugino 6510 utilizzato nel C64, tranne il banale fatto che sono tutti degli (eccellenti) 8 bit.

4) Last but not least, esistono microcontroller e system-on-chip che superano i 300 MIPS (incluse alcune esoteriche versioni dell'8051 appena menzionato), esistono logiche programmabili che incorporano fino a 4 PPC fisicamente implementati su silicio (non softcore)... un generico microcontroller o SoC non è necessariamente "meno potente" di un altrettanto generico microprocessore, anzi spesso si tratta del medesimo core RISC, restando alle architetture fortemente deterministiche (non superscalar). Molte MCU sono anche dotate di un processor mode che le mette in grado di gestire memorie esterne (anche in modalità rigidamente Harvard), e il cerchio magicamente si chiude.
Quel che cambia è il grado di integrazione e la costellazione di periferiche a bordo.


Per chiudere, ogni volta che leggo questo genere di PoC, o anche le pubblicazioni di esperti come Kuhn, mi intristisco pensando a come aumenta sempre più la "forbice" di professionalizzazione e forma mentis tra i progettisti per il mercato di massa (e dintorni, vedi TLC e appliance) e quelli che operano in ambito industriale.
Grazie Leibniz, molto interessante.

Che tu sappia, Kuhn è lo stesso Markus che fece Season7 per decrittare Sky TV inglese ai tempi di Star Trek: The Next Generation?

Gliel'ho chiesto una volta via mail, ma non mi ha mai risposto, e l'omonimia m'intriga.
Il Markus G. Kuhn al quale mi riferivo lavora(va) a Cambridge ed è autore, tra l'altro, di questo famoso paper, ormai ampiamente obsoleto ma indicativo...
@Leibniz

1) questo è un problemaccio di difficile soluzione, ahimè, il discorso è infatti economico, non prettamente tecnico

1a) leggendo il paper la crittografia è implementata anche nella tastiera, ma la verifica del firmware viene crackata

2) questo che dici è molto importante; nel paper non viene spiegato perché l'hw della tastiera è tale, ed è anche giusto, essendo una questione Apple. Leggendo le specifiche menzionate nel paper la dotazione è
- Cypress CY7C63923 microcontroller
48-pin SSOP con 256 B di RAM e 8 KB di flash
- Microchip 25LC040A serial EEPROM
8-pin SOIC
- Cypress
CY7C65630 USB 2.0 hub controller 56-pin QFN

3 e 4) be' io ho un paio di telecomandi per la tv con lo Zilog Z80 dentro... se riesco in qualche modo a collegarci un registratore a cassette... scherzo! :)
@theDrakkar:

Purtroppo non saranno i nostri commenti, e neppure un intero scaffale di autorevolissimi testi sul software engineering, ad imporre una sterzata al modo bovino di progettare gli apparati consumer.

Quantomeno però si può indurre qualche lettore a sospettare che tutto questo non è affatto inevitabile, e che anzi esiste ed è normale nel mondo industriale un modo un po' più serio di fare le cose - anche perché non tutti arrivano da soli a considerare che, in caso contrario, ogni giorno le prime cinque o sei pagine dei quotidiani non parlerebbero d'altro che di mostruosi disastri aerei, automobilistici, navali e ferroviari, di centrali energetiche fuori controllo, di satelliti e di sistemi d'arma impazziti, se tutto fosse progettato e realizzato come i pc mainstream e i SO che ci girano sopra.

Naturalmente la crittografia della quale si parla nel paper non sembra particolarmente robusta rispetto, ad esempio, alle note implementazioni hardware iperellittiche o dual-field degli ultimi anni.

Il BOM indicato nel paper sembra comunque avallare la mia considerazione: l'hub della serie HX2LP indicato è un parente assai stretto dell'USB20H04 citato poco sopra e in particolare è totalmente standalone.
Entra una USB (slave), escono 4 porte USB indipendenti, ed è dotato di una sua SPI master dedicata unicamente alla lettura della classica EEPROM seriale (in questo caso, Microchip) contenente l'ID e le stringhe dei descrittori.

In particolare, l'architettura più razionale potrebbe essere così organizzata: la connessione USB della tastiera (il cavo che vediamo uscire fisicamente) afferisce proprio a tale hub, una delle cui porte è poi cablata internamente alla interfaccia USB della MCU che funge da controller di tastiera, tipicamente sul medesimo circuito stampato. Tale gerarchia è facilmente verificabile con un qualsiasi tool tipo USBspy, presumo.
Col che si ribadisce che tali chip per hub non abbisognano di firmware qualsivoglia.

In chiusura vorrei anche suggerire che alla Apple, coi loro listini prezzi tradizionalmente stellari, potevano permettersi non solo un vero cryptoprocessor a 8 bit e 5 porte di I/O che costa pochi spiccioli più del Cypress indicato, ma perfino un microcontroller semicustom che avrebbe complicato non poco la vita allo sperimentatore di turno.
Rimane il fatto che comunque un aggiornamento firmware lo fai solo e soltanto se l'hardware non funziona correttamente... e di solito è raro che una tastiera, ache se fa da HUB possa avere problemi di firmware... Nel senso una tastiera o muore o in genere funziona... Se non ti funziona un tasto non è un problema di FM è il tasto che è andato... e lì ci fai po'o...
Questo commento è stato eliminato dall'autore.
Qualcuno mi sa spiegare... a che serve il firmware in una tastiera?
La stragrande maggioranza delle periferiche che hai sulla scrivania (e dentro il PC, ad esempio i tuoi hard disk) contengono uno o più microcontroller programmati e quindi del firmware.

La tastiera è gestita da un microcontroller, che come già ricordato sopra negli originali di casa IBM era un 8048 Intel, il quale fa funzionare fisicamente l'intero device: effettua una scansione in multiplex della matrice dei tasti, invia serialmente al PC i codici rilevati (break e make code), gestisce i LED di stato, presiede all'inizializzazione, più varie altre funzioni secondarie e spesso poco documentate.

Ovviamente, per fare tutto questo, il microcontroller deve essere adeguatamente programmato, appunto con un firmware, presente in qualsiasi tastiera per PC IBM ma anche in quasi ogni tastiera analoga gestita tramite MCU: dai sistemi embedded industriali o medicali ai supercomputer.

Nelle implementazioni ortodosse, tale firmware risiede nella program memory interna al microcontroller, di norma di tipo PROM o ROM mascherata, non leggibile (restando alla normalità) e non alterabile.
@Gian Piero:
ma l'esistenza di questo articolo e la tua risposta non dimostrerebbe il contrario? :-)