Paolo Perego
Paolo Perego Specialista di sicurezza applicativa e certificato OSCE e OSCP, amo spaccare e ricostruire il codice in maniera sicura. Sono cintura nera di taekwon-do, marito e papà. Ranger Caotico Neutrale, scrivo su @codiceinsicuro.

Mac OS X è davvero uno UNIX di serie B?

Mac OS X è davvero uno UNIX di serie B? Photo by on Unsplash
799 parole - Lo leggerai in 4 minuti

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!

  1. è 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

comments powered by Disqus
Codice Insicuro, blog di Cyber Security, sviluppo sicuro, code review e altro.   Non perdere neanche un post, iscriviti ora alla mailing list