Buscar

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 74 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 74 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 74 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Cap QEM NATÁLIA 
Análise de MALWARE
26 e 27 de out 2015
1
CAP QEM NATÁLIA
APRESENTAÇÃO
SUMÁRIO – 1O DIA
INTRODUCÃO 
PARTE 1 – Análise Estática Básica
Exercícios
PARTE 2 – Análise Dinâmica Básica
Exercícios
3
SUMÁRIO – 2O DIA
PARTE 3 – Análise Estática Avançada
Exercício - demonstração
PARTE 4 – Análise Dinâmica Avançada
Exercício - demonstração
Exemplo de análise de malware no tratamento de incidente – um caso real.
ANÁLISE DE MALWARE
ANÁLISE: 
Determinar exatamente o que um binário faz
Engenharia reversa
Introdução
MALWARE:
Backdoor
Botnet
Downloader
Information-stealing malware
Launcher
Rootkit
Scareware
Spamsending
Worm/Virus
o Cap regueira ja apresentou
5
POR QUE ANALISAR UM MALWARE?
Prover dados para resposta a um incidente de rede
MITIGAR OS DANOS CAUSADOS PELO MALWARE
Como remover o malware de um máquina
Como identificar se outras máquinas foram contaminadas
Criar assinatura de IPS e HIPS
E para um guerreiro cibernético?
Introdução
 e para um guerreiro cibernetico?
Que outras atividades podem utilizar tecnicas de engenharia reversa?
Patch do win vista que gerou o 1o zero day do vista
Eng reversa do software de protecao do USB (h2hc)
6
O Que buscar - metas
Identificar o malware, se este for uma ameaça já conhecida
Identificar indícios no host
Identificar indícios na rede
Identificar técnicas utilizadas para exploração, persistência e anti-reversa. 
Identificar o propósito do malware
Introdução
Tipos de anÁlise de malware
As técnicas de engenharia reversa são classificadas em:
ANÁLISE ESTÁTICA
Não executa o malware
ANÁLISE DINÂMICA
Executa o malware
ANÁLISE BÁSICA
Não analisa as instruções do código
ANÁLISE AVANÇADA
Analisa as instruções do código
Introdução
Lei do menor esforco
8
Análise Estática Básica
Análise Dinâmica Básica
Análise Estática Avançada
Análise Dinâmica Avançada
Análise estática básica
Analisar o malware sem executá-lo
Confirmar se um artefato é malicioso
Prover informações iniciais sobre o comportamento do malware
Pode ser rápida e simples, mas ineficaz diante de malwares sofisticados e pode deixar de detectar comportamentos importantes
Introdução
AnÁlise dinÂmica bÁsica
 Envolve executar o malware, por completo, e observar os sintomas apresentados.
Precisa de um ambiente onde o malware vá ser executado, seguro e segregado.
Pode ser rápida, simples e até automatizada, mas ineficaz diante de malwares sofisticados e pode deixar de detectar comportamentos importantes
Introdução
AnÁlise estÁtica AVANÇADA
 Realizar engenharia reversa do malware utilizando um disassembler
Ler as instruções do programa a fim de deduzir sua funcionalidade
Requer conhecimento sobre linguagem assembly e conceitos sobre execução de código e sistemas operacionais (o foco da instrução será o sistema operacional Windows, na arquitetura Intel x86)
Introdução
Análise DINÂMICA AVANÇADA
Observa a execução do malware com auxilio de uma ferramenta de debugger.
Permite entender exatamente o que o binário faz, permitindo alterar o curso do programa durante sua execução.
Pode auxiliar na obtenção de informações que não foram obtidas nos passos anteriores. 
Introdução
Pontos chaves 
 Não se percam nos detalhes – lembrem-se da regra do menor esforço !!!
Conheça as ferramentas disponíveis
Mantenham-se atualizados com as novas técnicas de evasão e invasão
Introdução
 
13
Consulta na Internet
Um primeiro passo MUITO ÚTIL: 
virustotal.com
malwr.com
 Faça um hash do malware e pesquise sobre ele na Internet.
A maioria das bases de dados de malware são em MD5, mas já existem algumas em SHA-1. 
Análise Estática Básica
Lembre-se da lei do menor esforco !
14
Strings
Strings 
Uma das ferramentas mais simples e valiosas para obter informações importantes sobre o malware
é possível obter informações como:
Endereço de IP
URL
Funções e bibliotecas
Mensagens
Usuário e senha
Se o comando não retornar nenhuma string legível, então sugere que o malware está ofuscado ou compactado
Análise Estática Básica
Pode ser usado para obter DICAS sobre o que o malware faz e depois o analista precisa apenas confirmar. 
15
Compactação e Ofuscação
Packers são programas que compactam executáveis
LoadLibrary e GetProcAddress são bibliotecas do Windows que geralmente aparecem nas strings destes executáveis
Análise Estática Básica
Estas funcoes sao utilizadas para carregar outras dlls ou funcoes em tempo de execucao.
16
Analisador de cabeçalho
PEid 
UPX 
upx –d 
Análise Estática Básica
17
arquivo executÁvel
 arquivos executáveis podem ser do tipo PE (executable ou DLL), ELF, COFF, COM, a.out etc. 
No cabeçalho do PE existem informações relevantes sobre o arquivo, tais como a lista de funções importadas e exportadas
As bibliotecas são “linkadas” a um arquivo executável das seguintes formas:
Estática
Em tempo de execução (dica: LoadLibrary, GetProcAddress, LdrGetProcAddress e LdrLoadDll)
dinâmica
Análise Estática Básica
 
Funções importadas e exportadas
 Dependency Walker
Análise Estática Básica
DLL mais comuns
 Kernel.dll
Funções básicas do Windows, tais como, manipulação de arquivos, memoria e hardware
Advapi32.dll
Funções avançadas do Windows, tais como, acesso a Registro e Gerenciador de Serviços
User32.dll
Funções que manipulam de interface com usuário
Gdi32.dll
Exibição de componentes gráficos
Ntdll.dll
Implementa diversas funções de baixo nível e costuma ser chamada por outras DLLs (implementa diversas funções da kernel.dll) . Se for carregada diretamente, é muito provável que trata-se de um programa malicioso
WSock32.dll e Ws2_32.dll
Bibliotecas que implementam funções de rede
Wininet.dll
Implementa protocolos de rede, tais como HTTP, FTP, NTP
Análise Estática Básica
Arquivos maliciosos utilizam a ntdll para bypassar os antivirus 
21
A funcao set windowshook eh frequentemente usada por spyware para implemetar keylogger
Programa tambem exporta funcoes : lowlevelkeyboardproc e lowlevelmouseProc
Apendice A do livro tem uma lista de funcoes e o servico MSDN da microsoft
22
Ate um hello, world teria mais funcoes do que isso.
24
Ate um hello, world teria mais funcoes do que isso.
25
Seções
Um arquivo PE é composto por cabeçalhos e seções. As seções mais comuns são:
.text – código executável
.rdata – informações sobre funções importadas e exportadas
.data – variáveis globais
.rsrc – “repositório” usado pelo programa para gravar objetos que serão utilizados no programas, tais como : ícones, imagens, menus, strings. 
Um arquivo PE é composto por campos de cabecalho e diversas secoes. 
Cabecalho contem metadados sobre o programa e as secoes sao o conteudo do programa priamente dito
Existem secoes padrao criadas pelo compilados, mas podem exitir secoes customizadas em malwares.
26
PE view
PEview 
27
PE VIEW
PEview 
Um arquivo PE é composto por campos de cabecalho e diversas secoes. 
Cabecalho contem metadados sobre o programa e as secoes sao o conteudo do programa priamente dito
Existem secoes padrao criadas pelo compilados, mas podem exitir secoes customizadas em malwares.
O CAMPO IMAGE_OPTIONAL_HEADER CONTEM UM campo chamado subsystem que indica se o programa eh baseado em console ou GUI
28
EXEMPLO
	Sec	Tam V	Tam R
	.text	A000	0000
	.data	3000	0000
	.rdata	4000	0000
	.rsrc	19000	3400
	Dijfpds	20000	0000
	.sdfuok	34000	3313F
	Kijijl	1000	0200
	Sec	Tam V	Tam R
	.text	7AF5	7C00
	.data	17A0	0200
	.rdata	1AF5	1C00
	.rsrc	72B8	7400
RESOURCE HACKER
resumo
Que informações são relevantes pode-se extrair da análise estática básica de um arquivo executável:
Strings
Imports
Exports
Time Data Stamp
Sections
Subsystem
Resource
Laboratório 1
 
Sandbox
 Não corre o risco de causar danos ao ambiente do analista
Simples e bastante eficiente. Emitem relatórios bem apresentados. 
Norma SandBox, GFI Sandbox, Anubis, ThreatExpert, Comodo Instant Malware Analisys.
Desvantagens:
Confidencialidade(existem ferramentas “in-house”, geralmente comerciais)
Pouco flexível ao executar o malware
Se depender de um gatilho especifico, não será possível executar o malware
Se o malware for uma DLL necessita de parâmetros para executar
O ambiente da sandbox pode ser diferente do ambiente que se deseja analisar
Análise Dinâmica Básica
Falar de preparacao do ambiente
Vm em rede
Snapshot
Lembrando que so se comeca uma ADB apos concluida a AEB e esta tenha se mostrado ineficaz para atingir o objetivo. 
Confirmar se as hipoteses levantadas na etapa anterior sao verdadeiras ( as funcoes sao realmente invocadas? )
33
Executando o malware
Se for arquivo EXE pode ser executado diretamente pelo Windows, mas uma DLL não.
Formas de executar uma DLL:
C:\ rundll32.exe <DLLname>, <Export arguments>
Neste caso, a DLL estará associada ao programa rundll32.exe.
Também é possível modificar o parâmetro do cabeçalho PE que define se o arquivo é executável ou DLL (forca o arquivo a rodar o DLLMain) - pode ter um comportamento inesperado.
Se a DLL instalar um serviço, tem que instalar e inicializar 
Exemplo: 
C:\ rundll32.exe <DLLname>, InstallService <ServiceName>
C:\ net start ServiceName
Análise Dinâmica Básica
Export arguments pode ser o nome de uma funcao exportada na dll ou um numero ordinal definido na biblioteca 
34
Process monitor
Ferramenta análoga ao Wireshark, mas para atividades do Sistema Operacional.
Captura atividades de registros, arquivos, processos
Não funciona muito bem para monitorar atividades de rede e interações entre objetos no nível de usuário com device drivers (ou seja, pode não detectar o comportamento de um rootkit)
Não deixe o procmon capturando por muito tempo, pois pode esgotar os recursos da maquina virtual. 
Parte 2: Análise Dinâmica Básica
35
Start/Stop 
Capture
Default Filters
Registry, File system, Network, Processes
Erase
Filter
Filtra por registro, arquivos, processos, rede
Pode ser configurado para capturar os eventos durante o boot
37
Process explorer
Ferramenta semelhante ao “Task Manager” do Windows
Use para listar processos ativos, DLL carregadas, consultar as propriedades dos processos e informacoes gerais sobre o sistema.
Parte 2: Análise Dinâmica Básica
Process explorer
Ferramenta semelhante ao “Task Manager” do Windows
Use para listar processos ativos, DLL carregadas, consultar as propriedades dos processos e informacoes gerais sobre o sistema.
Parte 2: Análise Dinâmica Básica
As propriedades do processo pode indicar se há DEP e ASLR habilitado e o botão “Verify” indica se o processo é original da Microsoft ( verifica apenas a imagem em disco)
Compare as strings do processo em memoria e em disco. Se forem muito diferentes, pode indicar que houve um ataque de substituicao de processo (process replacement, binary planting)
Que o Proc Explo pode ajudar a identificar:
- se houve algum process replacement (binary planting)
43
Regshot
Análise Dinâmica Básica
Apate dns
Alguns malware fazem consultas DNS e somente realizam a atividade maliciosa após obter resposta desta consulta.
 Portanto é necessário configurar um serviço para responder ou redirecionar consultas DNS.
Análise Dinâmica Básica
netcat
Netcat também pode ser usado para escutar em alguma porta a fim de interagir com o malware
Análise Dinâmica Básica
wireshark
Análise Dinâmica Básica
inetsim
Emula diversos serviços de rede para interagir com malware (HHTP, HTTPS, FTP, IRC, DNS, SMTP, etc).
O principal objetivo é manter o malware executando. 
Permite customização dos serviços (ex.: configuração de banner)
Implementa um “dummy service”, que registra todo trafego recebido do malware, independente da porta.
Registra todos os acessos em logs para posterior analise. 
Análise Dinâmica Básica
Assembly
Os programas de computador são desenvolvidos em linguagem de alto nível e compilados para código de máquina (opcodes)
Opcodes são compostos de instruções e dados que são lidos e interpretados pela CPU.
Uma linguagem de baixo nível (Assembly) é a forma “legível” de se representar um conjunto de opcodes. 
Análise Estática Avançada
os malwares que iremos analisar sao em formato binario no nivel de opcode. o disassembly converte o binario para assembly
49
Arquitetura x86
Análise Estática Avançada
A arquitetura mais comum encontrada hoje é composta por três componentes: CPU, Memória e Dispositivos de Entrada e Saída.
 O CPU é composto por: Control Unit, ULA e Registradores. 
Memória
Análise Estática Avançada
Esta é a estrutura lógica de um programa em execução na memória RAM.
Data: dados estáticos carregados pelo programa
Code: instruções de código que implementam as funções do programa
Heap: espaço destinado a alocação dinâmica de memória
Stack: espaço destinado a variáveis locais e parâmetros de funções (pilha)
Instruções em assembly
Instruções 
A sintaxe básica das instruções é da seguinte forma: 
<NOME_INST> {<OP_DESTINO>{, <OP_ORIGEM>}}
São de nome de instruções: MOV, ADD, XOR, INC, JMP ...
Operandos
Imediato - valores numéricos
Registradores : eax, ebx, ecx, edx ...
Endereço de memória : [eax], [ebx], [ecx], [edx]...
Registradores
EAX, EBX, ECX e EDX - usados para uso geral
EIP – guarda a endereço da próxima instrução a ser executada
EBP – aponta para a base da pilha.
ESP – aponta para o topo da pilha
ESI, EDI – utilizados para manipular strings 
Análise Estática Avançada
atribuição
mov <destino>, <origem>
mov eax, ebx
mov eax, 0x42
mov eax, [0x4037C4]
mov eax, [ebx]
mov eax, [ebx+8]
lea <destino>, <origem>
lea eax, [ebx+8]
lea ebx, [eax*5+5] 
Aritimética
Adição e Subtração
sub eax, 0x10
add eax, ebx
inc edx
dec ecx
Multiplicação e Divisão
 mul 0x50 
sempre utiliza o EAX como fator. o resultado é gravado em EDX e EAX
div 0x75
sempre utiliza o EDX e EAX como dividendo. O resultado é gravado em EAX e o resto no EDX
Stack – pilha
FUNções
EBP – base da pilha: é usado para acessar as variáveis e argumentos 
ESP - topo da pilha: inserir e remover variáveis
PUSH e POP são usados para inserir e remover dados da pilha - LIFO
FUNções
Chamada a uma função
1) insere argumentos na pilha
PUSH <arg> ...
2) chama a função 
call <endereço>
o conteúdo do EIP/EBP são gravado na pilha – prologue
executa a função
ESP = EBP 
EBP = POP <Old EBP>,
EIP = POP <Return Address>
Comparações
condicionais
cmp <op_1>,<op_2>
não modifica os operandos, apenas modifica as flags ZF e CF
test <op_1>, <op_2>
não modifica o operando, apenas modifica a flag ZF
test eax, eax – testar se EAX é nulo
ramificacao
jmp <location>
jz <location>
jnz <location>
IDA PRo
Análise Estática Avançada
IDA PRo
Análise Estática Avançada
IDA PRo
Análise Estática Avançada
IDA PRO
Análise Estática Avançada
IDA PRo
Análise Estática Avançada
IDA PRo
Análise Estática Avançada
modificando registradores
RegOpenKey
RegSetValue
RegGetValue
comunicação de rede
a função que manipula rede sempre chamará WSAStartup
Server-side: socket, bind, listen 
Client-side: accept, recv, send
Para comunicação em HTTP:
InternetOpen
InternetOpenUrl
InternetReadFile
(funções importadas da Wininet.dll)
Criar processo
o objeto STARTUPINFO contém as informações de standard input, standard output e standard error
costuma ser usado na implementação de shell remoto
MUTEX e serviços
Mutex
Service
OpenSCManager
CreateService
StartService
type: WIN32_SHARE_PROCESS – combina diversos serviços no processo svchost.exe
Debugging
 Disassembler x Debbuger
Ollydbg
User mode
Windgb 
Kernel mode
Análise Dinâmica Avançada
Modo de execução
É possível:
Iniciar a execução do programa no Debugger
Associar um programa que já está executando ao Debugger
Debugar um programa passando parâmetros
Para que?
o analista consegue ver o efeito de cada instrução contida em um programa (mudança nos registradores, na pilha, etc)
acompanha a execuçãopasso-a-passo
alterar instruções ou dados para mudar a lógica do programa
Análise Dinâmica Avançada
Funcionalidades
Breakpoint
interromper a execução de um programa em um determinado ponto para análise
Stepping-over
Stepping-into
Análise Dinâmica Avançada
Exemplo
Esse código calcula o nome de um arquivo e em seguida cria o arquivo
Inserir um breakpoint antes da chamada a função CreateFileW e lê na pilha o nome do arquivo que será criado.
OLLY DBG
Análise Dinâmica Avançada
Exemplo CITEx