SlideShare uma empresa Scribd logo
UCB / Universa
           Lato Sensu – Sistemas Orientados a Objetos


                                      Alexandre Menezes
                                         Gisele Rodrigues




12/11/09                                                1
Análise Estática do Framework Demoiselle do
      Governo Federal com Ênfase em Segurança de
                      Aplicações Web




12/11/09                                             2
Agenda

    1. Introdução
    2. Segurança mais que necessidade
    3. Segurança no desenvolvimento de software
    4. Estudo de caso
    5. Conclusão




12/11/09                                          3
1. Introdução




12/11/09                   4
Dependência de Recursos Tecnológicos




12/11/09                                      5
Segurança da Informação

    Assegurar e proteger ativos;
    Mudança de Cultura e Paradigma;
    Integridade + Disponibilidade + Confidencialidade.




12/11/09                                                 6
2. Segurança mais que necessidade




12/11/09                                       7
Entidades de Segurança




12/11/09                        8
Total de Incidentes Reportados ao Cert.br (1999 - 2009)




12/11/09                                                  9
Fatores de Risco nos Sistemas Atuais

    Conectividade;
    Extensibilidade;
    Complexidade.




12/11/09                                                 10
Vulnerabilidades

                OWASP Top 10 - 2007
           A1             XSS
           A2             Injection Flaws
           A3             Malicious File Execution
           A4             Insecure Direct Object
           A5             CSRF
           A6             Information Leakage and
                          Improper Error Handling
           A7             Broken Authentication
                          and Session
                          Management
           A8             Insecure Cryptographic
           A9             Insecure
                          Communications
           A10            Failure to Restrict URL
                          Access




12/11/09                                                     11
Vulnerabilidades (Softwares)




12/11/09                             12
3. Segurança no Desenvolvimento de Software




12/11/09                                         13
Sistemas Seguros

    Secure by design;
    Secure by default;
    Secure by deployment.




12/11/09                                  14
Ferramentas




12/11/09            15
4. Estudo de Caso




12/11/09                       16
Características do Projeto

    Arquitetura modular;
    Open Source;
    Padronização de frameworks especialistas;
    Interoperabilidade e manutenibilidade.




12/11/09                                             17
Análise Estática



                Ferramentas de Análise Estática
               Ferramenta        Número de Alarmes
                  PMD                    351
                Checkstyle              9304



           Ferramentas de Análise Estática com Ênfase
                         em Segurança
               Ferramenta        Número de Alarmes
                Findbugs                 14
                 LAPSE                    2




12/11/09                                                        18
Resultados Constatados

    Retorno inadequado;
    Validação imprópria;
    Utilização de Statement;
    Tratamento inadequado de exceção;
    Utilização inadequada de cookie.




12/11/09                                         19
Conclusão




12/11/09               20
Conclusões

    Análise humana é mais eficiente;
    Ferramentas de análise estática colaboram para
    identificação de bugs, mas não devem ser a última
    palavra;
    Bugs de alto impacto.




12/11/09                                            21
Recomendações para Utilização do Projeto Demoiselle

    Substituição dos módulos de persistência até que
    seja sanado os problemas de SQL Injection;
    Utilizar cookies não persistente por padrão (Secure
    by default);
    Rever questões arquiteturais com foco em
    segurança;
    Notificar a comunidade os riscos de utilização da
    implementação padrão;
    Disponibilizar patches ou fixes para os problemas.



12/11/09                                              22
Pesquisas Futuras

    Realizar análise estática das APIs externas
    utilizadas pelo projeto;
    Realizar análise binária do framework.




12/11/09                                            23
Dúvidas?




12/11/09              24
Obrigado!




12/11/09               25
Retorno Inadequado




public Object[] getArguments() {
    return this.arguments;
}




12/11/09                                 26
Sugestão para Tratamento do Retorno Inadequado




public Objec[] getArguments(){
  Object[]copyOf =
    Arrays.copyOf(arguments,
                   arguments.length);
  return copyOf;
}




12/11/09                                               27
Validação Imprópria


public final int execute(String sql) throws
PersistenceJDBCException {
  if (sql == null) throw new
  PersistenceJDBCException("SQL is null");
  ...
  Statement st =
   JDBCUtil.getInstance().getConnection().
                      createStatement();
  result = st.executeUpdate(sql);
  ...
}




12/11/09                                    28
Sugestão para Validação Imprópria


public final int execute(String sql) throws
PersistenceJDBCException {
  String trustedQuery =
         ESAPI.encoder().encodeForSQL(
                     new OracleCodec(), sql);
  ...
  PreparedStatement pst =
      JDBCUtil.getInstance().getConnection().
      createStatementPreparedStatement();
  result = pst.executeUpdate(sql);
  ...
}



12/11/09                                        29
Tratamento Inadequado de Exceção



Private Field getFieldByName(
  A object, String name) throws
        PersistenceJDBCException {
  ...
  } catch (SecurityException e) {
      return null;
  }
}



12/11/09                                    30
Sugestão para Tratamento Inadequado de Exceção



Private Field getFieldByName(
  A object, String name) throws
        PersistenceJDBCException {
  ...
  } catch (SecurityException e) {
      return SomeException;
  }
}



12/11/09                                               31
Utilização Inadequada de Cookie




public static final void
  saveCookie(HttpServletResponse response,
String cookieName, String cookieValue,
String path) {
  int maxAge = (10000 + 3600) * 24 * 30;
  saveCookie(response, cookieName,
             cookieValue, path, maxAge);}




12/11/09                                        32
Sugestão para Utilização Inadequada de Cookie




public static final void
  saveCookie(HttpServletResponse response,
String cookieName, String cookieValue,
String path) {
  saveCookie(response, cookieName,
             cookieValue, path);}




12/11/09                                              33

Mais conteúdo relacionado

Destaque

Normas de desenho_de_máquinas__aula_4
Normas de desenho_de_máquinas__aula_4Normas de desenho_de_máquinas__aula_4
Normas de desenho_de_máquinas__aula_4
ericoprado
 
Normas de desenho_de_máquinas__aula_5
Normas de desenho_de_máquinas__aula_5Normas de desenho_de_máquinas__aula_5
Normas de desenho_de_máquinas__aula_5
ericoprado
 
Fundamentos da Cinemática I
Fundamentos da Cinemática IFundamentos da Cinemática I
Fundamentos da Cinemática I
Ubirajara Neves
 
Matrizes
MatrizesMatrizes
Matrizes
LCCIMETRO
 
Normas de desenho_de_máquinas__aula_6
Normas de desenho_de_máquinas__aula_6Normas de desenho_de_máquinas__aula_6
Normas de desenho_de_máquinas__aula_6
ericoprado
 
539 fisica estatica_dos_corpos_extensos_exercicios
539 fisica estatica_dos_corpos_extensos_exercicios539 fisica estatica_dos_corpos_extensos_exercicios
539 fisica estatica_dos_corpos_extensos_exercicios
Leonardo Paganotto
 
Equações lineares
Equações lineares Equações lineares
Equações lineares
LCCIMETRO
 
77785017 apostila-desenho-tecnico-3º-ano-faetec
77785017 apostila-desenho-tecnico-3º-ano-faetec77785017 apostila-desenho-tecnico-3º-ano-faetec
77785017 apostila-desenho-tecnico-3º-ano-faetec
Jupira Silva
 
Fundamentos da Matematica Elementar 7 geometria analítica - Lezzi, Dolce, E...
Fundamentos da Matematica Elementar 7   geometria analítica - Lezzi, Dolce, E...Fundamentos da Matematica Elementar 7   geometria analítica - Lezzi, Dolce, E...
Fundamentos da Matematica Elementar 7 geometria analítica - Lezzi, Dolce, E...
Pedro Santos
 
Estática dos fluidos - parte 1
Estática dos fluidos - parte 1Estática dos fluidos - parte 1
Estática dos fluidos - parte 1
engciviluniplan14
 
Fundamentos da Matematica Elementar 2 logaritmos
Fundamentos da Matematica Elementar 2 logaritmosFundamentos da Matematica Elementar 2 logaritmos
Fundamentos da Matematica Elementar 2 logaritmos
Pedro Santos
 
Fundamentos da Matematica Elementar 3 trigonometria
Fundamentos da Matematica Elementar 3 trigonometriaFundamentos da Matematica Elementar 3 trigonometria
Fundamentos da Matematica Elementar 3 trigonometria
Pedro Santos
 
Protec - Desenhista de máquinas - Desenho técnico
Protec - Desenhista de máquinas - Desenho técnicoProtec - Desenhista de máquinas - Desenho técnico
Protec - Desenhista de máquinas - Desenho técnico
João Ricardo Souza Modesto
 
Apresentação dos-elementos-de-máquians-unifor
Apresentação dos-elementos-de-máquians-uniforApresentação dos-elementos-de-máquians-unifor
Apresentação dos-elementos-de-máquians-unifor
Francisco Allan de O. Pereira
 
Fundamentos.de.matematica.elementar.vol.03.trigonometria
Fundamentos.de.matematica.elementar.vol.03.trigonometriaFundamentos.de.matematica.elementar.vol.03.trigonometria
Fundamentos.de.matematica.elementar.vol.03.trigonometriaCao Phan Quốc
 
38083393 01-iniciacao-ao-desenho-tecnico-exercicios
38083393 01-iniciacao-ao-desenho-tecnico-exercicios38083393 01-iniciacao-ao-desenho-tecnico-exercicios
38083393 01-iniciacao-ao-desenho-tecnico-exercicios
Marco Aurélio dos Santos Bernardes
 
Desenho de máquinas
Desenho de máquinasDesenho de máquinas
Desenho de máquinas
Diego Santos
 
Álgebra linear e geometria analítica 2ª edição
Álgebra linear e geometria analítica 2ª ediçãoÁlgebra linear e geometria analítica 2ª edição
Álgebra linear e geometria analítica 2ª edição
Rangel Victor
 
Fundamentos da Matematica Elementar 4 sequências, matrizes, determinantes, , ...
Fundamentos da Matematica Elementar 4 sequências, matrizes, determinantes, , ...Fundamentos da Matematica Elementar 4 sequências, matrizes, determinantes, , ...
Fundamentos da Matematica Elementar 4 sequências, matrizes, determinantes, , ...
Pedro Santos
 
Fundamentos de matemática elementar vol 03 - trigonometria - gelson iezzi
Fundamentos de matemática elementar   vol 03 - trigonometria - gelson iezziFundamentos de matemática elementar   vol 03 - trigonometria - gelson iezzi
Fundamentos de matemática elementar vol 03 - trigonometria - gelson iezzi
lucasrdoliveira
 

Destaque (20)

Normas de desenho_de_máquinas__aula_4
Normas de desenho_de_máquinas__aula_4Normas de desenho_de_máquinas__aula_4
Normas de desenho_de_máquinas__aula_4
 
Normas de desenho_de_máquinas__aula_5
Normas de desenho_de_máquinas__aula_5Normas de desenho_de_máquinas__aula_5
Normas de desenho_de_máquinas__aula_5
 
Fundamentos da Cinemática I
Fundamentos da Cinemática IFundamentos da Cinemática I
Fundamentos da Cinemática I
 
Matrizes
MatrizesMatrizes
Matrizes
 
Normas de desenho_de_máquinas__aula_6
Normas de desenho_de_máquinas__aula_6Normas de desenho_de_máquinas__aula_6
Normas de desenho_de_máquinas__aula_6
 
539 fisica estatica_dos_corpos_extensos_exercicios
539 fisica estatica_dos_corpos_extensos_exercicios539 fisica estatica_dos_corpos_extensos_exercicios
539 fisica estatica_dos_corpos_extensos_exercicios
 
Equações lineares
Equações lineares Equações lineares
Equações lineares
 
77785017 apostila-desenho-tecnico-3º-ano-faetec
77785017 apostila-desenho-tecnico-3º-ano-faetec77785017 apostila-desenho-tecnico-3º-ano-faetec
77785017 apostila-desenho-tecnico-3º-ano-faetec
 
Fundamentos da Matematica Elementar 7 geometria analítica - Lezzi, Dolce, E...
Fundamentos da Matematica Elementar 7   geometria analítica - Lezzi, Dolce, E...Fundamentos da Matematica Elementar 7   geometria analítica - Lezzi, Dolce, E...
Fundamentos da Matematica Elementar 7 geometria analítica - Lezzi, Dolce, E...
 
Estática dos fluidos - parte 1
Estática dos fluidos - parte 1Estática dos fluidos - parte 1
Estática dos fluidos - parte 1
 
Fundamentos da Matematica Elementar 2 logaritmos
Fundamentos da Matematica Elementar 2 logaritmosFundamentos da Matematica Elementar 2 logaritmos
Fundamentos da Matematica Elementar 2 logaritmos
 
Fundamentos da Matematica Elementar 3 trigonometria
Fundamentos da Matematica Elementar 3 trigonometriaFundamentos da Matematica Elementar 3 trigonometria
Fundamentos da Matematica Elementar 3 trigonometria
 
Protec - Desenhista de máquinas - Desenho técnico
Protec - Desenhista de máquinas - Desenho técnicoProtec - Desenhista de máquinas - Desenho técnico
Protec - Desenhista de máquinas - Desenho técnico
 
Apresentação dos-elementos-de-máquians-unifor
Apresentação dos-elementos-de-máquians-uniforApresentação dos-elementos-de-máquians-unifor
Apresentação dos-elementos-de-máquians-unifor
 
Fundamentos.de.matematica.elementar.vol.03.trigonometria
Fundamentos.de.matematica.elementar.vol.03.trigonometriaFundamentos.de.matematica.elementar.vol.03.trigonometria
Fundamentos.de.matematica.elementar.vol.03.trigonometria
 
38083393 01-iniciacao-ao-desenho-tecnico-exercicios
38083393 01-iniciacao-ao-desenho-tecnico-exercicios38083393 01-iniciacao-ao-desenho-tecnico-exercicios
38083393 01-iniciacao-ao-desenho-tecnico-exercicios
 
Desenho de máquinas
Desenho de máquinasDesenho de máquinas
Desenho de máquinas
 
Álgebra linear e geometria analítica 2ª edição
Álgebra linear e geometria analítica 2ª ediçãoÁlgebra linear e geometria analítica 2ª edição
Álgebra linear e geometria analítica 2ª edição
 
Fundamentos da Matematica Elementar 4 sequências, matrizes, determinantes, , ...
Fundamentos da Matematica Elementar 4 sequências, matrizes, determinantes, , ...Fundamentos da Matematica Elementar 4 sequências, matrizes, determinantes, , ...
Fundamentos da Matematica Elementar 4 sequências, matrizes, determinantes, , ...
 
Fundamentos de matemática elementar vol 03 - trigonometria - gelson iezzi
Fundamentos de matemática elementar   vol 03 - trigonometria - gelson iezziFundamentos de matemática elementar   vol 03 - trigonometria - gelson iezzi
Fundamentos de matemática elementar vol 03 - trigonometria - gelson iezzi
 

Semelhante a Análise Estática do Framework Demoiselle

MobileConf2013 - Desenvolvimento Mobile Seguro
MobileConf2013 - Desenvolvimento Mobile SeguroMobileConf2013 - Desenvolvimento Mobile Seguro
MobileConf2013 - Desenvolvimento Mobile Seguro
Augusto Marinho
 
(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?
KeySupport Consultoria e Informática Ltda
 
(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?
Eduardo Lanna
 
Segurança de Redes
Segurança de RedesSegurança de Redes
Segurança de Redes
Cassio Ramos
 
Você confia nas suas aplicações mobile?
Você confia nas suas aplicações mobile?Você confia nas suas aplicações mobile?
Você confia nas suas aplicações mobile?
Conviso Application Security
 
[Farol UX Santander] Segurança vs UX: Qual relação do usuário com a segur...
[Farol UX Santander] Segurança vs UX: Qual relação do usuário com a segur...[Farol UX Santander] Segurança vs UX: Qual relação do usuário com a segur...
[Farol UX Santander] Segurança vs UX: Qual relação do usuário com a segur...
Rafael Burity
 
Splunk live produban
Splunk live produbanSplunk live produban
Splunk live produban
Splunk
 
(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
Eduardo Lanna
 
(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
KeySupport Consultoria e Informática Ltda
 
[Ifood] Segurança vs UX: Qual relação do usuário com a segurança do sistema
[Ifood] Segurança vs UX: Qual relação do usuário com a segurança do sistema[Ifood] Segurança vs UX: Qual relação do usuário com a segurança do sistema
[Ifood] Segurança vs UX: Qual relação do usuário com a segurança do sistema
Rafael Burity
 
Antar ferreira
Antar ferreiraAntar ferreira
Antar ferreira
Antar Ferreira
 
Secure Any Cloud
Secure Any CloudSecure Any Cloud
Secure Any Cloud
Alexandre Freire
 
(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
KeySupport Consultoria e Informática Ltda
 
(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
Eduardo Lanna
 
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoDesenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Clavis Segurança da Informação
 
Auditoria em Mainframe. (Eugênio Fernandes)
Auditoria em Mainframe. (Eugênio Fernandes)Auditoria em Mainframe. (Eugênio Fernandes)
Auditoria em Mainframe. (Eugênio Fernandes)
Joao Galdino Mello de Souza
 
Análise de Vulnerabilidades em Aplicações na Web Nacional
Análise de Vulnerabilidades em Aplicações na Web NacionalAnálise de Vulnerabilidades em Aplicações na Web Nacional
Análise de Vulnerabilidades em Aplicações na Web Nacional
Carlos Serrao
 
Segurança em desenvolvimento de software
Segurança em desenvolvimento de softwareSegurança em desenvolvimento de software
Segurança em desenvolvimento de software
Jeronimo Zucco
 
Webinar Segurança de DevOps
Webinar Segurança de DevOpsWebinar Segurança de DevOps
Webinar Segurança de DevOps
Tenchi Security
 
Desenvolvimento Seguro Android GDG RIO
Desenvolvimento Seguro Android GDG RIODesenvolvimento Seguro Android GDG RIO
Desenvolvimento Seguro Android GDG RIO
Augusto Marinho
 

Semelhante a Análise Estática do Framework Demoiselle (20)

MobileConf2013 - Desenvolvimento Mobile Seguro
MobileConf2013 - Desenvolvimento Mobile SeguroMobileConf2013 - Desenvolvimento Mobile Seguro
MobileConf2013 - Desenvolvimento Mobile Seguro
 
(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?
 
(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?
 
Segurança de Redes
Segurança de RedesSegurança de Redes
Segurança de Redes
 
Você confia nas suas aplicações mobile?
Você confia nas suas aplicações mobile?Você confia nas suas aplicações mobile?
Você confia nas suas aplicações mobile?
 
[Farol UX Santander] Segurança vs UX: Qual relação do usuário com a segur...
[Farol UX Santander] Segurança vs UX: Qual relação do usuário com a segur...[Farol UX Santander] Segurança vs UX: Qual relação do usuário com a segur...
[Farol UX Santander] Segurança vs UX: Qual relação do usuário com a segur...
 
Splunk live produban
Splunk live produbanSplunk live produban
Splunk live produban
 
(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
 
(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
 
[Ifood] Segurança vs UX: Qual relação do usuário com a segurança do sistema
[Ifood] Segurança vs UX: Qual relação do usuário com a segurança do sistema[Ifood] Segurança vs UX: Qual relação do usuário com a segurança do sistema
[Ifood] Segurança vs UX: Qual relação do usuário com a segurança do sistema
 
Antar ferreira
Antar ferreiraAntar ferreira
Antar ferreira
 
Secure Any Cloud
Secure Any CloudSecure Any Cloud
Secure Any Cloud
 
(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
 
(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
 
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoDesenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
 
Auditoria em Mainframe. (Eugênio Fernandes)
Auditoria em Mainframe. (Eugênio Fernandes)Auditoria em Mainframe. (Eugênio Fernandes)
Auditoria em Mainframe. (Eugênio Fernandes)
 
Análise de Vulnerabilidades em Aplicações na Web Nacional
Análise de Vulnerabilidades em Aplicações na Web NacionalAnálise de Vulnerabilidades em Aplicações na Web Nacional
Análise de Vulnerabilidades em Aplicações na Web Nacional
 
Segurança em desenvolvimento de software
Segurança em desenvolvimento de softwareSegurança em desenvolvimento de software
Segurança em desenvolvimento de software
 
Webinar Segurança de DevOps
Webinar Segurança de DevOpsWebinar Segurança de DevOps
Webinar Segurança de DevOps
 
Desenvolvimento Seguro Android GDG RIO
Desenvolvimento Seguro Android GDG RIODesenvolvimento Seguro Android GDG RIO
Desenvolvimento Seguro Android GDG RIO
 

Último

História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 

Último (8)

História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 

Análise Estática do Framework Demoiselle

  • 1. UCB / Universa Lato Sensu – Sistemas Orientados a Objetos Alexandre Menezes Gisele Rodrigues 12/11/09 1
  • 2. Análise Estática do Framework Demoiselle do Governo Federal com Ênfase em Segurança de Aplicações Web 12/11/09 2
  • 3. Agenda 1. Introdução 2. Segurança mais que necessidade 3. Segurança no desenvolvimento de software 4. Estudo de caso 5. Conclusão 12/11/09 3
  • 5. Dependência de Recursos Tecnológicos 12/11/09 5
  • 6. Segurança da Informação Assegurar e proteger ativos; Mudança de Cultura e Paradigma; Integridade + Disponibilidade + Confidencialidade. 12/11/09 6
  • 7. 2. Segurança mais que necessidade 12/11/09 7
  • 9. Total de Incidentes Reportados ao Cert.br (1999 - 2009) 12/11/09 9
  • 10. Fatores de Risco nos Sistemas Atuais Conectividade; Extensibilidade; Complexidade. 12/11/09 10
  • 11. Vulnerabilidades OWASP Top 10 - 2007 A1 XSS A2 Injection Flaws A3 Malicious File Execution A4 Insecure Direct Object A5 CSRF A6 Information Leakage and Improper Error Handling A7 Broken Authentication and Session Management A8 Insecure Cryptographic A9 Insecure Communications A10 Failure to Restrict URL Access 12/11/09 11
  • 13. 3. Segurança no Desenvolvimento de Software 12/11/09 13
  • 14. Sistemas Seguros Secure by design; Secure by default; Secure by deployment. 12/11/09 14
  • 16. 4. Estudo de Caso 12/11/09 16
  • 17. Características do Projeto Arquitetura modular; Open Source; Padronização de frameworks especialistas; Interoperabilidade e manutenibilidade. 12/11/09 17
  • 18. Análise Estática Ferramentas de Análise Estática Ferramenta Número de Alarmes PMD 351 Checkstyle 9304 Ferramentas de Análise Estática com Ênfase em Segurança Ferramenta Número de Alarmes Findbugs 14 LAPSE 2 12/11/09 18
  • 19. Resultados Constatados Retorno inadequado; Validação imprópria; Utilização de Statement; Tratamento inadequado de exceção; Utilização inadequada de cookie. 12/11/09 19
  • 21. Conclusões Análise humana é mais eficiente; Ferramentas de análise estática colaboram para identificação de bugs, mas não devem ser a última palavra; Bugs de alto impacto. 12/11/09 21
  • 22. Recomendações para Utilização do Projeto Demoiselle Substituição dos módulos de persistência até que seja sanado os problemas de SQL Injection; Utilizar cookies não persistente por padrão (Secure by default); Rever questões arquiteturais com foco em segurança; Notificar a comunidade os riscos de utilização da implementação padrão; Disponibilizar patches ou fixes para os problemas. 12/11/09 22
  • 23. Pesquisas Futuras Realizar análise estática das APIs externas utilizadas pelo projeto; Realizar análise binária do framework. 12/11/09 23
  • 26. Retorno Inadequado public Object[] getArguments() { return this.arguments; } 12/11/09 26
  • 27. Sugestão para Tratamento do Retorno Inadequado public Objec[] getArguments(){ Object[]copyOf = Arrays.copyOf(arguments, arguments.length); return copyOf; } 12/11/09 27
  • 28. Validação Imprópria public final int execute(String sql) throws PersistenceJDBCException { if (sql == null) throw new PersistenceJDBCException("SQL is null"); ... Statement st = JDBCUtil.getInstance().getConnection(). createStatement(); result = st.executeUpdate(sql); ... } 12/11/09 28
  • 29. Sugestão para Validação Imprópria public final int execute(String sql) throws PersistenceJDBCException { String trustedQuery = ESAPI.encoder().encodeForSQL( new OracleCodec(), sql); ... PreparedStatement pst = JDBCUtil.getInstance().getConnection(). createStatementPreparedStatement(); result = pst.executeUpdate(sql); ... } 12/11/09 29
  • 30. Tratamento Inadequado de Exceção Private Field getFieldByName( A object, String name) throws PersistenceJDBCException { ... } catch (SecurityException e) { return null; } } 12/11/09 30
  • 31. Sugestão para Tratamento Inadequado de Exceção Private Field getFieldByName( A object, String name) throws PersistenceJDBCException { ... } catch (SecurityException e) { return SomeException; } } 12/11/09 31
  • 32. Utilização Inadequada de Cookie public static final void saveCookie(HttpServletResponse response, String cookieName, String cookieValue, String path) { int maxAge = (10000 + 3600) * 24 * 30; saveCookie(response, cookieName, cookieValue, path, maxAge);} 12/11/09 32
  • 33. Sugestão para Utilização Inadequada de Cookie public static final void saveCookie(HttpServletResponse response, String cookieName, String cookieValue, String path) { saveCookie(response, cookieName, cookieValue, path);} 12/11/09 33