Mac OS X è davvero uno UNIX di serie B?
Tutto è nato un paio di settimane fa, all’inizio dell’ondata di Ransomware che ha colpito l’Italia. Arriva la mail, o si naviga in un sito compromesso, il vettore d’attacco viene scaricato sulla postazione di lavoro, l’utente1 clicca sopra e si cifra il disco (o in alternativa mettete voi qualche cosa brutta, che un malware può fare: installare un keylogger, trasformare la postazione in uno zombie all’interno di una botnet, …).
Mi sono chiesto: io uso un Mac, dovrei essere al sicuro, giusto? No, risposta sbagliata.
Auto compromissione
Ammettiamolo, i tempi dello sviluppo di AngeL sono lontani ed il mondo web ha assorbito tanto di quel tempo da avermi fatto perdere un po’ di vista la programmazione a basso livello, nella landa desolata che prende il nome di kernel land.
Per capire meglio come attaccare il mio Mac, ho deciso di rimettermi a studiare. Chiedendo a Google di cercare qualcosa su Malware e OS X mi si è aperto un mondo, devo essere sincero.
Ho scoperto i lavori di Patrick Wardle, blogger di Objective-See ed esperto nello studio di Malware e sistemi Apple. Ho scoperto il blog Reverse engineering Mac OS X ed un gran numero di talk ai vari Def CON, Blackhat, tutti concentrati sull’analisi dello stato dell’arte di Mac OS X come sistema target.
Un sistema bistrattato
Diciamoci la verità, l’utente medio Apple è considerato, da chi si proclama smanettone, un pirla. Di solito è considerato, ancor meno di un utente Windows. Il fatto di avere davanti una GUI, il fatto di avere sotto il cofano hardware chiuso e non modificabile (facilmente), il fatto di aver generato orde di fanboy deliranti che scimmiottano Steve Jobs, non depone a favore del nostro imputato.
Imputato che, occorre ricordarlo, ha parenti di tutto rispetto e si può vantare di essere, contrariamente a Linux, un vero UNIX che rispetta lo standard POSIX.
La community non perdona forse ad Apple, un rapporto poco hacker oriented verso il codice rilasciato sotto licenza BSD. Non perdona l’aver chiuso le librerie Aqua e altre posizioni più o meno condivisibili, tipiche delle guerre di religione che non portano a nulla di buono, soprattutto nella stessa comunità opensource.
Mac OS X, quindi è uno UNIX a tutti gli effetti. Mac OS X non può essere definito opensource, nonostante abbia un kernel modulare, il cui codice è opensource.
Mi sono chiesto: io uso un Mac, dovrei essere al sicuro, giusto? No, risposta sbagliata.
Implementa TrustedBSD per il mandatory access control e OpenBSM per le API di audit del sistema.
Tra l’altro, è stata proprio dietro un’iniziativa di Apple, che OpenBSM si è sviluppato.
Dalla pagina del progetto:
OpenBSM is derived from the BSM audit implementation found in Apple’s open source Darwin operating system, generously released by Apple under a BSD license. The Darwin BSM implementation was created by McAfee Research under contract to Apple Computer, and has since been maintained and extended by the volunteer TrustedBSD team. The FreeBSD Foundation sponsored the development of auditdistd, a distributed audit trail daemon.
Gatekeeper
Gatekeeper è il meccanismo di difesa che Mac OS X propone all’utente, per salvaguardarlo dall’eseguire codice non trusted. La politica di Apple è abbstanza paranoica, riguardo le applicazioni e la loro diffusione.
Gli sviluppatori devono aderire al loro developer program, pagare un’iscrizione annuale che da accesso a tonnellate di documentazione e codice. Gli sviluppatori del programma ottengono un certificato per firmare le proprie applicazioni che, prima di essere pubblicate sullo store Apple, subiscono un processo di review da parte di Apple stessa.
Gatekeeper ha il compito di verificare che l’applicazione sia stata scaricata dallo store e che venga da uno sviluppatore aderente al programma.
Questo meccanismo non è inviolabile, ma ci torneremo sopra in altri post.
Off by one
Quello che voglio iniziare è un viaggio alla scoperta di come violare ed infettare un Mac con lo scopo di capire come proteggerlo. Ormai si sta diffondendo sempre di più e quindi inizia ad essere un obiettivo molto appetibile.
Non sarà tutta farina del mio sacco. Proverò a spiegare nel dettaglio, i lavori di vari ricercatori in giro per il mondo, sul tema.
Lo scopo è imparare insieme, internals del sistema, come attaccarlo, come bucarlo e come difenderlo.
Quello che voglio mostrare è che, lo UNIX di Apple, non è uno UNIX di serie B.
Enjoy it!
-
è sempre utile ricordare che la sicurezza di un sistema informatico è pari alla sicurezza della sua componente più debolmente protetta. In un sistema dove c’è interazione con l’essere umano, ahimé siamo noi l’anello più debole. ↩
Vuoi aiutarmi a portare avanti il progetto Codice Insicuro con una donazione? Fantastico, allora non ti basta che premere il pulsante qui sotto.
Supporta il progetto