Entrar em Contato

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.
Investimento

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)

Próximas Formações Provisórias

Categorias Relacionadas