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
- Superfície de ataque
- 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
- Injeçã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
Declaração de Clientes (10)
o equilíbrio entre as aulas teóricas e práticas, o ritmo, o conhecimento e a competência pedagógica do formador
Armando Pinto - EID
Curso - C/C++ Secure Coding
Machine Translated
Very good knowledge and character.
Constantinos Michael
Curso - Java and Web Application Security
Fazer alterações em tempo real, uma vez que no terceiro dia já estava a começar a perder-me mais do que antes e era mais difícil detetar rapidamente um erro, pude fazer o zcheckout da última alteração e estar atualizado com o material
Paulina
Curso - Advanced Java Security
Machine Translated
É muito bom perceber como é que um pirata informático pode analisar os sítios para detetar pontos fracos e as ferramentas que pode utilizar.
Roger - OTT Mobile
Curso - .NET, C# and ASP.NET Security Development
Machine Translated
Beginning by how to hack to better understand how to secure was very interesting and appreciated.
Raphaël Capocasale - Mikron SA Boudry
Curso - Advanced C#, ASP.NET and Web Application Security
Web 的同源策略和跨域的内容,以及XSS 的危害,這個很貼切我們的工作。
Princess Ou - 广东溢达纺织有限公司
Curso - Web Application Security
Trainer willing to answer questions and give bunch of examples for us to learn.
Eldrick Ricamara - Human Edge Software Philippines, Inc. (part of Tribal Group)
Curso - Security Testing
Aprender a utilizar novas ferramentas. Principalmente ver como os testes de segurança podem ser efectuados
Jason - Kropman
Curso - Secure Web Application Development and Testing
Machine Translated
The real life examples.
Marios Prokopiou
Curso - Secure coding in PHP
The Burpe suite i need more training in this