R A F A E L B . B R I N H O S A
Detectando falhas de Segurança
na Web com Software Livre
Agenda
y Introdução
y Segurança na Web
y Processo Simplificado
y Descoberta
y Testes
{ Comparação de ferramentas
y Relatórios
y Correção
y Conclusões
Introdução
y Aumento do uso da Web
Segurança na Web
Cumulative count of Web application vulnerabilities
Published by IBM X-Force in January 2009.
Contornar a Segurança pode ser fácil
Desenvolver mecanismos seguros pode ser difícil
Falhas recentes
LizaMoon, Epsilon...
Softwares Proprietários
y Preço alto
y Patentes
y Poucos bugs - são extensivamente testados
y Poucos falso-positivos
y Atualizações constantes do banco de dados de
vulnerabilidades
y Relatórios Completos
Software Livre
y Ferramentas pequenas e independentes que não se
comunicam
y Mais falso-positivos e Menos IA
y Bancos de dados de vulnerabilidades menos
atualizados
y Poucos Relatórios
y Níveis de maturidade diferentes
y Alternativas melhores surgindo a cada dia
OWASP TOP 10 2010
y Lista de falhas mais críticas encontradas em aplicações
web:
y A1: Injection
y A2: Cross-Site Scripting (XSS)
y A3: Broken Authentication and Session Management
y A4: Insecure Direct Object References
y A5: Cross-Site Request Forgery (CSRF)
y A6: Security Misconfiguration
y A7: Insecure Cryptographic Storage
y A8: Failure to Restrict URL Access
y A9: Insufficient Transport Layer Protection
y A10: UnvalidatedRedirects and Forwards
Como detectá-las ou evitá-las?
Segurança no Ciclo de Desenvolvimento de
Software
Cost of Fixing Security Vulnerabilities
The Fortify data suggested that it cost 100 times more to fix a single vulnerability in operational
software than to fix it at the requirements stage.
Processo Simplificado
y Descoberta
y Testes
y Relatórios
y Correção
Descoberta
y Ferramentas
{ nmap
{ OWASP DirBuster
{ Firefox Plugin
Ù Tamper Data
Descoberta
y Sites
{ shodanhq
{ google (google hacking database)
{ Yahoo Site Explore!
y OSVDB
y Documentos
y Diagramas
y Metadados
y Arquivos descompilados
Testes de Segurança
y White Box Security Testing, Static application
security testing (SAST)
{ Manual Reviews + Code review tools
y Black Box Security Testing, Dynamic application
security testing (DAST)
{ Manual Security Testing + Automated tools
White Box Security Testing
y Graudit é um script simples e conjunto de
assinaturas que permite encontrar potenciais falhas
de segurança em código-fonte usando o grep.
y Uso: graudit /path/to/scan
y Suporta: asp, jsp, perl, php e python
JSP
y request.getQueryString
y Runtime.exec
y getRequest
y Request.GetParameter
y request.getParameter
y jsp:getProperty
y java.security.acl.acl
y response.sendRedirects*(.*(Request|request).*)
y printStacktrace
y out.print(ln)?.*[Rr]equest.
PHP
y # PHP - Database
y mysql_connects*(.*$.*)
y mysql_pconnects*(.*$.*)
y mysql_change_users*(.*$.*)
y mysql_querys*(.*$.*)
y mysql_errors*(.*$.*)
y mysql_set_charsets*(.*$.*)
y mysql_unbuffered_querys*(.*$.*)
y pg_connects*(.*$.*)
y pg_pconnects*(.*$.*)
y pg_executes*(.*$.*)
y pg_inserts*(.*$.*)
y pg_put_lines*(.*$.*)
Perl
y # Perl xss signatures
y prints*.*$.*->param(?.*)?
Black Box Security Testing
y w3af – Andrés Riancho, em Python, boa
extensibilidade
y websecurify – GNUCITIZEN, fácil de rodar
y skipfish – Google, detecta vulnerabilidades menos
comuns e é rápido
y nikto – grande base de assinaturas
y SqlMap – ataques de injeção SQL, várias
funcionalidades
w3af
y Com nmap configura target no arquivo
y ./w3af_console -s scripts/scriptosCommanding.w3af
y set targetFramework jsp
y set targetOS unix
Comparação
Vulnerabilidades encontradas por Risco
Ferramenta Alto Médio Baixo Informativas Tempo de execução total
w3af 4 1 81 18 minutos
Websecurify 4 30 segundos
Skipfish 8 2 20 2 horas e 26 minutos
Onde Treinar
S.N
o.
Vulnerable Application Platform
1 SPI Dynamics (live) ASP
2 Cenzic (live) PHP
3 Watchfire (live) ASPX
4 Acunetix 1 (live) PHP
5 Acunetix 2 (live) ASP
6 Acunetix 3 (live) ASP.Net
7 PCTechtips Challenge (live)
8 Damn Vulnerable Web
Application
PHP/MySQL
9 Mutillidae PHP
10 The Butterfly Security Project PHP
11 Hacme Casino Ruby on Rails
12 Hacme Bank 2.0 ASP.NET (2.0)
13 Updated HackmeBank ASP.NET (2.0)
14 Hacme Books J2EE
15 Hacme Travel C++ (application
client-server)
16 Hacme Shipping ColdFusion MX 7,
MySQL
17 OWASP WebGoat JAVA
18 OWASP Vicnum PHP, Perl
19 OWASP InsecureWebApp JAVA
20 OWASP SiteGenerator ASP.NET
21 Moth
22 Stanford SecuriBench JAVA
23 SecuriBench Micro JAVA
24 BadStore Perl(CGI)
25 WebMaven/Buggy Bank
(very old)
26 EnigmaGroup (live)
27 XSS Encoding Skills – x5s
(Casaba Watcher)
28 Google – Gruyere (live)
(previously Jarlsberg)
29 Exploit- DB Multi-platform
Fonte: http://securitythoughts.wordpress.com/2010/03/22/vulnerable-web-applications-for-learning/
Relatórios
y Dashboard de Segurança
y Métricas
y Lista de Vulnerabilidades
y Consolidar usando todos os resultados em XML
y CVSS
Security Dashboard
y Visilibilidade Global dos Riscos de Segurança de
Aplicações através de Métricas específicas
Security Dashboard
“You Can’t Manage What You Can’t Measure”
Security Dashboard
0%
7%
21%
3%
0%
42%
16%
0% 11%
0%
Vulnerabilities by OWASP TOP 10 2010 Classification
A1: Injection
A2: Cross-Site Scripting (XSS)
A3: Broken Authentication and Session
Management
A4: Insecure Direct Object References
A5: Cross-Site Request Forgery (CSRF)
A6: Security Misconfiguration
A7: Insecure Cryptographic Storage
A8: Failure to Restrict URL Access
A9: Insufficient Transport Layer Protection
Correção
y OWASP ESAPI
y NIST
y …
Conclusão
y Se não tiver tempo e for rodar apenas uma – w3af!
y Scan portfólio
y Integração contínua
y Garanta as correções
y Integração de Resultados
y Gerenciamento
Perguntas?
?
Referências
y OWASP:
http://www.owasp.org/index.php/Category:OWASP
_Project
y NIST:
http://csrc.nist.gov/publications/PubsSPs.html
y Web Application Security Consortium:
http://www.webappsec.org
y Security Distros: http://securitydistro.com/security-
distros/
y CVSS - Common Vulnerability Scoring System:
http://www.first.org/cvss/
Obrigado!
rafael [at] brinhosa.com.br
http://about.me/brinhosa
@brinhosa

FLISOL 2011 Novo Hamburgo - Detectando falhas de segurança na Web com Software Livre

  • 1.
    R A FA E L B . B R I N H O S A Detectando falhas de Segurança na Web com Software Livre
  • 2.
    Agenda y Introdução y Segurançana Web y Processo Simplificado y Descoberta y Testes { Comparação de ferramentas y Relatórios y Correção y Conclusões
  • 3.
  • 4.
    Segurança na Web Cumulativecount of Web application vulnerabilities Published by IBM X-Force in January 2009.
  • 5.
    Contornar a Segurançapode ser fácil
  • 6.
  • 8.
  • 9.
    Softwares Proprietários y Preçoalto y Patentes y Poucos bugs - são extensivamente testados y Poucos falso-positivos y Atualizações constantes do banco de dados de vulnerabilidades y Relatórios Completos
  • 10.
    Software Livre y Ferramentaspequenas e independentes que não se comunicam y Mais falso-positivos e Menos IA y Bancos de dados de vulnerabilidades menos atualizados y Poucos Relatórios y Níveis de maturidade diferentes y Alternativas melhores surgindo a cada dia
  • 11.
    OWASP TOP 102010 y Lista de falhas mais críticas encontradas em aplicações web: y A1: Injection y A2: Cross-Site Scripting (XSS) y A3: Broken Authentication and Session Management y A4: Insecure Direct Object References y A5: Cross-Site Request Forgery (CSRF) y A6: Security Misconfiguration y A7: Insecure Cryptographic Storage y A8: Failure to Restrict URL Access y A9: Insufficient Transport Layer Protection y A10: UnvalidatedRedirects and Forwards
  • 12.
  • 13.
    Segurança no Ciclode Desenvolvimento de Software
  • 14.
    Cost of FixingSecurity Vulnerabilities The Fortify data suggested that it cost 100 times more to fix a single vulnerability in operational software than to fix it at the requirements stage.
  • 15.
    Processo Simplificado y Descoberta yTestes y Relatórios y Correção
  • 16.
    Descoberta y Ferramentas { nmap {OWASP DirBuster { Firefox Plugin Ù Tamper Data
  • 17.
    Descoberta y Sites { shodanhq {google (google hacking database) { Yahoo Site Explore! y OSVDB y Documentos y Diagramas y Metadados y Arquivos descompilados
  • 18.
    Testes de Segurança yWhite Box Security Testing, Static application security testing (SAST) { Manual Reviews + Code review tools y Black Box Security Testing, Dynamic application security testing (DAST) { Manual Security Testing + Automated tools
  • 19.
    White Box SecurityTesting y Graudit é um script simples e conjunto de assinaturas que permite encontrar potenciais falhas de segurança em código-fonte usando o grep. y Uso: graudit /path/to/scan y Suporta: asp, jsp, perl, php e python
  • 20.
    JSP y request.getQueryString y Runtime.exec ygetRequest y Request.GetParameter y request.getParameter y jsp:getProperty y java.security.acl.acl y response.sendRedirects*(.*(Request|request).*) y printStacktrace y out.print(ln)?.*[Rr]equest.
  • 21.
    PHP y # PHP- Database y mysql_connects*(.*$.*) y mysql_pconnects*(.*$.*) y mysql_change_users*(.*$.*) y mysql_querys*(.*$.*) y mysql_errors*(.*$.*) y mysql_set_charsets*(.*$.*) y mysql_unbuffered_querys*(.*$.*) y pg_connects*(.*$.*) y pg_pconnects*(.*$.*) y pg_executes*(.*$.*) y pg_inserts*(.*$.*) y pg_put_lines*(.*$.*)
  • 22.
    Perl y # Perlxss signatures y prints*.*$.*->param(?.*)?
  • 23.
    Black Box SecurityTesting y w3af – Andrés Riancho, em Python, boa extensibilidade y websecurify – GNUCITIZEN, fácil de rodar y skipfish – Google, detecta vulnerabilidades menos comuns e é rápido y nikto – grande base de assinaturas y SqlMap – ataques de injeção SQL, várias funcionalidades
  • 24.
    w3af y Com nmapconfigura target no arquivo y ./w3af_console -s scripts/scriptosCommanding.w3af y set targetFramework jsp y set targetOS unix
  • 25.
    Comparação Vulnerabilidades encontradas porRisco Ferramenta Alto Médio Baixo Informativas Tempo de execução total w3af 4 1 81 18 minutos Websecurify 4 30 segundos Skipfish 8 2 20 2 horas e 26 minutos
  • 26.
    Onde Treinar S.N o. Vulnerable ApplicationPlatform 1 SPI Dynamics (live) ASP 2 Cenzic (live) PHP 3 Watchfire (live) ASPX 4 Acunetix 1 (live) PHP 5 Acunetix 2 (live) ASP 6 Acunetix 3 (live) ASP.Net 7 PCTechtips Challenge (live) 8 Damn Vulnerable Web Application PHP/MySQL 9 Mutillidae PHP 10 The Butterfly Security Project PHP 11 Hacme Casino Ruby on Rails 12 Hacme Bank 2.0 ASP.NET (2.0) 13 Updated HackmeBank ASP.NET (2.0) 14 Hacme Books J2EE 15 Hacme Travel C++ (application client-server) 16 Hacme Shipping ColdFusion MX 7, MySQL 17 OWASP WebGoat JAVA 18 OWASP Vicnum PHP, Perl 19 OWASP InsecureWebApp JAVA 20 OWASP SiteGenerator ASP.NET 21 Moth 22 Stanford SecuriBench JAVA 23 SecuriBench Micro JAVA 24 BadStore Perl(CGI) 25 WebMaven/Buggy Bank (very old) 26 EnigmaGroup (live) 27 XSS Encoding Skills – x5s (Casaba Watcher) 28 Google – Gruyere (live) (previously Jarlsberg) 29 Exploit- DB Multi-platform Fonte: http://securitythoughts.wordpress.com/2010/03/22/vulnerable-web-applications-for-learning/
  • 27.
    Relatórios y Dashboard deSegurança y Métricas y Lista de Vulnerabilidades y Consolidar usando todos os resultados em XML y CVSS
  • 28.
    Security Dashboard y VisilibilidadeGlobal dos Riscos de Segurança de Aplicações através de Métricas específicas
  • 29.
    Security Dashboard “You Can’tManage What You Can’t Measure”
  • 30.
    Security Dashboard 0% 7% 21% 3% 0% 42% 16% 0% 11% 0% Vulnerabilitiesby OWASP TOP 10 2010 Classification A1: Injection A2: Cross-Site Scripting (XSS) A3: Broken Authentication and Session Management A4: Insecure Direct Object References A5: Cross-Site Request Forgery (CSRF) A6: Security Misconfiguration A7: Insecure Cryptographic Storage A8: Failure to Restrict URL Access A9: Insufficient Transport Layer Protection
  • 31.
  • 32.
    Conclusão y Se nãotiver tempo e for rodar apenas uma – w3af! y Scan portfólio y Integração contínua y Garanta as correções y Integração de Resultados y Gerenciamento
  • 33.
  • 34.
    Referências y OWASP: http://www.owasp.org/index.php/Category:OWASP _Project y NIST: http://csrc.nist.gov/publications/PubsSPs.html yWeb Application Security Consortium: http://www.webappsec.org y Security Distros: http://securitydistro.com/security- distros/ y CVSS - Common Vulnerability Scoring System: http://www.first.org/cvss/
  • 35.