Com o grande advento de malwares nos últimos anos, sistemas com OS X podem ser veto-res de ataques usando binários Mach-O. Esta apresentação ilustra a dissecação de algo malicioso, bem como analise e algumas possibilidades para mitigação.
2. $Whoami
Mach-O – A New Threat
### Long live Open Source - Use Linux (Slackware) ###
Ricardo L0gan
Security Specialist with over 15 years of experience,
enthusiastic in malware research, pen-test and reverse
engineering. I’ve a solid knowledge on topics like
network security, hardening and tuning across multiple
platforms such as Windows, Linux, OS X and Cisco.
Beginner in programming languages as Python, C and
Assembly.
In Brazil I contribute to the Slackware community
(Slackshow and Slackzine) and I’m member of the Staff
of some events: H2HC, SlackShow and Bsides SP.
3. Agenda
0x00 Motivation of Research
0x01 OS X, The New Target
0x02 The Mach-O Format
0x03 Tools For Analysis (Static / Dynamic)
0x04 Current Threats
0x05 Conclusions
Mach-O – A New Threat
4. 0x00 - Motivation of Research
Mach-O – A New Threat
Windows always gets infected!!!
Does Linux ever gets infected??
“Mac OS ever gets infected...”
12. The mach-o format was adopted as the
standard in OS X from version 10.6 on
We are currently in version 10.11 (Yosemite El Capitan).
Mach-O – A New Threat
0x02 - The Mach-O Format
13. CA FE BA BE - Mach-O Fat Binary
FE ED FA CE - Mach-O binary (32-bit)
FE ED FA CF - Mach-O binary (64-bit)
CE FA ED FE - Mach-O binary (reverse byte 32-bit)
CF FA ED FE - Mach-O binary (reverse byte 64-bit)
Mach-O – A New Threat
0x02 - The Mach-O Format
14. Mach-O (Mach Object)
HEADER
LOAD COMMANDS
SECTIONS
Architecture of object code
ppc ppc64 i386 x86_64 armv6
armv7 armv7s arm64
Mach-O – A New Threat
0x02 - The Mach-O Format
15. Mach-O – A New Threat
0x02 - The Mach-O Format
HEADER
30. - Keep Virtualization Software Updated
- Use System Tools Installed in VM
- Network Host-Only mode
- If you use Shared Folder(Host) leave it as “read-only”
- Disable Gatekeeper (Allow apps downloaded from: Anywhere)
VMWARE FUSION / PARALLELS / VIRTUALBOX
0x03 – Tools For Analysis (Dynamic)
Mach-O – A New Threat
48. Hacking is a way of life
0x05 – Conclusions
Reference:
Sarah Edwards
REVERSE Engineering Mac Malware - Defcon 22
https://www.defcon.org/images/defcon-22/dc-22-presentations/Edwards/DEFCON-22-
Sarah-Edwards-Reverse-Engineering-Mac-Malware.pdf
https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/MachO
Runtime/index.html
http://www.agner.org/optimize/calling_conventions.pdf
Mach-O – A New Threat
Com a popularidade do sistemas da apple (iphone / Ipad / Mac book) surgem uma nova e promissora linha usuários (melhores financeiramente falando) que pode ser alvos para novos bankers / malwares.
Bot / rootkit / alvos linux (servers)... Ver listas de rootkits .... X-agent (operation pawnstorm)
Neste primeiro gráfico podemos ver que em um período de apenas 7 dias o comparativo de submissões para cada tipo de binário.
Samples mach-o período de 2014 para comparação com 2015 no próximo slide. OK OK parece ser um pouco tendencioso e também mencionar o fato da pesquisa utilizar dados do virustotal por justamente não ser publico pelas empresas de AV.
Neste gráfico já percebe-se um aumento de submissões em binários mach-o comparado com o gráfico do slide anterior.
Detecções de mach-o por vendor. Ai fica a pergunta detectam realmente estes binários ? E realmente efetivo ?
Com todas informações disponibilizadas nos slides anteriores concluímos que o OS X realmente pode ser um plataforma muito explorada. Tanto para malwares quanto para exploração de vulnerabilidades.
Mencionar Empresa Hacker Team que tinha ferramentas de interceptação que rodava ate em OSX
https://github.com/RookLabs/milano
Neste gráfico o resultado e um pouco tendencioso devido ao fato da plataforma Windows estar divido em varias versões, já na o OS X foi apresentado apenas uma versão. Porem de qualquer forma da pra perceber que o OS X e um sistema potencialmente alvo para pesquisadores de vulnerabilidades.
Explicar rapidamente os binários utilizados em outras distribuições (Windows / Linux).
O Mac OS X roda binários do tipo ELF (Linux) e binários Mach-o.
O Nome mach-o vem de Mach Object
Falar do Magic Number, que é um cabeçalho curto e compacto geralmente utilizado para caracterizar seu formato. (ELF/PE/Mach-o/DOS/etc..)
Mach-O, short para formato de arquivo objeto Mach, é um formato de arquivo para arquivos executáveis, código objeto, bibliotecas compartilhadas código dinamicamente-carregado, e core dumps. Também conhecido como binário do tipo FAT que pode ser executado em varias arquiteturas.
O arquivo loader.h contem a estrutura do binário mach-o (header / load_commands / sections).
Existem outras ferramentas como: dtrace, fs_usage, optool, class-dump
A Maior parte das tools command line podem ser obtidas via mac ports.
Ferramenta utilizada para determinar o tipo de binário.
O wxHexEditor é de código aberto !!!
Ferramenta utilizada para extração de binário.
Parecido com o objdump e ldd - Utilizado para dump/disassembly de arquivos e bibliotecas.
O comando “nm” lista os símbolos do arquivo objeto
Criar e manipular assinaturas de códigos.
Ferramenta visual para visualização e edição de binários mach-o.
Disassembler (OS X e Linux) utilizado para engenharia reversa do binário.
Ferramenta utilizada para examinar o design de aplicações mach-o suas estruturas e informações em tempo de execução Objective-C.
ele gera declarações para as classes, categorias e protocolos. (semelhante ao otool -ov)
Na versão 10.7 a apple inseriu o gatekeeper no OS X como forma de evitar a instalação de softwares oriundos de qualquer origem.
Xcode é um (IDE) que contém um conjunto de ferramentas de desenvolvimento de software desenvolvidos pela Apple para o desenvolvimento de software para OS X e iOS
LLDB é um debugger de alto desempenho padrão no Xcode no Mac OS X e suporta a depuração C,
Objective-C e C ++ nos dispositivos de desktop e iOS e simulador.
fseventer é uma ferramenta que monitora as atividades do disco. A exibição de árvore é particularmente interessante,
pois mostra os processos em que são criados ou modificados e destaques relacionados caminhos.
ferramenta que rastreia o arquivo aberto exibindo informações como UID,PID caminho do arquivo. (pode ser utilizado com o dtrace)
Parecido com o top e htop.
Deixar claro para o pessoal que o cocoa citado não tem nada a ver com o framework COCOA.
A Detecção do binário pelo AV basicamente(Pattern Comum) se da por hooking das API do SO (criação / leitura / execução).
Surgiu em 2010 e entre 2014/2015 sofreu algumas atualizações. Basicamente ele monitora usuários Mac OS X coletando informações sobre sites, trafego de rede e outras ações maliciosas. O Malware e distribuído a partir de um binário não malicioso que contem o pacote de download e instalação. PremierOpinion e o backdoor propriamente dito com direitos administrativos e funções de Command and Control.
Sample surgiu em setembro de 2014 ele se conecta em um canal IRC para execução de comandos. O Binário em si altera o nome do processo apache2
Sample surgiu em fevereiro de 2014, fui utilizado em um ataque chamado careto, ele foi utilizado para execução de código remoto (de forma criptografada) na maquina alvo.