mercoledì 31 agosto 2011

Abbiamo il Predator Reaper anche noi!

Questa non la sapevo: l'Aeronautica Militare Italiana ha i suoi bravi Predator, i droni senza pilota capaci di caricare (modello "B") fino a 1.800 chili di bombe e portarli fino a 440 km/h sul bersaglio, in missioni che possono durare fino a 24-40 ore consecutive, anche dall'altra parte del pianeta. Spettacoloso.


Costano poco! Gli americani ce li vendono a 10,5 milioni di dollari ciascuno: così possiamo bombardare chi vogliamo (beh quasi) e quando vogliamo: ora sì che capisco a cosa servono i soldi delle nostre tasse. Come siamo forti! Come siamo tosti! Come siamo ganzi! Dicono che avremmo già bombardato i libici: questa sì che è una grande notizia (dispiacerà solo all'ENI, che in Libia aveva tanti ottimi contratti per gas e petrolio).

Vita da cani

Lasciamo perdere il fatto che i cani sono prelibati: come si chiamano i cani in Italia? Dalle mie parti si chiamano tutti o Laika (come i famosi camper) oppure Raul (come il famoso re supercattivone di Ken il guerriero: e a Milano gli hanno perfino dedicato una piazza!).


Su un blog giapponese leggo che i nomi dei cani più diffusi sono Choco (abbreviazione di "cioccolata") e Maron (abbreviazione di Marron Glacé) e Coco (abbreviazione di noce di cocco). Sarebbe interessante vedere quando uno ha due cani e li chiama Choco e Coco.

martedì 30 agosto 2011

Craccata la Xbox 360: come godo

Notiziona: craccata la Xbox 360.

Come hanno fatto: usando un po' di hardware (un CPLD Xylinx) programmato per fingere un brevissimo momentino di reset in più durante i check iniziali dopo l'accensione.

Risultato: mediamente il 25% delle volte che si applica il trucco si riesce ad aggirare i terribili test fatti dalla Xbox all'avvio, e perciò si riesce ad eseguire codice non "certificato" da Microsoft. Nel caso specifico, eseguono il Linux Loader XeLL che può caricare ed eseguire da network (via protocollo tftp) o da CDROM. Non sarà la soluzione definitiva, però è già un ottimo risultato per gli smanettoni.


Dal punto di vista della "certificazione" del software da eseguire, purtroppo la Xbox 360 è fatta bene.


Come funziona tutto l'ambaradan. Il processore, all'accensione, comincia ad eseguire codice dalla ROM che carica un loader dalla NAND protetto da crittografia RC4 e "firma" RSA. Tale loader inizializza il security engine del processore (quello che in tempo reale fa crittografia e hash checking della RAM, presumibilmente il primo con AES128 e il secondo col rigoroso Toeplitz hashing, crittografie che variano ad ogni boot perché fondate su numeri casuali estratti componendo lo stato dell'hardware, un contatore e un generatore hardware di numeri random (che viene ulteriormente controllato che non abbia un numero "sospetto" di bit posti a "1").

Quindi - seconda fase - viene eseguito un programma che ripulisce la RAM (in questo caso è bytecode interpretato), poiché molti hack di altre piattaforme tentano di sfruttare qualcosa rimasto in RAM (o posto in RAM di proposito): se non venisse ripulita la RAM a quella che al processore sembra l'accensione/reset, appena qualcuno va a taroccare l'equivalente del bus indirizzi si finirebbe per eseguire codice presente in RAM anziché il protettissimo codice originale della ROM o NAND.

Dopo la "pulizia" della RAM si passa alla terza fase: caricare un bootloader (sempre dalla NAND) ed eseguirlo. Il bootloader a sua volta carica un kernel minimale (ancora dalla NAND), lo "aggiorna" (patching) e poi lo esegue. Tale kernel contiene una minuscola porzione di codice eseguibile al livello di sicurezza più debole (hypervisor), che si preoccupa solo di controllare e bloccare eventuali punti deboli (per esempio, sapendo che i kernel versione 4532/4548 sono hackerabili, impedisce a quelle versioni di proseguire la procedura di boot).

Esatto, "hypervisor": quello è l'unico punto di tutta la catena del boot della Xbox 360 in cui si può eseguire del codice "non certificato". Dato che dalla ROM in poi è tutto imbottito di crittografia, si pone il problema di come sfruttare quel breve momentino di hypervisor mode. L'hacking della Xbox 360 si basa sul confondere (glitching) il processore per via elettronica.

Nel caso specifico, se si manda un brevissimo segnalino di "reset" al processore mentre è in hypervisor, si ottiene il curioso risultato che le operazioni di memory compare riporteranno zero (cioè al processore risulterà che due aree di memoria "risultano uguali"). Se si riesce a farlo proprio mentre sta confrontando "chiavi" e "firme", al processore sembrerà che il bootloader che ha appena caricato ha una firma uguale a quella certificabile. E per di più succederà mentre è ancora in modo hypervisor (massimo livello di privilegi, minimo livello di sicurezza).

L'hack sulla Xbox 360 si basa sul fatto che "alzando" il segnale sul pin CPU_PLL_BYPASS il processore si ritrova rallentato a 0.52 MHz (!!!) anziché ai 66.6 MHz della fase iniziale di boot o dei 200 MHz della fase di calcolo delle chiavi/firme. Così facendo, e calcolando accuratamente i tempi, si fa in modo da "aspettare il momento buono" (quello in cui mandare un impulso al pin CPU_RESET lungo nientemeno che un un decimilionesimo di secondo, quel tanto che basta per centrare la finestra di opportunità della memory compare della chiave del bootloader; se il segnale di reset è troppo lungo si finisce per resettare davvero il processore).

Visto che i tempi sono così stretti, è probabile che si possa sforare di quel tanto che basta e cercare la finestra di opportunità "troppo tardi" o "troppo presto" (è impossibile stabilire con esattezza quanto tempo sarà richiesto ogni volta dal CPU_PLL_BYPASS per abbassare drammaticamente la velocità del processore), ma a furia di misurazioni e aggiustamenti gli hacker hanno ottenuto un livello di successo ragionevole: mediamente il 25% dei tentativi riesce e la Xbox 360 anziché dare l'errore "AD" al Power On Self Test, prosegue ad eseguire codice "non certificato"... che si guarderà bene dal restituire il privilegio hypervisor. Da notare che il bypass del PLL è qualcosa di praticamente utile solo in fase di studio e progettazione da parte della Microsoft.

Dato che la CPU verrà rallentata a 0.52MHz (addirittura più lento di quella mostruosa ciofeca del Commodore 64, che andava a 0.98MHz), per giungere al "dunque" occorrerà parecchio tempo (una trentina di secondi), dopo il quale il bypass del PLL verrà azzerato ed il processore tornerà alla velocità normale di esecuzione. Se la procedura fallisce, l'hack ripete automaticamente il reboot (dopo il quinto la Xbox si arrende con il tipico RROD, Red Ring Of Death, che normalmente indicherebbe un malfunzionamento hardware grave), per cui un tentativo di boot può durare anche diversi minuti.

Sulle Xbox 360 "slim", non trovando il CPU_PLL_BYPASS sulla motherboard, hanno scoperto che il chip HANA può riconfigurare i PLL per il processore, ricevendo i comandi da una porta I2C (comodamente dall'header J2C3 a portata di mano). In tal caso però l'impulso su CPU_RESET durerà ancor meno (venti milardesimi di secondo). Se tutto va bene, anziché l'errore F2 del Power On Self Test, il processore andrà avanti eseguendo in hypervisor mode il resto del bootloader. Questa informazione è interessante perché se io fossi un manager Microsoft avrei già comandato di far sparire la traccia PLL-bypass dalla motherboard e avrei fatto inserire ripetuti controlli sull'effettiva velocità di clock in tutti i momenti più critici. Quanto al CPU_RESET non c'è niente da fare (non vorrete mica dire alla Intel di reinventare il reset di un processore e farlo ipersensibile e imprevedibile?). Intanto sui 55 milioni di Xbox già venduti l'hack può funzionare (purché si abbia a disposizione il CPLD programmato e le "sonde" sui pin).

Nota sulla crittografia. La crittografia RC4 in linea di massima è uno XOR tra un blocco dati ed un flusso di byte apparentemente casuale. Per cui, di queste tre cose (blocco dati originale, flusso dati crittografato, chiave di crittografia) avendone due è possibile risalire all'altra. Dato che i blocchi crittografati sono presenti in tutte le Xbox e presumendo che abbiano identici i primi byte del loro codice decrittografato, allora è possibile inventarsi un pezzo di codice da far crittografare al processore e risalire quindi -per confronto- alla chiave che ha utilizzato.

Implementazione: occorre un micro veloce e preciso, per cui hanno usato un CPLD Xilinx CoolRunner II (xc2c64a) perché è anche economico, programmandolo attraverso il solito linguaggetto VHDL. Il CPLD fa i giochetti coi due segnali CPU_PLL_BYPASS e CPU_RESET con la temporizzazione esatta, ottenendo (nel 25% dei tentativi di accensione) in non troppe decine di secondi di tempo di eseguire del codice arbitrario in modalità hypervisor.

Mie considerazioni personali: per costruire questo hack sono richieste competenze avanzate di informatica e crittografia (almeno da laureato in informatica "pura": e comunque è impresa alquanto titanica riconoscere un algoritmo partendo da codice disassemblato), più competenze avanzate sull'hardware (che non si imparano all'università -poiché troppo commerciali e troppo poco durevoli- e nemmeno leggendo qualche buon libro), più competenze avanzate in fatto di elettronica (un laureato in ingegneria elettronica ci può arrivare sul piano teorico ma ritengo raro che sia sufficientemente smaliziato per immaginare soluzioni del genere, se non ha almeno diversi anni di lavoro concreto nel campo della microelettronica; tutti sanno cos'è un oscilloscopio e forse anche cos'è il VHDL e cos'è una CPLD, ma pochi ci hanno smanettato per un numero di ore sufficienti per dimostrarsi come il McGyver della situazione). Se tutte queste competenze non sono concentrate in una sola persona, occorre un colossale lavoro di gruppo in cui l'affiatamento tra i membri è l'ingrediente fondamentale.

Insomma, anche se questo hack porta la firma di tre autori, devo realisticamente sospettare che abbiano ricevuto qualche "dritta" da qualche progettista Microsoft di quelli più coinvolti nel progetto. Il glitching sanno tutti cos'è: ma dopo quanti nanosecondi si deve fare? Il riconoscere la "catena" di decrittografie, magari con un disassembler hardware, quante notti insonni costerà? Quanti reboot hardware dovranno fallire prima di imbroccare almeno una volta la sequenza giusta avendo la certezza che è stata un'operazione ripetibile? Anche se c'è una mostruosa quantità di anni-uomo di studio e ricerca da parte di tantissimi altri aspiranti hacker (conoscenze che non si diffondono certo grazie a uno o due messaggini in qualche forum stiloso e sciccoso), affermo che è decisamente improbabile che dei pur bravissimi esperti siano arrivati in meno di sei anni dall'ingresso sul mercato della Xbox 360 ad una soluzione che identifica, circoscrive, sfrutta l'unico punto debole "centrando" la minuscola finestra di opportunità (difficilmente eliminabile da Microsoft). E naturalmente affermo che chi scopiazza questa mia paginetta senza citare la fonte avrà, nel momento in cui meno se lo aspetta ed in cui è maggiormente imbarazzante, una diarrea improvvisa, galoppante, interminabile.

lunedì 29 agosto 2011

AgustaWestland AW169


Spettacoloso elicottero Agusta-Westland AW169. Caratteristiche principali:
- biturbina (due Pratt&Whitney da 750 kW ciascuno)
- 1-2 piloti e fino a 8-10 passeggeri
- lungo 13 metri
- peso massimo al decollo attorno ai 4500 kg
- velocità di crociera 260 km/h (161+ mph)

Il primo volo è previsto tra pochi mesi, mentre la certificazione e le consegne avverranno nel 2014. La INAER ne ha già prenotati dieci.

lunedì 22 agosto 2011

Eureqa!!

Questo Eureqa val la pena di darci un'occhiatina: dato un set di punti, tenta di recuperare con ragionevole approssimazione la legge matematica sottostante.



Purtroppo funziona da interfaccia grafica, mentre io lo preferirei da command-line.

sabato 20 agosto 2011

eBox 3350MX

Vedo finalmente in vendita l'eBox 3350MX, un micro PC basato su processore Vortex86 (classe i586), totalmente fanless. Costa 87 sterline (circa 100 euro). Niente dogana.


Caratteristiche principali:
- 512Mb RAM
- slot SD-card
- LAN 10/100, wifi, porta seriale (questa senza connettore)
- tre porte USB 2.0
- alimentazione 5V (se non si usano le USB gli bastano 500mA)
- uscita VGA e audio in/out
- processore Vortex da 1GHz compatibile con la famiglia i586 intel (dunque ci girano altri sistemi operativi intel-based oltre a Linux: Windows XP, Kolibri, gOS, eccetera)


Ci possono girare Ubuntu 10.04 (poiché dalla 10.10 è richiesto un processore almeno classe i686) e addirittura Windows XP, anche se non velocissimi da usare come desktop. Funziona quasi tutto out of the box; al limite c'è da scaricare qualche driver o kernel patchato.

Sotto la box ci sono i canonici quattro fori VESA (distanziati di 75mm), per avvitarla dietro ai monitor di produzione più recente.


Confrontando l'eBox 3350MX con la Beagleboard xM in vendita già da 13 mesi fa:

vantaggi dell'eBox rispetto alla BBxM:
- costa meno e ha la box esterna; ci si può installare Windows XP
- ha il wifi; usa le SD-card invece delle microSD
- orologio con battery-backup (alla Beagleboard la batteria va saldata)
- (de gustibus): l'eBox ha l'uscita VGA analogica

svantaggi dell'eBox:
- la seriale c'è ma il connettore va saldato
- per le nuove distribuzioni Linux è già obsoleto (è un classe i586)
- tre porte USB2 invece che 4
- la Beagleboard ha più "porte" (GPIO, I2C, JTAG, LCD, camera...)
- pesa una settantina di grammi (il doppio della Beagleboard xM)
- (de gustibus): la Beagleboard ha le uscite S-Video e DVI-D

In sintesi, i motivi validi per comprare l'eBox sono Windows XP o la box esterna.

4000 pagine!

Per festeggiare la quattromilesima pagina di questo blog, non c'è niente di meglio che parlare di come ridurre le monete. Basta costringerle a subire un campo magnetico micidiale (un po' di migliaia di Joule) con un aggeggino fatto in casa per procacciare l'alta tensione necessaria all'avvolgimento (e che poi -uh!- esplode nel momento in cui un condensatore da 300μF e 10.000 volts dà la sua scarica).

Una volta "ridotte", purtroppo, non sono più spendibili!



Hmm... si direbbe che le monete americane siano fabbricate con metalli non proprio resistentissimi.

martedì 16 agosto 2011

Trent'anni di "compatibile IBM"


ieri (agosto 1981)oggi (agosto 2011)
processore 16 bit 4.77 MHzprocessori 64 bit, multicore e fino a mille volte più veloci
memoria 16k RAM espandibili a 256kun milione di volte più capiente
floppy disk da 160kalmeno dieci-venti milioni di volte più capiente
tastiera comodissima e velocetastiere ciofeca
alimentatore da 150 watt e una ventola di raffreddamentoalimentatori da 300-500 watt (sistemi desktop) e una famiglia numerosa di ventole e ventoline (anche sulla scheda video)
riparabile con un cacciavite e un saldatoreimpossibile ripararselo in casa; in caso di guasti si getta via o la motherboard, o l'alimentatore, o la scheda video
tempo richiesto dal tasto di accensione all'operatività: 30-60 seconditempo rimasto uguale nonostante gli hard disk allo stato solido eccetera eccetera

domenica 14 agosto 2011

Hanno spennato le piante!

E ora i topi che abitano nei buchi del muretto non hanno più privacy...

O' Prugggèttt' !!!

La vita è tutto un manàgggement e tutto un riquèst, integréit, plènning, orchestréit, analìticcs, operéit...

Ovvero: è tutto un Prugggètt'!!


Ufficio complicazioni affari semplici: ossia americanizzare un progetto.

No, la vignetta qui sopra non è frutto di ironia.

La solita rapina

Far west nella Roma Capitale: uno zaino da studente abbandonato dopo essere stato svuotato. Abbandonate anche le due bottigliette d'acqua, ancora nuove.

Due nuove Beagleboard xM nelle mie mani!!

venerdì 12 agosto 2011

giovedì 11 agosto 2011

mercoledì 10 agosto 2011

Ma porca paletta!

Il biglietto giornaliero fascia 3 feriale è aumentato da 4,60€ a 8,40€ !!! Ottantadue per cento di aumento! Vergogna!

Riparazioni varie

Altre foto ferroviarie