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
-
Das vulnerabilidades a botnets e cibercrime
- Natureza das falhas de segurança
- Razões para a dificuldade
- De um computador infectado a ataques direcionados
-
Classificação de falhas de segurança
- Taxonomia de Landwehr
- Os Sete Reinos Perniciosos
- OWASP Top Ten 2013
- Comparação OWASP Top Ten 2003 – 2013
Introdução ao Ciclo de Vida de Desenvolvimento de Segurança (SDL) da Microsoft®
- Agenda
-
Aplicações sob ataque...
- Evolução do Cibercrime
- Os ataques estão focados 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?
-
Ciclo de Vida de Desenvolvimento de Segurança (SDL) da Microsoft
- Ciclo de Vida de Desenvolvimento de Segurança (SDL) da Microsoft
- Requisitos Pré-SDL: Treinamento em 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 – Arquivo
- Requisito Pós-SDL: Resposta
- Orientação do Processo SDL para Aplicativos LOB
- Orientação SDL para Metodologias Ágeis
- O Desenvolvimento Seguro de Software Exige 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
- Compreensão dos Comportamentos e Preocupações da Aplicação
-
Defesa em profundidade
- Princípio Fundamental do SDL: Defesa em Profundidade
- Defesa em profundidade – exemplo
-
Princípio do menor privilégio
- Menor privilégio – exemplo
-
Padrões seguros por padrão
- Padrões seguros por padrão – exemplos
Princípios de implementação segura
- Agenda
- Ciclo de Vida de Desenvolvimento de Segurança (SDL) da Microsoft
-
Fundamentos de estouro de buffer
- Processadores Intel 80x86 – principais registradores
- O layout de endereços de memória
- O mecanismo de chamadas de função em C/C++ no x86
- Variáveis locais e o frame da pilha
-
Estouro da 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 geradas por estouro em C#
-
Estudo de caso – Estouro de inteiro no .NET
- Uma vulnerabilidade real de estouro de inteiro
- Exploração da vulnerabilidade de estouro de inteiro
-
Vulnerabilidade de travessia de caminho
- Mitigação de travessia 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 comandos
-
Autenticação quebrada - gerenciamento de senhas
- Exercício – Fraqueza de senhas com hash
- Gerenciamento e armazenamento de senhas
- Algoritmos de hash de propósito específico 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 no nível de função
- Filtro de uploads de arquivos
-
Criptografia prática
- Proporcionando 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)
- Proporcionando integridade e autenticidade com uma chave simétrica
- Proporcionando confidencialidade com criptografia de chave pública
- Regra prática – posse da chave privada
- Erros típicos no gerenciamento de senhas
- Exercício – Senhas codificadas em texto fixo (hard-coded)
- 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 risco)
-
Escopo e coleta de informações
- Interessados (stakeholders)
- Ativos
- A superfície de ataque
- Objetivos de segurança para testes
-
Modelagem de ameaças
- Modelagem de ameaças
- Perfis de atacantes
- 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 virtual Web
- Abordagem elementar STRIDE para modelagem de ameaças – MS SDL
- Identificação de objetivos de segurança
- Diagramação – exemplos de elementos DFD
- Diagrama de fluxo de dados – exemplo
- Enumeração de ameaças – STRIDE e elementos DFD da MS SDL
- Análise de risco – classificação de ameaças
- O modelo de classificação de ameaças/risco DREAD
-
Técnicas e ferramentas de teste de segurança
- Abordagens gerais de teste
- Técnicas para as diversas etapas do SDLC
-
Revisão de código
- Revisão de código para segurança de software
- Análise de mancha (Taint analysis)
- 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
- Testes de penetração
- Testes de estresse
-
Teste de aleatorização (Fuzzing)
- Teste de segurança automatizado - fuzzing
- Desafios do fuzzing
-
Scanners de vulnerabilidade Web
- Exercício – Usando um scanner de vulnerabilidades
-
Verificação e endurecimento do ambiente
- Sistema de Pontuação de Vulnerabilidades Comuns – CVSS
- Scanners de vulnerabilidades
- Bases de dados públicas
-
Estudo de caso – Bypass de Autenticação de Formulários
- Vulnerabilidade de terminação NULL byte
- A vulnerabilidade de Bypass de Autenticação de Formulários no código
- Exploração do 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 na MSDN
- Folhas de dicas de codificação segura do .NET
- Livros recomendados – .NET e ASP.NET
14 Horas
Treinamento Corporativo Personalizado
Soluções de treinamento projetadas exclusivamente para empresas.
- Conteúdo Personalizado: Adaptamos o programa e os exercícios práticos aos objetivos e necessidades reais do seu projeto.
- Horário Flexível: Datas e horários adaptados à agenda da sua equipe.
- Formato: Online (ao vivo), In-Company (em suas instalações) ou Híbrido.
Preço por grupo privado, treinamento online ao vivo, a partir de 2600 € + VAT*
Entre em contato conosco para obter um orçamento preciso e conhecer nossas promoções mais recentes
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