SlideShare uma empresa Scribd logo
1 de 55
Palestra de Desenvolvimento de Aplicações Web Seguras Prof. Dércio Luiz Reis, Dr*
Porque segurança de aplicações é prioridade? Aplicações web são o foco número 1 dos hackers: 75% dos ataques acontecem na camada da aplicação (Gartner) A maior parte das páginas web estão vulneráveis: 90% dos sites são vulneráveis à ataques na aplicação (Watchfire) 78% das vulnerabilidadesfacilmenteexploráveisafetamaplicações Web (Symantec) 09/06/2010 Prof. Dércio Luiz Reis, Dr* 2
Porque segurança de aplicações é prioridade? 80% das organizações irão experimentar um incidente em segurança de aplicações até 2010 (Gartner) Aplicações web são alvos de alto valor para hackers: Dados de clientes, cartão de crédito, roubo de identidade, fraude, etc. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 3
Porque segurança de aplicações é prioridade? No Brasil 13% das empresas que sofreram ataques tiveram prejuízos que ultrapassam R$ 1 Milhão (Módulo); Estudo realizado com 200 empresas brasileiras afirma que : 67,5% sofreram algum tipo de ataquenosúltimos 12 meses (ISS); Instituiçõesfinanceirasnacionaistêmsofrido até 100 ataques frustrados por dia. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 4
Principaiscausas de vulnerabilidades 09/06/2010 Prof. Dércio Luiz Reis, Dr* 5 Principal problema de segurança Usuários podem  submeter  dados  de entradaarbitrários Principaissinais de problemas: – Imaturidadeemsegurança; – Desenvolvimentoin-house; – Percepção de simplicidade; – Restrições de recursos e tempo; – Mau uso de tecnologias.
O Mito: Nosso site está seguro? Firewall; Network  Scanners; Auditorias de Segurança. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 6
Arquiteturabásica de segurança 09/06/2010 Prof. Dércio Luiz Reis, Dr* 7
Proteções para o ambiente web 09/06/2010 Prof. Dércio Luiz Reis, Dr* 8
A Realidade: Segurança e gastos estão desequilibrados 09/06/2010 Prof. Dércio Luiz Reis, Dr* 9
É assim que uma aplicação parece para um hacker 09/06/2010 Prof. Dércio Luiz Reis, Dr* 10
TOP 10 vulnerabilidade de aplicações Web 09/06/2010 11 Prof. Dércio Luiz Reis, Dr*
Tabela de Riscos 09/06/2010 Prof. Dércio Luiz Reis, Dr* 12
Comparação da Lista OWASP 09/06/2010 Prof. Dércio Luiz Reis, Dr* 13
TOP 10 vulnerabilidade de aplicações Web 09/06/2010 Prof. Dércio Luiz Reis, Dr* 14
TOP 10 vulnerabilidade de aplicações Web 09/06/2010 Prof. Dércio Luiz Reis, Dr* 15
TOP 10 vulnerabilidade de aplicações Web 09/06/2010 Prof. Dércio Luiz Reis, Dr* 16
Tendências e Vulnerabilidades do MITRE 09/06/2010 Prof. Dércio Luiz Reis, Dr* 17
Alguns Problemas descartados no estudo do OWASP (Open Web Application Security Project) TOP 10 Entrada de dados não validados é o maior desafio para  qualquer time de desenvolvimento e é a origem dos problemas de segurança de muitas aplicações. A recomendação é criar um mecanismo de validação centralizado como parte de sua aplicação. Para maiores informações, leia os seguintes documentos de validação de dados da OWASP: http://www.owasp.org/index.php/Data_Validation http://www.owasp.org/index.php/Testing_for_Data_Validation  09/06/2010 Prof. Dércio Luiz Reis, Dr* 18
Alguns Problemas descartados no estudo do OWASP (Open Web Application Security Project) TOP 10 Problemas de estouro de pilhas, estouro de inteiros e formato de strings são  vulnerabilidades extremamente sérias para programas escritos em linguagem C ou C++. A remediação para estes tipos de problemas são tratados por comunidades de segurança de aplicações tradicionais, como o SANS, CERT e pelos fornecedores de linguagem de programação.  Se o código é escrito em uma linguagem que é passível a estouros de pilha, recomenda-se ler os conteúdos a este respeito no site da OWASP: http://www.owasp.org/index.php/Buffer_overflow  http://www.owasp.org/index.php/Testing_for_Buffer_Overflow 09/06/2010 Prof. Dércio Luiz Reis, Dr* 19
Alguns Problemas descartados no estudo do OWASP (Open Web Application Security Project) TOP 10 Gerenciamento de configuração insegura afeta todos os sistemas em alguma extensão, particularmente o PHP.  Quando implementando sua aplicação, você deve consultar a última versão do OWASP Guide e o OWASP testingGuide para informações detalhadas a respeito do gerenciamento de configuração segura e testes: http://www.owasp.org/index.php/Configuration http://www.owasp.org/index.php/Testing_for_infrastructure_configuration_management 09/06/2010 Prof. Dércio Luiz Reis, Dr* 20
Vulnerabilidades Considerando que o desenvolvedor observe os pontos abordados pelo documento será possível verificar uma redução direta nos seguintes pontos: Ataques de phishing, que podem explorar qualquer uma dessas vulnerabilidades, particularmente, XSS e problemas de autenticação e autorização (A1,A4,A7,A10) Violação de privacidadedevido à validação fraca, regras de negócio e verificações de autorização fracas (A2, A4, A6, A7, A10) Roubo de identidade por meio de controles de criptografia fracos ou não existentes (A8 e A9), inclusão de arquivo remoto (A3) e autenticação, regras de negócio e verificação de autorização (A4, A7, A10) 09/06/2010 Prof. Dércio Luiz Reis, Dr* 21
POR QUE CONSIDERAR ALGUNS PROBLEMAS IMPORTANTES Cross Site RequestForgery (CSRF) é a maior nova inclusão da edição do OWASP Top 10. Embora ocupe a 36ª posição na classificação original, acredita-se que ela seja de tamanha importância, que as aplicações devem iniciar seus esforços de proteção hoje, particularmente para aplicações de alto risco e criticidade. O CSRF é mais prevalente do que sua atual classificação e pode ser mais perigoso. Criptografia. O uso incorreto da criptografia não ocupam as posições 8 e 9 da classificação, conforme as informações do MITRE, porém representam a origem de muitos problemas de quebra de privacidade e conformidade (particularmente a  conformidade com o PCI DSS 1.1). 09/06/2010 Prof. Dércio Luiz Reis, Dr* 22
VULNERABILIDADES, NÃO ATAQUES O foco é unicamente em vulnerabilidades, embora a terminologia utilizada comumente combine vulnerabilidades e ataques. Se as organizações usam este documento para tornar suas aplicações seguras e, consequentemente, reduzir o risco para seus negócios, será possível observar uma redução direta nos seguintes pontos: 09/06/2010 Prof. Dércio Luiz Reis, Dr* 23
VULNERABILIDADES, NÃO ATAQUES Ataques de phishing, que podem explorar qualquer uma dessas vulnerabilidades, particularmente, XSS e problemas de autenticação e autorização (A1,A4,A7,A10) Violação de privacidade devido à validação fraca, regras de negócio e verificações de autorização fracas (A2, A4, A6, A7, A10) Roubo de identidade por meio de controles de criptografia fracos ou não existentes (A8 e A9), inclusão de arquivo remoto (A3) e autenticação, regras de negócio e verificação de autorização (A4, A7, A10) 09/06/2010 Prof. Dércio Luiz Reis, Dr* 24
Vulnerabilidades Comprometimento de sistema, alteração de informações e destruição de dados por ataques de injeção (A2) e inclusão de arquivo remoto (A3) Perda financeira por meio de transações não autorizadas e ataques CSRF (A4, A5, A7, A10) Perda de reputação devido à exploração de qualquer uma das vulnerabilidades acima (A1 à A10) 09/06/2010 Prof. Dércio Luiz Reis, Dr* 25
Exemplos 09/06/2010 Prof. Dércio Luiz Reis, Dr* 26
#1 – Cross Site Scripting (XSS) O que é?  – Script malicioso ecoado de volta, embutido no código HTML retornado de um site confiável; Quaissão as implicações? – Sequestro de sessões; – Atacantes podem executar scripts no navegador da vítima; – Conteúdodapáginacomprometido; – Introduzir worms. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 27
#1 – Cross Site Scripting (XSS) 09/06/2010 Prof. Dércio Luiz Reis, Dr* 28
#2 – SQL Injection (Injection Flaws) 09/06/2010 Prof. Dércio Luiz Reis, Dr* 29
#3 – Cross Site Request Forgery (CSRF) O que é?     Transmite e executa comandos maliciosos entre sites  sem que o usuário perceba. Quaissão as implicações?      - Roubo de informações do usuário, como cookies  e sessões;      - Possibilidade de executar transações entre sites os  quais o usuário esteja autenticado;      - Risco se agrava quando o tempo de expiração de sessão é muitolongo. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 30
Quais preocupações os profissionais de T.I. devem ter ? O que os desenvolvedores e testadores da minha organização sabem sobre segurança da informação? • Eles têm meios de prevenir vulnerabilidades? • Apesar de nosso investimento em segurança de rede, será querealmenteestamosseguros? • Ainda que esteja seguro hoje, tenho como garantir que não haverá falhas de segurança no futuro? 09/06/2010 Prof. Dércio Luiz Reis, Dr* 31
Segurança: Parte do Cliclo de Vida 09/06/2010 Prof. Dércio Luiz Reis, Dr* 32
Testes de Segurança 09/06/2010 Prof. Dércio Luiz Reis, Dr* 33 Atuação de Softwares de Segurança
PROTEÇÃO Tendo o tempo para planejar a autorização criando uma matriz para mapear as regras e as funções da aplicação é o passo primordial para alcançar a proteção contra acessos não autorizados. Aplicações web devem garantir controle de acesso em cada URL e funções de negócio. Não é suficiente colocar o controle de acesso na camada de apresentação e deixar a regra de negócio desprotegida. Também não é suficiente verificar uma vez o usuário autorizado e não verificar novamente nos passos seguintes. De outra forma, um atacante pode simplesmente burlar o passo onde a autorização é verificada e forjar o valor do parâmetro necessário e continuar no passo seguinte. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 34
PROTEÇÃO Garanta que a matriz do controle de acesso é parte do negócio, da arquitetura e do design daaplicação; Garanta que todas URLs e funções de negócio são protegidas por um mecanismo de controle de acesso efetivo que verifique as funções e direitos do usuário antes que qualquer processamento ocorra. Certifique-se que este processo é realizado em todos os passos do fluxo e não apenas no passo inicial de um processo, pois pode haver vários passos a seremverificados; 09/06/2010 Prof. Dércio Luiz Reis, Dr* 35
PROTEÇÃO Realize um teste invasão (penetrationtest) antes do código entrar em produção a fim de garantir que a aplicação não poderá ser utilizada de má fé por um atacante motivado ou com conhecimentos avançados. Preste muita atenção em arquivos de  includes/bibliotecas, especialmente se eles possuem extensões executáveis como .php. Sempre que possível, devem ser mantidos fora da raiz web. Devem ser  verificados se não estão sendo acessados diretamente, porexemplo, verificando por uma constante que pode somente ser criada através de uma biblioteca do chamador. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 36
PROTEÇÃO Não suponha que usuários não estarão atentos ao acessar URLs ou APIs escondidas ou especiais. Sempre se assegure que ações com privilégios altos e administrativos estarão protegidos. Bloqueie acesso a todos os tipos de arquivos que a sua aplicação não deva executar. Este filtro deve seguir a abordagem “acceptknowngood” na qual apenas são permitidos tipos de arquivos que a aplicação deva executar, como por exemplo .html .pdf, .php. Isto irá bloquear qualquer tentativa de acesso a arquivos de log, arquivos XML, entre outros, aos quais se espera nunca serem executados diretamente. Mantenha o antivírus e as correções de segurança atualizados para componentes como processadores XML, processadores de texto, processadores de imagem, entre outros que manipulam arquivos fornecidos por usuários. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 37
RECOMENDAÇÕES AOS DESENVOLVEDORES Para garantir uma segurança efetiva no desenvolvimento de aplicações Web requer muita experiência, pois qualquer leigo pode atacar um sistema. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 38
RECOMENDAÇÕES AOS DESENVOLVEDORES Faça parte da comunidade e OWASP e freqüente as reuniões regionais. Procure por treinamentos sobre desenvolvimento de código seguro. Desenvolva suas aplicações com segurança, Crie códigos simples e com profunda segurança. Desenvolva com aplicações que favoreçam a segurança do código. Reconstrua o código de forma segura de acordo com a sua plataforma utilizando pesquisasotimizadas. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 39
RECOMENDAÇÕES AOS DESENVOLVEDORES Leia o guia OWASP e comece a aplicar controles mais seguros a seu código, diferente do outros guias ele é desenvolvido para ajudá-lo a criar aplicações seguras e não a quebrá-las. Faça os testes de segurança e defeitos do seu código e torne esta prática constante no seudia-a-dia. Revise o livro de referências e veja se existem opções que se aplicam ao seu ambiente de trabalho. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 40
Ferramentas Free (Instalação) A utilização dos softwares apresentados em seguida destinam-se ao teste e verificação de vulnerabilidades  de segurança e seu dependerá do contexto e da necessidade de verificação da segurança dos aplicativos. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 41
Firefox  Instalando o Firefox O Firefox web browser  com sua arquitetura extensível add-on, é o melhor browser para teste de segurança de aplicações Web. A recomendação é que ele seja utilizado como o browser padrão do seu sistema.   Proceda o download e complete sua instalação. Visite  www.mozilla.com  Mesmo que sua aplicação não seja especificamente escrita para compatibilidade com o Firefox, os aspectos de seguranças podem ser verificados por ele. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 42
Firefox Extensions As extensões do Firefox permitem adicionar várias funcionalidades ao Firefox.  Recomendamos  algumas extensões em particular para teste de segurança de aplicações. Recomenda-se as seguintes Extensões : View source Chart https://addons.mozzila.org/en-US/firefox/addon/655  Firebug https://addons.mozzila.org/en-US/firefox/addon/1843 Tamper Data https://addons.mozzila.org/en-US/firefox/addon/966 Edit Cookies https://addons.mozzila.org/en-US/firefox/addon/4510 UserAgent Switch https://addons.mozzila.org/en-US/firefox/addon/59 Switch Proxy https://addons.mozzila.org/en-US/firefox/addon/125 09/06/2010 Prof. Dércio Luiz Reis, Dr* 43
Firebug Talvez seja a extensão mais utilizada  do Firefox e oferece uma variedade de funções que são empregadas para atender diversas finalidades. Quando ativa mostra um círculo pequeno indicando que está instalado.  Se o círculo estiver verde indica que o Firebug está rodando e não encontrou erros na página.  Se estiver vermelho indica que está rodando e foram encontrados erros no Java Script e se estiver cinza indica que o Firebug está desativado; É considerado o canivete suiço no desenvolvimento e testes de aplicações Web; Auxilia na escrita de códigos HTML, JavaScript e DocumentObjectModel (DOM); Não salva as alterações no servidor que só ficam válidas durante a sua execução. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 44
OSWASP’sWebScarab Popular Web Proxy para teste de segurança de aplicações Web.   Web Proxies são vitais para a interceptação de requisições e respostas entre o browser  e  o  servidor. Existem diversas formas de instalar o WebScarab, mas recomenda-se  a versão  Java Web Start ou a versão Standalone.  Estas versões facilitam a a cópia para o ambiente de teste sem a necessidade de uma instalação completa. Está disponível no site da Owasp. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 45
Instalação de Perl e pacotes no Windows É considerada  a  duct tape  (algo como o remendo) das linguagens de programação.   Esta visão está ligada ao fato de não ser uma linguagem elegante mas que cumpre sua função de forma rápida;   Muito utilizada para automatizar cases de teste de segurança automatizado; Pode ser instalada em ambiente Unix ou Windows e existem diferentes formas de instalação; Active Perl (permite execução em commandpropmpt) vem junto como Perl Package Manager. Alguns sistemas operacionais (fora Windows) podem vir com o Perl instalado.  Porém pode ser necessário compilar o fonte do Perl (por exemplo se você tem o sistemas 64 bits). 09/06/2010 Prof. Dércio Luiz Reis, Dr* 46
CAL9000 Incorpora uma grande quantidade de ferramentas de segurança em um único “pacote”.  É uma ferramenta típica de hackercontendo uma variedade de truques; Com esse aplicativo é possível ajuda para identificar problemas e corrigir a partir de uma variedade de testes durante a execução dos aplicativos. No Firefox vá para : http://www.owasp.org/index.php/Category:OWASP_9000_Project Faça o download e descompacte  no diretório desejado.  Execute o CAL9000.html no Firefox para abrir a aplicação; Não exige instalação ou requer direitos de acesso.  Pode rodar localmente ou em um servidor ou outra máquina. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 47
ViewStateDecoder Aplicações Web escritas em ASP.NET incluem uma variável escondida chamada ViewState em cada uma de suas páginas.  Esta variável mantém os dados entre requisições HTTP. Esta ferramenta é executável no Windows e considerada complexa; O objetivo é verificar se o desenvolvedor não enviou ao cliente informações demais e inapropriadas como (registros internos, detalhes de conexão a banco de dados ou registros de debug).  Este é um teste básico de segurança. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 48
cURL Esta ferramenta é um utilitário de linha de comando que suporta um array de protocolos Web e componentes. Pode ser usado como um browser sem browser pois implementa as mesmas  características dos browsers e pode ser chamado em uma linha de comando a partir de um shell; Manuseia cookies, autenticação e protocolos Web melhor do que qualquer outra ferramenta de linha de comando. Para instalar vá até http://curl.haxx.se/download.html  09/06/2010 Prof. Dércio Luiz Reis, Dr* 49
Pornzilla Não é uma ferramenta individual e sim uma coleção de bookmarklets e extensões do Firefox,  Provê um conveniente número de ferramentas usadas em testes de segurança em aplicações Web; Todos os componentes podem ser encontrados em http://www.squarefree.com/pornzilla  Para instalar o bookmarklet simplesmente arraste e solte o link em sua barra de ferramentas ou organizador de bookmark; Para instalar a extensão siga os links e instale como qualquer outra extensão Firefox; 09/06/2010 Prof. Dércio Luiz Reis, Dr* 50
Cygwin Esta ferramenta permite que utilitários e scripts construídos para rodas em Linux possam ser executados em Windows sem uma instalação full do Linux; É necessário instalar outras ferramentas; Quem trabalha no Unix, Linux ou MacOS não precisa do Cygwin, pois pode  utilizar o standard terminal; Download em http:// www.cygwin.com/  Você deve selecionar os pacotes desejados.Os pacotes são scripts e aplicações pré-compiladas . Recomenda-se selecionar o diretório Perl inteiro e as ferramentas de desenvolvimento e editores que possibilitam escrever scripts  para ambiente Linux. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 51
Nikto 2 É o scanner de vulnerabilidades mais empregado dos open source . Pode ser configurado para detectar uma variedade de problemas sem grandes esforços de configuração. É um script Perl e pode ser baixado em http://www.cirt.net/nikto2   que deverá ser descompactado e rodado em Cygwin ou em ambiente Unix/Linux; Possui uma dependência externa do módulo LibWhisker cuja última versão deve ser baixada em http://souceforge.net/projects/whisker/  ; A chamada deve ser via Perl através da linha de comando  perlnikto.pl –h 192.168.0.1  09/06/2010 Prof. Dércio Luiz Reis, Dr* 52
BurpSuite É uma coleção de ferramentas de segurança, diferente do WebScarab da OWASP,  que inclui componentes para interceptar, repetir, analisar ou injetar requisições em aplicativos Web; Disponível em   http://portswigger.net/suite/download.html É uma aplicação JAVA e pode não rodar em todos os sistemas operacionais mesmo se você tiver o Java RuntimeEnvironment; Burpproxy Intercepta requisições como um web proxy; Burpspider Executa lentamente a aplicação Web logando cada página. Usa credenciais para acesso e mantém cookies entre conexões; Burpsequencer Executa análises em sessões token, identificadores de sessão ou outras chaves que requerem seguança randômica; Burprepeater  Permite o salto ou resubimissão de requisições previamente gravadas. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 53
Apache HTTP Server Open Source Web Service que é hoje o mais popular servidor de páginas da WWW; É preciso configurar corretamente um HTTP server para impedir problemas com a vulnerabilidade  XSS (Cross-sitescripting); A instalação é simples em Windows (pacotes binários) mas em Unix é necessário baixa o source e compilar os fontes e configurar o firewall (que deve existir!) para permitir o acesso externo liberando as portas de acesso do TCP (80 ou 8080); Com o Apache HTTP rodando, arquivos do seu sistema estarão disponíveis para qualquer um que possa enviar pacotes para seu sistema.  Tome cuidado e não coloque nenhuma informação sensível no diretório htdocs; Quando não estiver em uso derrube o servidor Apache. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 54
Referências OWASP (Open Web Application Security Project) TOP 10: How to build, design and test the security of web applications and web services. – http://www.owasp.org Watchfire Web Site: referências, white-papers, demonstrações e trials http://www.watchfire.com ISS Internet Security Systems http://www.iss.net 09/06/2010 Prof. Dércio Luiz Reis, Dr* 55

Mais conteúdo relacionado

Mais procurados

Website security
Website securityWebsite security
Website security
thiagosenac
 
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
 

Mais procurados (20)

Global AppSec LATAM 2011 Conference - Segurança de Aplicações, para sua organ...
Global AppSec LATAM 2011 Conference - Segurança de Aplicações, para sua organ...Global AppSec LATAM 2011 Conference - Segurança de Aplicações, para sua organ...
Global AppSec LATAM 2011 Conference - Segurança de Aplicações, para sua organ...
 
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_2013_pt-br
Owasp top 10_2013_pt-brOwasp top 10_2013_pt-br
Owasp top 10_2013_pt-br
 
Pentest com Kali Linux - LatinoWare 2015
Pentest com Kali Linux  - LatinoWare 2015Pentest com Kali Linux  - LatinoWare 2015
Pentest com Kali Linux - LatinoWare 2015
 
Teste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testingTeste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testing
 
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
 
(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?
 
Apresentação sobre VRaptor na Campus Recife 2014
Apresentação sobre VRaptor na Campus Recife 2014Apresentação sobre VRaptor na Campus Recife 2014
Apresentação sobre VRaptor na Campus Recife 2014
 
Palestra sobre o FirefoxOS
Palestra sobre o FirefoxOSPalestra sobre o FirefoxOS
Palestra sobre o FirefoxOS
 
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
 
Engenharia de Software II - Teste de segurança de software
Engenharia de Software  II - Teste de segurança de softwareEngenharia de Software  II - Teste de segurança de software
Engenharia de Software II - Teste de segurança de software
 
DevSecOps - Integrando Segurança no Processo DevOps
DevSecOps - Integrando Segurança no Processo DevOpsDevSecOps - Integrando Segurança no Processo DevOps
DevSecOps - Integrando Segurança no Processo DevOps
 
Segurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareSegurança no Desenvolvimento de Software
Segurança no Desenvolvimento de Software
 
Fuzzing com ZAP (Zed Attack Proxy)
Fuzzing com ZAP (Zed Attack Proxy)Fuzzing com ZAP (Zed Attack Proxy)
Fuzzing com ZAP (Zed Attack Proxy)
 
Esse software que você nunca desenvolveu…
Esse software que você nunca desenvolveu…Esse software que você nunca desenvolveu…
Esse software que você nunca desenvolveu…
 
Website security
Website securityWebsite security
Website security
 
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ç...
 
Testar não é suficiente. Tem que fazer direito!
Testar não é suficiente. Tem que fazer direito!Testar não é suficiente. Tem que fazer direito!
Testar não é suficiente. Tem que fazer direito!
 
OWASP @ ISCTE-IUL, OWASP e OWASP Portugal
OWASP @ ISCTE-IUL, OWASP e OWASP PortugalOWASP @ ISCTE-IUL, OWASP e OWASP Portugal
OWASP @ ISCTE-IUL, OWASP e OWASP Portugal
 
Utilizando o AppLocker para proteger seu ambiente da execução de aplicações n...
Utilizando o AppLocker para proteger seu ambiente da execução de aplicações n...Utilizando o AppLocker para proteger seu ambiente da execução de aplicações n...
Utilizando o AppLocker para proteger seu ambiente da execução de aplicações n...
 

Semelhante a Desenvolvimento de Aplicações Web Seguras

Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012
Marcio Cunha
 
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
Bruno Motta Rego
 
Segurança no Desenvolvimento de Aplicações - Dextra
Segurança no Desenvolvimento de Aplicações - DextraSegurança no Desenvolvimento de Aplicações - Dextra
Segurança no Desenvolvimento de Aplicações - Dextra
Vinícius Schmidt
 

Semelhante a Desenvolvimento de Aplicações Web Seguras (20)

(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?
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de Segurança
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012
 
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
 
Os maiores riscos de segurança
Os maiores riscos de segurançaOs maiores riscos de segurança
Os maiores riscos de segurança
 
MTI-MT Desenvolvimento Seguro
MTI-MT Desenvolvimento SeguroMTI-MT Desenvolvimento Seguro
MTI-MT Desenvolvimento Seguro
 
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
 
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
 
Desenvolvimento Seguro- 2011
Desenvolvimento Seguro- 2011Desenvolvimento Seguro- 2011
Desenvolvimento Seguro- 2011
 
Segurança e Auditoria de sistemas
Segurança e Auditoria de sistemasSegurança e Auditoria de sistemas
Segurança e Auditoria de sistemas
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASP
 
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
 
WEB_Report_Penetration_Test_Verifact_Gray_Box_Publicacao.pdf
WEB_Report_Penetration_Test_Verifact_Gray_Box_Publicacao.pdfWEB_Report_Penetration_Test_Verifact_Gray_Box_Publicacao.pdf
WEB_Report_Penetration_Test_Verifact_Gray_Box_Publicacao.pdf
 
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
 
Segurança no Desenvolvimento de Aplicações - Dextra
Segurança no Desenvolvimento de Aplicações - DextraSegurança no Desenvolvimento de Aplicações - Dextra
Segurança no Desenvolvimento de Aplicações - Dextra
 
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...
 
[GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
 [GUTS-RS] - Testes de Segurança: O que preciso saber para planejar [GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
[GUTS-RS] - Testes de Segurança: O que preciso saber para planejar
 
Slides do Treinamento - OWASP TOP 10 (Em português)
Slides do Treinamento - OWASP TOP 10 (Em português)Slides do Treinamento - OWASP TOP 10 (Em português)
Slides do Treinamento - OWASP TOP 10 (Em português)
 
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
 

Mais de Dércio Luiz Reis

Mais de Dércio Luiz Reis (16)

Ficha enade 2014
Ficha enade 2014Ficha enade 2014
Ficha enade 2014
 
Disciplina metod cientifica aula 4
Disciplina metod cientifica aula 4Disciplina metod cientifica aula 4
Disciplina metod cientifica aula 4
 
Aula 1 - Tcc seminário I 2013
Aula 1 - Tcc seminário I 2013Aula 1 - Tcc seminário I 2013
Aula 1 - Tcc seminário I 2013
 
Manual do tcc 2013 1
Manual do tcc 2013 1Manual do tcc 2013 1
Manual do tcc 2013 1
 
TCC seminário I
TCC seminário ITCC seminário I
TCC seminário I
 
Reunião TCC
Reunião TCCReunião TCC
Reunião TCC
 
Http _enadeies.inep.gov
Http  _enadeies.inep.govHttp  _enadeies.inep.gov
Http _enadeies.inep.gov
 
Ficha inscricao TI 2014/1
Ficha inscricao TI 2014/1Ficha inscricao TI 2014/1
Ficha inscricao TI 2014/1
 
Web2 0
Web2 0Web2 0
Web2 0
 
ambiente virtual de aprendizagem
ambiente virtual de aprendizagemambiente virtual de aprendizagem
ambiente virtual de aprendizagem
 
Ambientes Virtuais
Ambientes VirtuaisAmbientes Virtuais
Ambientes Virtuais
 
(Requerimento de colação de grau)
(Requerimento de colação de grau)(Requerimento de colação de grau)
(Requerimento de colação de grau)
 
Currículo de referencia sbc
Currículo de referencia sbcCurrículo de referencia sbc
Currículo de referencia sbc
 
Palestra Agente Cívico
Palestra Agente CívicoPalestra Agente Cívico
Palestra Agente Cívico
 
Owasp guide2.0.1
Owasp guide2.0.1Owasp guide2.0.1
Owasp guide2.0.1
 
mercado de trabalho ti 2010
mercado de trabalho ti 2010mercado de trabalho ti 2010
mercado de trabalho ti 2010
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Desenvolvimento de Aplicações Web Seguras

  • 1. Palestra de Desenvolvimento de Aplicações Web Seguras Prof. Dércio Luiz Reis, Dr*
  • 2. Porque segurança de aplicações é prioridade? Aplicações web são o foco número 1 dos hackers: 75% dos ataques acontecem na camada da aplicação (Gartner) A maior parte das páginas web estão vulneráveis: 90% dos sites são vulneráveis à ataques na aplicação (Watchfire) 78% das vulnerabilidadesfacilmenteexploráveisafetamaplicações Web (Symantec) 09/06/2010 Prof. Dércio Luiz Reis, Dr* 2
  • 3. Porque segurança de aplicações é prioridade? 80% das organizações irão experimentar um incidente em segurança de aplicações até 2010 (Gartner) Aplicações web são alvos de alto valor para hackers: Dados de clientes, cartão de crédito, roubo de identidade, fraude, etc. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 3
  • 4. Porque segurança de aplicações é prioridade? No Brasil 13% das empresas que sofreram ataques tiveram prejuízos que ultrapassam R$ 1 Milhão (Módulo); Estudo realizado com 200 empresas brasileiras afirma que : 67,5% sofreram algum tipo de ataquenosúltimos 12 meses (ISS); Instituiçõesfinanceirasnacionaistêmsofrido até 100 ataques frustrados por dia. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 4
  • 5. Principaiscausas de vulnerabilidades 09/06/2010 Prof. Dércio Luiz Reis, Dr* 5 Principal problema de segurança Usuários podem submeter dados de entradaarbitrários Principaissinais de problemas: – Imaturidadeemsegurança; – Desenvolvimentoin-house; – Percepção de simplicidade; – Restrições de recursos e tempo; – Mau uso de tecnologias.
  • 6. O Mito: Nosso site está seguro? Firewall; Network Scanners; Auditorias de Segurança. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 6
  • 7. Arquiteturabásica de segurança 09/06/2010 Prof. Dércio Luiz Reis, Dr* 7
  • 8. Proteções para o ambiente web 09/06/2010 Prof. Dércio Luiz Reis, Dr* 8
  • 9. A Realidade: Segurança e gastos estão desequilibrados 09/06/2010 Prof. Dércio Luiz Reis, Dr* 9
  • 10. É assim que uma aplicação parece para um hacker 09/06/2010 Prof. Dércio Luiz Reis, Dr* 10
  • 11. TOP 10 vulnerabilidade de aplicações Web 09/06/2010 11 Prof. Dércio Luiz Reis, Dr*
  • 12. Tabela de Riscos 09/06/2010 Prof. Dércio Luiz Reis, Dr* 12
  • 13. Comparação da Lista OWASP 09/06/2010 Prof. Dércio Luiz Reis, Dr* 13
  • 14. TOP 10 vulnerabilidade de aplicações Web 09/06/2010 Prof. Dércio Luiz Reis, Dr* 14
  • 15. TOP 10 vulnerabilidade de aplicações Web 09/06/2010 Prof. Dércio Luiz Reis, Dr* 15
  • 16. TOP 10 vulnerabilidade de aplicações Web 09/06/2010 Prof. Dércio Luiz Reis, Dr* 16
  • 17. Tendências e Vulnerabilidades do MITRE 09/06/2010 Prof. Dércio Luiz Reis, Dr* 17
  • 18. Alguns Problemas descartados no estudo do OWASP (Open Web Application Security Project) TOP 10 Entrada de dados não validados é o maior desafio para qualquer time de desenvolvimento e é a origem dos problemas de segurança de muitas aplicações. A recomendação é criar um mecanismo de validação centralizado como parte de sua aplicação. Para maiores informações, leia os seguintes documentos de validação de dados da OWASP: http://www.owasp.org/index.php/Data_Validation http://www.owasp.org/index.php/Testing_for_Data_Validation 09/06/2010 Prof. Dércio Luiz Reis, Dr* 18
  • 19. Alguns Problemas descartados no estudo do OWASP (Open Web Application Security Project) TOP 10 Problemas de estouro de pilhas, estouro de inteiros e formato de strings são vulnerabilidades extremamente sérias para programas escritos em linguagem C ou C++. A remediação para estes tipos de problemas são tratados por comunidades de segurança de aplicações tradicionais, como o SANS, CERT e pelos fornecedores de linguagem de programação. Se o código é escrito em uma linguagem que é passível a estouros de pilha, recomenda-se ler os conteúdos a este respeito no site da OWASP: http://www.owasp.org/index.php/Buffer_overflow http://www.owasp.org/index.php/Testing_for_Buffer_Overflow 09/06/2010 Prof. Dércio Luiz Reis, Dr* 19
  • 20. Alguns Problemas descartados no estudo do OWASP (Open Web Application Security Project) TOP 10 Gerenciamento de configuração insegura afeta todos os sistemas em alguma extensão, particularmente o PHP. Quando implementando sua aplicação, você deve consultar a última versão do OWASP Guide e o OWASP testingGuide para informações detalhadas a respeito do gerenciamento de configuração segura e testes: http://www.owasp.org/index.php/Configuration http://www.owasp.org/index.php/Testing_for_infrastructure_configuration_management 09/06/2010 Prof. Dércio Luiz Reis, Dr* 20
  • 21. Vulnerabilidades Considerando que o desenvolvedor observe os pontos abordados pelo documento será possível verificar uma redução direta nos seguintes pontos: Ataques de phishing, que podem explorar qualquer uma dessas vulnerabilidades, particularmente, XSS e problemas de autenticação e autorização (A1,A4,A7,A10) Violação de privacidadedevido à validação fraca, regras de negócio e verificações de autorização fracas (A2, A4, A6, A7, A10) Roubo de identidade por meio de controles de criptografia fracos ou não existentes (A8 e A9), inclusão de arquivo remoto (A3) e autenticação, regras de negócio e verificação de autorização (A4, A7, A10) 09/06/2010 Prof. Dércio Luiz Reis, Dr* 21
  • 22. POR QUE CONSIDERAR ALGUNS PROBLEMAS IMPORTANTES Cross Site RequestForgery (CSRF) é a maior nova inclusão da edição do OWASP Top 10. Embora ocupe a 36ª posição na classificação original, acredita-se que ela seja de tamanha importância, que as aplicações devem iniciar seus esforços de proteção hoje, particularmente para aplicações de alto risco e criticidade. O CSRF é mais prevalente do que sua atual classificação e pode ser mais perigoso. Criptografia. O uso incorreto da criptografia não ocupam as posições 8 e 9 da classificação, conforme as informações do MITRE, porém representam a origem de muitos problemas de quebra de privacidade e conformidade (particularmente a conformidade com o PCI DSS 1.1). 09/06/2010 Prof. Dércio Luiz Reis, Dr* 22
  • 23. VULNERABILIDADES, NÃO ATAQUES O foco é unicamente em vulnerabilidades, embora a terminologia utilizada comumente combine vulnerabilidades e ataques. Se as organizações usam este documento para tornar suas aplicações seguras e, consequentemente, reduzir o risco para seus negócios, será possível observar uma redução direta nos seguintes pontos: 09/06/2010 Prof. Dércio Luiz Reis, Dr* 23
  • 24. VULNERABILIDADES, NÃO ATAQUES Ataques de phishing, que podem explorar qualquer uma dessas vulnerabilidades, particularmente, XSS e problemas de autenticação e autorização (A1,A4,A7,A10) Violação de privacidade devido à validação fraca, regras de negócio e verificações de autorização fracas (A2, A4, A6, A7, A10) Roubo de identidade por meio de controles de criptografia fracos ou não existentes (A8 e A9), inclusão de arquivo remoto (A3) e autenticação, regras de negócio e verificação de autorização (A4, A7, A10) 09/06/2010 Prof. Dércio Luiz Reis, Dr* 24
  • 25. Vulnerabilidades Comprometimento de sistema, alteração de informações e destruição de dados por ataques de injeção (A2) e inclusão de arquivo remoto (A3) Perda financeira por meio de transações não autorizadas e ataques CSRF (A4, A5, A7, A10) Perda de reputação devido à exploração de qualquer uma das vulnerabilidades acima (A1 à A10) 09/06/2010 Prof. Dércio Luiz Reis, Dr* 25
  • 26. Exemplos 09/06/2010 Prof. Dércio Luiz Reis, Dr* 26
  • 27. #1 – Cross Site Scripting (XSS) O que é? – Script malicioso ecoado de volta, embutido no código HTML retornado de um site confiável; Quaissão as implicações? – Sequestro de sessões; – Atacantes podem executar scripts no navegador da vítima; – Conteúdodapáginacomprometido; – Introduzir worms. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 27
  • 28. #1 – Cross Site Scripting (XSS) 09/06/2010 Prof. Dércio Luiz Reis, Dr* 28
  • 29. #2 – SQL Injection (Injection Flaws) 09/06/2010 Prof. Dércio Luiz Reis, Dr* 29
  • 30. #3 – Cross Site Request Forgery (CSRF) O que é? Transmite e executa comandos maliciosos entre sites sem que o usuário perceba. Quaissão as implicações? - Roubo de informações do usuário, como cookies e sessões; - Possibilidade de executar transações entre sites os quais o usuário esteja autenticado; - Risco se agrava quando o tempo de expiração de sessão é muitolongo. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 30
  • 31. Quais preocupações os profissionais de T.I. devem ter ? O que os desenvolvedores e testadores da minha organização sabem sobre segurança da informação? • Eles têm meios de prevenir vulnerabilidades? • Apesar de nosso investimento em segurança de rede, será querealmenteestamosseguros? • Ainda que esteja seguro hoje, tenho como garantir que não haverá falhas de segurança no futuro? 09/06/2010 Prof. Dércio Luiz Reis, Dr* 31
  • 32. Segurança: Parte do Cliclo de Vida 09/06/2010 Prof. Dércio Luiz Reis, Dr* 32
  • 33. Testes de Segurança 09/06/2010 Prof. Dércio Luiz Reis, Dr* 33 Atuação de Softwares de Segurança
  • 34. PROTEÇÃO Tendo o tempo para planejar a autorização criando uma matriz para mapear as regras e as funções da aplicação é o passo primordial para alcançar a proteção contra acessos não autorizados. Aplicações web devem garantir controle de acesso em cada URL e funções de negócio. Não é suficiente colocar o controle de acesso na camada de apresentação e deixar a regra de negócio desprotegida. Também não é suficiente verificar uma vez o usuário autorizado e não verificar novamente nos passos seguintes. De outra forma, um atacante pode simplesmente burlar o passo onde a autorização é verificada e forjar o valor do parâmetro necessário e continuar no passo seguinte. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 34
  • 35. PROTEÇÃO Garanta que a matriz do controle de acesso é parte do negócio, da arquitetura e do design daaplicação; Garanta que todas URLs e funções de negócio são protegidas por um mecanismo de controle de acesso efetivo que verifique as funções e direitos do usuário antes que qualquer processamento ocorra. Certifique-se que este processo é realizado em todos os passos do fluxo e não apenas no passo inicial de um processo, pois pode haver vários passos a seremverificados; 09/06/2010 Prof. Dércio Luiz Reis, Dr* 35
  • 36. PROTEÇÃO Realize um teste invasão (penetrationtest) antes do código entrar em produção a fim de garantir que a aplicação não poderá ser utilizada de má fé por um atacante motivado ou com conhecimentos avançados. Preste muita atenção em arquivos de includes/bibliotecas, especialmente se eles possuem extensões executáveis como .php. Sempre que possível, devem ser mantidos fora da raiz web. Devem ser verificados se não estão sendo acessados diretamente, porexemplo, verificando por uma constante que pode somente ser criada através de uma biblioteca do chamador. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 36
  • 37. PROTEÇÃO Não suponha que usuários não estarão atentos ao acessar URLs ou APIs escondidas ou especiais. Sempre se assegure que ações com privilégios altos e administrativos estarão protegidos. Bloqueie acesso a todos os tipos de arquivos que a sua aplicação não deva executar. Este filtro deve seguir a abordagem “acceptknowngood” na qual apenas são permitidos tipos de arquivos que a aplicação deva executar, como por exemplo .html .pdf, .php. Isto irá bloquear qualquer tentativa de acesso a arquivos de log, arquivos XML, entre outros, aos quais se espera nunca serem executados diretamente. Mantenha o antivírus e as correções de segurança atualizados para componentes como processadores XML, processadores de texto, processadores de imagem, entre outros que manipulam arquivos fornecidos por usuários. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 37
  • 38. RECOMENDAÇÕES AOS DESENVOLVEDORES Para garantir uma segurança efetiva no desenvolvimento de aplicações Web requer muita experiência, pois qualquer leigo pode atacar um sistema. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 38
  • 39. RECOMENDAÇÕES AOS DESENVOLVEDORES Faça parte da comunidade e OWASP e freqüente as reuniões regionais. Procure por treinamentos sobre desenvolvimento de código seguro. Desenvolva suas aplicações com segurança, Crie códigos simples e com profunda segurança. Desenvolva com aplicações que favoreçam a segurança do código. Reconstrua o código de forma segura de acordo com a sua plataforma utilizando pesquisasotimizadas. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 39
  • 40. RECOMENDAÇÕES AOS DESENVOLVEDORES Leia o guia OWASP e comece a aplicar controles mais seguros a seu código, diferente do outros guias ele é desenvolvido para ajudá-lo a criar aplicações seguras e não a quebrá-las. Faça os testes de segurança e defeitos do seu código e torne esta prática constante no seudia-a-dia. Revise o livro de referências e veja se existem opções que se aplicam ao seu ambiente de trabalho. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 40
  • 41. Ferramentas Free (Instalação) A utilização dos softwares apresentados em seguida destinam-se ao teste e verificação de vulnerabilidades de segurança e seu dependerá do contexto e da necessidade de verificação da segurança dos aplicativos. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 41
  • 42. Firefox Instalando o Firefox O Firefox web browser com sua arquitetura extensível add-on, é o melhor browser para teste de segurança de aplicações Web. A recomendação é que ele seja utilizado como o browser padrão do seu sistema. Proceda o download e complete sua instalação. Visite www.mozilla.com Mesmo que sua aplicação não seja especificamente escrita para compatibilidade com o Firefox, os aspectos de seguranças podem ser verificados por ele. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 42
  • 43. Firefox Extensions As extensões do Firefox permitem adicionar várias funcionalidades ao Firefox. Recomendamos algumas extensões em particular para teste de segurança de aplicações. Recomenda-se as seguintes Extensões : View source Chart https://addons.mozzila.org/en-US/firefox/addon/655 Firebug https://addons.mozzila.org/en-US/firefox/addon/1843 Tamper Data https://addons.mozzila.org/en-US/firefox/addon/966 Edit Cookies https://addons.mozzila.org/en-US/firefox/addon/4510 UserAgent Switch https://addons.mozzila.org/en-US/firefox/addon/59 Switch Proxy https://addons.mozzila.org/en-US/firefox/addon/125 09/06/2010 Prof. Dércio Luiz Reis, Dr* 43
  • 44. Firebug Talvez seja a extensão mais utilizada do Firefox e oferece uma variedade de funções que são empregadas para atender diversas finalidades. Quando ativa mostra um círculo pequeno indicando que está instalado. Se o círculo estiver verde indica que o Firebug está rodando e não encontrou erros na página. Se estiver vermelho indica que está rodando e foram encontrados erros no Java Script e se estiver cinza indica que o Firebug está desativado; É considerado o canivete suiço no desenvolvimento e testes de aplicações Web; Auxilia na escrita de códigos HTML, JavaScript e DocumentObjectModel (DOM); Não salva as alterações no servidor que só ficam válidas durante a sua execução. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 44
  • 45. OSWASP’sWebScarab Popular Web Proxy para teste de segurança de aplicações Web. Web Proxies são vitais para a interceptação de requisições e respostas entre o browser e o servidor. Existem diversas formas de instalar o WebScarab, mas recomenda-se a versão Java Web Start ou a versão Standalone. Estas versões facilitam a a cópia para o ambiente de teste sem a necessidade de uma instalação completa. Está disponível no site da Owasp. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 45
  • 46. Instalação de Perl e pacotes no Windows É considerada a duct tape (algo como o remendo) das linguagens de programação. Esta visão está ligada ao fato de não ser uma linguagem elegante mas que cumpre sua função de forma rápida; Muito utilizada para automatizar cases de teste de segurança automatizado; Pode ser instalada em ambiente Unix ou Windows e existem diferentes formas de instalação; Active Perl (permite execução em commandpropmpt) vem junto como Perl Package Manager. Alguns sistemas operacionais (fora Windows) podem vir com o Perl instalado. Porém pode ser necessário compilar o fonte do Perl (por exemplo se você tem o sistemas 64 bits). 09/06/2010 Prof. Dércio Luiz Reis, Dr* 46
  • 47. CAL9000 Incorpora uma grande quantidade de ferramentas de segurança em um único “pacote”. É uma ferramenta típica de hackercontendo uma variedade de truques; Com esse aplicativo é possível ajuda para identificar problemas e corrigir a partir de uma variedade de testes durante a execução dos aplicativos. No Firefox vá para : http://www.owasp.org/index.php/Category:OWASP_9000_Project Faça o download e descompacte no diretório desejado. Execute o CAL9000.html no Firefox para abrir a aplicação; Não exige instalação ou requer direitos de acesso. Pode rodar localmente ou em um servidor ou outra máquina. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 47
  • 48. ViewStateDecoder Aplicações Web escritas em ASP.NET incluem uma variável escondida chamada ViewState em cada uma de suas páginas. Esta variável mantém os dados entre requisições HTTP. Esta ferramenta é executável no Windows e considerada complexa; O objetivo é verificar se o desenvolvedor não enviou ao cliente informações demais e inapropriadas como (registros internos, detalhes de conexão a banco de dados ou registros de debug). Este é um teste básico de segurança. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 48
  • 49. cURL Esta ferramenta é um utilitário de linha de comando que suporta um array de protocolos Web e componentes. Pode ser usado como um browser sem browser pois implementa as mesmas características dos browsers e pode ser chamado em uma linha de comando a partir de um shell; Manuseia cookies, autenticação e protocolos Web melhor do que qualquer outra ferramenta de linha de comando. Para instalar vá até http://curl.haxx.se/download.html 09/06/2010 Prof. Dércio Luiz Reis, Dr* 49
  • 50. Pornzilla Não é uma ferramenta individual e sim uma coleção de bookmarklets e extensões do Firefox, Provê um conveniente número de ferramentas usadas em testes de segurança em aplicações Web; Todos os componentes podem ser encontrados em http://www.squarefree.com/pornzilla Para instalar o bookmarklet simplesmente arraste e solte o link em sua barra de ferramentas ou organizador de bookmark; Para instalar a extensão siga os links e instale como qualquer outra extensão Firefox; 09/06/2010 Prof. Dércio Luiz Reis, Dr* 50
  • 51. Cygwin Esta ferramenta permite que utilitários e scripts construídos para rodas em Linux possam ser executados em Windows sem uma instalação full do Linux; É necessário instalar outras ferramentas; Quem trabalha no Unix, Linux ou MacOS não precisa do Cygwin, pois pode utilizar o standard terminal; Download em http:// www.cygwin.com/ Você deve selecionar os pacotes desejados.Os pacotes são scripts e aplicações pré-compiladas . Recomenda-se selecionar o diretório Perl inteiro e as ferramentas de desenvolvimento e editores que possibilitam escrever scripts para ambiente Linux. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 51
  • 52. Nikto 2 É o scanner de vulnerabilidades mais empregado dos open source . Pode ser configurado para detectar uma variedade de problemas sem grandes esforços de configuração. É um script Perl e pode ser baixado em http://www.cirt.net/nikto2 que deverá ser descompactado e rodado em Cygwin ou em ambiente Unix/Linux; Possui uma dependência externa do módulo LibWhisker cuja última versão deve ser baixada em http://souceforge.net/projects/whisker/ ; A chamada deve ser via Perl através da linha de comando perlnikto.pl –h 192.168.0.1 09/06/2010 Prof. Dércio Luiz Reis, Dr* 52
  • 53. BurpSuite É uma coleção de ferramentas de segurança, diferente do WebScarab da OWASP, que inclui componentes para interceptar, repetir, analisar ou injetar requisições em aplicativos Web; Disponível em http://portswigger.net/suite/download.html É uma aplicação JAVA e pode não rodar em todos os sistemas operacionais mesmo se você tiver o Java RuntimeEnvironment; Burpproxy Intercepta requisições como um web proxy; Burpspider Executa lentamente a aplicação Web logando cada página. Usa credenciais para acesso e mantém cookies entre conexões; Burpsequencer Executa análises em sessões token, identificadores de sessão ou outras chaves que requerem seguança randômica; Burprepeater  Permite o salto ou resubimissão de requisições previamente gravadas. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 53
  • 54. Apache HTTP Server Open Source Web Service que é hoje o mais popular servidor de páginas da WWW; É preciso configurar corretamente um HTTP server para impedir problemas com a vulnerabilidade XSS (Cross-sitescripting); A instalação é simples em Windows (pacotes binários) mas em Unix é necessário baixa o source e compilar os fontes e configurar o firewall (que deve existir!) para permitir o acesso externo liberando as portas de acesso do TCP (80 ou 8080); Com o Apache HTTP rodando, arquivos do seu sistema estarão disponíveis para qualquer um que possa enviar pacotes para seu sistema. Tome cuidado e não coloque nenhuma informação sensível no diretório htdocs; Quando não estiver em uso derrube o servidor Apache. 09/06/2010 Prof. Dércio Luiz Reis, Dr* 54
  • 55. Referências OWASP (Open Web Application Security Project) TOP 10: How to build, design and test the security of web applications and web services. – http://www.owasp.org Watchfire Web Site: referências, white-papers, demonstrações e trials http://www.watchfire.com ISS Internet Security Systems http://www.iss.net 09/06/2010 Prof. Dércio Luiz Reis, Dr* 55