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
Download

PROJETO DE PESQUISA - TCC - thiagogenez-tcc