Open Firmware - Hakin9

13
1)Open Firmware: sicurezza di basso livello per Mac 2)<<Open Firmware>> 3<<Difesa>> 4<<Marco Triverio>> 5<<Un viaggio all'interno di Open Firmware, il “BIOS” dei Mac con processore PowerPC; sapersi destreggiare e saper personalizzare questo ambiente sono conoscenze fondamentali per rendere più sicuro il proprio Mac>> Dall'articolo imparerai... I principi fondamentali per rendere il tuo Mac più sicuro A destreggiarti all'interno di Open Firmware A personalizzare Open Firmware modificando le variabili memorizzate nella NVRAM A gestire un sistema in dual-boot A sfruttare lo stack di Open Firmware A proteggere il tuo Mac da attacchi di chi avesse accesso fisico alla macchina A conoscere i punti deboli di tali protezioni Cosa dovresti sapere Utilizzo basilare di Mac OS X Consapevolezza delle problematiche di sicurezza Che cosa sia un firmware Sull'autore Marco Triverio è uno studente al terzo anno di Ingegneria Informatica presso il Politecnico di Milano; da quando suo padre gli regalò un iMac 10 anni fa, ha imparato ad analizzare, conoscere e programmare i computer Apple ed i sistemi Unix-like. I suoi interessi si estendono anche al mondo dell'elettronica e dell'intelligenza artificiale. Il suo curriculum è disponibile all'indirizzo: http://trive.110mb.com/Triverio_CV.pdf In Rete Ulteriori approfondimenti sono disponibili sul sito web dell'autore: http://trive.110mb.com “Il” sito di sicurezza per quanto riguarda i Macintosh http://www.securemac.com Note ufficiali di Apple su Open Firmware: http://developer.apple.com/technotes/tn/tn1061.html Reference su Open Firmware: http://www.firmworks.com/QuickRef.html Curiosità: Un baco di Open Firmware Come descritto nel documento dell'Apple Knowledge Database (http://docs.info.apple.com/article.html?artnum=107666) i seguenti Macintosh iBook (tutti i modelli)

Transcript of Open Firmware - Hakin9

Page 1: Open Firmware - Hakin9

1)Open Firmware: sicurezza di basso livello per Mac

2)<<Open Firmware>>

3<<Difesa>>

4<<Marco Triverio>>

5<<Un viaggio all'interno di Open Firmware, il “BIOS” dei Mac con processore PowerPC; sapersi destreggiare e saper personalizzare questo ambiente sono conoscenze fondamentali per rendere più sicuro il proprio Mac>>

Dall'articolo imparerai...• I principi fondamentali per rendere il tuo Mac più sicuro• A destreggiarti all'interno di Open Firmware• A personalizzare Open Firmware modificando le variabili memorizzate nella NVRAM• A gestire un sistema in dual-boot• A sfruttare lo stack di Open Firmware• A proteggere il tuo Mac da attacchi di chi avesse accesso fisico alla macchina• A conoscere i punti deboli di tali protezioni

Cosa dovresti sapere• Utilizzo basilare di Mac OS X• Consapevolezza delle problematiche di sicurezza• Che cosa sia un firmware

Sull'autoreMarco Triverio è uno studente al terzo anno di Ingegneria Informatica presso il Politecnico di Milano; da quando suo padre gli regalò un iMac 10 anni fa, ha imparato ad analizzare, conoscere e programmare i computer Apple ed i sistemi Unix-like.I suoi interessi si estendono anche al mondo dell'elettronica e dell'intelligenza artificiale.Il suo curriculum è disponibile all'indirizzo: http://trive.110mb.com/Triverio_CV.pdf

In Rete● Ulteriori approfondimenti sono disponibili sul sito web dell'autore: http://trive.110mb.com● “Il” sito di sicurezza per quanto riguarda i Macintosh http://www.securemac.com● Note ufficiali di Apple su Open Firmware:

http://developer.apple.com/technotes/tn/tn1061.html● Reference su Open Firmware: http://www.firmworks.com/QuickRef.html

Curiosità: Un baco di Open FirmwareCome descritto nel documento dell'Apple Knowledge Database (http://docs.info.apple.com/article.html?artnum=107666) i seguenti Macintosh

● iBook (tutti i modelli)

Page 2: Open Firmware - Hakin9

● iMac (Slot Loading) e successivi● eMac● PowerBook (FireWire) e successivi● Power Mac G4 (AGP Graphics) e successivi● Power Mac G4 Cube (tutti i modelli)

non riconoscono password di Open Firmware contenenti il carattere maiuscolo "U". La cosa è incredibile e l'unica soluzione (parola di Apple) è non utilizzare password contenenti questo carattere! Chi, a causa di questo, non riuscisse più ad avviare la propria macchina ha due possibilità per resettare la password:

● o rimuovere la password con il metodo da me descritto nel capitoletto “Attacco ad Open Firmware”

● oppure, se la macchina si avvia (eg: security-mode è command) e si hanno privilegi di amministatore si può utilizzare l'utility fornita da Apple, la quale permette di cambiare password senza inserire quella vecchia. La stessa cosa si può fare via Terminale: ammettiamo che la mia password sia "Uboot"; digitando:

sudo nvram -p

potrò leggere il campo

security-password %ff%c8%c5%c5%de

se voglio sostituirla con "uboot" digiterò:

sudo nvram security-password="%df%c8%c5%c5%de"

IntroduzioneLa sicurezza di un sistema operativo è un aspetto che deve essere curato in ogni minimo dettaglio se si vogliono evitare brutte sorprese.Mac OS X Tiger permette di avere a portata di click molte soluzioni interessanti per la protezione del nostro computer; la prima è sicuremante il firewall, facilmente configurabile dal pannello "Condivisione" nelle Preferenze di Sistema: dalla linguetta "Servizi" si possono attivare e disattivare i servizi più comuni, come Accesso FTP, login remoto via SSH e Condivisione Documenti; dalla linguetta "Firewall" si può attivare il firewall e aggiungere o rimuovere porte attraverso cui ricevere il traffico di rete.Apple fornisce dunque una soluzione molto user-friendly ma non lascia affinare ogni singolo parametro: per fare questo vi consiglio di scaricare l'ottimo shareware FireWalk X ( http://www.pliris-soft.com/products/firewalkx/index.html ).Una caratteristica interessante è invece data dal pannello "Sicurezza" nelle Preferenze di Sistema (Figura 1), che riunisce in sè la possibilità di attivare molte protezioni di solito sparse per i vari pannelli: si può richiedere una password ogni volta che si sveglia il computer dallo sleep o si disattiva il salvaschermo; si può disabilitare il login automatico, per cui ad ogni startup si presenterà la finestra di login e sarà richiesta la password dell'utente; si può anche far richiedere una password ogni volta si vogliano modificare le preferenze di sistema protette (quelle segnalate da un lucchetto); si può inoltre richiedere che il computer effettui automaticamente il logout dopo N minuti di attività (con 5<= N <=960).Ma la soluzione più interessante del pannello "Sicurezza" è sicuremente FileVault, che permette di crittografare la propria cartella Inizio con l'algoritmo AES-128 (ovvero l'Advanced Encryption Standard con chiave a 128bit): i nostri dati sono dunque protetti anche se l'hard-disk dovesse essere

Page 3: Open Firmware - Hakin9

rimosso dal computer (al contrario le protezioni prima elencate sono legate alla macchina).Per attivare FilaVault bisogna impostare una Master Password (che permette di sbloccare qualsiasi account crittografato in caso l'utente abbia dimenticato la propria password) e poi cliccare su "Attiva FileVault": i dati verranno crittati con la password di login.Per affinare ulteriormente la sicurezza sul proprio Mac si intervenga anche sul pannello "Account" > "Opzioni Login" che permette, tra le altre cose, di mostrare la finestra Login come "Nome e Password": un potenziale attaccante sarà dunque costretto ad indovinare il nome utente, oltre alla password.

Una password sicuraA proposito di password: è importante sceglierne una che restringa davvero l'accesso solo all'amministratore. La regola (ideale) è scegliere una password facile da ricordare e impossibile da indovinare: apparentemente le due cose sono divergenti, ma vediamo come combinarle, tenendo conto che la password dovrà essere:

● lunga il più possibile;● casuale (non deve contenere sequenze di lettere contenute in un dizionario, onde evitare un

brute force);● alfanumerica, ovvero contenere numeri e lettere (e magari anche qualche segno di

punteggiatura).Un'idea molto interessante è prendere, da una frase semplice, le lettere iniziali di ogni parola (o magari quelle finali, oppure un misto). Ad esempio:

"Quanto mi piace il mio iMac G4!...Non sono forse fortunato?"

Potrebbe diventare:

QmpimiG4!...Nsff?

Se in questo modo non riuscite a creare password abbastanza facili da ricordare esiste un metodo alternativo e piuttosto originale, che consiste nel prendere, piuttosto che una frase inventata, le parole di una canzone (o di qualche frase famosa) di cui utilizzare le iniziali: miscelando sapientemente minuscole e maiuscole, numeri e segni di punteggiatura, avremo una password sicura. Comunque ricordate: la fantasia non ha limiti e con un piccolo sforzo possiamo aumentare sensibilmente il livello di sicurezza della nostra macchina.Per verificare la bontà di una password, Apple ha incluso in Tiger un'apposita utility: apriamo "Accesso portachiavi" contenuto in /Applicazioni/Utility/ e dal menu Composizione scegliamo “Cambia password per il portachiavi "xxx"” e poi clicchiamo sulla chiave che compare a fianco del campo “Nuova password”. Scegliendo “Tipo: manuale” e digitando una qualsiasi password compariranno consigli per migliorarla. La password che abbiamo creato in precedenza ha una qualità davvero ottima (come si vede in Figura 2)!Ultimo consiglio: è buona abitudine cambiare la password regolarmente.

Open FirmwareLa maggior parte delle precauzioni che si possono prendere via GUI sono di "alto livello" e possono quindi essere facilmente aggirate.

● Riavviando forzatamente il computer si possono saltare la password di salvaschermo e quella di risveglio dallo sleep;

● avviando il computer da CD si può evitare di loggarsi: ad esempio, avviando dal CD di installazione di Mac OS X e scegliendo dal menu Installer la voce "Reinizializza la password..." si possono resettare le password di qualsiasi utente, amministratore e root compresi;

Page 4: Open Firmware - Hakin9

● avviando il computer in Single-User Mode, si può navigare l'hard-disk con privilegi di root;● avviando il computer in Target Disk Mode, si rende il disco interno navigabile da qualsiasi

altro Mac collegato via FireWire.Come possiamo impedire tutto questo? Bisogna utilizzare intelligentemente Open Firmware: è questo il "BIOS" dei Macintosh con processore PowerPC ed agisce prima che venga caricato il Sistema Operativo controllando il buon funzionamento dell'hardware.Le impostazioni di Open Firmware vengono salvate in una memoria non volatile (ovvero che non perde il proprio contenuto in assenza di corrente).Esistono tre modi per modificarle:

● tramite interfaccia grafica, con un semplice strumento offerto da Apple (Figura 3)http://docs.info.apple.com/article.html?artnum=120095(per il download diretto http://download.info.apple.com/Mac_OS_X/062-9138.20011220/us/Open_Firmware_Password.dmg.bin)

● tramite la linea di comando di Mac OS X, sfruttando il comando nvram; questo permette di modificare le variabili di Open Firmware con la sintassi

sudo nvram variabile="valore"

● tramite la linea di comando offerta da Open Firmware; ci concentreremo su questo metodo in quanto è quello che offre le maggiori possibilità.

Per entrare in Open Firmware la prima cosa da fare è riavviare il computer: dopo il classico "Bong" si premano contemporaneamente i tasti Mela+Alt+O+F.Su un iMac, ad esempio, ci troveremo davanti a una shermata simile a quella mostrata nel Listato 1 (vedi anche Figura 4).Questa schermata di benvenuto ci dà qualche informazione sul nostro Macintosh: scrive (se impostato) il livello di sicurezza (security-mode) definito (command o full, lo vedremo più avanti) e ci suggerisce due comandi: mac-boot e shut-down, rispettivamente per avviare il sistema operativo e per spegnere la macchina.Come possiamo vedere, l'accesso ad Open Firmware non è protetto da password! Per impostarne una dobbiamo semplicemente digitare

password

e digitare la password prescelta (magari dando prima un'occhiata al riquadro “curiosità”).

Enter a new password: **********Enter password again: **********Password will be in place on the next boot! ok

Ma la password da sola non serve a nulla; dobbiamo anche scegliere il livello di sicurezza (detto security-mode). Abbiamo tre possibilità:

● None (opzione di default), la password di Open Firmware non verrà mai chiesta (anche se magari è stata impostata);

● Command, la password verrà richiesta ogni volta che si tentano modifiche ad Open Firmware; ad esempio quando si prova a:○ avviare il computer da CD (ovvero quando si preme il tasto C durante lo startup);○ avviare il computer da un server NetBoot (tasto N durante l'avvio);○ avviare il computer in Target Disk Mode (tasto T);○ avviare il computer in Single-User-Mode (Mela+S);○ resettare la PRAM e la NVRAM (Mela+Alt+P+R oppure reset-nvram o reset-all da

Open Firmware);○ di entrare nel "boot-loader" (tasto Alt).

● Full, la password verrà richiesta ad ogni avvio, ad ogni risveglio dall'ibernazione (ovvero il

Page 5: Open Firmware - Hakin9

cosiddetto Safe Sleep) ed ogni qualvolta si tentano modifiche ad Open Firmware.Security-mode non è altro che una delle variabili (dette Configuration Variables) contenute nella NVRAM e che definiscono il comportamento di Open Firmware. Per modificarle dalla linea di comando di OF si dovrà usare la sintassi:

setenv <variabile> <value>

ad esempio

setenv patate 3

Quindi per quanto riguarda il livello di sicurezza scriveremo

setenv security-mode command

oppure

setenv security-mode full

Per visualizzare la lista di variabili contenute in NVRAM digitiamo:

printenv

L'output sarà diviso su tre colonne: la prima indica le variabili, la seconda e la terza riportano rispettivamente i valori attuali e quelli di default.>>> Vi avviso che modificare impropriamente queste variabili può danneggiare irreparabilmente la scheda madre. Non sono responsabile per ciò che farete! <<<

BootTra le variabili di Open Firmware ce ne sono alcune molte utili:

● auto-boot?, se impostata a "true", fa sì che il Mac, al di là del security-mode impostato, entri in Open Firmware ad ogni avvio o risveglio dall'ibernazione (ma non dallo sleep!)

● security-#badlogins (che esiste solo se security-mode è impostato a command o a full) tiene il conto del numero dei tentativi di accesso ad Open Firmware in cui è stata inserita una password sbagliata

● boot-script se use-nvramrc? è impostata a true verrà eseguito lo script inserito con il comando nvedit

● boot-args specifica i parametri che verranno passati al kernel all'avvio○ -s farà avviare il Mac in single-user mode○ -v farà avviare il Mac in modalità "verbosa", ovvero la bella barra di caricamento di Mac

OS X verrà sostituita da scritte bianche su sfondo nero○ cpus=1 se le CPU sono più di una, farà credere a Mac OS X che ce ne sia una sola○ maxmem=N farà credere a Mac OS X che solo N MB di RAM siano presenti

L'accesso in single-user mode è sempre possibile se security-mode è impostato a "none": o impostando la variabile "boot-args" come specificato precedentemente oppure premendo MELA+S nelle prime fasi di avvio.In questa particolare modalità si ha accesso come root ed è dunque possibile navigare il filesystem o modificare le password con il comando:

passwd nomeutente

Ad esempio:

Page 6: Open Firmware - Hakin9

# passwd root Changing password for root. New password: Retype new password:

Se da un lato questa è una grande opportunità per gli utenti che dimenticano la propria password, dall'altro è un grosso rischio di sicurezza.

● boot-device specifica il disco di avvio.Quest'ultima è di grande interesse se abbiamo un Mac che avvia più sistemi operativi (ad esempio Mac OS X e Linux): se security-mode è impostato a "none" è sufficiente premere ALT appena dopo il "Bong" per poter scegliere da una lista il sistema operativo da avviare.Se invece security-mode è command o full, sarà necessario entrare in Open Firmware e modificare tale variabile, che ha come valore di default:

hd:,\\:tbxi

secondo la sintassi generale

<device>:<partition>,<path><filename>

in cui<device> è il disco da cui avviare, che può essere:

● hd ovvero l'hard-disk interno;● cd ovvero il cd o il dvd;● ma può anche essere, ad esempio, ultra0 (=primo disco IDE) oppure scsi-int/sd@1

(=secondo disco SCSI connesso al controller SCSI interno);<partition> è il numero di partizione, ad esempio ultra0:4;<path> è una cartella (si usi \ come separatore al posto di /); si ricordi che: "\\" sta per "\System\Library\CoreServices\";<filename> è:

● o un file, ad esempio "BootX";● oppure ":tbxi", che non specifica un file di boot ma lo fa ricercare all'interno della cartella

definita con <path>.Supponiamo a questo punto di avere un sistema dual-boot, con tabella delle partizioni come quella mostrata nel Listato 2. In questa:

● disk0s1 contiene la mappa delle partizioni● disk0s2 è la partizione di bootstrap● disk0s3, disk0s4, disk0s5 e disk0s6 sono rispettivamente le partizioni dedicate a Linux.● disk0s7 è la partizione di Mac OS X● disk0s8 è la partizione per lo scambio di documenti tra Linux e Mac OS X.

E' possibile vedere quanto vale la variabile boot-device con il comando:

printenv boot-device

Sul mio Mac, su cui Mac OS X è il sistema di default, questo comando restituirà:

boot-device hd:07, \\:tbxi

Per avviare Linux abbiamo due possibilità:1. Modificare boot-device tramite il comando

setenv boot-device hd:02,\\:tbxi

Page 7: Open Firmware - Hakin9

ed avviare con il comando mac-boot (oppure boot); è importante notare che in questo modo il cambiamento della variabile è permanente!

2. Se invece perferite mantenere Mac OS X come sistema operativo di default potete evitare di modificare boot-device utilizzando il comando "boot" con un parametro, ad esempio:

boot hd:2,\\:tbxi

BannerDue variabili a mio avviso molto interessanti sono oem-banner e oem-banner? le quali permettono di impostare un messaggio che comparirà in cima alla schermata di benvenuto di OF.Prima di tutto bisogno attivare il banner con:

setenv oem-banner? true

Poi si inserisca il testo da visualizzare:

setenv oem-banner <testo>

Il testo va inserito senza virgolette, ad esempio

setenv oem-banner Questo computer è proprietà di Steve Jobs. Se lo hai trovato, ti prego di chiamare il numero 555-NNNNN e otterrai una ricompensa in iPod d'oro.

Questa possibilità è molto interessante in caso il nostro PowerBook venga smarrito e venga trovato da una persona onesta (vedi Figura 5).C'è un altro modo per far comparire un messaggio simile a quello sopra descritto: si può modificare la struttura della finestra di login; per farlo si apra con un editor di testo il file /Library/Preferences/com.apple.loginwindow.plist e si aggiunga il testo sottolineato nel Listato 3.Volendo si può anche controllare la dimensione del testo aggiungendo, subito dopo, il testo del Listato 4. Naturalmente il numero specificato si riferisce alla dimensione dei caratteri.

Lo stack di Open FirmwareIn Open Firmware si possono fare moltissime altre cose (che descriverò velocemente).Ad esempio si possono scrivere operandi nello stack e poi lavorarci; l'esempio più semplice è rappresentato dalle operazioni aritmetiche: prima di tutto è necessario decidere in quale formato siano input e output. Inserendo:

● hex, tutti gli input e tutti gli output saranno in notazione esadecimale (ovvero in base 16, 0-1-2-3-4-5-6-7-8-9-a-b-c-d-e-f);

● decimal, tutti gli input e tutti gli output saranno in notazione decimale (ovvero in base 10);● octal, tutti gli input e tutti gli output saranno in notazione ottale (ovvero in base 8).

Se si vuole modificare solo il successivo input o output si usino invece h#, d# e o#.Per inserire un numero nello stack lo si può digitare seguito da Invio oppure seguito da spazio (in questo modo se ne possono inserire velocemente molti; l'ultimo dovrà essere seguito da Invio).Proviamo ad eseguire un operazione con numeri decimali; si scriva, seguito da Invio:

decimal

Poi si inseriscano i numeri (l'ultimo seguito da Invio), che verranno memorizzati nello stack:

Page 8: Open Firmware - Hakin9

15 9

si inserisca poi il simbolo di somma "+" seguito da Invio; questo somma i due numeri, memorizza il risultato nello stack e li cancella.Si inserisca poi il simbolo "." che mostra l'ultimo elemento inserito nello stack e lo cancella.A fianco dell'input comparirà dunque il risultato. Ricapitolando (l'input è sottolineato):

0 > decimal ok0 > 15 9 ok2 > + ok1 > . 24 ok0 > _

Il numero che compare prima del simbolo di prompt ">" indica gli elementi presenti nello stack (la notazione può essere esadecimale, decimale o ottale, a seconda di cosa abbiamo scelto noi). Più velocemente, avremmo potuto digitare (solo "." va seguito da Invio):

0 > 5 7 + . 12 ok

".s" è un operatore che mostra il contenuto dello stack e indica l'ultimo numero inserito ma non cancella nulla (si prema Invio solo dopo ".s"):

0 > 10 21 37 ok

Ho inserito tre numeri nello stack, adesso i visualizzo:

3 > .s -> 10 21 37 <- Top ok

Per duplicare l'ultimo elemento dello stack si utilizzi "dup":

0 > 10 21 37 ok3 > .s -> 10 21 37 <- Top ok3 > dup ok4 > .s -> 10 21 37 37 <- ok

Per cancellare tutti gli elementi in un colpo solo si utilizzi "clear":

4 > clear ok0 > _

Si ricordi che ogni volta che si inserisce una "bad-word", ovvero un comando non conosciuto da Open Firmware, il contenuto dello stack viene automaticamente cancellato. Esempio:

0 > 10 21 37 44 58 61 77 88 92 101 111 129 130 145 ok14 > hackhack, unknown word

ok0 > _

Per cancellare l'ultimo, gli ultimi due elementi o gli ultimi tre elementi dello stack si usino drop, 2drop e 3drop:

0 > 1 2 3 4 5 6 7 8 ok

Page 9: Open Firmware - Hakin9

8 > .s -> 1 2 3 4 5 6 7 8 <- Top ok8 > drop ok7 > .s -> 1 2 3 4 5 6 7 <- Top ok7 > 2drop ok5 > .s -> 1 2 3 4 5 <- Top ok5 > 3drop ok2 > .s -> 1 2 <- Top ok

Comandi simili esistono anche per dup: possiamo infatti duplicare l'ultimo numero N volte utilizzando Ndup.

Altre possibilitàOpen Firmware può anche essere utile per espellere un CD che non vuole saperne di uscire dal drive (anche se il più delle volte basta premere il pulsante del mouse appena dopo il bong dello startup). Si scriva:

eject cd

Si possono inoltre resettare NVRAM e PRAM. La NVRAM è la RAM non volatile, in quanto mantiene il proprio contenuto anche a computer spento: contiene, come già detto in precedenza, le variabili di Open Firmware.La PRAM è invece la RAM parametrica e contiene diverse impostazioni tra cui le impostazioni del monitor (refresh rate, risoluzione, numero di colori), impostazioni Ora, volume Bong di Startup, Volume autoparlanti, informazioni su kernel panic recenti (se ne sono avvenuti) e impostazioni regione DVD.Per resettarle si scriva

reset-nvramreset-all

dopo il quale il computer dovrebbe riavviarsi. Il reset di questi parametri in alcuni casi permette di risolvere diversi problemi.

Attacco ad Open FirmwareE' interessante sapere che le variabili di Open Firmware possono essere visualizzate e modificate anche a computer avviato.Utilizzando la shell bash, tcsh o sh la sintassi è la seguente:

sudo nvram <variable> ="<value>"

Ad esempio

sudo nvram auto-boot?="false"

fà si che (anche con security-mode impostato su none) il computer, prima di avviare il sistema operativo, entri in Open Firmware e aspetti il nostro "mac-boot".Per visualizzare le variabili si utilizzi invece:

nvram -p

Page 10: Open Firmware - Hakin9

Queste infatti possono essere visualizzate anche senza privilegi di amministratore. Ma se noi scriviamo

sudo nvram -p

e forniamo la password corretta, ci verrà presentato un elenco con diverse voci aggiuntive, tra cui "security-password":

security-password %da%c3%da%da%c5

Incredibile ma vero, la password non è crittografata ma è solo offuscata!Infatti ogni carattere della password viene prima codificato in ASCII e poi dato in pasto all'operatore XOR con operando 0xAA.

sp %8a , %88 8 %92 D %ee P %af \ %f6 h %c2 t %de! %8b - %87 9 %93 E %ef Q %fb ] %f7 i %c3 u %df“ %88 . %84 : %90 F %ec R %f8 ^ %f4 j %c0 v %dc# %89 / %85 ; %91 G %ed S %f9 _ %f5 k %c1 w %dd$ %8e 0 %9a < %96 H %e2 T %fe ` %ca l %c6 x %d2

% %8f 1 %9b = %97 I %e3 U %ff a %cb m %c7 y %d3& %8c 2 %98 > %94 J %e0 V %fc b %c8 n %c4 z %d0

' %8d 3 %99 ? %95 K %e1 W %fd c %c9 o %c5 { %d1( %82 4 %9e @ %ea L %e6 X %f2 d %ce p %da | %d6) %83 5 %9f A %eb M %e7 Y %f3 e %cf q %db } %d7* %80 6 %9c B %e8 N %e4 Z %f0 f %cc r %d8 ~ %d4+ %81 7 %9d C %e9 O %e5 [ %f1 g %cd s %d9

Come potete vedere dalla tabella la mia password è "pippo".Chiunque con privilegi di amministratore (per cui non necessariamente il proprietario) ha dunque la possibilità di conoscere la password. Ma chi invece non li avesse? E' possibile aggirare la password di Open Firmware? La risposta è SI.

● Se si possiede Mac OS 9 è possibile installare questa utilityhttp://www.securemac.com/openfirmwarepasswordprotection.php#fwsucker

● Oppure si può intervenire sull'hardware: dopo aver scollegato tutti i cavi (e rimosso la batteria nel caso di un portatile), si dovrà aprire il computer (operazione da fare, possibilmente, a macchina "fredda") e cambiare la configurazione dei moduli RAM (rimuovendone o aggiungendone uno, ad esempio); adesso la si avvii premendo MELA+ALT+P+R (combinazione di tasti che resetta la PRAM) appena dopo il Bong. Dopo aver sentito un secondo Bong si rilascino i tasti e il computer si avvierà magicamente senza più chiedere la password di open Firmware (che è stata resettata).

Nel caso in cui l'accesso alla RAM sia impossibilitato, bisogna tener conto del fatto che attacchi di tipo brute force sono scoraggiati da un meccanismo di Open Firmware detto "ritardo progressivo". Ammettiamo che un attaccante accenda il computer entro il quale vuole accedere e si ritrovi di fronte alla schermata di benvenuto di Open Firmware (o perchè auto-boot? è impostata a fale o perchè security-mode è impostato su "full" o perchè il security-mode è impostato su "command" ed ha premuto "alt" dopo il suono di avvio).A questo punto, per proseguire, sarà necessario inserire la password; ad ogni tentativo errato il ritardo prima del quale sia possibile ritentare aumenta di 2^x secondi (in cui x è il numero di tentativi). Questo di fatto scoraggia qualsiasi brute-force: ottima idea!

Page 11: Open Firmware - Hakin9

I Mac-IntelI nuovi Mac con processori Intel non hanno più Open Firmware: se da un lato infatti questo "BIOS" (pur essendo stato sviluppato nel 1988) risulta tuttora molto avanzato, esiste un sostituto veramente eccelente; si tratta di EFI, un firmware sviluppato da Intel.L'unica modalità nota per impostare un password di accesso e un security-mode "command" (al momento "full" non sembra essere supportato) è utilizzare l'applicazione "Password di Open Firmware" presente su ogni cd di restore venduto assieme al Mac-Intel.E' tuttavia possibile sfruttare il comando da Terminale "nvram". Digitando

nvram -p

si ottengono molte meno variabili rispetto ad un PowerPC (vedi Listato 5).Come su un PowerPC, con i diritti di amministratore è anche possibile vedere la password impostata (in questo caso "ciao", come visibile dal Listato 6).A differenza di Open Firmware, l'accesso ad EFI non è possibile se non si installano alcuni file; la procedura "universale" è quella mostrata di seguito:

1. Scaricare dal sito http://refit.sourceforge.net/ "rEFIt", ovvero un menu molto carino che permette di scegliere se avviare un OS (Mac OS X, Windows, Linux) oppure entrare nella shell EFI

2. E' possibile scegliere se installare permanentemente i file oppure se masterizzare un cd da cui testare il menu

3. A seconda di cosa si sceglie nel passo 2:1. Nel primo caso all'avvio verrà presentata in automatico la schermata di scelta (Figura 6)2. Nel secondo caso si dovrà invece premere il tasto alt (option) appena dopo il suono di

avvio e scegliere di avviare da cd: solo a questo punto verrà presentato il menu4. Scegliere (Figura 7) la voce "Start EFI shell" e divertirsi (Figura 8)... magari dando prima

un'occhiata alla guida reperibile all'indirizzo:http://download.intel.com/support/motherboards/server/sr9000mk4u/sb/d71474002_sr9000mk4u_efi_userguide.pdf

ConclusioneAnche se Open Firmware non garantisce sicurezza totale (ma chi la garantisce?) il suo utilizzo parallelo con FileVault e un po' di accortezza possono rendere il nostro Macintosh decisamente al riparo da moltissimi attacchi.

Fig 1. Il pannello delle preferenze “Sicurezza” Fig 2. L'assistente Password Fig 3. Icona di “Open Firmware Password” Fig 4. Schermata di benvenuto di Open Firmware Fig 5. Banner di Open Firmware Fig 6. Scheramata d'avvio nel caso si prema il tasto ALT Fig 7. rEFIt: menu principale Fig 8. La shell di EFI

Page 12: Open Firmware - Hakin9

Listato 1 Schermata di avvio di Open FirmwareApple PowerMac4,5 4.4.5f3 BootROM built on nn/nn/nn at hh:mm:ssCopyright 1994-2002 Apple Computer, Inc.All Rights Reserved.

Welcome to Open Firmware, the system time and date is: hh:mm:ss nn/nn/nnCommand security mode.

To continue booting, type "mac-boot" and press return.To shut down, type "shut-down" and press return.

ok0 > _

Listato 2 Esempio di tabella partizioniPartition map (with 512 byte blocks) on /dev/disk0 device type name /dev/disk0s1 Apple partition map Apple /dev/disk0s2 Apple Bootstrap bootstrap /dev/disk0s3 Apple UNIX SVR2 swap /dev/disk0s4 Apple UNIX SVR2 boot /dev/disk0s5 Apple UNIX SVR2 debian /dev/disk0s6 Apple UNIX SVR2 home /dev/disk0s7 Apple HFS Macintosh HD /dev/disk0s8 Apple HFS Share Partition

Listato 3 Testo per aggiungere un login banner... <plist version="1.0"> <dict>

<key>LoginwindowText</key> <string>Questo computer è proprietà di Steve Jobs. Se lo hai trovato, ti prego di chiamare il numero 555-NNNNN e otterrai una ricompensa.</string>...

Listato 4 Testo per modificare la dimensione del carattere del banner<key>LoginwindowText-FontSize</key><real>24</real>

Listato 5 Cosa restituisce “nvram – p” su un Mac-Inteluser$ nvram -p efi-boot-device <array ID="0"><dict ID="1"><key>BLLastBSDName</key><string ID="2">disk0s2</string><key>IOMatch</key><dict ID="3"><key>IOProviderClass</key><string ID="4">IOMedia</string><key>IOPropertyMatch</key><dict ID="5"><key>UUID</key><string ID="6">E824D720-343E-4DF1-82F4-AFEFEB276D87</string></dict></dict></dict></array>%00boot-image

Page 13: Open Firmware - Hakin9

%02%01%0c%00%d0A%03%0a%00%00%00%00%01%01%06%00%02%1f%03%12%0a%00%02%00%00%00%00%00%04%01*%00%02%00%00%00(@%06%00%00%00%00%00`%b8F%09%00%00%00%00 %d7$%e8>4%f1M%82%f4%af%ef%eb'm%87%02%02%04%04%18%004%00a%006%001%00d%00c%000%000%000%00%00%00%7f%ff%04%00SystemAudioVolume bsecurity-mode commandefi-boot-device-data %02%01%0c%00%d0A%03%0a%00%00%00%00%01%01%06%00%02%1f%03%01%08%00%00%01%00%00%04%01*%00%02%00%00%00(@%06%00%00%00%00%00`%b8F%09%00%00%00%00 %d7$%e8>4%f1M%82%f4%af%ef%eb'm%87%02%02%7f%ff%04%00

Listato 6 Cosa restituisce “sudo nvram -p” su un Mac-Intelefi-boot-device <array ID="0"><dict ID="1"><key>BLLastBSDName</key><string ID="2">disk0s2</string><key>IOMatch</key><dict ID="3"><key>IOProviderClass</key><string ID="4">IOMedia</string><key>IOPropertyMatch</key><dict ID="5"><key>UUID</key><string ID="6">E824D720-343E-4DF1-82F4-AFEFEB276D87</string></dict></dict></dict></array>%00security-password %c9%c3%cb%c5boot-image %02%01%0c%00%d0A%03%0a%00%00%00%00%01%01%06%00%02%1f%03%12%0a%00%02%00%00%00%00%00%04%01*%00%02%00%00%00(@%06%00%00%00%00%00`%b8F%09%00%00%00%00 %d7$%e8>4%f1M%82%f4%af%ef%eb'm%87%02%02%04%04%18%004%00a%006%001%00d%00c%000%000%000%00%00%00%7f%ff%04%00SystemAudioVolume bsecurity-mode commandefi-boot-device-data %02%01%0c%00%d0A%03%0a%00%00%00%00%01%01%06%00%02%1f%03%01%08%00%00%01%00%00%04%01*%00%02%00%00%00(@%06%00%00%00%00%00`%b8F%09%00%00%00%00 %d7$%e8>4%f1M%82%f4%af%ef%eb'm%87%02%02%7f%ff%04%00