Come fare a...
Web
Come fare a...

Analisi forense di un sistema Mac OS X

Struttura e particolarità del sistema

Pagine: Pagina precedente 2 di 4 Pagina successiva
Autore: Andrea Ghirardini e Gabriele Faggioli - Tratto: Computer forensics - Apogeo

Il sistema

Mac OS X è quantomeno disorientante. Non ha praticamente nessuna somiglianza con Windows, ha una GUI che strizza l’occhio a Mac OS 9, sotto è Unix ma non troppo, nel senso che per certi versi funziona con una logica che è totalmente opposta. Esistono due sole tipologie di utenti che ci si trovano come nella bambagia: chi ci è nato e cresciuto (quindi utenti Mac storici che hanno comprato tutte le versioni del sistema) e chi, come chi scrive, ha avuto la fortuna di lavorare con una NeXT o con NeXTStep per Intel, Motorola, Solaris o PA-RISC. In quest’ultimo caso Mac OS X è un tuffo nel passato, un ritorno all’inizio degli anni Novanta.Tutto ciò che allora era quantomeno antesignano ora viene riscoperto. Perciò: sviluppo object oriented basato su Objective C, Display PDF (nel Novanta era PostScript), concetto di applicazioni multipiattaforma (ora due, nel Novanta anche quattro), gestione centralizzata delle configurazioni di sistema (Netinfo) e molto altro.
Per un computer forensics expert che non abbia un’esperienza specifica su questa piattaforma, Mac risulta un osso duro.Tutti i concetti validi per le altre piattaforme sono da reimparare da zero o da riscoprire in un’altra luce. Se poi il possessore del sistema è un hacker, quel Mac può essere il “Freddy Kruger” dell’analisi forense. Apple si è data davvero da fare per proteggere la privacy dei propri utenti.

Particolarità del sistema

Si vedranno ora alcune delle particolarità del sistema, ossia elementi e funzionalità che si possono ritrovare solo all’interno di Mac OS X e che lo rendono un sistema assolutamente specifico, per un computer forensics expert.

Configurazioni

Un assioma fondamentale dell’informatica è: “se è Unix e vuoi una configurazione,vai in /etc”. In effetti è vero per tutti i dialetti Unix, ma non per Mac OS X e il vecchio NeXTStep. Mac OS X eredita dal suo vecchio progenitore una struttura nota come Netinfo. Netinfo è un database di oggetti di rete distribuito. Lo si immagini come un mix di NIS (per la distribuzione degli oggetti di rete), OpenLDAP (per il servizio di directory service), il registry di Windows (un punto centralizzato per la raccolta delle configurazioni), e la directory /etc di Unix (al contrario del registry, Netinfo è composto da file di testo editabili).
L’utente Mac può tranquillamente utilizzare il sistema senza mai conoscere alcunché riguardo a Netinfo, ma lui è lì e la directory /etc di Mac OS X non è altro che la traduzione di alcune delle informazioni di Netinfo per una pura questione di compatibilità con le applicazioni Unix.
Netinfo è normalmente gestito tramite un’applicazione nota come Gestione Netinfo, posta nella cartella /Applications/Utility/ (per le versioni di Mac OS X fino alla 10.4) in /Application/utility/Utility directory, in Mac OS X 10.5 e All'interno del Pannello di controllo Account in Mac OS X 10.6 Snow Leopard.


Figura 1: Utility Directory in Mac OS X Snow Leopard

Netinfo controlla una serie di configurazioni che sono puramente di sistema operativo. Al contrario di quanto avviene con il registry di Windows, Netinfo non gestisce alcuna configurazione a livello applicativo. In particolare, Netinfo sostituisce i seguenti file di Unix:

  • hosts: le entry statiche nel file hosts si trovano in un’apposita cartella (machines) dell’albero di Netinfo;
  • passwd: all’interno di Netinfo si trovano le definizioni di tutti gli utenti, sia quelli a livello puramente di sistema Unix (quelli usati dai daemon, per intendersi) che non si vedono nel pannello di controllo di Mac OS X, sia quelli creati direttamente tramite quest’ultimo strumento. La struttura di questo ramo di Netinfo (/users) ricorda un po’ quella di OpenLDAP.

Nota
fino alla versione 10.2 del sistema operativo (Jaguar) all’interno di Netinfo si trovavano anche le password, ovviamente codificate. Memore dell’esperienza di NIS, l’equipe di Steve Jobs si convinse a utilizzare un metodo che non imponesse la spedizione della password a chiunque ne facesse richiesta. Questo nuovo meccanismo arrivò con la 10.3 (Panther) e fu perfezionato con la 10.4 (Tiger). In questi due sistemi operativi, infatti, le password non sono più contenute all’interno di Netinfo, ma in una directory separata (/var/db/shadow/hash).

Tutto questo meccanismo è stato stravolto con la versione 10.5 del sistema operativo. A partire dalla versione Mac OS X 10.4 Panther Server è stato introdotto un nuovo sistema di directory services noto come OpenDirectory. Il suo scopo è di integrare sotto un unico cappello le funzioni dei principali sistemi di directory service presenti sul mercato, ovvero Netinfo, OpenDirectory stesso, LDAP+Kerberos, Active Directory e Novell NDS. In questo modo l’utente sarà in grado di interrogare i servizi di directory con gli stessi comandi open directory indipendentemente dal numero e dal tipo di directory service presenti sulla rete. I tool di gestione server di Panther Server permettono di manipolare il sistema OpenDirectory agevolmente da GUI.
I comandi messi a disposizione dal sistema Mac OS X per la gestione dei servizi OpenDirectory sono:

  • dscl: tool generale per manipolare e gestire servizi di directory;
  • dsconfigldap: comando specifico per la manipolazione degli alberi LDAP;
  • dsconfigad: come sopra, solo per sistemi Active Directory;
  • dseditgroup: tool specifico per la gestione di gruppi di utenti;
  • dsenableroot: abilita o disabilita l’utente root in OpenDirectory;
  • dscacheutil: regola le cache relative a OpenDirectory;
  • dsmemberutil: gestisce tutto quanto è relativo all’appartenenza a vari gruppi da parte di un oggetto OpenDirectory;
  • dsexport: esporta oggetti da un albero OpenDirectory;
  • dsimport: importa oggetti in un albero OpenDirectory.

Se Mac OS X 10.4 Panther è in grado di interrogare un server OpenDirectory ma sfrutta ancora NetInfo per gli account locali della macchina, Mac OS X 10.5 possiede invece anche un server OpenDirectory locale alla macchina con il quale gestisce gli account invece di Netinfo. Si noti quindi che NetInfo viene sostituito in toto da OpenDirectory anche sui client. Gli stessi file XML presenti in 10.4, se il sistema viene aggiornato a 10.5 saranno spostati nella directory /var/db/netinfo/local.nidb.migrated, e convertiti in un formato binario.
Ciò rende il password cracking di Mac OS X un tantino più complesso che quello di altre piattaforme. Il metodo più semplice è utilizzare un apposito programma che si incarichi di estrarre correttamente le informazioni in base alla release del sistema operativo. Tale programma prende il nome di MacKrack. Può essere utilizzato per portare un attacco diretto alle password di sistema basandosi su dizionario o su brute force. Altrimenti, MacKrack può essere utilizzato per estrarre semplicemente password e utenti. Nel caso non si possa utilizzare il software di cui sopra si fa presente che:

  • per estrarre le password da un database Netinfo di un Mac OS X fino alla versione 10.2 è sufficiente utilizzare il comando: nidump passwd.
  • per estrarre le password da un database Netinfo di un Mac OS X 10.3 e 10.4 si deve: − trovare l’ID dell’utente tramite Gestione Netinfo; − cercare il file con il nome corrispondente all’ID nella directory /var/db/shadow/hash.
  • per estrarre le password da un sistema Mac OS X 10.5 si deve: − trovare l’ID dell’utente. Dato che non esiste più Gestione Netinfo e che i file che compongono lo stesso sono stati trasformati da file XML a file binari, è necessario usare il comando dscl per estrarre gli UID dei singoli account; Il formato del file delle password è cambiato all’aggiornarsi delle versioni. Un password file della versione 10.3 ha il seguente formato:

D47F3AF827A48F7DFA4F2C1F12D68CD608460EB13C5CA0C4CA
9516712F7FED9501424F955C11F92EFEF0 B79D7FA3FB6BE56A9F99

dove i primi 64 caratteri sono la password codificata in formato LAN Manager (LANMAN, due hash di 32 caratteri), e i successivi 40 caratteri sono la password codificata in SHA1.
La presenza della password codificata in formato LAN Manager era un problema di sicurezza (tale password è presente per la compatibilità con Samba, nel caso che l’utente voglia usare lo share dei file in formato Windows).
Mac OS X 10.4 affronta questo problema in due modi distinti:

  • la password non viene codificata di default anche in formato LANMAN;
  • nel caso si abiliti la condivisione Windows sulla rete, come visibile in figura 2, sarà necessario specificare gli account che avranno accesso a tale condivisione. Il sistema provvede a informare che la password sarà codificata in maniera meno sicura.


Figura 2: abilitazione della condivisione con computer Windows sulla rete: avvertimento del sistema a proposito della nuova codifica di una password

Il formato del password file di un sistema Mac OS X 10.5 è del tutto equivalente a quello di 10.4. Il formato del file delle password è ora cambiato. Quello che segue è un password file della versione 10.4/10.5:

00000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000E6A48F765D0FFFFF6247FA8
0D748E615F91DD0C7431E4D900000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000

La password standard è salvata a partire dal 169° carattere ed è lunga 48 caratteri. È in formato SHA-1 codificata con un salt da 4 byte (primi 8 caratteri) posto in testa. Potrebbero essere presenti le altre due password seguenti.

  • Password in formato LANMAN: posta in testa al file nei primi 64 caratteri.
  • Password in formato SHA-1 senza salt: inizia dal carattere 65 ed è lunga 40 caratteri. È presente se il sistema è stato aggiornato dalla versione 10.3 alla versione 10.4 del sistema operativo.
Continua: Pagina precedente 2 di 4 Pagina successiva
Condividi

Apogeo

Vedi anche...

Sempre aggiornato





Abbonati alla newsletter di Come fare a... Sottoscrivi l'RSS di Come fare a... Usi Windows Live Messenger? Abbonati ai nostri Windows Live Alerts Diventa fan di Come fare a... su Facebook Seguici su Twitter Scarica il Widget per Mac OS X