Curso EAD Engenharia Reversa e Análise de Malware
Autor: Ronaldo Lima | Publicado: 2014-03-10T03:13:00-03:00

Tenho o prazer de anunciar o curso Engenharia Reversa e Análise de Malware que criei e ministrei de forma independente através de videoaulas.

Atenção: o curso não está mais sendo vendido, em alguns meses será disponibilizado gratuitamente.


O material do curso é o mesmo desde o início, não foi atualizado.&nbsp;Porém esses são conhecimentos básicos fundamentais, esse tipo de conhecimento não muda com muita frequência. Para aprender conteúdos mais avançados&nbsp;é necessário ter esse conhecimento. Vide o Assembly que é usado até hoje. A maior diferença será em relação ao funcionamento interno do Windows já que o curso não&nbsp;aborda as versões mais recentes.


Esse curso foi ministrado ao vivo para cinco turmas diferentes tanto a distância quanto presencial, sempre sendo muito bem recebido pelos alunos.&nbsp;





Opinião de quem já fez o curso


"O melhor curso que eu já fiz sobre Análise de Malware / Engenharia Reversa, serviu para me introduzir numa área que eu nunca tinha visto nada à respeito antes, o instrutor explica tudo nos mínimos detalhes, com calma, fácil de acompanhar ou de refazer os passos você mesmo depois se quiser, mesmo as aulas sendo offline, tive um excelente acompanhamento de suporte por parte do instrutor, um ótimo conteúdo teórico e prático, indico a todos, já fiz cursos online em que a matéria é literalmente despejada de qualquer forma para cumprir as "horas/aula" prometidas, pra mim pelo menos não funciona, esse curso é show, você entende, assimila, e aprende, pra nunca mais esquecer."
Laerte, 25/05/2017

"Eu gostei muito! O curso foi nota 10!".&nbsp;
Ana, 13/01/2017

"Parabenizo-o pelo ótimo curso, eu nunca havia estudado antes nada relacionado a malware, e entendi tudo, perfeitamente, com clareza, objetividade e praticidade, com certeza foram agregados conhecimentos de muita valia na área de segurança digital".
Laerte, 26/08/2016

"Gostaria de agradecer pelo treinamento, excelente, recomendo. Quando fores dar outro treinamento me avisa por favor!".
Luciano, 29/03/2016

"Gostei muito do curso".
Luiz, 05/11/2015


"O curso superou todas as minhas expectativas! Você está de parabéns por compartilhar um conhecimento tão específico com as pessoas que não tem condições de fazer um treinamento oficial da SANS. Estou muito satisfeito."
Cristiano, 22/08/2015


"Gostei bastante dos assuntos e sequência lógica dos tópicos, bem organizado, destaque para as possibilidades de utilizar scripts no Immunity Debugger, bem como a injeção de DLL, o melhor ficou para os rootkits (SSDT). Enfim, valeu o investimento."
Leonardo, 16/07/2015




"Finalmente tive tempo para assistir as 20 aulas, antes de mais nada quero lhe parabenizar pelo curso. De excelente qualidade técnica, isto é, somou bastante. Abordastes de maneira muito didática e com uma linguagem simples, para qualquer um entender, os principais tópicos da matéria."
Carlos, 12/05/2015

"Muito obrigado pela oportunidade de ter participado deste curso, não tenho dúvidas que ele realmente abriu a minha mente em diversos aspectos. Espero participar de outros cursos ou eventos em que você estiver participando, até a próxima meu amigo." - Bruno



"O curso foi muito bem ministrado e eu particularmente gostei bastante. O material do curso foi muito bem elaborado e as aulas muito bem explicadas,&nbsp;sim recomendo o curso a todos interessados."&nbsp;-&nbsp;Caio




"O curso é excelente. A teoria e a prática são muito bem explicadas. O material do curso também é excelente. Aprendi bastante durante o curso. Recomendo esse curso a todos interessados.."&nbsp;-&nbsp;Leandro
"Fiz o curso ano passado, realmente superior ou igual aos cursos das SANS, e além disso você não precisa pagar 4 ou 5 mil dólares pelo curso." -&nbsp;Cleiton









"O Ronaldo é um profissional de altíssimo conhecimento na área de Engenharia Reversa de Malware, e consegue transmiti-lo de uma forma bastante prática, o que é fundamental para um devido aprendizado e boa assimilação. Os exemplos utilizados, que retratam casos concretos, tornam o treinamento muitissimo interessante. Altamente recomendado!" - Marcelo

"Sem dúvida o curso foi meu melhor investimento de 2013. Você é um grande mestre na arte de ensinar sobre Análise de Malware, em nenhum momento no curso senti aquela hierarquia aluno e professor, a sensação que dá é que tem um grande brother com muito conhecimento compartilhando com os demais. Foi show! Valeu brother!"&nbsp;- Natan




Visão Geral do Curso




Aliando teoria e prática, o curso tem como foco a engenharia
reversa e análise de arquivos maliciosos da plataforma Windows. Além
disso, também são abordadas técnicas para análise de código web
e documentos maliciosos do formato PDF e Microsoft Office, que
atualmente são vetores populares de ataques.&nbsp;No aspecto teórico o aluno terá contato com tópicos
indispensáveis na análise de malware. Fundamentos do funcionamento
interno da CPU, sistema operacional, gerenciamento de memória e
estruturas de arquivos serão explicados em linguagem de fácil
entendimento.


Para que o conhecimento teórico seja assimilado, durante todo o
treinamento o aluno realizará análises práticas de malwares atuais
através dos Labs. Serão apresentados métodos, técnicas e
ferramentas (gratuitas) que auxiliarão o aluno em todo o processo.

Ao final do curso o aluno será capaz de dissecar um arquivo
desconhecido e emitir um parecer sobre ele explicando suas
funcionalidades, capacidades, riscos e sugerir contramedidas.




Carga Horária: 40 horas





Aulas





São 20 videoaulas que foram gravadas e otimizadas para melhor aproveitamento do tempo. O alunos poderão fazer download de todas os vídeos para assistir quantas vezes quiser. Veja abaixo os detalhes de cada aula (o conteúdo programático completo está no final do post).


Aula 01 - Introdução (144 MB - duração: 01h53)
Aula 02 - Introdução/Estruturas Internas dos Softwares (55,8 MB - duração: 01h55)
Aula 03 - Estruturas Internas dos Softwares (71,9 MB - duração: 02h00)
Aula 04 - Laboratório para Análise de Malware (98,8 MB - duração: 02h08)
Aula 05 - Trabalhando com Executáveis (117 MB - duração: 01h44)
Aula 06 - Trabalhando com Executáveis (137 MB - duração: 02h04)
Aula 07 - Análise Dinâmica (127 MB - duração: 01h54)
Aula 08 - Análise de Executável com Técnicas Diversas (159 MB - duração: 01h59)
Aula 09 - Windows Internals (67,7 MB - duração: 01h43)
Aula 10 - Formato Portable Executable (PE) (78,4 MB - duração: 01h46)
Aula 11 - Trabalhando com DLLs (117 MB - duração: 01h50)
Aula 12 - Trabalhando com DLLs (129 MB - duração: 01h32)
Aula 13 - Memory Forensics (104 MB - duração: 01h43)
Aula 14 - Trabalhando com Rootkits (62,1 MB - duração: 01h39)
Aula 15 - Trabalhando com Rootkits (46 MB - duração: 01h29)
Aula 16 - Trabalhando com Rootkits (127 MB - duração: 01h48)
Aula 17 - Packers (66,4 MB - duração: 01h43)
Aula 18 - Anti-Debugging (76 MB - duração: 01h44)
Aula 19 - Trabalhando com Documentos Maliciosos (98,7 MB - duração: 01h40)
Aula 20 - Trabalhando com Web Malware (107 MB - duração: 01h50)



Material




Foi dada atenção especial em formular e fornecer material de qualidade para o curso, sendo assim cada aluno terá acesso a:



Apostila&nbsp;em português com mais de 180 páginas escrita pelo próprio instrutor (PDF para download).
Slides&nbsp;de todas as aulas (PDF para download).
Vídeos&nbsp;de todas as aulas para assistir quando quiser (para download).
E ainda materiais extras apresentados nas aulas.





Conteúdo Programático Detalhado




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-antivirus

1.5.1. Polimorfismo

1.5.2. Metamorfismo

1.5.3. Packers

1.5.4. Cryptors

1.5.5. Binders, Joiners ou Wrappers

1.5.6. Strings Ofuscadas


2. Estruturas Internas dos Softwares

2.1. Níveis de abstração

2.2. Engenharia Reversa

2.3. A Arquitetura x86

2.4. Memória Principal (RAM)

2.5. Instruções

2.6. Opcodes e Endianness (Ordenação)

2.7. Operandos

2.8. Registradores

2.9. A pilha (Stack)

2.10. Chamadas de Funções (Function Calls)

2.11. Layout da Pilha (stack layout)

2.12. Exemplo de código em C e Assembly

2.13. Mais informações: linguagem assembly e arquitetura Intel x86

2.14. Lab: Entendo na prática o funcionamento da pilha com o OllyDbg


3. Laboratório para Análise de Malware

3.1. Máquina virtual

3.2. Preparação do ambiente

3.3. Lab: Uso de máquina virtual e simulação de rede



4. Trabalhando com Executáveis

4.1. Identificação do arquivo

4.2. Unpacking Automático

4.3. Strings

4.4. Strings criptografadas

4.5. Debugging

4.6. Lab: Análise de executável malicioso com strings criptografadas

4.7. Lab: Análise de executável malicioso com uso de descompilador



5. Análise Dinâmica

5.1. Monitorando processos com Process Explorer

5.2. Monitorando com Process Monitor

5.3. Monitoramento de Tráfego de Rede

5.4. Monitoramento do registro e arquivos com Regshot

5.5. O uso das ferramentas de análise dinâmica na prática

5.6. Lab: Análise dinâmica com Process Explorer e Process Monitor

5.8. Lab: Análise de executável malicioso com uso de técnicas diversas


6. Windows Internals

6.1. Níveis de privilégio do processador – Protection Rings

6.2. Transição entre os níveis de privilégio

6.3. Kernel Mode

6.4. User Mode

6.5. Windows APIs

6.5.1. Win32 API

6.5.2. Native API

6.6. Lab: Entendendo as APIs do Windows na prática

6.7. Formato Portable Executable (PE)

6.7.1. Conceitos Básicos

6.7.2. MS-DOS Header

6.7.3. PE Header

6.7.4. Section Table

6.7.5. PE Sections

6.8. O Loader – Como um arquivo PE é carregado na memória


7. Trabalhando com DLLs

7.1. Estrutura Básica de uma DLL

7.2. Enumerando Exports da DLL

7.3. Executando DLLs

7.4. Restrições de Processo Host

7.5. Debugging DLL

7.6. Component Object Model (COM)

7.7. Lab: Análise de DLL maliciosa

7.8. Lab: Injeção e Debugging de DLL


8. Memory Forensics

8.1. Aquisição da memória

8.2. Análise de Memória

8.3. Lab: Aquisição e análise de dump de memória



9. Trabalhando com Rootkits

9.1. O surgimento dos Rootkits

9.2. Tipos de rootkits

9.3. User-mode Rootkits

9.3.1. API Hooking

9.3.2. Técnicas de Hooking

9.4. Ferramentas de deteção de Rootkits

9.5. Lab 09-01 Demonstração de INT 3 Hook

9.6 Kernel-mode Rootkits

9.6.1. O Kernel do Windows (NTOSKRNL.EXE)

9.6.2. Device Drivers

9.6.3. Windows Hardware Abstraction Layer (HAL)

9.6.4. Kernel Drivers no Windows

9.6.5. Os Rootkits em Kernel-Mode

9.6.6. Análise de Kernel-Mode Rootkit

9.7. Lab: Análise de kernel-mode rootkit com o WinDbg

9.7.1. Configurando Kernel-Mode Debugging com WinDbg e VirtualBox

9.8. Referências de comandos e uso do WinDbg


10. Técnicas contra Engenharia Reversa

10.1. Packers

10.1.1. Anatomia dos Packers

10.1.2. O código de Unpacking

10.1.3. Identificando Programas com Packers

10.1.4. Métodos de Unpacking

10.1.5. Unpacking Manual

10.1.6. Analisando sem realizar o Unpacking total

10.1.7. Lab: Unpacking manual

10.2. Anti-Debugging

10.2.1. Detecção de debugger através da Windows API

10.2.2. Checagem manual de estruturas

10.2.3. Identificando o comportamento do Debugger

10.2.4. Interferindo na funcionalidade do Debugger

10.2.5. Vulnerabilidades do Debugger

10.3. Visão geral de Anti-Disassembly

10.4. Visão geral de Anti-VM

10.5. Lab: Análise de malware que emprega técnicas anti-debugging


11. Trabalhando com Documentos Maliciosos

11.1. Etapas genéricas da análise de documentos maliciosos

11.2. Análise de documento Microsoft Office

11.2.1. OfficeMalScanner

11.2.2. Ferramentas e recursos para análise de documentos Office

11.3. Lab: Análise de documento Office malicioso

11.4. Análise de PDF

11.5. Lab: Análise de PDF malicioso



12. Trabalhando com Web Malware

12.1. JavaScript

12.2. PHP

12.3. Applet Java

12.4. Flash e Action Script

12.5. Lab: Análise de web malware diversos



Tópicos Complementares da Apostila

Sandbox e Multi-AV Scanners

Coleta de Malware




Requisitos - Conhecimentos:




Para melhor aproveitamento do conteúdo é recomendável que os
alunos já possuam esses conhecimentos:



Fundamentos em programação: if, else, while, for, funções,
passagem de parâmetros, variáveis locais e variáveis globais (não é necessário ser programador).
Fundamentos em arquitetura de computadores, redes e sistemas operacionais.