PROJETO DE PESQUISA - TCC Título: Segurança de Aplicações na Web. Aluno: Thiago Augusto Lopes Genez. Professor (es) Prof. Dr. Mario Lemes Proença Jr. Orientador (es): Local: Departamento de Computação. Período: Março à Outubro de 2009. Contatos: Thiago Augusto Lopes Genez. E-mail: [email protected] Endereço: Rua João Huss, 200. Complemento: Apto 701. Telefone: (43) 3337-5310. Celular: (43) 9995-9746. Prof. Dr. Mario Lemes Proença Jr. E-mail: [email protected] Departamento de Computação CCE/UEL 2009 Plano de TCC do aluno Thiago Augusto Lopes Genez 1/9 I. RESUMO As Aplicações Web são a peça fundamental dos nossos sistemas eletrônicos bancários e comerciais. Criptografia é um componente essencial do moderno comércio eletrônico. Com o grande aumento do número de transações de dados sendo feitas por meio da internet, a garantia da segurança de transferência de informações são extremamente importantes. Grandes quantidades de dados sigilosos estão sendo trocadas por intermédio da rede de computadores, quer por meio de sites e-commerce; sites de leilões; bancos on-line; sites de negociações e até mesmo sites do próprio governo, dentre outros. Por conseqüência, as aplicações Web de baixa qualidade, segundo a norma de qualidade de software (e.g. ISO/IEC 9126 e ISO/IEC 14598), podem abrir brechas em algum servidor e tornando-o vulnerável, e assim, resultando que as informações secretas fiquem visíveis na Web para milhares de usuários mal intencionados. No entanto, para garantir a segurança de uma aplicação Web, temos que estudar e pesquisar os principais tipos de vulnerabilidades, atualmente, que possibilitam os variados tipos ataques hacker no servidor. Enfim, o resultado esperado será como garantir que uma aplicação Web seja realmente segura e sem vulnerabilidade permitindo uma comunicação tranqüila. Palavras-Chaves: Aplicação, Segurança, Criptografia¸ Protocolos, Web II. FUNDAMENTAÇÃO TEÓRICO-METODOLÓGICA: A Internet foi desenvolvida, inicialmente, sem muita preocupação em relação ao quesito de segurança. No seu início, o principal objetivo era apenas fornecer as informações. Apesar disso, com o rápido progresso da tecnologia e o magnífico aumento da propagação de informações resultou no crescimento da Web. Assim, com a evolução da Internet, junto com a sua diversificação de utilização, a segurança se tornou uma exigência de importância crucial, especialmente para quem utiliza a Web para fins comerciais, governamentais, dentre outros. A comunicação por meio da Internet tornou-se uma parte fundamental da vida. A rede conhecido mundialmente como Web ou WWW (World Wide Web), contém informações sobre diversos temas, tais como: condições atmosféricas; dados sobre bolsa de valores; tráfego de companhia aérea; transações bancárias; comércio eletrônico (e-commerce); e muitas outras. Grupos de pessoas criam lista eletrônica para que possam compartilhar dados de interesse Plano de TCC do aluno Thiago Augusto Lopes Genez 2/9 comum. Assim, a Web possui uma grande quantidade de aplicativos que geram inúmeras informações que trafegam pela Internet. No entanto, algumas destas informações devem trafegar de forma segura, de modo que, o sigilo destes dados mantém- se intactos. Por outro lado, se as aplicações Web sofrerem algum tipo ataque hacking (e.g. Cross Site Scripting (XSS); SQL Injection (Injection Flaws); Cross Site Request Forgery (CSRF); ataques de phishing;dentre vários outros tipos de técnicas) e houver a quebra do sigilo das informações, uma seqüência de complicações poderá ocorrer (e.g. interrupção do serviço; transações fraudulentas; roubo ou modificação de dados; roubo de informações de clientes; perdas financeiras; e muitos outros problemas sérios.) Assim, a garantia de um ambiente seguro na internet é tão importante quanto difícil. É importante porque os dados possuem valores significativos, ou seja, as informações podem ser compradas e vendidas diretamente e utilizadas indiretamente para criar artefatos valiosos (e.g. o usuário, ao usar computadores de terceiros para navegar em sites e-commerce ou Internet Banking, pode ser vigiado e ter todas as suas ações supervisionadas, desde cópias de informações sensíveis (e.g. como senhas em geral e número de cartão de crédito), até mesmo, roubo de informações pessoais, como: endereço, nome, e-mail, telefones e número de documentos). Segurança na Internet é difícil porque envolve a compreensão de segurança quando e como participam os usuários, os computadores, os serviços e as redes; e como estes elementos possam confiar um no outro, bem como a compreensão dos detalhes técnicos de hardware de rede; dos protocolos e dos algoritmos de criptografia. O aspecto de segurança é relativo, seja pensando no mundo real (e.g. na violência urbana) ou no mundo virtual (e.g. nos hackers). Em outras palavras, a segurança é destacada por uma evolução cíclica e contínua, ou seja, ataques modernos têm como resposta novas formas de proteção, que induz ao aperfeiçoamento de novas estratégias de ataques. Outro fator importante, para garantir a segurança de uma aplicação na Internet, é a assegurar a qualidade do software, segundo alguns padrões que propõem avaliações especificas para aplicações na Web (e.g. as normas do ISO/IEC 9126 e ISO/IEC 14598) [15, 16]. De fato, devido à grande quantidade de ocorrências de vazamentos de informações sigilosas por falta de cuidados fundamentais e a fim de procurar evitar este tipo de situação é necessário à pesquisa e o desenvolvimento de um documento para garantir que uma aplicação na Web seja considerada altamente segura. Também serão tratados neste trabalho os principais Plano de TCC do aluno Thiago Augusto Lopes Genez 3/9 tipos de algoritmos criptográficos atualmente disponíveis no mercado e suas diferenças; os principais meios de quebrar a segurança de uma aplicação Web e os modernos meios de proteção na troca de informações sigilosas. Portanto, neste documento serão tratados os principais conceitos básicos de segurança; técnicas e tecnologias disponíveis para defesa e modelo de segurança para um ambiente cooperativo [1, 2]. Será apresentado o detalhamento e funcionamento do conjunto de protocolos TCP/IP [3], como também as camadas na qual pertencem os mesmos, como a camada de transporte e a camada de rede, respectivamente. As importâncias do estudo destas camadas são para afunilar a pesquisa para os protocolos de segurança propriamente dito, são eles: o TSL (Transport Layer Security) [5] e seu antecessor SSL (Secure Socket Layer) [9]. Existe também, outro protocolo, que também será estudado e analisado, denominado IPsec (IP Security Protocol), o qual é nada mais do que uma extensão do protocolo IP (Internet Protocol) [6] e incorporado ao IPv6[8]. Estudaremos, também, mais outros dois protocolos. Primeiro o HTTPS (HyperText Transfer Protocol Secure)[10], que se resume na união do protocolo HTTP (HyperText Transfer Protocol)[17] com o SSL. Já, o segundo, é o S-HTTP (The Secure HyperText Transfer Protocol) [11], o qual é uma extensão do protocolo HTTP apresentado em 1994 pela IEF (Enterprise Integration Technologies). A arte e ciência de transformar mensagens da sua forma original (legível) para um modo cifrado (ilegível), com o objetivo de preservar o sigilo das informações é conhecido como criptografia [7], que irá ser analisado e estudado neste material. Assim, o termo criptografia trata-se de conjuntos de técnicas e conceitos (e.g. chave simétrica; chave assimétrica; chave pública; chave privada; tamanho da chave; algoritmos criptográficos; dentre outros), os quais propõem cifrar os dados de uma maneira, tal que, apenas o emissor e o receptor conseguem acessar as informações, impedindo assim, que algum usuário mal intencionado consegue capturá-la e interpretá-la. Também será analisado um protocolo de comunicações, denominado WS-Security (Web Services Security) [14], que tem como objetivo de fornecer um ambiente para aplicar a segurança dos Web Services. Isto é, o WS-Security é definido para fornecer a integridade, a confidencialidade e a autenticação da comunicação através do sistema de transmissão de mensagens com protocolo SOAP [18]. O WSS promete fornecer segurança em alto nível, o da mensagem, e não em baixo nível, do protocolo de transporte e conexão, como o SSL/TSL. Outras especificações da OASIS (Organization for the Advancement of Structured Plano de TCC do aluno Thiago Augusto Lopes Genez 4/9 Information Standards) que promove a segurança também serão estudadas como: WS-Trust [18] e WS-Policy [18]. Outro assunto que será mostrado neste trabalho será as redes privadas virtuais, conhecido também como VPN (Virtual Private Network) [1, 3], que na verdade são redes coorporativas, com acesso restrito, arquitetada sobre infra-estrutura de uma rede pública, freqüentemente a Internet. No entanto, como as informações são trafegadas por meio da Internet sob os protocolos padrão, assim, para que uma VPN seja considerada segura é necessário utilizar protocolos de criptografia por tunelamento que dispõem a integridade e a privacidade dos dados e a autenticação dos participantes. Além de todos os meios atuais de segurança citados, iremos também, estudar e pesquisar os certificados [1] e assinaturas digitais [12] para garantir a integridade; confiabilidade; autenticidade das informações. Certificados digitais são apenas documentos eletrônicos, o qual está incluído informação de uma empresa ou dados pessoais, digitalmente. Já assinatura digital é única maneira, legalmente aceito, para que entidades (e.g. pessoas ou empresas) permitam assinar documentos eletrônicos. Ainda temos que, para assegurar toda segurança das informações é necessário estar ciente de “onde” aplicar a segurança na Web, ou seja, os principais meios de ataques hacking nos servidores, atualmente [13]. E por fim, um estudo sobre Application Firewalls será realizado, pois a maioria dos firewalls da rede situa-se em camadas inferiores do modelo de OSI, e não consegue proteger as aplicações Web dos ataques, por situar-se nas camadas superiores. III. OBJETIVOS Descrever as principais técnicas e tecnologias de segurança usadas nos dias atuais para garantir que uma aplicação Web seja realmente segura, confiável, e sem vulnerabilidade. Também tem por objetivo a descrição dos principais ataques, que estão ocorrendo recentemente. Estudar e detalhar as camadas que contém os protocolos criptográficos (e.g. TSL, SSL e IPsec), bem como os recentes algoritmos de criptografia. Também iremos descrever as principais especificações que garante um ambiente tranqüilo para os Web Services (e.g. WS-Security, WS-Trust e WS-Policy). Adquirir conhecimentos sobre as redes VPN, determinar uma aplicação Web de alta qualidade, segundo as normas da ISO/IEC. E por último, garantir que uma aplicação Web seja realmente segura. Plano de TCC do aluno Thiago Augusto Lopes Genez 5/9 IV. PROCEDIMENTOS METODOLÓGICOS/MÉTODOS E TÉCNICAS Os objetivos deste trabalho serão alcançados atrás dos seguintes passos: 1. Levantamento bibliográfico, relacionado à área de segurança, e o estudo dos mesmos. 2. Pesquisa dos principais conceitos básicos de segurança para uma aplicação Web. 3. Estudo dos algoritmos criptográficos simétricos, assimétrico e de hash, junto com a pesquisa, descrição e comparação dos mesmos. Informando também qual o algoritmo mais difícil e o mais fácil de tornar-se inseguro, através da sua quebra. As principais vantagens e desvantagens dos mesmos também serão tratadas. 4. Estudo de técnicas e tecnologias disponíveis para defesa. 5. Pesquisa e descrição dos protocolos: SSL (Secure Socket Layer); TLS (Transport Layer Security) e do IPsec (Internet Protocol Security) 6. Pesquisa e descrição de aplicações que precisam de um protocolo que estabeleça uma troca de dados segura, da maneira de detalhar as limitações e aspectos técnicos do SSL e do TLS. 7. Detalhamento e estudo da especificação WS-Security bem como a sua utilização para promover a seguranças. 8. Detalhamento e descrição das especificações WS-Trust e WS-Policy e o seu funcionamento. 9. Detalhamento e descrição do funcionamento dos certificados digitais e assinaturas digitais, bem como os algoritmos utilizados. 10. Pesquisa e estudo dos principais meio de ataques hacking nas aplicações Web. 11. Listar as principais tecnologias atualmente empregadas no mercado para solucionar os problemas relativos à segurança de comunicação em redes, de forma a verificar quais as melhores soluções para cada cenário. V. CONTRIBUIÇÕES E/OU RESULTADOS ESPERADOS Este trabalho tem como foco principal na construção de um documento para mostrar aos leitores as melhores maneiras de aplicar a segurança de uma aplicação Web, com a utilização das técnicas e tecnologias atuais. Para tal proposto, espera-se resultar numa descrição do assunto em um documento de fácil entendimento, mostrando aos leitores todos os passos; dicas; atividades; vantagens; desvantagens; os cuidados a serem tomados; os riscos a serem arriscados; a comparações, para manter a segurança das aplicações na Web. Além dos Plano de TCC do aluno Thiago Augusto Lopes Genez 6/9 resultados esperados, espera-se realizar uma contribuição na área de comunicação de dados para um melhor esclarecimento do assunto. Com isso, a partir da referência deste material, pessoas ou até mesmo empresas, poderá utilizá-lo para aplicar as técnicas de segurança em sua aplicação, caso deseje. VI. DEPARTAMENTOS ENVOLVIDOS Departamento de Computação. VII. CRONOGRAMA DE DESENVOLVIMENTO ANO Atividade 01 Atividade 02 Atividade 03 Atividade 04 Atividade 05 Atividade 06 Atividade 07 Atividade 08 Atividade 09 Atividade 10 Atividade 11 Dez Jan 2008 X X X X Fev Mar X X X X X X X Abr Mai Jun 2009 X X X X X X Jul Ago X X X X X X Set Out X X X X X X X X X X X VIII. FORMA DE ACOMPANHAMENTO O acompanhamento será realizado através de reuniões semanais. IX. REFERÊNCIAS BIBLIOGRÁFICAS [1]NAKAMURA, Emilio T., GEUS, Paulo Lício de. Segurança de redes em Ambientes Cooperativos. Terceira Edição. São Paulo: Futura, 2004. 472p. [2]KUROSE, James F..Redes de Computadores e a Internet: Uma nova abordagem. Primeira edição. São Paulo: Addison Wesley, 2003. 548p. Plano de TCC do aluno Thiago Augusto Lopes Genez 7/9 [3]COMER, Douglas E.. Internetworking with TCP/IP: Principles, Protocols, and Architecture. Upper Saddle River: Pearson Prentice Hall, 2006. 650p. [7]MYERS, John G. Simple Authentication and Security Layer (SASL). Netscape Communications. October 1997. Disponível em: < http://www.ietf.org/rfc/rfc2222.txt> Acesso em: 15 dezembro 2008. [5]DIERKS, Tim; RESCORLA, Eric. The Transport Layer Security (TLS) Protocol. Version 1.2. RTFM, Inc. August, 2008. Disponível em: < http://www.ietf.org/rfc/rfc5246.txt> Acesso em: 02 março 2009. [6] KENT, Stephen; ATKINSON, Randall. Security Architecture for the Internet Protocol, IETF May, 1998 Disponível em: < http://www.ietf.org/rfc/rfc2401.txt> Acesso em: 03 março 2009. [7] CHOWN, Pete. Advanced Encryption Standard (AES) Ciphersuites for Transport Layer Security (TLS), IETF. June, 2002 Disponível em: < http://www.ietf.org/rfc/rfc3268.txt> Acesso em: 05 março 2009. [8] DEERING, Stefhen E.; HIDDEN, Robert M. Internet protocol, version 6 (ipv6) specification, IETF. December, 1998. Disponível em: < http://www.ietf.org/rfc/rfc2460.txt> Acesso em: 05 março 2009. [9] FREIER, Alan O.; KARLTON, Philip; KOCHER, Paul C. The SSL Protocol Version 3.0, Netscape Communications. November, 1996. Disponível em: < http://www.mozilla.org/projects/security/pki/nss/ssl/draft302.txt> Acesso em: 06 março 2009. [10] RESCORLA, Eric. HTTP Over TLS, IETF. May, 2000. Disponível em: < http://www.ietf.org/rfc/rfc2818.txt> Acesso em: 13 fevereiro 2009. [11] RESCORLA, Eric; SCHIFFMAN, Allan M.. The Secure HyperText Transfer Protocol, IETF. August, 1999. Disponível em: < http://www.ietf.org/rfc/rfc2660.txt> Acesso em: 13 fevereiro 2009. [12] HOUSLEY, Russel; FORD, Warwick; POLK, Tim; SOLO, David . Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile, IETF. April, 2002. Disponível em: < http://www.ietf.org/rfc/rfc3280.txt> Acesso em: 15 fevereiro 2009. Plano de TCC do aluno Thiago Augusto Lopes Genez 8/9 [13] HERZBERG, Amir; JBARA, Ahmad. Security and identification indicators for browsers against spoofing and phishing attacks. Bar Ilan University. September, 2008. Disponível em: < http://portal.acm.org/ft_gateway.cfm?id=1391950&type=pdf&coll=Portal&dl=ACM&CFID= 22897290&CFTOKEN=58958481> Acesso em: 20 fevereiro 2009. [14] NADALIN, Anthony; KALER, Chris M.; MONZILLO, Ronald; HALLAM-BAKER, Philip. Web Services Security v1.0 (WS-Security 2004), OASIS. February, 2006. Disponível em: < http://www.oasis-open.org/committees/download.php/16790/wss-v1.1spec-os-SOAPMessageSecurity.pdf> Acesso em: 09 fevereiro 2009. [16] MORAES, Edson Andrade D; WERNECK,Vera Maria Benjamim Werneck. Uma Abordagem de Avaliação de Qualidade de Aplicações Web. Cadernos do IME. Série Informática – Vol 14 – Junho 2003. Disponível em: < http://www.ime.uerj.br/cadernos/cadinf/vol14/6-vera.pdf> Acesso em: 12 março 2009. [16] GATTI,Maíra Athanázio de Cerqueira E; WERNECK, Vera Maria B. Requisitos de Qualidade de Aplicações Web. Cadernos do IME. Série Informática – Vol 17 – Junho 2004. ISSN 1413-9014 Disponível em: < http://www.ime.uerj.br/cadernos/cadinf/Vol17/v17-Verab.PDF> Acesso em: 12 março 2009. [17] Hypertext Transfer Protocol -- HTTP/1.1, IETF. Disponível em: <http://www.ietf.org/rfc/rfc2616.txt> Acesso em: 23 janeiro 2009. [18]NEWCOMER, Eric..Understanding Web Services: XML,WSDL,SOAP and UDDI. Boston: Addison Wesley, 2002. 332p. Londrina, 18 de Março de 2009. Aluno Orientador Thiago Augusto Lopes Genez. Prof. Dr. Mario Lemes Proença Jr. Plano de TCC do aluno Thiago Augusto Lopes Genez 9/9