Entrar em Contato

Programa do Curso

1. Segurança da TI e codificação segura

  • Princípios Fundamentais de Segurança: Confidencialidade, Integridade e Disponibilidade (CIA) no contexto de aplicações Java.
  • Ciclo de Vida de Desenvolvimento de Software Seguro (SSDLC): Integração da segurança desde os requisitos até a implantação.
  • Paradigmas de Codificação Segura: Defesa em profundidade, privilégio mínimo e padrões de falha segura.
  • Classificações Padrão de Vulnerabilidades: Entendendo a CWE (Enumeração Comum de Vulnerabilidades) e a OWASP.

2. Segurança de aplicações web

  • Análise Aprofundada da OWASP Top Ten: Análise detalhada de Injeção, Autenticação Quebrada e Exposição de Dados Sensíveis.
  • Cross-Site Scripting (XSS): Cenários de XSS refletido, armazenado e baseado em DOM em Java/JSP.
  • Cross-Site Request Forgery (CSRF): Mecanismos de ataque e implementação de tokens Anti-CSRF.
  • Gerenciamento de Sessões: Segurança de cookies, fixação de sessão e gerenciamento de tempo limite.
  • Segurança de APIs: Proteção de endpoints REST e SOAP contra abuso.

3. Segurança de serviços web

  • Serviços Web vs. Aplicações Web Tradicionais: Diferenças nas superfícies de ataque.
  • Segurança de Camada de Transporte: Configuração de SSL/TLS para clientes e servidores Java.
  • Segurança de Mensagens: Integridade e Confidencialidade no nível de payload.
  • Padrões de Autenticação: Implementação de OAuth 2.0, OpenID Connect e JWT (JSON Web Tokens).

4. Segurança de XML

  • Vulnerabilidades em Análise de XML: Prevenção de ataques de Entidade Externa de XML (XXE).
  • Validação de Esquema XML: Melhores práticas para aplicação estrita de esquemas.
  • Assinaturas Digitais em XML: Implementação de assinaturas para garantir não repúdio.
  • Criptografia de XML: Abordagens padrão para criptografar conteúdo XML.

5. Fundamentos da segurança Java

  • A Arquitetura de Segurança Java: O pacote java.security e a arquitetura de provedores.
  • Provedores de Segurança: Instalação e configuração de provedores como Bouncy Castle.
  • Controle de Acesso: Arquivos de política, Permissões e o Security Manager (Legado vs. Moderno).
  • Gerenciamento de KeyStores: Criação e gerenciamento de keystores e truststores para certificados.

6. Criptografia prática

  • Algoritmos Criptográficos: Visão geral de algoritmos Simétricos (AES), Assimétricos (RSA, ECC) e de Hash (SHA-256/512).
  • Geração de Números Aleatórios: Os perigos de java.util.Random vs. java.security.SecureRandom.
  • Gerenciamento de Chaves: Estratégias de geração, armazenamento e rotação de chaves.
  • Arquitetura de Criptografia Java (JCA): Uso das classes Cipher, MessageDigest e Mac.
  • Extensão de Criptografia Java (JCE): Entendendo arquivos de política e jurisdição de força ilimitada.

7. Serviços de segurança Java

  • SSL/TLS em Java: Uso de SSLSocketFactory e HttpsURLConnection.
  • Gerenciadores de Confiança: Personalização da verificação de confiança para ambientes de PKI privados.
  • Autenticadores: Autenticação programática usando Authenticator.getDefault().
  • Análise de Certificados: Leitura e análise de certificados X.509 programaticamente.

8. Segurança Java EE

  • Segurança Declarativa: Controle de acesso baseado em papéis (RBAC) usando web.xml e anotações.
  • Segurança Programática: Uso de HttpServletRequest.isUserInRole() e getRemoteUser().
  • JAAS (Java Authentication and Authorization Service): Configuração de login.conf e implementação de LoginModules.
  • Segurança de Servlets: Restrições de segurança gerenciadas pelo contêiner e métodos de autenticação (FORM, BASIC, DIGEST).

9. Erros de codificação comuns e vulnerabilidades

  • Serialização Insegura: Os riscos de ObjectInputStream e a contornação de verificações de segurança.
  • Injeção de Comandos: Mitigação de vulnerabilidades de execução em nível de SO.
  • Travessia de Caminho: Sanitização de entradas do sistema de arquivos para impedir a travessia de diretórios.
  • Abuso de Reflexão: Riscos associados a java.lang.reflect e a contornação de controle de acesso.
  • Credenciais em Código Duro: Identificação e remoção de segredos do código-fonte.
  • Erros na Implementação de Criptografia: Uso do modo ECB, chaves fracas ou IVs estáticos.

10. Fontes de conhecimento

  • Ferramentas de Análise Estática: Uso de SonarQube, Checkmarx e Fortify para varredura automatizada.
  • Ferramentas de Análise Dinâmica: Visão geral do Burp Suite e OWASP ZAP.
  • Bancos de Dados CVE: Como rastrear e reagir a novas vulnerabilidades no framework Java.
  • Leituras Recomendadas: Lista de livros, documentação e listas de verificação para codificação segura.

Requisitos

Nenhum.

 21 Horas

Número de participantes


Preço por participante

Testemunhos de Clientes (4)

Próximas Formações Provisórias

Categorias Relacionadas