Programa do Curso

Dia 1

  • Segurança de TI e codificação segura
    • Natureza da segurança
    • Termos relacionados à segurança de TI
    • Definição de risco
    • Diferentes aspectos da segurança de TI
    • Requisitos de diferentes áreas de aplicação
    • Segurança de TI versus codificação segura
    • De vulnerabilidades a botnets e crimes cibernéticos
      • Natureza das falhas de segurança
      • Razões de dificuldade
      • De um computador infectado a ataques direcionados
    • Classificação de falhas de segurança
      • Taxonomia de Landwehr
      • Os Sete Reinos Perniciosos
      • OWASP Dez melhores de 2013
      • OWASP Comparação dos dez melhores 2003 – 2013
  • Introdução ao Microsoft® Ciclo de Vida de Desenvolvimento de Segurança (SDL)
    • Agenda
    • Aplicativos sob ataque...
      • Evolução do crime cibernético
      • Os ataques estão se concentrando em aplicativos
      • A maioria das vulnerabilidades está em aplicativos ISV menores
    • Origens do Microsoft SDL...
      • Cronograma de segurança em Microsoft...
      • Quais aplicativos são necessários para seguir o SDL?
    • Microsoft Ciclo de Vida de Desenvolvimento de Segurança (SDL)
      • Microsoft Ciclo de Vida de Desenvolvimento de Segurança (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: Liberação – Plano de Resposta
      • Fase Cinco: Lançamento – Revisão Final de Segurança
      • Fase Cinco: Liberação – Arquivo
      • Requisito Pós-SDL: Resposta
      • Orientação de processo SDL para aplicativos LOB
      • Orientação SDL para Agile Metodologias
      • O desenvolvimento seguro de software requer melhoria de processos
  • Princípios de design seguro
    • Superfície de ataque
      • Redução da superfície de ataque
      • Superfície de ataque – um exemplo
      • Análise de superfície de ataque
      • Redução da superfície de ataque – exemplos
    • Privacidade
      • Privacidade
      • Compreendendo os comportamentos e preocupações dos aplicativos
    • Defesa em profundidade
      • Princípio Básico do SDL: Defesa em Profundidade
      • Defesa em profundidade – exemplo
    • Princípio do menor privilégio
      • Menor privilégio – exemplo
    • Padrões seguros
      • Padrões seguros – exemplos
  • Princípios de implementação seguros
    • Agenda
    • Microsoft Ciclo de Vida de Desenvolvimento de Segurança (SDL)
    • Noções básicas de estouro de buffer
      • Processadores Intel 80x86 – registros principais
      • O layout do endereço de memória
      • O mecanismo de chamada de função em C/C++ em x86
      • As variáveis locais e o stack frame
      • Estouro de pilha
        • Estouro de buffer na pilha
        • Exercícios – introdução
        • Exercício BOFIntro
        • Exercício BOFIntro – determine o layout da pilha
        • Exercício BOFIntro – uma exploração simples
    • Validação de entrada
      • Conceitos de validação de entrada
      • Problemas inteiros
        • Representação de inteiros negativos
        • Estouro de número inteiro
        • Estouro aritmético – adivinhe a saída!
        • Exercício IntOverflow
        • Qual é o valor de Math.Abs(int.MinValue)?
      • Mitigação de problemas inteiros
        • Mitigação de problemas inteiros
        • Evitando estouro aritmético – adição
        • Evitando estouro aritmético – multiplicação
        • Detectando estouro com a palavra-chave verificada em C#
        • Exercício – Usando a palavra-chave verificada em C#
        • Exceções acionadas por overflows em C#
      • Estudo de caso – Estouro de número inteiro em .NET
        • Uma vulnerabilidade de estouro de número inteiro do mundo real
        • Explorando a vulnerabilidade de estouro de número inteiro
      • Vulnerabilidade de passagem de caminho
        • Mitigação de passagem de caminho

Dia 2

  • Princípios de implementação seguros
    • Injeção
      • Métodos típicos de ataque de injeção SQL
      • Injeção cega e baseada no tempo SQL
      • SQL Métodos de proteção contra injeção
      • Injeção de comando
    • Autenticação quebrada - gerenciamento de senha
      • Exercício – Fraqueza das senhas com hash
      • Gerenciamento e armazenamento de senhas
      • Algoritmos hash de propósito especial para armazenamento de senhas
    • Scripting entre sites (XSS)
      • Scripting entre sites (XSS)
      • CSS injeção
      • Exploração: injeção através de outras tags HTML
      • Prevenção XSS
    • Controle de acesso de nível de função ausente
      • Filtrando uploads 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 da 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 prática – posse de chave privada
      • Erros típicos no gerenciamento de senhas
      • Exercício – Senhas codificadas
      • Conclusão
  • Princípios de verificação segura
    • Teste funcional vs. teste 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
      • Partes interessadas
      • Ativos
      • A superfície de ataque
      • Objetivos de segurança para testes
    • Modelagem de ameaças
      • Modelagem de ameaças
      • Perfis de invasor
      • Modelagem de ameaças baseada em árvores de ataque
      • Modelagem de ameaças com base em casos de uso indevido/abuso
      • Casos de uso indevido/abuso – um exemplo simples de loja virtual
      • Abordagem STRIDE por elemento para modelagem de ameaças – MS SDL
      • Identificando objetivos de segurança
      • Diagramação – exemplos de elementos DFD
      • Diagrama de fluxo de dados – exemplo
      • Enumeração de ameaças – elementos STRIDE e DFD do 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 várias etapas do SDLC
    • Revisão de código
      • Revisão de código para segurança de software
      • Análise de contaminação
      • Heurística
    • Análise estática de código
      • 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 manual em tempo de execução
      • Testes de segurança manuais versus automatizados
      • Teste de penetração
      • Testes de estresse
    • Confuso
      • Testes de segurança automatizados - difusão
      • Desafios da difusão
    • Verificadores de vulnerabilidade da Web
      • Exercício – Usando um scanner de vulnerabilidade
    • Verificando e fortalecendo o meio ambiente
      • Sistema comum de pontuação de vulnerabilidade – CVSS
      • Verificadores de vulnerabilidade
      • Bancos de dados públicos
    • Estudo de caso – Ignorar autenticação de formulários
      • Vulnerabilidade de terminação de byte NULL
      • A vulnerabilidade do Forms Authentication Bypass no código
      • Explorando o desvio de autenticação de formulários
  • Fontes de conhecimento
    • Fontes de codificação seguras – um kit inicial
    • Bancos de dados de vulnerabilidade
    • Diretrizes de codificação segura do .NET no MSDN
    • Folhas de dicas de codificação segura .NET
    • Livros recomendados – .NET e ASP.NET
 14 Horas

Número de participantes


Preço por Participante

Declaração de Clientes (5)

Próximas Formações Provisórias

Categorias Relacionadas