SlideShare une entreprise Scribd logo
1  sur  29
Java Security

Tópicos sobre Segurança na Plataforma Java
Apresentações
Armênio Cardoso
Consultor, Arquiteto de Sistemas e Professor




       http://www.linkedin.com/in/armeniocardoso


       http://www.slideshare.net/armeniocardoso
Agenda
   Metodologia SD3.
   Processo de Desenvolvimento X Segurança.
   Requisitos Funcionais X Requisitos Não Funcionais.
   Categorias de Ameaças.
   Implementações e Ferramentas.
   Referências.
Metodologia SD3
   Security “by Design”, “by Default” e “in Deployment”.
   SD3 é um conjunto de estratégias que ajudam a
    desenvolver sistemas seguros.
   Baseia-se em três diretrizes:
       Design = a segurança deve ser uma das prioridades
        desde o início do desenvolvimento de um sistema e deve
        ser considerada no seu projeto.
       Default = o framework de desenvolvimento deve conter
        recursos de segurança para que sua implementação seja
        natural.
       Deployment = o sistema deve rodar em uma plataforma
        segura, mantida pelo pessoal de infraestrutura.
Princícios da metodologia SD3
   Minimizar a área de ataque.
       Utilizar a quantidade mínima de características que ofereçam riscos
        potenciais de ataque tais como: número de portas abertas, número de
        serviços com privilégios elevados, número de contas com privilégio de
        administrador.
   Defaults seguros.
       A instalação e a configuração em plataforma de produção segura.
   Separação de código e dados.
       Evitar a possibilidade do usuário efetuar entradas que mesclem código e
        dados, como por exemplo, caixas de texto que permitem html e
        javascript..
   Menor privilégio.
       O sistema deve ser executado no menor privilégio possível para realizar
        o seu trabalho. Deve-se evitar a necessidade de executar o software
        como administrador ou como um serviço.
   Sistemas externos são inseguros.
       Ao desenvolver o software considerar que todo sistema externo é
        inseguro, ou seja, deve-se validar a entrada de forma robusta.
   Erros e falhas devem terminar de modo seguro.
       Caso ocorra uma falha no sistema, deve-se terminar a rotina de modo
        seguro, ou seja, não se deve expor dados críticos ao informar sobre o
        erro.
Processo de Desenvolvimento X Segurança
   Um software seguro deve ser projetado colocando
    os aspectos de segurança como prioridade.
   Diretrizes de Segurança:
       Treinamento continuado da equipe.
       Segurança planejada: devem ser definidos os objetivos
        de segurança de um produto já na fase de projeto.
       Segurança como recurso: a segurança não deve ser
        considerada como um bônus ou apenas uma
        característica secundária desejável. Ela deve ser
        implementada por todo o aplicativo.
       Check-in verificado: deve-se incorporar o novo código ao
        sistema apenas após uma verificação rígida.
       Revisão interna e externa. O código deve ser revisado
        tanto pela equipe quanto por entidades externas, de
        preferência uma consultoria de segurança ou auditoria.
Processo de Desenvolvimento X Segurança
   Levantamento de Requisitos.
       Requisitos Funcionais X Requisitos Não Funcionais.
       Atores X Casos de Uso.
   Análise e Projeto.
       Metodologia de Segurança.
       Framework de Segurança.
   Construção.
       Codificação.
       Banco de Dados.
   Testes.
       Inspeção de Conformidade.
       Análise automática de código – PMD / CheckStyle.
   Implantação.
       Infraestrutura Segura.
Requisitos Funcionais X Requisitos Não
Funcionais
   O projeto de um sistema seguro deve incorporar a
    modelagem das possíveis ameças para que seja
    possível a implementação das proteções
    adequadas.

       Requisitos Funcionais = as funcionalidades do sistema
        devem ser mapeadas (casos de uso) de forma a permitir
        a identificação de recursos de segurança.

       Requisitos Não Funcionais = arquitetura de recursos
        default que dão suporte às aplicações e implementam os
        vários recursos de segurança.
Requisitos Funcionais X Segurança
 1. O
    aplicativo deve ser decomposto formalmente com o
  objetivo de identificar seu escopo, entradas e saídas.

 2. Deve-seidentificar quais componentes ou recursos
  podem ser alvos de ameaças. Uma forma de se fazer
  isso é analisar cada item de acordo com as categorias
  de ameaças.

 3. Classificação
                por risco: as ameaças devem ser
  classificadas de acordo com seu risco potencial.

                     04_DREAD.pdf


 4. Elaboração
             da resposta: cada ameaça identificada
  deve ter uma resposta correspondente do sistema.
Categorias de Ameaças
   Existem vários critérios disponíveis para categorizar as
    ameaças – o importante é criar um critério padrão e
    incorporá-lo à metodologia de desenvolvimento de
    software.

       STRIDE – Spoofing, Tampering, Repudiation, Information
        Disclosure, Denial of Service, Elevation of Privilege.

       OWASP TOP 10 – As 10 vulnerabilidades de segurança mais
        críticas em aplicações WEB do Open Web Application Security
        Project.

                  01_Check List de Seguranca.pdf
                  03_OWASP_TOP_10_2007_PT-BR.pdf
Categorias de Ameaças - STRIDE
   Spoofing
       Fazer-se passar por alguém.
   Tampering
       Modificar dados ou código.
   Repudiation
       Dizer que não executou uma operação.
   Information Disclosure
       Expor informações a pessoas não autorizadas.
   Denial of Service
       Negar ou degradar serviços a usuários.
   Elevation of Privilege
       Obter capacidades sem a autorização apropriada.

                           02_Stride.pdf
Categorias de Ameaças - OWASP Top 10
   1 – Cross Site Scripting.
   2 – Falhas de Injeção.
   3 – Execução Maliciosa de Arquivo.
   4 – Referência Insegura Direta a objeto.
   5 – Cross Site Request Forgery (CSRF).
   6 – Vazamento de Informações e Tratamento de
    erros inapropriado.
   7 – Furo de Autenticação e Gerência de Sessão.
   8 – Armazenamento criptográfico inseguro.
   9 – Comunicações Inseguras.
   10 – Falha ao Restringir Acesso a URLs.
Categorias de Ameaças - Conclusões
   Determinadas ameaças são respondidas por
    implementações da aplicação.
       Requisitos Funcionais.
   Outras são respondidas por mecanismos default do
    framework de desenvolvimento de software.
       Requisitos Não Funcionais.
Implementações e Ferramentas
   Entrada de Dados Segura.
   Identificação e Autenticação de Usuários.
   Hash de Senha.
   Sistemas de gerenciamento de contas de usuários.
   Mecanismos de autorização.
   Criptografia Assimétrica.
   Certificado Digital.
   Autenticação do servidor.
   Mecanismos de auditoria.
   CAPTCHA.
Implementações e Ferramentas
   Entrada de Dados Segura.
       Começa com o simples uso do atributo “maxlength” das
        tags de entrada de dados do HTML. O “maxlength” deve
        ser definido conforme o tamanho do campo no banco de
        dados.

       Campos especiais como CNPJ, CPF e Telefone devem
        utilizar máscaras de entrada de dados.

        http://www.meiocodigo.com/projects/meiomask/


       Deve-se utilizar listas drop-down, botões de rádio e
        checkboxes ao máximo.
Implementações e Ferramentas
   Entrada de Dados Segura.
       Todos os dados passados ao servidor devem ser codificados
        de forma a evitar caracteres que possam fazer parte de scripts
        SQL ou JavaScript (Output Encoding).
       Todos os dados passados ao servidor devem ser
        rigorosamente validados:
           Validação Sintática.
           Validação Semântica.
       Jamais devemos utilizar instruções SQL nas páginas (mesmo
        JSTL-Database).
       Todas as instruções SQL devem ser confinadas em classes
        DAO e devem utilizar PreparedStatement ou
        CallableStatement quando usar JDBC.
       Nenhuma chamada AJAX deve acessar diretamente um DAO.
        Sempre utilizar um Façade como intermediário.
Implementações e Ferramentas
   Identificação e Autenticação de Usuários.
       Nível 1: O que o usuário sabe?
           O uso de senhas de acesso é o modelo de segurança mais
            simples e barato de implementar. Podemos complementá-lo
            com perguntas aleatórias sobre dados cadastrais a fim de
            dificultar a passagem da senha para uma outra pessoa.
       Nivel 2: O que o usuário tem?
           Cartões magnéticos, smartcards, biometria e cryptocards são
            opções na implementação do nível 2.
       Nível 3: Onde o usuário está?
           Segurança física através de câmeras, vigilantes, portas de aço
            são recursos de segurança quando o usuário só pode acessar
            o sistema em um determinado lugar.
Implementações e Ferramentas
     Hash de Senha.
         Não adianta ter um sistema complexo de autenticação de
          usuários se a senha trafega pela rede aberta e o DBA
          consegue fazer um SELECT e listar todos os usuários e
          as senhas disponíveis.
         A criptografia HASH converte a senha em uma sequencia
          de caracteres única, que não pode ser convertida de
          volta.
                   Texto         Função
                   Original      Hash       B@27734f


Acrescentou-      Texto          Função                  O resultado
se o “.”                         Hash       B@b66cc      é outro!
                  Original.
Implementações e Ferramentas
   Hash de Senha.
       É importante que o algoritmo seja eficaz – alguns
        mecanismos disponíveis NÃO são seguros!
       Não se deve criar algoritmos de criptografia.
        Somente devem ser usados algoritmos aprovados
        publicamente.
       Não se deve usar algoritmos fracos, como
        MD5/SHA1. Somente devem ser usados
        mecanismos seguros como SHA-256 ou melhores.
       Na página de login deve ser empregado um script
        que criptografe a senha de forma que somente o
        hash da senha seja transmitido e armazenado.

              http://code.google.com/p/crypto-js/
Implementações e Ferramentas
   Sistemas de gerenciamento de contas de usuários.
       Registro de usuários.
       Registro de funcionalidades.
       Associação de usuários à funcionalidades.
       Manutenção de políticas de segurança.
       Uso de contas de administração X usuários com
        privilégios de administração.]

             05_Modelo_de_Controle_de_Acesso.pdf
Implementações e Ferramentas
   Mecanismos de autorização.
       Padrão RBAC = Role Based Access Control.
       O padrão RBAC adequa-se perfeitamente aos modelos
        de casos de uso da UML:
           Atores = Papeis (roles).
           Casos de Uso = Privilégios.
       Os usuários são classificados conforme os casos de uso
        que desempenham no sistema.
       RBAC simplifica a administração por definir um nível
        granular mais alto para as funcionalidades do sistema.
Implementações e Ferramentas
Implementações e Ferramentas
Implementações e Ferramentas
   Criptografia Assimétrica.
Implementações e Ferramentas
   Certificado Digital.
     Autoridades de Certificação (Certificate Authorities)
      são empresas cujas chaves-públicas são conhecidas
      (e até já vêm pré-instaladas no seu browser ou são
      mantidas internamente pela área de TI da sua
      empresa com alto nível de segurança) e emitem
      certificados que comprovam a autenticidade de sites
      e indivíduos.

       Eles não são falsificáveis justamente porque são
        criados usando a chave privada da Autoridade de
        Certificação, que é mantida no mais absoluto sigilo.
Implementações e Ferramentas
   Autenticação do Servidor.
       Alguns usuários verificam que um site pertence a uma
        empresa somente pelo seu endereço de domínio.

       Várias empresas dão credibilidade ao seu endereço
        através de certificados digitais X.509.

       O protocolo SSL – Secure Socket Layer é baseado
        nesse certificado.

       O Web Container precisa implementar suporte ao
        certificado X.509 preferencialmente de forma declarativa.
Implementações e Ferramentas
   Autenticação do Servidor.
       O SSL (Secure Socket Layer) é protocolo padrão que tanto os
        programas cliente como os servidores têm que utilizar em uma
        comunicação segura.

       O SSL garante autenticação (através de
        certificados), integridade e confidencialidade.

       O HTTPS é o mesmo protocolo HTTP, só que utiliza-se do
        SSL como uma camada extra de segurança.
Implementações e Ferramentas
   Mecanismos de auditoria – Requisitos:
       Criação de trilhas de auditoria e alarmes.
       Reconstrução de trilhas de auditoria.
       Trilhas de auditoria registram o que, quem e quando.
       Alarmes são triggers para determinadas funcionalidades.
       A auditoria requer planejamento para que se estabeleça
        claramente que casos de uso requerem registro /
        alarmes.
Implementações e Ferramentas
   CAPTCHA é um acrônimo da expressão
    "Completely Automated Public Turing test to tell
    Computers and Humans Apart" (teste de Turing
    público completamente automatizado para
    diferenciação entre computadores e humanos).
   É um teste de desafio cognitivo, utilizado como
    ferramenta anti-spam, desenvolvido pioneiramente
    na universidade de Carnegie-Mellon.

http://simplecaptcha.sourceforge.net/

Contenu connexe

Tendances

Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Pablo Ribeiro
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...Clavis Segurança da Informação
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações WebCassio Ramos
 
(2) O Processo de Gerenciamento de Vulnerabilidades Web
(2) O Processo de Gerenciamento de Vulnerabilidades Web(2) O Processo de Gerenciamento de Vulnerabilidades Web
(2) O Processo de Gerenciamento de Vulnerabilidades WebEduardo Lanna
 
Como se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareComo se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareAlcyon Ferreira de Souza Junior, MSc
 
(4) Comparando o N-Stalker WAS com o RedeSegura
(4) Comparando o N-Stalker WAS com o RedeSegura(4) Comparando o N-Stalker WAS com o RedeSegura
(4) Comparando o N-Stalker WAS com o RedeSeguraEduardo Lanna
 
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Alcyon Ferreira de Souza Junior, MSc
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Clavis Segurança da Informação
 
Segurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareSegurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareMarcelo Fleury
 
Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Alcyon Ferreira de Souza Junior, MSc
 
Global Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no AzureGlobal Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no AzureRubens Guimarães - MTAC MVP
 
Artigo - Segurança no desenvolvimento de sistemas com metodologia ágil SCRUM
Artigo - Segurança no desenvolvimento de sistemas com metodologia ágil SCRUMArtigo - Segurança no desenvolvimento de sistemas com metodologia ágil SCRUM
Artigo - Segurança no desenvolvimento de sistemas com metodologia ágil SCRUMBruno Motta Rego
 
Aula 04 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 04 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 04 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 04 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Alcyon Ferreira de Souza Junior, MSc
 
Segurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosSegurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosAlex Camargo
 

Tendances (19)

Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )
 
Segurança em Desenvolvimento de Software
Segurança em Desenvolvimento de SoftwareSegurança em Desenvolvimento de Software
Segurança em Desenvolvimento de Software
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações Web
 
Defensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon JuniorDefensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon Junior
 
(2) O Processo de Gerenciamento de Vulnerabilidades Web
(2) O Processo de Gerenciamento de Vulnerabilidades Web(2) O Processo de Gerenciamento de Vulnerabilidades Web
(2) O Processo de Gerenciamento de Vulnerabilidades Web
 
Como se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareComo se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de Software
 
(4) Comparando o N-Stalker WAS com o RedeSegura
(4) Comparando o N-Stalker WAS com o RedeSegura(4) Comparando o N-Stalker WAS com o RedeSegura
(4) Comparando o N-Stalker WAS com o RedeSegura
 
Dss 3
Dss 3Dss 3
Dss 3
 
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
 
Segurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareSegurança no Desenvolvimento de Software
Segurança no Desenvolvimento de Software
 
Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem
 
Global Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no AzureGlobal Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
 
Artigo - Segurança no desenvolvimento de sistemas com metodologia ágil SCRUM
Artigo - Segurança no desenvolvimento de sistemas com metodologia ágil SCRUMArtigo - Segurança no desenvolvimento de sistemas com metodologia ágil SCRUM
Artigo - Segurança no desenvolvimento de sistemas com metodologia ágil SCRUM
 
Aula 04 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 04 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 04 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 04 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
 
Segurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosSegurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultados
 
Desenvolvimento Seguro- 2011
Desenvolvimento Seguro- 2011Desenvolvimento Seguro- 2011
Desenvolvimento Seguro- 2011
 
Entendendo o Ciclo de Desenvolvimento Seguro
Entendendo o Ciclo de Desenvolvimento SeguroEntendendo o Ciclo de Desenvolvimento Seguro
Entendendo o Ciclo de Desenvolvimento Seguro
 

En vedette

Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Javaarmeniocardoso
 
Guia para a Plataforma Java - Recursos e Novidades
Guia para a Plataforma Java - Recursos e NovidadesGuia para a Plataforma Java - Recursos e Novidades
Guia para a Plataforma Java - Recursos e Novidadesarmeniocardoso
 
Apresentacao iv forum_pedagogia
Apresentacao iv forum_pedagogiaApresentacao iv forum_pedagogia
Apresentacao iv forum_pedagogiaAndré Silva
 
Projeto criação de uma marca
Projeto criação de uma marcaProjeto criação de uma marca
Projeto criação de uma marcaGlauco Web
 
Projeto Integrador Tla Mivmodulo4juliene2009
Projeto Integrador Tla Mivmodulo4juliene2009Projeto Integrador Tla Mivmodulo4juliene2009
Projeto Integrador Tla Mivmodulo4juliene2009lifeassis
 
Diretrizes avaliativas 2014_2_ped_projeto_integrador_i_ii
Diretrizes avaliativas 2014_2_ped_projeto_integrador_i_iiDiretrizes avaliativas 2014_2_ped_projeto_integrador_i_ii
Diretrizes avaliativas 2014_2_ped_projeto_integrador_i_iiSoeli Marques
 
Manual projeto integrador prêmio conecta
Manual projeto integrador prêmio conectaManual projeto integrador prêmio conecta
Manual projeto integrador prêmio conectaProfessora Sales
 
Roteiro projetos 4_2012_1 com serviços
Roteiro projetos 4_2012_1 com serviçosRoteiro projetos 4_2012_1 com serviços
Roteiro projetos 4_2012_1 com serviçosPaola Martins
 
PROJETO INTEGRADOR IV: DESENVOLVIMENTO DE SERVIÇOS DE TECNOLOGIA DA INFORMAÇÃO
PROJETO INTEGRADOR IV: DESENVOLVIMENTO DE SERVIÇOS DE TECNOLOGIA DA INFORMAÇÃOPROJETO INTEGRADOR IV: DESENVOLVIMENTO DE SERVIÇOS DE TECNOLOGIA DA INFORMAÇÃO
PROJETO INTEGRADOR IV: DESENVOLVIMENTO DE SERVIÇOS DE TECNOLOGIA DA INFORMAÇÃOOrlando Oliveira Orlando
 
Palestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS AquidauanaPalestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS AquidauanaSidney Roberto
 
Projeto Integrador em Administração de Redes de Computadores - Senac
Projeto Integrador em Administração de Redes de Computadores - SenacProjeto Integrador em Administração de Redes de Computadores - Senac
Projeto Integrador em Administração de Redes de Computadores - SenacFelipe Coêlho
 
Modelo do projeto integrador i projeto parcial primeira postagem (2)
Modelo do projeto integrador i projeto parcial primeira postagem (2)Modelo do projeto integrador i projeto parcial primeira postagem (2)
Modelo do projeto integrador i projeto parcial primeira postagem (2)Vanessa Dias
 

En vedette (15)

Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Java
 
Guia para a Plataforma Java - Recursos e Novidades
Guia para a Plataforma Java - Recursos e NovidadesGuia para a Plataforma Java - Recursos e Novidades
Guia para a Plataforma Java - Recursos e Novidades
 
Apresentacao iv forum_pedagogia
Apresentacao iv forum_pedagogiaApresentacao iv forum_pedagogia
Apresentacao iv forum_pedagogia
 
Projeto UNIPODE
Projeto UNIPODEProjeto UNIPODE
Projeto UNIPODE
 
TLA(20110712)
TLA(20110712)TLA(20110712)
TLA(20110712)
 
Projeto criação de uma marca
Projeto criação de uma marcaProjeto criação de uma marca
Projeto criação de uma marca
 
Projeto Integrador Tla Mivmodulo4juliene2009
Projeto Integrador Tla Mivmodulo4juliene2009Projeto Integrador Tla Mivmodulo4juliene2009
Projeto Integrador Tla Mivmodulo4juliene2009
 
Diretrizes avaliativas 2014_2_ped_projeto_integrador_i_ii
Diretrizes avaliativas 2014_2_ped_projeto_integrador_i_iiDiretrizes avaliativas 2014_2_ped_projeto_integrador_i_ii
Diretrizes avaliativas 2014_2_ped_projeto_integrador_i_ii
 
Manual projeto integrador prêmio conecta
Manual projeto integrador prêmio conectaManual projeto integrador prêmio conecta
Manual projeto integrador prêmio conecta
 
Roteiro projetos 4_2012_1 com serviços
Roteiro projetos 4_2012_1 com serviçosRoteiro projetos 4_2012_1 com serviços
Roteiro projetos 4_2012_1 com serviços
 
PROJETO INTEGRADOR IV: DESENVOLVIMENTO DE SERVIÇOS DE TECNOLOGIA DA INFORMAÇÃO
PROJETO INTEGRADOR IV: DESENVOLVIMENTO DE SERVIÇOS DE TECNOLOGIA DA INFORMAÇÃOPROJETO INTEGRADOR IV: DESENVOLVIMENTO DE SERVIÇOS DE TECNOLOGIA DA INFORMAÇÃO
PROJETO INTEGRADOR IV: DESENVOLVIMENTO DE SERVIÇOS DE TECNOLOGIA DA INFORMAÇÃO
 
SOCIOLOGIA
SOCIOLOGIASOCIOLOGIA
SOCIOLOGIA
 
Palestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS AquidauanaPalestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
 
Projeto Integrador em Administração de Redes de Computadores - Senac
Projeto Integrador em Administração de Redes de Computadores - SenacProjeto Integrador em Administração de Redes de Computadores - Senac
Projeto Integrador em Administração de Redes de Computadores - Senac
 
Modelo do projeto integrador i projeto parcial primeira postagem (2)
Modelo do projeto integrador i projeto parcial primeira postagem (2)Modelo do projeto integrador i projeto parcial primeira postagem (2)
Modelo do projeto integrador i projeto parcial primeira postagem (2)
 

Similaire à Java security

Projeto de Avaliação de Segurança de TI
Projeto de Avaliação de Segurança de TIProjeto de Avaliação de Segurança de TI
Projeto de Avaliação de Segurança de TIMessias Dias Teixeira
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012Marcio Cunha
 
Seguranca e Criptografia de Dados
Seguranca e Criptografia de DadosSeguranca e Criptografia de Dados
Seguranca e Criptografia de DadosFelipe Plattek
 
Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebGerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebEduardo Lanna
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de SegurançaAlan Carlos
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesClavis Segurança da Informação
 
Validando a Segurança de Software
Validando a Segurança de SoftwareValidando a Segurança de Software
Validando a Segurança de SoftwareJeronimo Zucco
 
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...Magno Logan
 
Documento Técnico - Guia de estudos para o exame CASE
Documento Técnico - Guia de estudos para o exame CASEDocumento Técnico - Guia de estudos para o exame CASE
Documento Técnico - Guia de estudos para o exame CASETI Safe
 
Sunlit technologies portfolio produtos & serviços agosto2016
Sunlit technologies   portfolio produtos & serviços  agosto2016Sunlit technologies   portfolio produtos & serviços  agosto2016
Sunlit technologies portfolio produtos & serviços agosto2016Antonio Carlos Scola - MSc
 
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Alcyon Ferreira de Souza Junior, MSc
 

Similaire à Java security (20)

Projeto de Avaliação de Segurança de TI
Projeto de Avaliação de Segurança de TIProjeto de Avaliação de Segurança de TI
Projeto de Avaliação de Segurança de TI
 
(2) O Processo de Gerenciamento de Vulnerabilidades Web
(2) O Processo de Gerenciamento de Vulnerabilidades Web(2) O Processo de Gerenciamento de Vulnerabilidades Web
(2) O Processo de Gerenciamento de Vulnerabilidades Web
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012
 
Segurança na web
Segurança na webSegurança na web
Segurança na web
 
Segurança na web
Segurança na webSegurança na web
Segurança na web
 
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
 
(4) Comparando o NStalker WAS com o RedeSegura
(4) Comparando o NStalker WAS com o RedeSegura(4) Comparando o NStalker WAS com o RedeSegura
(4) Comparando o NStalker WAS com o RedeSegura
 
Seguranca e Criptografia de Dados
Seguranca e Criptografia de DadosSeguranca e Criptografia de Dados
Seguranca e Criptografia de Dados
 
Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebGerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de Segurança
 
Ethical Hacking - Campus Party Brasília 2017
Ethical Hacking - Campus Party Brasília 2017Ethical Hacking - Campus Party Brasília 2017
Ethical Hacking - Campus Party Brasília 2017
 
Segurança de código
Segurança de códigoSegurança de código
Segurança de código
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
 
Validando a Segurança de Software
Validando a Segurança de SoftwareValidando a Segurança de Software
Validando a Segurança de Software
 
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
 
Documento Técnico - Guia de estudos para o exame CASE
Documento Técnico - Guia de estudos para o exame CASEDocumento Técnico - Guia de estudos para o exame CASE
Documento Técnico - Guia de estudos para o exame CASE
 
Sunlit technologies portfolio produtos & serviços agosto2016
Sunlit technologies   portfolio produtos & serviços  agosto2016Sunlit technologies   portfolio produtos & serviços  agosto2016
Sunlit technologies portfolio produtos & serviços agosto2016
 
Ransomware: Estratégias de Mitigação
Ransomware: Estratégias de MitigaçãoRansomware: Estratégias de Mitigação
Ransomware: Estratégias de Mitigação
 
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
 
Apresentação dissertação
Apresentação dissertaçãoApresentação dissertação
Apresentação dissertação
 

Plus de armeniocardoso

Guia para o Profissional Android
Guia para o Profissional AndroidGuia para o Profissional Android
Guia para o Profissional Androidarmeniocardoso
 
Domain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem IntrodutóriaDomain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem Introdutóriaarmeniocardoso
 
Guia para o Profissional Java
Guia para o Profissional JavaGuia para o Profissional Java
Guia para o Profissional Javaarmeniocardoso
 
Persistência de Objetos em Java
Persistência de Objetos em JavaPersistência de Objetos em Java
Persistência de Objetos em Javaarmeniocardoso
 
Modelando Sistemas com UML
Modelando Sistemas com UMLModelando Sistemas com UML
Modelando Sistemas com UMLarmeniocardoso
 
Desenvolvendo com Java Open Source
Desenvolvendo com Java Open SourceDesenvolvendo com Java Open Source
Desenvolvendo com Java Open Sourcearmeniocardoso
 
Desenvolvimento de Aplicações Corporativas com Java
Desenvolvimento de Aplicações Corporativas com JavaDesenvolvimento de Aplicações Corporativas com Java
Desenvolvimento de Aplicações Corporativas com Javaarmeniocardoso
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Javaarmeniocardoso
 

Plus de armeniocardoso (16)

Guia para o Profissional Android
Guia para o Profissional AndroidGuia para o Profissional Android
Guia para o Profissional Android
 
Domain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem IntrodutóriaDomain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem Introdutória
 
Guia para o Profissional Java
Guia para o Profissional JavaGuia para o Profissional Java
Guia para o Profissional Java
 
Netbeans
NetbeansNetbeans
Netbeans
 
Web Services
Web ServicesWeb Services
Web Services
 
Realtime Linux
Realtime LinuxRealtime Linux
Realtime Linux
 
Persistência de Objetos em Java
Persistência de Objetos em JavaPersistência de Objetos em Java
Persistência de Objetos em Java
 
JavaServer Faces
JavaServer FacesJavaServer Faces
JavaServer Faces
 
Java e XML
Java e XMLJava e XML
Java e XML
 
Modelando Sistemas com UML
Modelando Sistemas com UMLModelando Sistemas com UML
Modelando Sistemas com UML
 
Desenvolvendo com Java Open Source
Desenvolvendo com Java Open SourceDesenvolvendo com Java Open Source
Desenvolvendo com Java Open Source
 
Desenvolvimento de Aplicações Corporativas com Java
Desenvolvimento de Aplicações Corporativas com JavaDesenvolvimento de Aplicações Corporativas com Java
Desenvolvimento de Aplicações Corporativas com Java
 
DotNet vs. Java
DotNet vs. JavaDotNet vs. Java
DotNet vs. Java
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Java
 

Java security

  • 1. Java Security Tópicos sobre Segurança na Plataforma Java
  • 2. Apresentações Armênio Cardoso Consultor, Arquiteto de Sistemas e Professor http://www.linkedin.com/in/armeniocardoso http://www.slideshare.net/armeniocardoso
  • 3. Agenda  Metodologia SD3.  Processo de Desenvolvimento X Segurança.  Requisitos Funcionais X Requisitos Não Funcionais.  Categorias de Ameaças.  Implementações e Ferramentas.  Referências.
  • 4. Metodologia SD3  Security “by Design”, “by Default” e “in Deployment”.  SD3 é um conjunto de estratégias que ajudam a desenvolver sistemas seguros.  Baseia-se em três diretrizes:  Design = a segurança deve ser uma das prioridades desde o início do desenvolvimento de um sistema e deve ser considerada no seu projeto.  Default = o framework de desenvolvimento deve conter recursos de segurança para que sua implementação seja natural.  Deployment = o sistema deve rodar em uma plataforma segura, mantida pelo pessoal de infraestrutura.
  • 5. Princícios da metodologia SD3  Minimizar a área de ataque.  Utilizar a quantidade mínima de características que ofereçam riscos potenciais de ataque tais como: número de portas abertas, número de serviços com privilégios elevados, número de contas com privilégio de administrador.  Defaults seguros.  A instalação e a configuração em plataforma de produção segura.  Separação de código e dados.  Evitar a possibilidade do usuário efetuar entradas que mesclem código e dados, como por exemplo, caixas de texto que permitem html e javascript..  Menor privilégio.  O sistema deve ser executado no menor privilégio possível para realizar o seu trabalho. Deve-se evitar a necessidade de executar o software como administrador ou como um serviço.  Sistemas externos são inseguros.  Ao desenvolver o software considerar que todo sistema externo é inseguro, ou seja, deve-se validar a entrada de forma robusta.  Erros e falhas devem terminar de modo seguro.  Caso ocorra uma falha no sistema, deve-se terminar a rotina de modo seguro, ou seja, não se deve expor dados críticos ao informar sobre o erro.
  • 6. Processo de Desenvolvimento X Segurança  Um software seguro deve ser projetado colocando os aspectos de segurança como prioridade.  Diretrizes de Segurança:  Treinamento continuado da equipe.  Segurança planejada: devem ser definidos os objetivos de segurança de um produto já na fase de projeto.  Segurança como recurso: a segurança não deve ser considerada como um bônus ou apenas uma característica secundária desejável. Ela deve ser implementada por todo o aplicativo.  Check-in verificado: deve-se incorporar o novo código ao sistema apenas após uma verificação rígida.  Revisão interna e externa. O código deve ser revisado tanto pela equipe quanto por entidades externas, de preferência uma consultoria de segurança ou auditoria.
  • 7. Processo de Desenvolvimento X Segurança  Levantamento de Requisitos.  Requisitos Funcionais X Requisitos Não Funcionais.  Atores X Casos de Uso.  Análise e Projeto.  Metodologia de Segurança.  Framework de Segurança.  Construção.  Codificação.  Banco de Dados.  Testes.  Inspeção de Conformidade.  Análise automática de código – PMD / CheckStyle.  Implantação.  Infraestrutura Segura.
  • 8. Requisitos Funcionais X Requisitos Não Funcionais  O projeto de um sistema seguro deve incorporar a modelagem das possíveis ameças para que seja possível a implementação das proteções adequadas.  Requisitos Funcionais = as funcionalidades do sistema devem ser mapeadas (casos de uso) de forma a permitir a identificação de recursos de segurança.  Requisitos Não Funcionais = arquitetura de recursos default que dão suporte às aplicações e implementam os vários recursos de segurança.
  • 9. Requisitos Funcionais X Segurança 1. O aplicativo deve ser decomposto formalmente com o objetivo de identificar seu escopo, entradas e saídas. 2. Deve-seidentificar quais componentes ou recursos podem ser alvos de ameaças. Uma forma de se fazer isso é analisar cada item de acordo com as categorias de ameaças. 3. Classificação por risco: as ameaças devem ser classificadas de acordo com seu risco potencial. 04_DREAD.pdf 4. Elaboração da resposta: cada ameaça identificada deve ter uma resposta correspondente do sistema.
  • 10. Categorias de Ameaças  Existem vários critérios disponíveis para categorizar as ameaças – o importante é criar um critério padrão e incorporá-lo à metodologia de desenvolvimento de software.  STRIDE – Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege.  OWASP TOP 10 – As 10 vulnerabilidades de segurança mais críticas em aplicações WEB do Open Web Application Security Project. 01_Check List de Seguranca.pdf 03_OWASP_TOP_10_2007_PT-BR.pdf
  • 11. Categorias de Ameaças - STRIDE  Spoofing  Fazer-se passar por alguém.  Tampering  Modificar dados ou código.  Repudiation  Dizer que não executou uma operação.  Information Disclosure  Expor informações a pessoas não autorizadas.  Denial of Service  Negar ou degradar serviços a usuários.  Elevation of Privilege  Obter capacidades sem a autorização apropriada. 02_Stride.pdf
  • 12. Categorias de Ameaças - OWASP Top 10  1 – Cross Site Scripting.  2 – Falhas de Injeção.  3 – Execução Maliciosa de Arquivo.  4 – Referência Insegura Direta a objeto.  5 – Cross Site Request Forgery (CSRF).  6 – Vazamento de Informações e Tratamento de erros inapropriado.  7 – Furo de Autenticação e Gerência de Sessão.  8 – Armazenamento criptográfico inseguro.  9 – Comunicações Inseguras.  10 – Falha ao Restringir Acesso a URLs.
  • 13. Categorias de Ameaças - Conclusões  Determinadas ameaças são respondidas por implementações da aplicação.  Requisitos Funcionais.  Outras são respondidas por mecanismos default do framework de desenvolvimento de software.  Requisitos Não Funcionais.
  • 14. Implementações e Ferramentas  Entrada de Dados Segura.  Identificação e Autenticação de Usuários.  Hash de Senha.  Sistemas de gerenciamento de contas de usuários.  Mecanismos de autorização.  Criptografia Assimétrica.  Certificado Digital.  Autenticação do servidor.  Mecanismos de auditoria.  CAPTCHA.
  • 15. Implementações e Ferramentas  Entrada de Dados Segura.  Começa com o simples uso do atributo “maxlength” das tags de entrada de dados do HTML. O “maxlength” deve ser definido conforme o tamanho do campo no banco de dados.  Campos especiais como CNPJ, CPF e Telefone devem utilizar máscaras de entrada de dados. http://www.meiocodigo.com/projects/meiomask/  Deve-se utilizar listas drop-down, botões de rádio e checkboxes ao máximo.
  • 16. Implementações e Ferramentas  Entrada de Dados Segura.  Todos os dados passados ao servidor devem ser codificados de forma a evitar caracteres que possam fazer parte de scripts SQL ou JavaScript (Output Encoding).  Todos os dados passados ao servidor devem ser rigorosamente validados:  Validação Sintática.  Validação Semântica.  Jamais devemos utilizar instruções SQL nas páginas (mesmo JSTL-Database).  Todas as instruções SQL devem ser confinadas em classes DAO e devem utilizar PreparedStatement ou CallableStatement quando usar JDBC.  Nenhuma chamada AJAX deve acessar diretamente um DAO. Sempre utilizar um Façade como intermediário.
  • 17. Implementações e Ferramentas  Identificação e Autenticação de Usuários.  Nível 1: O que o usuário sabe?  O uso de senhas de acesso é o modelo de segurança mais simples e barato de implementar. Podemos complementá-lo com perguntas aleatórias sobre dados cadastrais a fim de dificultar a passagem da senha para uma outra pessoa.  Nivel 2: O que o usuário tem?  Cartões magnéticos, smartcards, biometria e cryptocards são opções na implementação do nível 2.  Nível 3: Onde o usuário está?  Segurança física através de câmeras, vigilantes, portas de aço são recursos de segurança quando o usuário só pode acessar o sistema em um determinado lugar.
  • 18. Implementações e Ferramentas  Hash de Senha.  Não adianta ter um sistema complexo de autenticação de usuários se a senha trafega pela rede aberta e o DBA consegue fazer um SELECT e listar todos os usuários e as senhas disponíveis.  A criptografia HASH converte a senha em uma sequencia de caracteres única, que não pode ser convertida de volta. Texto Função Original Hash B@27734f Acrescentou- Texto Função O resultado se o “.” Hash B@b66cc é outro! Original.
  • 19. Implementações e Ferramentas  Hash de Senha.  É importante que o algoritmo seja eficaz – alguns mecanismos disponíveis NÃO são seguros!  Não se deve criar algoritmos de criptografia. Somente devem ser usados algoritmos aprovados publicamente.  Não se deve usar algoritmos fracos, como MD5/SHA1. Somente devem ser usados mecanismos seguros como SHA-256 ou melhores.  Na página de login deve ser empregado um script que criptografe a senha de forma que somente o hash da senha seja transmitido e armazenado. http://code.google.com/p/crypto-js/
  • 20. Implementações e Ferramentas  Sistemas de gerenciamento de contas de usuários.  Registro de usuários.  Registro de funcionalidades.  Associação de usuários à funcionalidades.  Manutenção de políticas de segurança.  Uso de contas de administração X usuários com privilégios de administração.] 05_Modelo_de_Controle_de_Acesso.pdf
  • 21. Implementações e Ferramentas  Mecanismos de autorização.  Padrão RBAC = Role Based Access Control.  O padrão RBAC adequa-se perfeitamente aos modelos de casos de uso da UML:  Atores = Papeis (roles).  Casos de Uso = Privilégios.  Os usuários são classificados conforme os casos de uso que desempenham no sistema.  RBAC simplifica a administração por definir um nível granular mais alto para as funcionalidades do sistema.
  • 24. Implementações e Ferramentas  Criptografia Assimétrica.
  • 25. Implementações e Ferramentas  Certificado Digital.  Autoridades de Certificação (Certificate Authorities) são empresas cujas chaves-públicas são conhecidas (e até já vêm pré-instaladas no seu browser ou são mantidas internamente pela área de TI da sua empresa com alto nível de segurança) e emitem certificados que comprovam a autenticidade de sites e indivíduos.  Eles não são falsificáveis justamente porque são criados usando a chave privada da Autoridade de Certificação, que é mantida no mais absoluto sigilo.
  • 26. Implementações e Ferramentas  Autenticação do Servidor.  Alguns usuários verificam que um site pertence a uma empresa somente pelo seu endereço de domínio.  Várias empresas dão credibilidade ao seu endereço através de certificados digitais X.509.  O protocolo SSL – Secure Socket Layer é baseado nesse certificado.  O Web Container precisa implementar suporte ao certificado X.509 preferencialmente de forma declarativa.
  • 27. Implementações e Ferramentas  Autenticação do Servidor.  O SSL (Secure Socket Layer) é protocolo padrão que tanto os programas cliente como os servidores têm que utilizar em uma comunicação segura.  O SSL garante autenticação (através de certificados), integridade e confidencialidade.  O HTTPS é o mesmo protocolo HTTP, só que utiliza-se do SSL como uma camada extra de segurança.
  • 28. Implementações e Ferramentas  Mecanismos de auditoria – Requisitos:  Criação de trilhas de auditoria e alarmes.  Reconstrução de trilhas de auditoria.  Trilhas de auditoria registram o que, quem e quando.  Alarmes são triggers para determinadas funcionalidades.  A auditoria requer planejamento para que se estabeleça claramente que casos de uso requerem registro / alarmes.
  • 29. Implementações e Ferramentas  CAPTCHA é um acrônimo da expressão "Completely Automated Public Turing test to tell Computers and Humans Apart" (teste de Turing público completamente automatizado para diferenciação entre computadores e humanos).  É um teste de desafio cognitivo, utilizado como ferramenta anti-spam, desenvolvido pioneiramente na universidade de Carnegie-Mellon. http://simplecaptcha.sourceforge.net/