análise estática do framework demoiselle
DESCRIPTION
Análise Estática do Framework Demoiselle do Governo Federal com Ênfase em Segurança de Aplicações WebTRANSCRIPT
![Page 1: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/1.jpg)
12/11/09 1
UCB / UniversaLato Sensu – Sistemas Orientados a Objetos
Alexandre MenezesGisele Rodrigues
![Page 2: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/2.jpg)
12/11/09 2
Análise Estática do Framework Demoiselle do Governo Federal com Ênfase em Segurança de
Aplicações Web
![Page 3: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/3.jpg)
12/11/09 3
Agenda
1. Introdução2. Segurança mais que necessidade3. Segurança no desenvolvimento de software4. Estudo de caso5. Conclusão
![Page 4: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/4.jpg)
12/11/09 4
1. Introdução
![Page 5: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/5.jpg)
12/11/09 5
Dependência de Recursos Tecnológicos
![Page 6: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/6.jpg)
12/11/09 6
Segurança da Informação
Assegurar e proteger ativos;Mudança de Cultura e Paradigma;Integridade + Disponibilidade + Confidencialidade.
![Page 7: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/7.jpg)
12/11/09 7
2. Segurança mais que necessidade
![Page 8: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/8.jpg)
12/11/09 8
Entidades de Segurança
![Page 9: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/9.jpg)
12/11/09 9
Total de Incidentes Reportados ao Cert.br (1999 - 2009)
![Page 10: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/10.jpg)
12/11/09 10
Fatores de Risco nos Sistemas Atuais
Conectividade;Extensibilidade;Complexidade.
![Page 11: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/11.jpg)
12/11/09 11
Vulnerabilidades
OWASP Top 10 - 2007A1 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
![Page 12: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/12.jpg)
12/11/09 12
Vulnerabilidades (Softwares)
![Page 13: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/13.jpg)
12/11/09 13
3. Segurança no Desenvolvimento de Software
![Page 14: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/14.jpg)
12/11/09 14
Sistemas Seguros
Secure by design;Secure by default;Secure by deployment.
![Page 15: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/15.jpg)
12/11/09 15
Ferramentas
![Page 16: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/16.jpg)
12/11/09 16
4. Estudo de Caso
![Page 17: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/17.jpg)
12/11/09 17
Características do Projeto
Arquitetura modular;Open Source;Padronização de frameworks especialistas;Interoperabilidade e manutenibilidade.
![Page 18: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/18.jpg)
12/11/09 18
Análise Estática
Ferramentas de Análise EstáticaFerramenta Número de Alarmes
PMD 351Checkstyle 9304
Ferramentas de Análise Estática com Ênfase em Segurança
Ferramenta Número de AlarmesFindbugs 14LAPSE 2
![Page 19: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/19.jpg)
12/11/09 19
Resultados Constatados
Retorno inadequado;Validação imprópria;Utilização de Statement;Tratamento inadequado de exceção;Utilização inadequada de cookie.
![Page 20: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/20.jpg)
12/11/09 20
Conclusão
![Page 21: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/21.jpg)
12/11/09 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.
![Page 22: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/22.jpg)
12/11/09 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.
![Page 23: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/23.jpg)
12/11/09 23
Pesquisas Futuras
Realizar análise estática das APIs externas utilizadas pelo projeto;Realizar análise binária do framework.
![Page 24: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/24.jpg)
12/11/09 24
Dúvidas?
![Page 25: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/25.jpg)
12/11/09 25
Obrigado!
![Page 26: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/26.jpg)
12/11/09 26
Retorno Inadequado
public Object[] getArguments() {return this.arguments;
}
![Page 27: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/27.jpg)
12/11/09 27
Sugestão para Tratamento do Retorno Inadequado
public Objec[] getArguments(){ Object[]copyOf = Arrays.copyOf(arguments, arguments.length); return copyOf;}
![Page 28: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/28.jpg)
12/11/09 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); ...}
![Page 29: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/29.jpg)
12/11/09 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); ...}
![Page 30: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/30.jpg)
12/11/09 30
Tratamento Inadequado de Exceção
Private Field getFieldByName( A object, String name) throws PersistenceJDBCException { ...} catch (SecurityException e) { return null;}
}
![Page 31: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/31.jpg)
12/11/09 31
Sugestão para Tratamento Inadequado de Exceção
Private Field getFieldByName( A object, String name) throws PersistenceJDBCException { ...} catch (SecurityException e) { return SomeException;}
}
![Page 32: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/32.jpg)
12/11/09 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);}
![Page 33: Análise Estática do Framework Demoiselle](https://reader034.vdocuments.net/reader034/viewer/2022042518/55729cbcd8b42aae598b5225/html5/thumbnails/33.jpg)
12/11/09 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);}