Obrigado por enviar sua consulta! Um dos membros da nossa equipe entrará em contato com você em breve.
Obrigado por enviar sua reserva! Um dos membros da nossa equipe entrará em contato com você em breve.
Programa do Curso
Dia 1
Segurança da TI e codificação segura
- Natureza da segurança
- Termos relacionados à segurança da TI
- Definição de risco
- Diferentes aspectos da segurança da TI
- Requisitos de diferentes áreas de aplicação
- Segurança da TI vs. codificação segura
-
De vulnerabilidades a botnets e cibercrime
- Natureza das falhas de segurança
- Razões para a complexidade
- De um computador infectado a ataques direcionados
-
Classificação de falhas de segurança
- Taxonomia de Landwehr
- The Seven Pernicious Kingdoms
- OWASP Top Ten 2013
- Comparação OWASP Top Ten 2003 – 2013
Introdução ao Microsoft® Security Development Lifecycle (SDL)
- Agenda
-
Aplicações sob ataque...
- Evolução do cibercrime
- Os ataques estão se concentrando em aplicações
- A maioria das vulnerabilidades está em aplicativos ISV menores
-
Origens do SDL da Microsoft...
- Linha do tempo de segurança na Microsoft...
- Quais aplicativos são obrigados a seguir o SDL?
-
Microsoft Security Development Lifecycle (SDL)
- Microsoft Security Development Lifecycle (SDL)
- Requisitos pré-SDL: Treinamento de Segurança
- Fase Um: Requisitos
- Fase Dois: Design
- Fase Três: Implementação
- Fase Quatro: Verificação
- Fase Cinco: Lançamento – Plano de Resposta
- Fase Cinco: Lançamento – Revisão Final de Segurança
- Fase Cinco: Lançamento – Arquivamento
- Requisito pós-SDL: Resposta
- Orientações do Processo SDL para Aplicativos LOB
- Orientações do SDL para Metodologias Ágeis
- Desenvolvimento de Software Seguro Requer Melhoria de Processo
Princípios de design seguro
-
Superfície de ataque
- Redução da superfície de ataque
- Superfície de ataque – um exemplo
- Análise da superfície de ataque
- Redução da superfície de ataque – exemplos
-
Privacidade
- Privacidade
- Compreendendo os Comportamentos e Preocupações das Aplicações
-
Defesa em profundidade
- Princípio Central do SDL: Defesa em Profundidade
- Defesa em profundidade – exemplo
-
Princípio de menor privilégio
- Menor privilégio – exemplo
-
Padrões seguros
- Padrões seguros – exemplos
Princípios de implementação segura
- Agenda
- Microsoft Security Development Lifecycle (SDL)
-
Fundamentos de estouro de buffer
- Processadores Intel 80x86 – principais registradores
- O layout dos endereços de memória
- O mecanismo de chamada de funções em C/C++ em x86
- As variáveis locais e o frame da pilha
-
Estouro de pilha
- Estouro de buffer na pilha
- Exercícios – introdução
- Exercício BOFIntro
- Exercício BOFIntro – determinar o layout da pilha
- Exercício BOFIntro – uma exploração simples
-
Validação de entrada
- Conceitos de validação de entrada
-
Problemas com inteiros
- Representação de inteiros negativos
- Estouro de inteiro
- Estouro aritmético – adivinhe a saída!
- Exercício IntOverflow
- Qual é o valor de Math.Abs(int.MinValue)?
-
Mitigação de problemas com inteiros
- Mitigação de problemas com inteiros
- Evitando estouro aritmético – adição
- Evitando estouro aritmético – multiplicação
- Detectando estouro com a palavra-chave checked em C#
- Exercício – Usando a palavra-chave checked em C#
- Exceções causadas por estouramentos em C#
-
Estudo de caso – Estouro de inteiro no .NET
- Uma vulnerabilidade de estouro de inteiro do mundo real
- Explorando a vulnerabilidade de estouro de inteiro
-
Vulnerabilidade de traversing de caminho
- Mitigação de traversing de caminho
Dia 2
Princípios de implementação segura
-
Injeção
- Métodos típicos de ataque de Injeção de SQL
- Injeção de SQL cega e baseada em tempo
- Métodos de proteção contra Injeção de SQL
- Injeção de comando
-
Autenticação quebrada - gerenciamento de senhas
- Exercício – Fraqueza de senhas com hash
- Gerenciamento e armazenamento de senhas
- Algoritmos de hash de propósito especial para armazenamento de senhas
-
Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- Injeção de CSS
- Exploração: injeção por meio de outras tags HTML
- Prevenção de XSS
-
Falta de controle de acesso em nível de função
- Filtragem de upload de arquivos
-
Criptografia prática
- Fornecendo confidencialidade com criptografia simétrica
- Algoritmos de criptografia simétrica
- Cifras de bloco – modos de operação
- Hash ou resumo de mensagem
- Algoritmos de hash
- Código de Autenticação de Mensagem (MAC)
- Fornecendo integridade e autenticidade com uma chave simétrica
- Fornecendo confidencialidade com criptografia de chave pública
- Regra geral – posse da chave privada
- Erros típicos no gerenciamento de senhas
- Exercício – Senhas codificadas
- Conclusão
Princípios de verificação segura
- Testes funcionais vs. testes de segurança
- Vulnerabilidades de segurança
- Priorização
- Testes de segurança no SDLC
- Etapas do planejamento de testes (análise de riscos)
-
Escopo e coleta de informações
- Partes interessadas
- Ativos
- A superfície de ataque
- Objetivos de segurança para testes
-
Modelagem de ameaças
- Modelagem de ameaças
- Perfis de atacante
- Modelagem de ameaças baseada em árvores de ataque
- Modelagem de ameaças baseada em casos de mau uso/abuso
- Casos de mau uso/abuso – um exemplo simples de loja Web
- Abordagem STRIDE por elemento para modelagem de ameaças – MS SDL
- Identificando objetivos de segurança
- Diagramação – exemplos de elementos de DFD
- Diagrama de fluxo de dados – exemplo
- Enumeração de ameaças – STRIDE e elementos de DFD do MS SDL
- Análise de riscos – classificação de ameaças
- O modelo de classificação de ameaças/riscos DREAD
-
Técnicas e ferramentas de teste de segurança
- Abordagens gerais de teste
- Técnicas para várias etapas do SDLC
-
Revisão de código
- Revisão de código para segurança de software
- Análise de taint
- Heurísticas
-
Análise estática de código
- Análise estática de código
- Exercício – Usando ferramentas de análise estática de código
-
Testando a implementação
- Verificação de tempo de execução manual
- Testes de segurança manuais vs. automatizados
- Teste de penetração
- Testes de estresse
-
Fuzzing
- Teste de segurança automatizado - fuzzing
- Desafios do fuzzing
-
Scanners de vulnerabilidade Web
- Exercício – Usando um scanner de vulnerabilidades
-
Verificação e fortalecimento do ambiente
- Common Vulnerability Scoring System – CVSS
- Scanners de vulnerabilidades
- Bases de dados públicas
-
Estudo de caso – Bypass de Autenticação de Formulários
- Vulnerabilidade de terminação com byte NULL
- A vulnerabilidade de Bypass de Autenticação de Formulários no código
- Explorando o Bypass de Autenticação de Formulários
Fontes de conhecimento
- Fontes de codificação segura – um kit inicial
- Bases de dados de vulnerabilidades
- Diretrizes de codificação segura do .NET no MSDN
- Guias rápidos de codificação segura do .NET
- Livros recomendados – .NET e ASP.NET
14 Horas
Testemunhos de Clientes (3)
A experiência de compartilhar, o conhecimento do professor e valioso.
Carey Fan - Logitech
Curso - C/C++ Secure Coding
Máquina Traduzida
o conhecimento do instrutor era muito elevado - ele sabia do que estava falando e conhecia as respostas para nossas perguntas
Adam - Fireup.PRO
Curso - Advanced Java Security
Máquina Traduzida
O tópico é atual e eu precisava estar atualizado
Damilano Marco - SIAP s.r.l.
Curso - Secure Developer Java (Inc OWASP)
Máquina Traduzida