Etikettarkiv: Bunnie

Hacking the Xbox nu som gratis e-bok

Andrew Bunnie Huang, som Secworks tidigare uppmärksammat för sitt projekt att utveckla en egen laptop, har släppt sin bok Hacking the Xbox i PDF-format fri för nedladdning.

Hacking the xbox, som kom 2003 är en fantastisk bok, som inte bara berättar om hur Bunnie som forskarstudent lyckades knäcka skyddet i Xbox. Boken är istället en mycket bra introduktion till metoder och verktyg för att analysera och plocka isär digitala system.

Hacking the xbox

Även om boken har några år på nacken är den fortfarande mycket läsvärd och relativt unik i sitt fokus på praktiskt arbete, inte bara teori.

Skälet till att Bunnie och bokens förlag släpper boken fritt beror på hur hackern Aaron Swartz behandlades. Bunnie skriver bland annat:

No Starch Press and I have decided to release this free ebook version of Hacking the Xbox in honor of Aaron Swartz. As you read this book, I hope that you’ll be reminded of how important freedom is to the hacking community and that you’ll be inclined to support the causes that Aaron believed in.

I agreed to release this book for free in part because Aaron’s treatment by MIT is not unfamiliar to me. In this book, you will find the story of when I was an MIT graduate student, extracting security keys from the original Microsoft Xbox. You’ll also read about the crushing disappointment of receiving a letter from MIT legal repudiating any association with my work, effectively leaving me on my own to face Microsoft.

The difference was that the faculty of my lab, the AI laboratory, were outraged by this treatment. They openly defied MIT legal and vowed to publish my work as an official “AI Lab Memo,” thereby granting me greater negotiating leverage with Microsoft. Microsoft, mindful of the potential backlash from the court of public opinion over suing a legitimate academic researcher, came to a civil understanding with me over the issue.

Här finns hela motivering till varför Bunnie och förlaget släpper boken.

Bunnie bygger en laptop

Andrew Bunnie Huang, är en av världens mest kända hårdvaruhackers, känd bland annat för att vara den person som hackade Xbox (och skrev en bok om det).

Bunnie
Bunnie

Ett av Andrews senaste kända projekt är att bygga en egen laptop. Laptopen är byggd runt en ARM A9-processor med fyra kärnor. Här är en bild på moderkortet som i dag kan boota upp Linux:

Bunnies moderkort.
Moderkortet, men mååånga portar.

Förutom det man kan förvänta sig av stöd för hårddiskar, minne, tangentbord etc har Bunnies laptop en massa roliga saker som man inte brukar hitta i en vanlig laptop. Här är en lista:

mini PCI-express slot (for blob-free wifi, bluetooth, mobile data, etc.)
UIM slot for mPCIe mobile data cards
Dual-channel LVDS LCD connector (up to QXGA (2048×1536) @ 60Hz resolution) with USB2.0 side-channel for a display-side camera
Resistive touchscreen controller (note: captouch displays typically come with a controller)
1.1W, 8-ohm internal speaker connectors
2x USB2.0 internal connectors for keyboard and mouse/trackpad
Digital microphone
3-axis accelerometer
header for optional AW-NU137 wifi module

External ports:
HDMI
SD card reader
headphone + mic port (compatible with most mobile phone headsets, supports sensing in-line cable buttons)
2x USB 2.0 ports, supporting high-current (1.5A) device charging
1Gbit ethernet

“Fun” features:
100 Mbit ethernet — dual Ethernet capability allows laptop to be used as an in-line packet filter or router
USB OTG — enables laptop to spoof/fuzz ethernet, serial, etc. over USB via gadget interface to other USB hosts
Utility serial EEPROM — for storing crash logs and other bits of handy data
Spartan-6 CSG324-packaged FPGA — has several interfaces to the CPU, including a 2Gbit/s (peak) RAM-like bus — for your bitcoin mining needs. Or whatever else you might want to toss in an FPGA.
8x FPGA-driven 12-bit, 200ksps analog inputs
8x FPGA-driven digital I/O
8x FPGA-driven PWM headers, compatible with hobby ESC and PWM pinouts — enables direct interfacing with various RC motor/servo configurations & quad-copter controllers
Raspberry-Pi compatible expansion header
13x CPU-driven supplemental digital I/Os
3x internal UART ports

Att det sitter en hyggligt stor och kapabel FPGA kopplad direkt till CPU:n öppnar upp för massor med roliga möjligheter, inte bara att gräva efter Bitcoins.

Än så länge finns det inget skal, tangetbord eller skärm så laptopen är just nu ett kort på Bunnies labbord. Men projektet har väckt stor uppmärksamhet och det pratas om Crowdfunding för att ta fram det som behövs för att tillverka färdiga laptops. Och naturligtvis kommer Bunnie att släppa alla designdokument för sin design fri så om inte han själv tar fram en riktig laptop finns det möjligheter för andra att göra det.

Riktigt kul pryl, och inte minst för att labba på eller använda ute i fält för datainsamling skulle den här laptopen kunna vara riktigt, riktigt användbar. Jag vill ha en. Eller två.

Extrahera kod från låst minne i processorer

Andrew Shane Bunnie Huang, troligen mest känd för att han en gång i tiden var den som knäckte skyddet i Xbox har en klart läsvärd blogEn i mitt tycke ytterst intressant postning på bloggen handlar om hur Bunnie undersöker säkerheten hos Microchips PIC-processorer. Mer exakt processorer från PIC18-serien.

Microchip PIC18F
Microchip PIC18F

Precis som i många andra typer av microcontrollers har PIC mekanismer för att skydda det program som skrivs ner till det inbyggda programminnet från att kunna läsas ut igen. Detta sker oftast genom skrivbara låsbitar eller programmerbara säkringar. Det Bunnie ville ta reda på var hur svårt det är att återställa låsbitarna till det läge som tillåter utläsning av innehållet i det interna programminnet. Genom att skrapa bort toppen av kapseln går det att komma åt själva kiselbrickan, vilket är vad Bunnie gjort:

Kapseln bortplockad.

Det Bunnie vet är att PIC använder FLASH-minne för lagring av program och konfiguration. Bunnie ger en bra förklaring till släktskapet mellan minnesteknologierna EPROM och FLASH. Det han förklarar är att, precis som för EPROM, kan FLASH-cellers tillstånd påverkas av att belysas energirikt ljus (ex UV-ljus).

Gammalt fint EPROM-chip
Gammalt fint EPROM-chip

 

 

 

 

 

 

(Hittade bilden ovan på Wikipedia och kunde inte motstå att ta med det av ren skönhet.)

Att tillståndet i minnescellerna för EPROM påverkas av att belysas med ex UV-ljus utnyttjas genom att sätta in ett fönster i kapseln vilket gör det möjligt att radera kretsen bara genom att lysa på den. För att skydda mot motsvarande manipulation har Microchip lagt på ett extra metall-lager för att förhindra att någon genom att lysa på kretsen skall återställa låsbitarna. Så synd att metallen fungerar utmärkt som spegel.

Studsa ljus in under metalllagret.
Genom att lysa snett ovanifrån kan Bunnie få UV-ljuset att studsa på undersidan av metall-lagret och den vägen belysa låsbitarnas minnesceller även om dom är täckta av metall-lagret. Att belysa med UV-ljus raderar tyvärr även innehållet i det minne Bunnie vill extrahera. Som tur är finns tejp. Ett lager tejp över minnet går det utmärkt att resetta bitarna och få ut innehållet i minnet.

Bunnies chip med tejp över FLASH-minnet.
Bunnies chip med tejp över FLASH-minnet.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Genom att testa att skriva ner till minnet, sätta låsbitarna och sedan lysa lyckas Bunnie hitta rätt belysningsvinkel och vilka delar av kretsytan som behöver maskas för att framgångsrikt återställa låsbitarna utan att förstöra innehållet i minnet.

Så hur ska man tolka Bunnies hack? Jag tycker att det finns ett par saker man kan notera. En första sak man kan se är att det inte är speciellt svårt att komma åt och identifiera funktioner på ett chip – samt att ett chip är mer tåliga än man kan tro. Att skrapa bort kapseln och köra nedcabbat funkar fint, i alla fall på kort sikt.

Vad gäller själva låsfunktionen känns det som PIC har gjort det enkelt för sig. Hade låsbitarna varit utformade som komplementära par av celler, dvs där ena cellen måste vara satt och den andra nollställd för att läsning hade varit tillåten hade Bunnies attack behövt bli mycket mer exakt då han behövt belysa enskilda celler. Andra tillverkare har mer komplicerade lösningar, även inklusive riktiga säkringar som bränns av. Dessa går dock också att reparera.

Så hur ensam är Bunnie i att kunna göra det här? Antagligen inte speciellt ensam. Det han gör är i grunden inte speciellt svårt. Har man bara ett försök på sig och aldrig gjort det förut är det stor risk att man misslyckas. Men får man öva borde det gå att metodiskt få till en process som fungerar med låg felprocent. De chip vi pratar om här är billiga så att köpa en hög kretsar att öva på är ingen stor kostnad.

Det finns ett antal företag som erbjuder sig att extrahera kod från microcontrollers – alltid i utbildningssyfte eller som tjänst till företag som tappat bort sin källkod. Googlar man på MCU code recovery (MCU – Microcontroller Unit, dvs en liten kontrollprocessor för inbyggnad) hittar man bla Mika Technology, Gexin, Starlight samt företaget med det något avslöjande namnet MCU Crack.

Uppsprättat chip från MikaTech

MikaTech (som även finns på break-ic.com) , vars företagsslogan är Everything they make, we can break!, förklarar syftet med sina tjänster så här:

Our service is only to help engineers to study the up-to-date technologies on educational purposes and help you develope better security solutions

I samtliga fall erbjuder företagen ungefär samma upplägg. Oftast är det betalning vid start som gäller och du får lita på att dom levererar. En annan sak företagen har gemensamt är de långa listor med olika typer av MCUer, CPLDer, DSPer och FPGAer de säger sig kunna extrahera innehållet ifrån. Dom anger sällan priser direkt, men Googling ger att ca 1000 USD är kostnaden för att extrahera koden från en PIC-processor. Jag är osäker på hur trovärdiga dessa företag är, en antalet företag och det likartade upplägget pekar på att det antingen är ett utbrett bedrägeri, eller att det tyvärr är en fungerande, mogen marknad.

Så vad är då slutsatsen? Att enbart lita på att om du sätter låsbitarna i din MCU så är ditt program och hemligheter lagrade i processorns minne skyddade för alla former av attacker är anser uppenbarligen inte ett korrekt antagande. Jag har träffat representanter från leverantörer av MCU:er som hävdar att det är omöjligt att klona innehållet i deras processorers minnen. Förhoppningsvis visar detta att det inte är helt sant.

Det känns besvärligt att inte kunna komma med någon bra rekommendation på mekanism som skyddar mot den här typen av fysiska attacker. Tyvärr känner jag inte till något bra sätt att skydda sig. Det går att tänka sig aktiva skalskydd, men någon generell metod som ger bra skydd till ett pris som fungerar för att skydda microcontrollers mot fysisk kloning vet jag inte om det finns. Det pågår forskning om att ta fram icke kloningsbara funktioner (physically unclonable functions – PUF). Därmed riskerar detta att bli en skrämselartikel, vilket jag inte gillar.

Jag hoppas få anledning att skriva mer om detta och kunna presentera bra sätt att skapa bra skydd mot denna typ av fysiska attacker.