Complementando os artigos criados sobre máquina virtual para ambiente Windows e Linux, este tutorial tem como finalidade auxiliar na criação de uma máquina virtual para análise de binários, possivelmente maliciosos, em ambiente macOS.
Configurações da Máquina Virtual
- 2 processadores (cores).
- 2GB de RAM.
- Placa de rede em modo NAT (em casos aonde você realmente precisa de comunicação com um C&C).
- Placa de rede em modo Host-Only.
- Compartilhamento de Pastas desativado ou Host-Only (com host local).
Aqui vem um ponto interessante: como tenho receio de malwares que detectam o ambiente de virtualização (ex: VMware Fusion) e tentam escapar do guest pro host, rodo sempre o SO guest num SO host diferente. No caso, rodo a máquina virtual com macOS mas o SO host é Linux.
Sistema Operacional virtual
- 10.10.1 (Yosemite) publicado em 2014
- 10.13.4 (High Sierra) Versão Atual
Obs.: As duas versões do macOS mencionados acima são para demonstrar a tela de configuração do Gatekeeper de cada versão. A importância das versões está nos diferentes tipos de malware que podem se propagar em versões específicas. No entanto, basta escolher uma.
O Gatekeeper é um componente de proteção para o macOS existente desde a edição Mountain Lion. A responsabilidade deste constituinte é encontrar a identificação do desenvolvedor (Developer ID, também conhecido como “assinatura de autenticidade”), que é fornecido pela própria Apple. Quando em conformidade, o Gatekeeper mantém-se adormecido até o momento do cujo arquivo executável ou instalador ser flagrado com a assinatura de autenticidade ausente ou por ser reconhecido pela semelhança de algum tipo de malware.
Uma vez que você utiliza softwares baixados através da App Store e ou assinados pela Apple você já possui uma certa segurança. Tendo consciência que boa parte dos últimos malwares para macOS dependiam que este recurso estivesse desativado, consequentemente, permitindo o download e instalação de qualquer software não identificado.
Desativando o Gatekeeper
Imagem 1: versão Yosemite
No macOS Sierra e posterior a opção “Anywhere” não aparece mais, agora o sistema operacional perguntará para o usuário se ele deseja permitir que o software realmente seja instalado / executado no sistema. Porém há maneira de desabilitar o Gatekeeper e voltar com a opção como mostra na Imagem 1, usando o spctl (SecAssessment system policy security), via Terminal:
$ sudo spctl --master-disable
Imagem 2: versão high-sierra
Outro sistema de segurança é o SIP (System Integrity Protection). Eu ainda não vi nenhuma necessidade de desativar para rodar malware porem caso precisem:
SIP (proteção de integridade do sistema)
- Clique no menu
- Selecione Reiniciar ...
- Mantenha pressionado o ⌘comando-R para inicializar no sistema de recuperação.
- Clique no menu Utilitários e selecione Terminal.
- Digite csrutil disable e pressione Enter.
- Feche o aplicativo Terminal.
- Clique no menu e selecione Reiniciar ....
Ferramentas
No macOS além da própria Apple Store (que com certeza neste caso não terá as principais ferramentas que precisamos), também temos algumas boas fontes de ferramentas. O MacPorts, sistema de pacotes muito utilizado, e também o Homebrew suprem muito bem nossas necessidades quanto aos pacotes.
Abaixo deixei um lista de ferramentas tanto para análise estática quanto dinâmica, claro que em alguns casos a mesma ferramenta pode ser utilizada em ambos os tipos de análise.
Analise Estática
xxd -> Cria um dump a partir de um binário, parecido com o hexdump.
strip -> Remove e ou modifica a tabela de símbolos de um binario.
hexEdit -> Editor hexadecimal.
lipo -> Cria ou modifica arquivos multi-arquitetura, na imagem 6 tempos um exemplo da sua funcionalidade.
otool -> Exibe informações sobre binários Mach-O (tipo um objdump).
jtool -> Versão melhoradas do otool.
nm -> Exibe a tabela de símbolos.
codesign -> Usado para criar, verificar e exibir assinaturas de código.
machOView -> Interface visual para edição de binários mach-o.
class-dump -> Usado para examinar informações em tempo de execução do Objective-C armazenadas em arquivos Mach-O.
dtrace -> Ferramenta usada para analisar comportamento do Sistema Operacional e dos programas em execução.
fs_usage -> Exibe informações sobre chamadas de sistemas, executa rastreamento do kernel e processos, tudo em real-time.
xattr -> Usado para exibir, modificar e ou remover atributos(metadados) de arquivos, diretórios e links simbólicos.
Analise Dinâmica
xcode -> IDE de desenvolvimento de software oficial da apple, possui recursos internos para testes de perfomance de sistema.
hopper -> Ferramenta usada para disassemble e decompile de arquivos mach-o 32/64bits.
lldb -> Debugger utilizado para depurar programas C, C ++, Objective-C, Objective-C ++ e Swift.
fseventer -> Ferramenta gráfica usada para verificar atividades em disco e execução de processos de forma visual.
open snoop -> Usado para rastrear acessos de arquivos, aplicativos, processos e também monitoramento do
filesystem, você pode utilizar ele em conjunto com o Dtrace.
activity Monitor -> Exibe processos que estão sendo executados no macOS.
procexp -> Ferramenta exibe informações acessíveis pelo proc_info para exibição de processos, parecido com o top e htop.
lsock -> Baseado no PF_SYSTEM o lsock e usado para visualização em real time das conexões (Sockets) no sistema, similar ao netstat.
Por se tratar de máquina virtual para pesquisas em macOS, não poderia deixar de mencionar as ferramentas do pessoal da Objective-See. Vale a pena testar e acompanhar os artigos deles.
Imagem 3: ferramentas objective-see
Destaco três ferramentas especificas para quem estiver analisando binários do tipo Mach-O:
Imagem 4: ferramenta otool exibindo o magic number do binário.
Imagem 5: ferramenta jtool exibindo o endereço da função main() do binário Mach-O
Imagem 6: ferramenta lipo extraindo o suporte a uma arquitetura especifica em binários do tipo fat.
Considerações finais
- Criar um snapshot da instalação default;
-
Ficar atento:
- Anti-Disasssembly
- Anti-Debugging
- Sistemas de Ofuscação
- Anti-VM
- Ficar atento às falhas publicadas
- 1