Sei sulla pagina 1di 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)
● 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"

Introduzione
La 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
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 sicura


A 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 Firmware
La 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;
● 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
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! <<<

Boot
Tra 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:
# 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


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

Banner
Due 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 Firmware


In 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:
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 ok
0 > 15 9 ok
2 > + ok
1 > . 24 ok
0 > _

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 ok
3 > .s -> 10 21 37 <- Top ok
3 > dup ok
4 > .s -> 10 21 37 37 <- ok

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

4 > clear ok
0 > _

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 ok


14 > hack
hack, unknown word
ok
0 > _

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
8 > .s -> 1 2 3 4 5 6 7 8 <- Top ok
8 > drop ok
7 > .s -> 1 2 3 4 5 6 7 <- Top ok
7 > 2drop ok
5 > .s -> 1 2 3 4 5 <- Top ok
5 > 3drop ok
2 > .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-nvram
reset-all

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

Attacco ad Open Firmware


E' 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
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 utility
http://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!
I Mac-Intel
I 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 menu
4. 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_ef
i_userguide.pdf

Conclusione
Anche 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
Listato 1 Schermata di avvio di Open Firmware
Apple PowerMac4,5 4.4.5f3 BootROM built on nn/nn/nn at hh:mm:ss
Copyright 1994-2002 Apple Computer, Inc.
All Rights Reserved.

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

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


To shut down, type "shut-down" and press return.

ok
0>_

Listato 2 Esempio di tabella partizioni


Partition 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-Intel


user$ 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>%00
boot-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%0
9%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%00
SystemAudioVolume b
security-mode command
efi-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%0
0%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-Intel


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>%00
security-password %c9%c3%cb%c5
boot-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%0
9%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%00
SystemAudioVolume b
security-mode command
efi-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%0
0%00%00 %d7$%e8>4%f1M%82%f4%af%ef%eb'm%87%02%02%7f%ff%04%00