Você está na página 1de 21
Engenharia Reversa e Análise de Malwares Instrutor: Ronaldo Pinheiro de Lima ronaldoplima@yahoo.com.br 1 Aula 01

Engenharia Reversa e Análise de Malwares

Instrutor: Ronaldo Pinheiro de Lima ronaldoplima@yahoo.com.br

Instrutor: Ronaldo Pinheiro de Lima ronaldoplima@yahoo.com.br

Aula 01

Visão geral do curso

1.

Introdução

1.1.

Tipos de códigos maliciosos

1.2.

Engenharia Reversa de Malware

1.3.

Análise Estática e Dinâmica (comportamental)

1.4.

Ferramentas

1.5.

Antireversing e anti-antivírus

1.5.1.

Polimorfismo

1.5.2.

Metamorfismo

1.5.3.

Packers

1.5.4.

Cryptors

1.5.5.

Binders, Joiners e Wrapers

1.5.6.

Strings Ofuscadas

Visão geral do curso

Introdução

termo malware

intenção

atividades

danos

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

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

Trojan-Banker

95% no Brasil

Backdoor

acesso remoto

Bot/Botnet

acesso remoto para enviar comandos

ataques

Ransomware

criptografa dados e solicita “resgate”

Rootkit

ocultar presença, técnicas avançadas

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, Gauss, Shamoon, etc.

Fraudes

Pharming

redirecionamento do usuário para páginas falsas

DNS falso

Phishing Scam

spam

assuntos do momento

Spear Phishing

pesca com arpão

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)

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

Ferramentas

poucas próprias

gratuitas

Identificadores de arquivos

perfil do arquivo

compiladores e proteções

Ex.: PEiD, Exeinfo PE, RDG, file

Monitoramento do sistema

análise dinâmica

rede, arquivos, registro, processos, objetos

Exemplos:

Autoruns, Process Explorer

Process Hacker, Process Monitor, Regshot

TCP View,Wireshark

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

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 *

Memory Forensics

memória física (RAM)

retirada de proteções

captura e análise

Exemplos:

LordPE

MoonSols Windows Memory Tookit

Memoryze

Volatility Framework

Ferramentas diversas

CFF Explorer

Dependency Walker

Editores hexadecimais (HxD)

Import REC

PEview

Resource Hacker

Strings

FakeNet

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

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

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!

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

Obrigado!

Obrigado! A explicação detalhada de todos os tópicos está na apostila dessa aula. Todo o material

A explicação detalhada de todos os tópicos está na apostila dessa aula. Todo o material estará disponível em: http://netclass.oys.com.br

Ronaldo Pinheiro de Lima ronaldoplima@yahoo.com.br

@crimescibernet