Curso Secure Desktop Application Developement in c#

  • Hackers | Kali | Pentest | Cyber

Curso Secure Desktop Application Developement in c#

24 horas
Visão Geral
  • Como desenvolvedor, seu dever é escrever um código à prova de balas. Contudo…
  • E se disséssemos que, apesar de todos os seus esforços, o código que você escreveu durante toda a sua carreira está cheio de fraquezas que você nunca soube que existiam?
  • E se, enquanto você lê isso, os hackers tentam invadir seu código? Q
  • ual a probabilidade de terem sucesso?
  • Este curso combinado mudará a maneira como você vê o código.
  • Um treinamento prático durante o qual ensinaremos todos os truques dos atacantes e como mitigá-los, deixando-o com outro sentimento que não seja o desejo de saber mais.
  • É sua escolha estar à frente do grupo e ser visto como um divisor de águas na luta contra o cibercrime
Objetivo

Resultado de Aprendizado:

  • Entenda os conceitos básicos de segurança, segurança de TI e codificação segura
  • Aprenda sobre os erros típicos de codificação e como evitá-los
  • Aprenda a usar vários recursos de segurança do ambiente de desenvolvimento .NET
  • Ter uma compreensão prática da criptografia
  • Compreender os conceitos de segurança dos serviços da Web
  • Aprenda sobre segurança XML
  • Aprenda sobre ataques e proteções de negação de serviço
  • Obtenha fontes e leituras adicionais sobre práticas seguras de codificação
Pre-Requisitos

São necessárias habilidades gerais de desenvolvimento em C #.

Informações Gerais
  • Carga horaria 24h
  • Se aos sábados o curso acontece de 09h às 18h, total de 3 sábados,
  • se noturno o curso acontece de segunda a sexta das 19h às 23h, total de 6 noites,
  • se in-company o curso acontece de 08h às 17h total de 3 dias,

Formato de Entrega:

  • Presencial em sala de aula 
  • Ou on-line ao vivo em tempo real
Materiais
Inglês & Português
Conteúdo Programatico

Segurança de TI e codificação segura

  1. Natureza da segurança
  2. O que é risco?
  3. Segurança de TI vs. codificação segura
  4. De vulnerabilidades a redes de bots e crimes cibernéticos
  5. Natureza das falhas de segurança
  6. Razões de dificuldade
  7. De um computador infectado a ataques direcionados
  8. Classificação de falhas de segurança
  9. Taxonomia de Landwehr
  10. Os sete reinos perniciosos
  11. OWASP Top Ten 2017

Erros de codificação e vulnerabilidades comuns

  1. Validação de entrada
  2. Conceitos de validação de entrada
  3. Injeção
  4. Princípios de injeção
  5. injeção SQL
  6. Injeção de comando
  7. Estudo de caso – ImageMagick

Problemas inteiros

  1. Representação de números inteiros negativos
  2. Estouro de número inteiro
  3. Exercício IntOverflow
  4. Qual é o valor de Math.Abs (int.MinValue)?
  5. Problema inteiro - práticas recomendadas
  6. Estudo de caso - Estouro de número inteiro no .NET

Vulnerabilidade de passagem de caminho

  1. Travessia de caminho - proteções fracas
  2. Percurso de caminho - práticas recomendadas

Chamadas nativas inseguras

  1. Exercício - código não gerenciado inseguro

Reflexão insegura

  1. Implementação de um distribuidor de comandos
  2. Reflexão insegura - identifique o bug!
  3. Mitigação da reflexão insegura

Forjamento de log

  1. Alguns outros problemas típicos com arquivos de log

Arquitetura e serviços de segurança .NET

  1. Arquitetura .NET
  2. Segurança de acesso ao código
  3. Confiança total e parcial
  4. Classes de evidência
  5. Permissões
  6. Classes de permissão de acesso ao código
  7. Derivando permissões de evidência
  8. Definindo permissões personalizadas
  9. Verificação de permissão de tempo de execução do .NET
  10. The Stack Walk
  11. Efeitos da declaração ()
  12. Permissão declarativa no nível de classe e método
  13. Verificação de permissão imperativa (programática)
  14. Exercício - sandboxing código .NET
  15. Usando atributos de transparência
  16. Permitir chamadas parcialmente confiáveis
  17. Exercício - usando atributos de transparência

Segurança baseada em função

  1. Autorização baseada em principal
  2. Exercício - adicionando autorização baseada em função
  3. Representação

Criptografia prática

  1. Regra nº 1 da implementação de criptografia
  2. Sistemas de criptografia
  3. Elementos de um sistema de criptografia
  4. Arquitetura criptográfica .NET

Criptografia de chave simétrica

  1. Fornecendo confidencialidade com criptografia simétrica
  2. Algoritmos de criptografia simétrica
  3. Modos de operação
  4. Criptografar e descriptografar (simétrico)

Outros algoritmos criptográficos

  1. Hash ou resumo da mensagem
  2. Algoritmos -Hash
  3. SHAttered
  4. Hashing
  5. Código de autenticação de mensagem (MAC)
  6. Fornecendo integridade e autenticidade com uma chave simétrica

Criptografia assimétrica (chave pública)

  1. Fornecendo confidencialidade com criptografia de chave pública
  2. Regra geral - posse de chave privada
  3. O algoritmo RSA
  4. Introdução ao algoritmo RSA
  5. Criptografando com RSA
  6. Combinando algoritmos simétricos e assimétricos
  7. Assinatura digital com RSA
  8. Algoritmos assimétricos no .NET
  9. Sinal de exercício
  10. Exercício - usando classes criptográficas .NET

Infraestrutura de Chave Pública (PKI)

  1. Ataque Man-in-the-Middle (MitM)
  2. Certificados digitais contra ataques do MitM
  3. Autoridades de certificação em infraestrutura de chave pública
  4. Certificado digital X.509

Segurança de aplicativos de desktop

  1. Windows Presentation Foundation
  2. Introdução ao WPF
  3. Linguagem de marcação de aplicativo extensível (XAML)
  4. Modelos de implantação do WPF

Problemas comuns de segurança com aplicativos .NET da área de trabalho

  1. Seqüestro de recursos em aplicativos WPF
  2. Exercício – LibHijack

Protegendo o código .NET

  1. Authenticode
  2. Exercício - Usando Authenticode

Segurança XML

  1. Injeção de XML
  2. (Ab) usando CDATA para armazenar carga útil XSS em XML
  3. Exercício - injeção de XML
  4. Proteção através de sanitização e validação de XML
  5. Abusando da entidade XML
  6. Introdução à entidade XML
  7. Bomba XML
  8. Exercício - bomba XML
  9. Ataque de entidade externa XML (XXE) - inclusão de recurso
  10. Ataque de entidade externa XML - chamada de URL
  11. Ataque de entidade externa XML - entidades de parâmetro
  12. Impedindo ataques relacionados a entidades
  13. Estudo de caso - XXE na Barra de Ferramentas Google

Segurança de acesso a dados no .NET

  1. Trabalhando com bancos de dados no .NET
  2. ADO.NET
  3. Instruções preparadas no ADO.NET
  4. Protegendo cadeias de conexão
  5. Estrutura de entidade
  6. Segurança do Entity Framework
  7. Exposição de objetos com o Entity Framework

Segurança do Windows Communication Foundation

  1. Introdução ao WCF
  2. Arquitetura WCF e considerações de segurança
  3. Arquitetura WCF
  4. Considerações de segurança para o ambiente de hospedagem
  5. Terminologia de segurança do WCF
  6. Segurança da camada de transporte
  7. Segurança da camada de transporte - autenticação do cliente
  8. Segurança no nível da mensagem
  9. Opções de autorização

Erros de codificação e vulnerabilidades comuns

  1. Uso inadequado de recursos de segurança
  2. Problemas típicos relacionados ao uso de recursos de segurança
  3. Gerenciamento de senha
  4. Exercício - Fraqueza de senhas com hash
  5. Gerenciamento e armazenamento de senhas
  6. Algoritmos de hash para fins especiais para armazenamento de senhas
  7. Implementações Argon2 e PBKDF2 no .NET
  8. implementações bcrypt e scrypt no .NET
  9. Estudo de caso - a violação de dados de Ashley Madison
  10. Erros típicos no gerenciamento de senhas
  11. Exercício - senhas codificadas

Tratamento inadequado de erros e exceções

  1. Problemas típicos com manipulação de erros e exceções
  2. Bloco de captura vazio
  3. Captura excessivamente ampla
  4. Usando captura múltipla
  5. Captura de NullReferenceException
  6. Manipulação de exceção - identifique o bug!
  7. Exercício - Tratamento de erros

Problemas de tempo e estado

  1. Concorrência e segmentação
  2. Simultaneidade no .NET
  3. Sincronização omitida - identifique o bug!
  4. Exercício - Sincronização omitida
  5. Granularidade incorreta - identifique o bug!
  6. Exercício - Granularidade incorreta
  7. Deadlocks
  8. Evitando impasses
  9. Exercício - Evitando impasses
  10. Declaração de bloqueio
  11. Erros de serialização (TOCTTOU)
  12. Exemplo de TOCTTOU
  13. Exercício - Condição de corrida
  14. Exercício - Explorando a condição de corrida

Problemas de qualidade do código

  1. Perigos decorrentes da má qualidade do código
  2. Serialização - identifique o bug!
  3. Exercício - sensível serializável
  4. Classe não selada - seqüestro de objeto
  5. Exercício - Seqüestro de objetos Sequência imutável - localize o erro!
  6. Exercício - Cordas imutáveis
  7. Usando SecureString

Negação de serviço

  1. Introdução ao DoS
  2. DoS assimétrico
  3. Expressão regular DoS (ReDoS)
  4. ReDoS do exercício
  5. Mitigação ReDoS
  6. Estudo de caso - ReDos no Stack Exchange
  7. Ataque de colisão hashtable
  8. Usando hashtables para armazenar dados
  9. Colisão Hashtable
  10. Colisão de hashtable no ASP.NET
TENHO INTERESSE

Cursos Relacionados

Curso Cybersecurity Foundations

32 horas

Curso CISSP - Certified Information Systems Security

40 horas

Curso Cissp Workshop - Gerenciamento de Indenidade e Acesso Operações

Curso Fundamentos de Sistemas de Informação de Segurança

32 horas

Curso CHFI - Computer Hacking Forensics Investigator

40 horas

Curso Cisco Cybersecurity segurança de redes com detecção de ameaças

32 Horas

Curso ISO / IEC 20000 Introdução

16 horas

Curso ISO IEC 27002 Fundamentos

16 horas