0% acharam este documento útil (0 voto)
417 visualizações38 páginas

Slides Malware

O documento apresenta uma introdução sobre malware e seus tipos, como vírus, worms, spyware, trojans e outros. Também discute técnicas de engenharia reversa, análise estática e dinâmica de malware e ferramentas usadas.

Enviado por

jefersonlsilva
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
417 visualizações38 páginas

Slides Malware

O documento apresenta uma introdução sobre malware e seus tipos, como vírus, worms, spyware, trojans e outros. Também discute técnicas de engenharia reversa, análise estática e dinâmica de malware e ferramentas usadas.

Enviado por

jefersonlsilva
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Visão geral do curso

Introdução
 termo malware
 intenção
 atividades
 danos

3 Aula 01
Tipos de código maliciosos
 características comuns
 difícil definição
 Vírus
 mais antigo
 termo genérico
 cópias para infectar arquivos
 depende de ação do usuário

4 Aula 01
 Worm
 auto-replicam
 exploram vulnerabilidades
 Spyware
 coleta dados de navegação/computador
 Trojan horse
 presente de grego
 funções ocultas
 Trojan-Downloader
 instalados no primeiro acesso
 Trojan-Dropper
 códigos maliciosos embutidos no próprio trojan

5 Aula 01
 Trojan-Banker
 95% no Brasil
 Backdoor
 acesso remoto
 Bot/Botnet
 acesso remoto para enviar comandos
 ataques
 Ransomware
 criptografa dados e solicita “resgate”
 Scareware
 assustar o usuário, rogue ou fake security software
 Rootkit
 ocultar presença, técnicas avançadas
6 Aula 01
 Nation-Sponsored Malware
Cyberweapons / CyberWar
 Inutilizar computador da vítima
 Utilizada frequentemente em sistemas industriais:
nuclear, energia, abastecimento (SCADA)
Cyber Espionage / Cyber Surveillance
 Coletar todos os tipos de dados

 Ex.: Stuxnet, DuQu, Flame, FinFisher, [next here]


http://www.finfisher.com

7 Aula 01
Fraudes
 Pharming
 redirecionamento do usuário para páginas falsas
 DNS falso
 Phishing Scam
 spam
 assuntos do momento
 Spear Phishing
 pesca com arpão

8 Aula 01
Engenharia Reversa
 extrair conhecimento
 algo que foi perdido ou sem acesso
 descobrir segredos dos concorrentes
Engenharia Reversa de Malware
 dissecar o malware
 olhar internamente
 entender suas funcionalidades
 habilidades específicas (curiosidade)
9 Aula 01
Análise Estática e Dinâmica
 estática
 sem execução *
 conhecimentos mais avançados
 dinâmica
 execução, comportamento
 monitoramento do SO
 automatização
 métodos complementares
10 Aula 01
Ferramentas
 poucas próprias
 gratuitas

 Identificadores de arquivos
 perfil do arquivo
 compiladores e proteções
 Ex.: PEiD, Exeinfo PE, RDG, file

11 Aula 01
 Monitoramento do sistema
 análise dinâmica
 rede, arquivos, registro, processos, objetos
 Exemplos:
 Autoruns, Process Explorer
 Process Hacker, Process Monitor, Regshot
 TCP View, Wireshark

12 Aula 01
 Disassemblers
 gera textos com código assembly
 baseado em arquitetura (processador)
 Ex.: IDA Pro Free

 Debuggers
 observar programas e ambiente
 breakpoints e navegar no código
 assembler level debugger
13 Aula 01
 Debuggers (cont.)
 assistir a CPU
 user-mode e kernel-mode debuggers
 Ex.: OllyDbg, Immunity Debugger, WinDbg

 Descompiladores
 produzir código de alto-nível
 compilação perde informações
 Ex.: DeDe, VB Decompiler Pro, Hex-Rays *
14 Aula 01
 Memory Forensics
 memória física (RAM)
 retirada de proteções
 captura e análise
 Exemplos:
 LordPE
 MoonSols Windows Memory Tookit
 Memoryze
 Volatility Framework
15 Aula 01
 Ferramentas diversas
 CFF Explorer
 Dependency Walker
 Editores hexadecimais (HxD)
 Import REC
 PEview
 Resource Hacker
 Strings
 FakeNet
16 Aula 01
Antireversing e anti-antivírus
 evitar ER, detecção e “fogo amigo”
 camadas
 sempre realizam o processo inverso
Polimorfismo
 criptografa o malware
 cada cópia uma chave diferente
 evitar detecção por assinaturas
falhas: memória e algoritmo de criptografia
17 Aula 01
 Metamorfismo
 criptografia do malware
 código todo é modificado a cada cópia
 inclusive o algoritmo criptográfico
 difícil detecção
 Packers
 comprime e criptografa o malware
 adiciona rotina de descompressão (EP)
 unpacking na memória
18 Aula 01
 Crypters
 algoritmo criptográfico no código
 não faz compressão
 FUD (Fully Undetectable)
 Anti-TUDO (VM, Debugger, Sandbox...)
 Comercializados com “garantias” FUD
 Brazil!
http://thebestfudcrypters.blogspot.com/
http://crypters.net/
19 Aula 01
 Binders, Joiners ou Wrappers
 junta dois arquivos (malicioso e legítimo)
 determina execução oculta

 Strings Ofuscadas
 strings permanecem no código compilado
 criptografia de informações importantes
 descriptografia em run-time

20 Aula 01
Estruturas Internas dos Softwares
 complexidade
 camadas de abstração
 programação menos baixo-nível

Níveis de abstração
 esconder detalhes para a camada acima
 compilação: alto-nível para baixo-nível

3 Aula 02
Níveis de abstração

4 Aula 02
Níveis de abstração

6 Linguagens interpretadas Java, Python, .NET

5 Linguagens de alto-nível C, C++, VB, Pascal

4 Linguagens de baixo-nível Assembly

3 Código de máquina Opcodes (Hex) 8B EC

2 Microcódigo Firmware

1 Hardware Circuitos físicos

5 Aula 02
Engenharia Reversa
 compilação:
alto-nível (5) p/ código de máquina (3)
 malware no disco:
código de máquina (3)
 disassembly:
código de máquina (3) p/ ling. baixo-nível (4)

 assembly: classe de linguagens (processador)


 malwares utilizam mais Intel x86 32-bit
6 Aula 02
Arquitetura x86

7 Aula 02
Memória Principal (RAM)

Stack (pilha): variáveis locais e


parâmetros de funções, controle do
fluxo do programa.

Heap: memória dinâmica do


programa.

Código: instruções executadas pela


CPU.

Dados: dados globais, estáticos, do


programa.

8 Aula 02
Formato das Instruções
Mnemônico Operando destino Operando origem
MOV ECX, 0x42
LEA EDX, [EBP-28]
SUB ESP, 0x0C
PUSH EBP
XOR EAX, EAX
JMP 0X41414141

Opcodes

Instrução MOV ECX, 0x42


Opcodes B9 42 00 00 00

9 Aula 02
Endianness (ordenação dos bytes)

 little-endian
 arquitetura Intel x86, AMD64
 byte menos significativo primeiro
 ex.: 127.0.0.1 – 0x0100007F
 big-endian
 TCP/IP, RISC, Motorola
 byte mais significativo primeiro
 ex.: 127.0.0.1 – 0x7F000001

10 Aula 02
Operandos
Imediatos 0x42 0x00401828 0x0C
Registradores EAX ECX EBP
Endereços memória [0x0012F8D4] [ECX] [EBP+0x08]

Registradores
 uso geral: execução do programa
 segmentados: mapear seções da memória
 flags: tomadas de decisão
 instruction pointer: próxima instrução a ser executada

11 Aula 02
Registradores x86
Registradores Registradores Flags de Instruction
de uso geral segmentados status pointers
EAX (AX, AH, AL) CS EFLAGS EIP
EBX (BX, BH, BL) SS
ECX (CX, CH, CL) DS
EDX (DX, DH, DL) ES
EBP (BP) FS
ESP (SP) GS
ESI (SI)

 uso geral: apesar do nome seguem alguns padrões


 conveções dos compiladores: retorno de funções no EAX,
divisão com EAX e EDX, controle da pilha ESP e EBP, etc.
12 Aula 02
Registradores x86

13 Aula 02
Flags: EFLAGS – registrador de status
 32 bits, cada bit é uma flag
 controlar a execução e operações da CPU
 ligada: 1, desligada: 0

 ZF: 1 quando operação igual a 0, outros resultados é 0


 CF: 1 quando resultado muito grande ou pequeno p/
operando, outros resultados é 0
 SF: 1 quando resultado é negativo e 0 quando positivo
 TF: debugging, se for 1 a CPU executa debugging

14 Aula 02
EIP, Instruction Pointer
 contador do programa
 endereço da próxima instrução a ser executada

Em um ataque, controle o EIP e seja feliz!

15 Aula 02
A Pilha (Stack)
 memória para funções: variáveis locais, parâmetros
 controle do fluxo do programa
 PUSH (empilha), POP (desempilha)
 PUSHA e POPA (16-bit), PUSHAD e POPAD (32-bit) - todos
 LIFO, last in, first out
 ESP (stack pointer) e EBP (base pointer)
 alocação de endereços top-down
 [EBP-valor] = variável local
 [EBP+valor] = parâmetro

16 Aula 02
Chamadas de funções
 execução do programa é transferida para a função
 forma da pilha depende do compilador
 mais comum: cdecl
prólogo: epílogo:
PUSH EBP MOV ESP, EBP
MOV EBP, ESP POP EBP
SUB ESP, valor RET

17 Aula 02
Sequência de chamada de função
1. PUSH argumentos (parâmetros)
2. CALL function_address
EIP é colocado na pilha e aponta p/ início da função
3. Prólogo da função
4. Função executa
5. Epílogo (= LEAVE)
6. RET (retira o endereço de retorno e coloca no EIP)
7. Programa continua a execução de onde parou

18 Aula 02
Exemplo de código em C e Assembly

int main(int argc, char* argv)

programateste.exe -r filename.txt
argc = 3
argv[0] = programateste.exe
argv[1] = -r
argv[2] = filename.txt

int main(int argc, char* argv[]){

if (argc != 3) { return 0; }

if (strncmp(argv[1], “-r”, 2) == 0)
{
DeleteFileA(argv[2]);
}
return 0;
}
3 Aula 03
Exemplo de código em C e Assembly

4 Aula 03
Mais informações: arquitetura x86 e assembly

Manuais Intel
Descrição detalhada das arquitetura, ambiente de programação,
registradores, memória, instruções, otimizações de compiladores, etc.
Downloads: http://intel.ly/u7ZHpu e http://intel.ly/x1cLz5.

Livro Art Of Assembly


Conteúdo completo e detalhado sobre a linguagem. Está disponível online
para ser baixado gratuitamente.
Download: http://www.artofasm.com/index.html.

5 Aula 03
Obrigado!

A explicação detalhada de todos os tópicos está na apostila.

Ronaldo Pinheiro de Lima


crimesciberneticos.com@gmail.com
http://www.crimesciberneticos.com
@crimescibernet

21 Aula 02

Você também pode gostar