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
 

Declaração de Clientes (9)

Cursos Relacionados

Standard Java Security

  14 horas

Java and Web Application Security

  21 horas

Advanced Java Security

  21 horas

Advanced Java, JEE and Web Application Security

  28 horas

.NET, C# and ASP.NET Security Development

  14 horas

Comprehensive C# and .NET Application Security

  21 horas

Advanced C#, ASP.NET and Web Application Security

  21 horas

Web Application Security

  14 horas

Security Testing

  14 horas

Secure Web Application Development and Testing

  21 horas

Secure coding in PHP

  21 horas

Combined C/C++, JAVA and Web Application Security

  28 horas

Combined JAVA, PHP and Web Application Security

  28 horas

Android Security

  14 horas

Categorias Relacionadas