Desenvolvimento Seguro de Aplicacoes Web
description
Transcript of Desenvolvimento Seguro de Aplicacoes Web
-
LUCAS LIMA DE SOUZA
DESENVOLVIMENTO SEGURO DE
APLICAES WEB SEGUINDO A
METODOLOGIA OWASP
LAVRAS - MG
2012
-
LUCAS LIMA DE SOUZA
DESENVOLVIMENTO SEGURO DE APLICAES WEB
SEGUINDO A METODOLOGIA OWASP
Monografia de graduao apresentada ao
Departamento de Cincia da Computao da
Universidade Federal de Lavras como parte
das exigncias do curso de Sistemas de
Informao para obteno do ttulo de
Bacharel em Sistemas de Informao.
Dr. Joaquim Quinteiro Ucha
Orientador
LAVRAS - MG
2012
-
Dedico esse trabalho aos meus pais.
-
AGRADECIMENTO
Deus, obrigado por ter sido meu pastor diante dessa caminha percorrida. Sou
grato pela inteligncia que me deste para conhecer e por ter me ajudado a
compreender melhor o mundo e as pessoas. Agradeo aos meus familiares
avs e avs, tios e tios, primos e primas, sogro, sogra e cunhado, e em
especial ao meu irmo Bruno, minha me Hariene e meu pai Hailton, por ser
meu alicerce para romper todas as barreiras e alcanar meus objetivos. Sou
grato ao meu grande amor, Eduarda, pelo companheirismo, carinho, amizade
e pacincia durante estes anos. Enfim agradeo a todos os professores, em
especial meu orientador Joaquim Quinteiro, alunos e servidores que de modo
direto ou no me ajudaram a terminar mais uma Sprint de um grande projeto
que a vida. \o/
-
RESUMO
As empresas e desenvolvedores de sistemas Web no apresentam como foco,
utilizar orientaes para prover o desenvolvimento seguro de aplicaes
Web. Nesse sentido, o presente trabalho prope avaliar a metodologia
proposta pela OWASP para o desenvolvimento seguro de aplicaes Web.
Com o objetivo de verificar como e se as recomendaes dessa metodologia
podem ser adotadas em projetos reais, foi realizada uma pesquisa-ao com
abordagem qualitativa para conhecer de forma correta e objetiva as prticas e
tcnicas de segurana. Com as tcnicas e mtodos de segurana observados
foi desenvolvida uma aplicao Web com as funcionalidades bsicas de um
e-commerce seguro, com objetivo de aplicar e avaliar as recomendaes
propostas pela OWASP. O trabalho buscou observar as relevncias das
recomendaes e tcnicas de segurana utilizadas e a conscientizao das
pessoas envolvidas no projeto.
Palavras-chave: aplicao Web, segurana, desenvolvimento seguro, Web,
Internet e OWASP.
.
-
SUMRIO
1. INTRODUO ............................................................................................. 11
1.1 Contextualizao e Motivao........................................................................ 11
1.2 Definio do Problema ................................................................................... 12
1.3 Definio da Soluo...................................................................................... 12
1.4 Objetivos do Trabalho .................................................................................... 13
1.5 Estrutura do Trabalho ..................................................................................... 13
2. REFERENCIAL TERICO ........................................................................... 15
2.1 Aplicao Web ............................................................................................... 15
2.1.1 Conceito e Importncia .................................................................................. 15
2.1.2 Web 2.0 .......................................................................................................... 17
2.1.3 Segurana na Web .......................................................................................... 20
2.1.4 Vulnerabilidade e Ataques ............................................................................. 22
2.2 OWASP.......................................................................................................... 27
2.2.1 Modelagem de riscos Estruturada a Ameaas................................................. 28
2.3 Consideraes Finais ...................................................................................... 34
3. METODOLOGIA .......................................................................................... 35
3.1 Classificao da Pesquisa ............................................................................... 35
3.2 Procedimentos metodolgicos ........................................................................ 36
3.3 Viso geral da aplicao ................................................................................. 36
3.3.1 Descrio geral ............................................................................................... 36
3.3.2 Cenrio ........................................................................................................... 37
3.4 Objetivos de Segurana .................................................................................. 38
3.4.1 Restries de segurana .................................................................................. 39
3.5 Tecnologias utilizadas .................................................................................... 40
3.5.1 Linguagem de desenvolvimento ..................................................................... 40
3.5.2 Sistema operacional ........................................................................................ 41
3.5.3 Banco de dados .............................................................................................. 41
3.5.4 Mecanismos de segurana da aplicao .......................................................... 42
3.6 Consideraes finais ....................................................................................... 50
4. APLICAO DESENVOLVIDA ................................................................. 51
4.1 Viso do usurio (cliente) ............................................................................... 51
4.2 Viso do administrador .................................................................................. 53
5. ANALISE E DISCUSSO ............................................................................ 61
5.1 Consideraes iniciais .................................................................................... 61
-
8
5.2 Anlise da aplicao ....................................................................................... 61
5.3 Consideraes finais ....................................................................................... 64
6. CONCLUSO ............................................................................................... 65
7. REFERNCIAS BIBLIOGRFICAS ........................................................... 67
8. APNDICE A REQUISITOS FUNCIONAIS DO E-COMMERCE ........... 69
8.1.1 RF1 Cadastro de administrador .................................................................... 69
8.1.2 RF2 Alterao de administrador ................................................................... 69
8.1.3 RF3 Cadastro de Produto ............................................................................. 69
8.1.4 RF4 Alterao de Produto ............................................................................ 70
8.1.5 RF5 Pesquisa de Produto .............................................................................. 70
8.1.6 RF6 Compra de Produto ............................................................................... 70
8.1.7 RF7 Cadastro de usurio (Cliente) ............................................................... 71
8.1.8 RF8 Alterao de usurio (cliente) ............................................................... 71
-
9
LISTA DE ILUSTRAES
Figura 1 - Requisio-Resposta HTTP. ....................................................................... 16
Figura 2 - Aplicaes com conceito de Web 2.0. ........................................................ 19
Figura 3 - Caractersticas da informao segura. ......................................................... 26
Figura 4 - Passos para modelagem de risco estruturada a ameaas. Fonte:
Adaptado de (WIEMANN, 2005)................................................................... 29
Figura 5 - Grfico de identificao de ameaas. Fonte: Adaptado de
(WIESMANN, 2005). .................................................................................... 33
Figura 6 - Caso de uso para um sistema de e-commerce bsico, onde as
linhas tracejadas presentam as aes do usurio que preciso fazer
login. .............................................................................................................. 37
Figura 7 - Viso geral da aplicao de e-commerce desenvolvida pelo
trabalho. ......................................................................................................... 38
Figura 8 - Exemplo de validao dos campos na entidade Administrador .................. 43
Figura 9 - Exemplo de codificao de sada com UTF-8 ............................................ 43
Figura 10 - Exemplo de mensagem secura emitida pelo sistema. ................................ 44
Figura 11 - Mtodo que garante a no visualizao dos dados presente nos
parmetros especificados ................................................................................ 44
Figura 12 - Mtodo que impede a passagem de comandos enviados pelos
usurios. ......................................................................................................... 45
Figura 13 - Definio do token de segurana, calculado a partir da sesso
atual do usurio. ............................................................................................. 46
Figura 14 - Mapeamento indireto de objetos - Configurao das rotas, no
arquivo routes.rb, para acesso dos recursos da entidade Produto. ................... 46
Figura 15 - Mapeamento indireto de objetos - Modo como os recursos, da
entidade Produto, foram disponveis. ............................................................. 47
Figura 16 - Configurao de gerenciamento de sesso. ............................................... 47
Figura 17 - Boto para sair do sistema, presente em todas as pginas. ........................ 48
Figura 18 - Mtodo de codificao de senhas. ............................................................ 48
Figura 19 - Interceptadores de acesso ao sistema e s funcionalidades
destinadas ao Administrador. ......................................................................... 49
Figura 20 - Filtro no Controlador na entidade Cliente para os recursos
disponveis e recursos destinados somente ao Administrador. ....................... 49
Figura 21 - Pgina inicial do sistema de comrcio eletrnico. .................................... 51
Figura 22 - Pgina para adicionar produto ao carinho de compras. ............................. 52
Figura 23 - Pginas dos produtos adicionados ao carinho de compra. ........................ 53
-
10
Figura 24 - Pgina para o Administrador acessar o sistema. ....................................... 54
Figura 25 - Funcionalidades disponveis ao Administrador. ....................................... 54
Figura 26 - Listagem de todos os clientes cadastrados no sistema. ............................. 55
Figura 27 - Listagem de todos os Administradores do sistema. .................................. 56
Figura 28 - Listagem de todos os produtos cadastrados no sistema. ............................ 57
Figura 29 - Formulrio de cadastro de novos produtos com a ausncia de
alguns campos obrigatrios. ........................................................................... 58
Figura 30 - Tentativa de remoo de algum produto no sistema. ................................ 59
Figura 31 - Pgina para edio de Produto. ................................................................. 60
-
11
1. INTRODUO
1.1 Contextualizao e Motivao
Atualmente a Internet contm milhes de computadores conectados
em uma rede fsica, formando um dos sistemas mais complexos da
atualidade. Um computador ligado Internet possui centenas de programas
de software em execuo que interagem uns com os outros (SCHNEIER,
2011). Esse relacionamento permite uma disseminao e divulgao de
informao no mbito mundial, proporcionando a colaborao e interao
entre indivduos e os seus computadores, independente de sua localizao
geogrfica.
A evoluo da Internet proporcionou uma mudana importante que
passou a ser percebida na construo de aplicaes Web. Neste sentido, para
Lawton (2007), pginas que apresentavam um comportamento esttico
passaram a ser interativas e dinmicas. Essa mudana proporcionou aos
usurios a capacidade de publicar e consumir informao de forma rpida e
constante, em aplicaes como redes sociais1, wikis2, blogs3 e outros.
Nesse contexto, o desenvolvimento seguro de uma aplicao Web
tornou-se um componente crucial para os sistemas de software no mercado.
Isso por que a popularizao de aplicaes Web com vulnerabilidade (que
permite um invasor violar a integridade do sistema) tambm aumentou, de
modo a intensificar os problemas de segurana na Web. Neste sentido, os
arquitetos de aplicaes Web no devem se responsabilizar apenas por
modelar uma aplicao, mas tambm pela construo de projetos que
resistem aos riscos, lidando com o uso tpico das aplicaes, porm
preocupando-se com os riscos de segurana mais crticos.
1 Estrutura social na Web com o objetivo de compartilhar informaes, gostos e
ideias entre usurios com o mesmo estilo. 2 Software colaborativo que permite a edio coletiva de documentes em hipertexto.
3 Dirio eletrnico que permite atualizao de contedos de maneira dinmica.
-
12
De acordo com Wiesmann et al. (2005), no existe ainda na maioria
das empresas e projetistas de software, uma movimentao forte em prol da
segurana de TI (Tecnologia da Informao), ou seja, as empresas no tm
adotado, em nvel adequado para auxiliar o desenvolvimento seguro de
aplicaes, atividades como controle de ameaas, reviso de cdigo e anlise
de riscos de segurana. O mesmo autor sugere que as recomendaes
propostas pelas metodologias de desenvolvimento de segurana de
aplicaes Web, suportem os objetivos empresariais e auxilie os projetistas
de software e desenvolvedores a construrem uma aplicao segura, de modo
que no se utilize apenas os conceitos bsicos, mas tambm que haja a
valorizao dos princpios de segurana como: confidencialidade,
integridade, autenticidade e disponibilidade.
1.2 Definio do Problema
Diante da falta de orientaes para realizar o desenvolvimento
seguro de aplicaes Web, define-se o problema deste trabalho como: A
maioria dos arquitetos e desenvolvedores no utilizam, durante o ciclo de
vida de projetos de software, orientaes e tcnicas para prover o
desenvolvimento seguro de aplicaes Web, identificando os objetivos de
segurana no sistema de software, e seguindo os princpios como:
confidencialidade, autenticidade, integridade e disponibilidade dos dados.
1.3 Definio da Soluo
Para buscar informaes que possam contribuir com o problema
identificado, deve-se: Realizar estudos para qualificar a adoo de tcnicas
e recomendaes de segurana no desenvolvimento de aplicaes Web
atravs de metodologias para o tratamento de riscos e ameaas de
segurana contida em um projeto real.
-
13
1.4 Objetivos do Trabalho
Neste trabalho, definiu-se como objetivo geral: Avaliar a
metodologia proposta pela OWASP para o desenvolvimento seguro de
aplicaes. Verificar como e se as recomendaes dessa metodologia podem
ser adotadas em projetos reais.
Os seguintes objetivos especficos foram definidos, a fim de alcanar
o objetivo geral proposto:
1. Pesquisar livros e artigos, com conceitos relacionados a este
trabalho;
2. Pesquisar as maneiras de ataques e vulnerabilidades mais
comuns no ambiente Web;
3. Estudar o Guia para Desenvolvimento Seguro de Aplicaes
Web e Web Service, WIESMANN et al. (2005);
4. Analisar o The Ten Most Critical Web Application Security
Risks (OWASP, 2010);
5. Avaliar qualitativamente as recomendaes e tcnicas de
segurana presente no Guia para Desenvolvimento Seguro
de Aplicaes Web e Web Service, por meio de simulaes
de ataque em um sistema bsico de compras online.
1.5 Estrutura do Trabalho
Captulo 2 apresenta o referencial terico, mostrando os principais
conceitos utilizados no trabalho como aplicao Web, Web 2.0, segurana na
Web, vulnerabilidades e ataques, pilares da informao segura.
apresentada tambm a metodologia OWASP, com conceitos de modelagem
de risco estruturada a ameaas, e falhas em aplicaes Web.
-
14
Captulo 3 mostra a metodologia do trabalho, detalhando a sequncia
de atividades, a maneira de conduo do trabalho e o modo como os
conceitos sero aplicados para alcanar o resultado esperado.
Captulo 4 detalha as funcionalidades e o comportamento do
prottipo de software desenvolvido, apresentando as principais
funcionalidades e como utiliza-las.
Captulo 5 apresenta uma anlise e discusso sobre a metodologia e
tcnicas utilizadas para a construo do prottipo de um sistema de compra,
considerando os conceitos e recomendaes de segurana.
Captulo 6 apresenta a concluso das atividades e conceitos
relatados no trabalho.
-
15
2. REFERENCIAL TERICO
2.1 Aplicao Web
2.1.1 Conceito e Importncia
No incio da dcada 1990, Tim Berners-Lee apresentou ao mundo a
World Wide Web ou Web. Web um sistema computacional projetado para
ser acessado por meio de uma rede como a Internet ou Intranet.
Tecnicamente trata-se da utilizao do protocolo HTTP Protocolo de
Transferncia de Hipertexto, que implementado em dois programas: um
programa cliente e outro servidor, para conversar um com o outro por meio
da troca de mensagens HTTP (WANG, 2011).
Um recurso Web (como pginas, imagens e vdeos) acessado por
um programa cliente. O programa cliente, normalmente conhecido como
navegador ou browser (por exemplo, Mozila Firefox4, Opera5 e Chrome6),
que acessam os recursos atravs de um esquema de endereamento uniforme
conhecido como URL Uniform Resource Locator. Os servidores Web7
abrigam os recursos Web, cada um endereado por uma URL.
De acordo com Kurose (2010), a maneira como os clientes Web
requisitam pginas aos servidores e como os servidores as transferem a
clientes estabelecida pelo HTTP. Quando um usurio requisita uma pgina
Web (por exemplo, digita uma URL no navegador), o browser envia ao
servidor mensagens de requisio HTTP para os recursos das pginas. O
servidor recebe as requisies e responde com mensagens de respostas
HTTP com os recursos solicitados. A Figura 1 ilustra o comportamento de
requisio-resposta do HTTP.
4 Navegador Mozila Firefox: http:// www.mozila.org/pt-BR/firefox/
5 Navegador Opera: http://www.opera.com/
6 Navegador Chrome: http://www.google.com/chrome/
7 Exemplo de servidor Web o Apache Tomcat: http://www.tomcat.apache.org/
-
16
Figura 1 - Requisio-Resposta HTTP.
Geralmente a estrutura de uma aplicao de software que utiliza a
Web, por meio de um browser como ambiente de execuo e realiza o
processamento em algum servidor, dividida em trs camadas. A primeira,
no qual est presente no programa cliente, denominada como camada de
apresentao. A segunda, de aplicao (intermediria) possui toda a estrutura
lgica; e a terceira, a camada de armazenamento, que contm as aplicaes
de banco de dados.
Para o desenvolvimento das duas primeiras camadas pode utilizar-se
de tecnologias como PHP8, HTML
9, JSP
10, Flash
11, Python
12, Ruby on
8 Linguagem PHP: http://www.php.net
9 Linguagem HTML: http://www.w3.org/MarkUp/
10Tecnologia JSP: http://www.oracle.com/technetwork/java/javaee
/jsp/index.html 11
Plataforma Adobe Flash: http:// www.adobe.com/br/products/flashplayer.html 12
Linguagem Python: http://www.python.org
-
17
Rails13
, ASP14
, CSS15
, ASP.NET16
, Java17
etc. Na camada de armazenamento
os aplicativos de banco de dados utilizados so MySQL18
, Oracle19
,
Firebird20
, Microsoft SQL Server21
, PostgreSQL22
entre outros. A alta gama
de tecnologias proporciona aos desenvolvedores, uma alta flexibilidade para
adequar a melhor tecnologia aos principais objetivos da aplicao. As
aplicaes construdas podem atender varias necessidades sociais e
comerciais, e proporcionar aos usurios um ambiente interativo, rpido e
colaborativo.
Atualmente a Web uma plataforma com grande potencial para
execuo de tecnologias com vrios servios e informaes compartilhadas
que podem ser acessados de qualquer lugar do mundo, muitas vezes sem a
necessidade de instalao de programas ou armazenamento de dados.
2.1.2 Web 2.0
A evoluo da Internet e a mudana na forma como a Web passou a
ser vista por usurios e desenvolvedores, em 2004, foi nomeada como a
segunda gerao de comunidades e servios na Web, ou seja, Web 2.0
(MURUGESAN, 2007). Embora o termo expresse uma nova verso para a
Web, este no se refere atualizao nas especificaes tcnicas, mas sim o
ambiente de interao e participao.
13 Framework Web Ruby on Rails: http:// rubyonrails.org
14 Linguagem ASP: http:// www.asp.net
15 Folha de estilo CSS: http://www.w3.org./Style/CSS
16 Linguagem ASP.net : http:// www.asp.net
17 Linguagem Java: http://home.java.net
18 Banco de Dados MySQL: http://www.mysql.com
19 Banco de Dados Oracle: http://www.oracle.com/br/products/database/index.html
20 Banco de Dados Firebird: http://www.firebirdsql.org/
21 Banco de Dados Microsoft SQL Server: http://www.microsoft.com/sqlserver
22 Banco de Dados PostgreSQL: http://www.postgresql.org/
-
18
Para Lawton (2007), pginas que apresentavam um comportamento
esttico23
passaram a ser interativas. O mesmo autor afirma que essa
interao proporcionou aos usurios, a capacidade de publicar e consumir
contedo na Internet de forma rpida e constante, em aplicaes como blogs,
wikis, redes sociais e outros.
A Web 2.0 prope que as aplicaes Web apresentem
comportamento semelhante aos aplicativos desktop24, para aumentar a
velocidade e a facilidade de uso das informaes compartilhadas. Este
propsito da Web 2.0 poder ser claramente observado em aplicativos como
GoogleDocs25
, YouTube26
e GoogleCalendar27
como apresentado pela
Figura 2.
23 Geralmente so pginas construdas somente com HTML, sem efeitos ou
funcionalidades avanas. 24
So softwares que funcionam em computadores pessoais sem a necessidade de um
navegador de internet. 25
GoogleDocs: http://docs.google.com/ 26
YouTube: http://www.youtube.com/ 27
GoogleCalendar: http://www.google.com/calendar
-
19
Figura 2 - Aplicaes com conceito de Web 2.0.
Embora Web 2.0 tenha comeado simplesmente como um fenmeno
de consumo, atraindo vrios usurios e colaboradores para aplicaes
sociais, como MySpace28
, Flickr29
, YouTube e a enciclopdia online
Wikipedia30
, ela tem impactado de maneira relevante outras reas de
aplicao. De acordo com MURUGESAN (2007), a Web 2.0 pode ajudar as
empresas no desenvolvimento de produtos, pesquisas de mercado, aquisio
de informaes relevantes, publicidade e inteligncia competitiva, gerando
um nmero crescente de empresas que oferecem servios online de maneira
inovadora e colaborativa.
28 MySpace: http://www.myspace.com/
29 Flickr: http://www.flickr.com/
30 Wikipedia: http://www.wikipedia.org/
-
20
2.1.3 Segurana na Web
Junto com a ascenso da Internet como meio de troca de dados,
contedos e de comunicao, apareceram os recursos maliciosos31
(KUROSE, 2010). Aplicaes com comportamento dinmico e interativo
exigem a capacidade de interpretao de scripts32, os quais podem executar
cdigos ou transportar contedo inadequado, para propagar malwares33 e
links34 mal intencionados. Esse tipo de aplicao Web apresenta maiores
riscos que os tradicionais sites Web, pois a propagao dos recursos
maliciosos ocorre atravs das pginas Web, mensagens de e-mail, arquivo
MP335
, chamadas telefnicas e vdeos em tempo real (LAWTON, 2007).
Um estudo que mostra o crescimento da utilizao da Web pelos
crackers36 para lanar worms37 que executam operaes prejudiciais foi feito
em uma anlise do Centro de Estudos, Resposta e Tratamento de Incidentes
de Segurana no Brasil - CERT.br38
(NIC.BR, 2011). De acordo com essa
anlise, as notificaes sobre ataques a servidores Web, no primeiro
trimestre de 2011, cresceram 14% em relao ao trimestre anterior e 69% em
relao ao mesmo perodo de 2010. A anlise ainda demostra que os
atacantes exploram vulnerabilidades em aplicaes Web para, ento,
hospedar nesses sites pginas falsas de instituies financeiras, cavalos de
tria39
, injeo de cdigo SQL40
, ferramentas utilizadas em ataques a outros
31 Links, imagens, vdeos ou pginas que podem prejudicar os usurios.
32 Um programa ou uma sequncia de instrues interpretadas por outro programa.
33 Software destinado a infiltrar em um sistema computador alheio de forma ilcita.
34 uma referncia a um documento em hipertexto a outras partes deste documento
ou a outro documento. 35
MPEG Audio Layer-3, tipo de compresso de udio. 36
So indivduos que invadem sistemas de computadores, a fim de fraudar os
cdigos de segurana. 37
Um worm (verme, em portugus), em computao, um programa auto
replicante, no precisa de outro programa para se propagar. 38
Cert.br: http://www.cert.br/ 39
Programa malicioso que facilita uma possvel invaso em um computador. 40
Esse assunto ser tratado na sesso 2.1.4.
-
21
servidores Web, execuo maliciosa de arquivos, e scripts para envio de
spam41 ou scam42.
Se o resultado da pesquisa realizada pela CERT.br so relevantes,
importante destacar que essa anlise apenas a parte visvel do problema,
uma vez que a maior parte dos ataques no so divulgados ou documentados.
As instituies ocultam ou relatam poucas informaes sobre ataques
efetuados, para evitar o dano imagem, e principalmente para evitar a sada
de clientes que se sentiriam receosos de informar ou enviar informaes
sensveis para empresas que tiveram sistemas computacionais invadidos
(UCHA, 2011).
Se por um lado h um alto volume de usurios virtuais, mal
intencionados, utilizando a Internet de maneira inadequada, por outro lado,
existem agentes de segurana trabalhando a favor da segurana na Web,
assunto destacado, na reportagem no site Info43, Brasil ter Centro de
Defesa Ciberntica44.
Segundo CAMPI (2011), h mais de um ano o Brasil est
desenvolvendo o Centro de Defesa Ciberntica (CDCiber). O objetivo do
CDCiber ser coordenar as aes de defesa ciberntica e proteger as redes
militares e governamentais, alm de possibilitar uma contribuio na
proteo s infraestruturas de informao.
De um modo geral a falta de segurana em sistemas Web ainda
prevalece, porm importante destacar que a cada dia melhorias
computacionais voltadas para a segurana esto sendo implantadas. Estas
41 Mensagens eletrnicas no solicitadas enviadas em massa.
42 Mensagens eletrnicas oferecendo promoes ou vantagens, solicitando algum
tipo de recadastramento. 43
Site Info Abril: http://info.abril.com.br/ 44
Notcia disponvel em: http://info.abril.com.br/noticias/ti/brasil-tera-centro-de-
defesa-cibernetica-09062011-21.shl
-
22
melhorias podem ser observadas em sistemas de e-commerce45, e-learning46,
e-business47, transaes eletrnicas, redes sociais e sistemas governamentais.
As melhorias apresentam como objetivo suprir a necessidade de aplicaes
seguras no mercado da Internet e permitir aos usurios que ainda possuem
receio de utilizar servios Web sintam-se seguros.
2.1.4 Vulnerabilidade e Ataques
As vulnerabilidades e ataques em aplicaes Web esto diretamente
relacionados. Geralmente para um sistema computacional ser atacado
necessrio que o usurio mal intencionado procure ou perceba uma fraqueza
no sistema. Falhas em sistemas de Internet permite a um invasor violar a
integridade do mesmo, principalmente por: uso de senhas fracas e de bugs48
em software e/ou falhas no desenvolvimento da aplicao.
De acordo com a pesquisa realizada por (OWASP, 2010), no ano de
2010, os principais tipos de ataques e vulnerabilidades presentes em
aplicaes Web foram:
Falha de Injeo: estas acontecem quando os dados que o usurio
fornece de entrada so enviados como parte de um comando ou
consulta. Os atacantes confundem o interpretador para o mesmo
executar comandos manipulados, enviando dados modificados. As
falhas de Injeo habilitam o atacante criar, ler, atualizar ou apagar
arbitrariamente qualquer dado disponvel para a aplicao. No pior
45 a venda no presencial de produtos feita atravs de um dispositivo eletrnico,
como, por exemplo, um computador. 46
equivalente a um modelo de ensino, auxiliado por uma tecnologia, onde os
envolvidos no esto presentes. 47
So negcios efetuados entre dois ou mais comerciantes atravs da Internet. 48
Erro no funcionamento comum de um software.
-
23
cenrio, estas falhas permitem ao atacante comprometer
completamente a aplicao e os sistemas relacionados.
Cross-Site Scripting (XSS): XSS um subconjunto de inseres
HTML49
. Esse tipo de ataque permite que o agente atacante execute
script no navegador da vtima, com inteno de sequestrar sesses
de usurios, desfigurar Web sites, inserir contedo hostil, conduzir
ataques de roubo de informaes pessoais (phishing) e obter o
controle do navegador do usurio usando um script mal
intencionado (malware). O script malicioso frequentemente escrito
em JavaScript, mas qualquer linguagem de script suportada pelo
navegador da vtima um alvo potencial para este ataque.
Falha de Autenticao e Gerenciamento de Sesso: Autenticao
e gerncia de sesso apropriada so crticas para a segurana na
Web. Falhas nesta rea geralmente envolvem falha na proteo de
credenciais e nos tokens50 da sesso durante seu tempo de vida. Estas
falhas podem estar ligadas a roubo de contas de usurios ou
administradores, causando violaes de privacidades.
Referncia Direta Insegura a Objetos: Uma referncia direta a um
objeto acontece quando um desenvolvedor expe uma referncia a
um objeto de implementao interna, como por exemplo, um
arquivo, diretrio, registro na base de dados ou chave, uma URL ou
um parmetro de um formulrio. Um atacante pode manipular
diretamente referncias a objetos para acessar outros objetos sem
autorizao, a no ser que exista um mecanismo de controle de
acesso.
Cross Site Request Forgery (CSRF): tem como objetivo iniciar,
atravs do navegador de uma possvel vtima, uma requisio para
uma aplicao Web vulnervel. A utilizao de um usurio (vtima)
49 Linguagem de Marcao de Hipertexto para construo de pginas Web.
50 Um conjunto de caracteres com um significado coletivo.
-
24
intermedirio acontece, pois o usurio mal intencionado realiza um
ataque em nome da vtima. Este ataque tambm conhecido por
outros diversos nomes incluindo Session Riding, Ataques One-Click,
Cross Site Reference Forgery, Hostile Linkig e Automation Attack.
Gerenciamento Inseguro de Configurao: Configuraes
inseguras e mal definidas em frameworks51, servidor de aplicaes,
Web service52 e servidor de banco de dados podem resultar na
violao da segurana das aplicaes desenvolvidas e o
fornecimento de informaes inseguras.
Armazenamento Criptogrfico Inseguro: Um atacante pode
aproveitar essa vulnerabilidade e tentar obter acesso aos contedos
de dados sensveis aplicao. Simplesmente no criptografar53
dados sensveis muito comum. Ainda, aplicaes que adotam
criptografia frequentemente possuem algoritmos mal concebidos,
usam mecanismos de codificao inapropriados ou cometem srios
erros usando codificaes fortes.
Falha de Restrio de Acesso URL: Com essa vulnerabilidade
possvel que um atacante tenha acesso a pginas ou informaes que
no deveriam ser permitidas, caso o controle de restrio de acesso
no seja desenvolvido de forma correta.
Proteo Insuficiente da Camada de Transporte: Frequentemente
as aplicaes Web falham para autenticar, criptografar, e proteger a
confidencialidade e integridade na rede. Quando o fazem,
51 Conjunto de cdigos comuns entre vrios projetos de software provendo uma
funcionalidade genrica. 52
Soluo utilizada na integrao de sistemas e na comunicao de aplicaes
diferentes. 53
Tcnica pela qual os dados podem ser transformados da sua forma original para
outra ilegvel, de forma que possa ser conhecida apenas por seu destinatrio.
-
25
geralmente utilizam de certificados54
invlidos, algoritmos fracos ou
no os usam corretamente.
Redirecionamento Invlido: Aplicaes Web frequentemente
redirecionam e enviam os usurios para outras pginas e sites,
muitas vezes utilizando meios inseguros para determinar as pginas
de destino. Sem devida validao, os atacantes podem redirecionar
vtimas para phishing ou malware, ou usar o redirecionamento para
acessar pginas no autorizadas.
Pela grande variedade de ataques, o mundo da segurana computacional
caracterizado pela evoluo contnua, no qual novos ataques tm como
resposta novas formas de proteo, que levam ao desenvolvimento de novas
tcnicas de ataques, de maneira que um ciclo formado, (HOWARD, 2004).
Nesse sentido, os sistemas computacionais no devem se preocupar somente
com a adaptao ou construo de funcionalidades de defesa, para atender
exclusivamente as ameaas explcitas, mas projetar uma arquitetura de
software robusta para suportar vrios tipos de ataques comuns e ainda os
desconhecidos.
De acordo com Campos et al. (2006), um sistema computacional
com objetivo de fortalecer a segurana da informao, controlando os riscos
de sofrer ataques , deve conter as seguintes caractersticas:
Confidencialidade: o conceito de confidencialidade
respeitado quando as informaes so protegidas contra sua
revelao, leitura e/ou cpia por algum que no tenha sido
explicitamente autorizado interna ou externamente.
Integridade: o princpio de integridade respeitado quando
a informao acessada est completa, sem alteraes e,
portanto, confivel.
54 Documento eletrnico que comprova a identidade de uma pessoa, empresa ou site
e garante a segurana das transaes online.
-
26
Disponibilidade: consiste na proteo dos servios
prestados pelo sistema de forma que eles no sejam
degradados ou se tornem indisponveis sem autorizao,
assegurando ao usurio o acesso aos dados sempre que deles
precisar.
Autenticidade: a autenticidade consiste em assegurar ao
receptor que a mensagem realmente procedente da origem
informada em seu contedo. Geralmente desenvolvida a
partir de um mecanismo de senhas ou de assinatura digital.
Figura 3 - Caractersticas da informao segura.
Na Figura 3, apresenta-se a base de um sistema de informao
seguro. Se um desses princpios for desrespeitado em algum momento, isto
significa uma quebra de segurana da informao, o que pode ser chamado
de incidente de segurana da informao, (CAMPOS, 2006).
-
27
2.2 OWASP
OWASP - The Open Web Application Security Project uma
organizao mundial sem fins lucrativos, dedicada a encontrar e combater as
causas de insegurana em aplicaes Web. Dentre vrios projetos e
ferramentas disponibilizadas pela OWASP, voltadas para segurana,
encontra-se o Guia para Desenvolvimento Seguro de Aplicaes Web e Web
Services (OWASP, 2012). Este guia fornece orientaes detalhadas para
desenvolvedores e projetistas de software proporem solues para o
desenvolvimento seguro de aplicaes Web.
Para o desenvolvimento de aplicaes com bom potencial de segurana,
ou seja, que toleram vrios tipos de ataques presente na Web, necessrio a
adoo de um conjunto de atividades, que auxilie as organizaes durante
todo o ciclo de vida do software, a alcanar os objetivos de segurana.
De acordo WIESMANN et al. (2005), uma metodologia de
desenvolvimento voltada para a segurana necessita dos seguintes atributos:
Facilidade de adaptao para testes, design e documentao;
Atividades onde os controles de segurana (tais como
anlise de risco, ameaas, revises de cdigo, etc.) podem
ser aplicados;
Mtricas que auxiliam o aumento do nvel de maturidade de
segurana da organizao e;
Potencial para reduzir as taxas de erros correntes, e melhorar
a produtividade do desenvolvimento.
Erros na construo de aplicaes de software podem levar a falhas,
e uma grande porcentagem destas se tornar vulnerabilidade de segurana
(HOWARD, 2004). Assim, a maior meta reduzir a chance dos
desenvolvedores introduzirem vulnerabilidades de segurana, utilizando
boas prticas de desenvolvimento, como a validao de entradas com o
objetivo de verificar se os dados de entrada esto no padro esperado pela
-
28
aplicao; e tratamento de excees, para controlar alteraes no fluxo
normal da aplicao.
2.2.1 Modelagem de Riscos Estruturada a Ameaas
A modelagem de riscos estruturada a ameaas um mtodo
essencial para o desenvolvimento de design55 seguro de aplicaes Web,
associadas aos controles de segurana, (AL-FEDAGHI et al., 2010). Isto
permite o direcionamento da organizao e equipe de desenvolvimento, a
utilizarem recursos, tempo e dinheiro com atividades relevantes e suficientes
aos riscos reais.
Existem cinco etapas para a modelagem de riscos estruturada a
ameaas: I) identificar os objetivos de segurana; II) obter a viso geral da
aplicao; III) anlise da aplicao; IV) identificao de ameaas e; V)
identificao de vulnerabilidade (WIESMANN, 2005). Os passos so
apresentados pela Figura 4.
55 Desenho ou arquitetura do projeto de software, voltado para melhor entendimento
e estruturao da soluo proposta.
-
29
Figura 4 - Etapas para modelagem de riscos estruturada a ameaas. Adaptado de
(WIEMANN, 2005).
2.2.1.1 Identificar os Objetivos de Segurana
Os objetivos de segurana so as intenes e restries relacionadas
com a confidencialidade, integridade, disponibilidade e autenticidade dos
dados e da aplicao (MEIER, 2005). Assim, o ponto principal do objetivo
de segurana auxiliar no entendimento das atividades contidas em um
ataque, com a finalidade de direcionar o desenvolvimento seguro nas reas
da aplicao que requerem mais ateno.
De acordo com (OWASP, 2007), para melhor identificar os
objetivos de segurana de uma aplicao relevante separ-los nas
categorias de identificao, financeiro, reputao (prestgio), privacidade e
regulamentao, e garantias de disponibilidades. A categoria de identificao
tem o propsito de proteger a identidade dos usurios e disponibilizar
informaes somente aos usurios corretos. A categoria financeira apresenta
-
30
como objetivo avaliar se a organizao est preparada para absorver uma
potencial perda financeira. A terceira categoria (reputao) avalia qual o
impacto negativo na imagem da aplicao, se um ataque a esta for bem
sucedido. Privacidade e regulamentao analisam at que ponto a aplicao
deve proteger os dados dos usurios, e se a aplicao est sujeita a se
comportar de acordo com alguma regulamentao ou exigncias da
legislao. A categoria de garantias de disponibilidades verifica quais so os
recursos presentes na aplicao Web, que realmente precisam de um alto
nvel de disponibilidade aos usurios. A identificao dos objetivos de
segurana importante, pois a aplicao correta dos controles de segurana
ir economizar em recursos, tempo e dinheiro durante todo o ciclo de vida da
aplicao.
2.2.1.2 Viso Geral da Aplicao
De acordo com Wiesmann (2005), uma vez que os objetivos de
segurana tenham sido definidos, a viso geral da aplicao obtida atravs
da anlise do design da aplicao Web, com a finalidade de identificar os
componentes, os fluxos de dados e os limites de segurana. Neste sentido,
com o objetivo de identificar as principais funcionalidades, caractersticas da
aplicao e os clientes, Meier (2005) prope as seguintes atividades:
Desenhar o cenrio de implantao de ponta a ponta:
desenhar um diagrama simples que descreva a composio e
estrutura da aplicao, seus subsistemas e suas
caractersticas de implantao. Adicionar detalhes sobre a
autenticao, autorizao e mecanismo de comunicao;
Identificar os papis: identificar quais as atividades e
funcionalidades que os usurios podem executar. A equipe
envolvida no desenvolvimento do projeto necessita observar
quais so os privilgios de um grupo de usurios; quais
usurios podem ler e alterar dados; quais podem apagar os
-
31
dados; e varias outras atividades proporcionadas pela
aplicao;
Identificar os principais casos de uso: tem como objetivo
ajudar a entender como o aplicativo ser usado e como ele
pode ser mal utilizado. Os casos de uso ajudam a identificar
os fluxos de dados e as ameaas no processo de modelagem;
Identificar as tecnologias: identificar as tecnologias como
sistema operacional, banco de dados, linguagem de
desenvolvimento e as tecnologias usadas para acessar a
camadas da aplicao; ajuda a utilizar tecnologias
especficas para tratamento de ameaas durante a
modelagem da aplicao, e determinar as tcnicas de
mitigao correta e mais adequada;
Identificar os mecanismos de segurana da aplicao: o
objetivo dessa atividade identificar como ser realizada a
validao dos dados de entrada, autenticao, o
gerenciamento de configurao, tratamento dos dados
sensveis, gerenciamento de sesses, criptografia,
manipulao dos parmetros, tratamento de excees e
login.
2.2.1.3 Anlise da Aplicao
De acordo com Meier, Mackman e Wastell (2005), nesta etapa
realiza-se a decomposio da aplicao para reconhecer os limites de
confiana, os fluxos de dados e os pontos de entrada e sada, de modo que
um estudo mais profundo de identificao de caractersticas do aplicativo em
desenvolvimento seja feito (OWASP, 2007):
Decomposio: adquirida atravs da identificao dos
limites de confiana, para ajudar a focalizar a anlise sobre
as reas inseguras;
-
32
Identificao dos fluxos de dados: apresenta como finalidade
entender como a aplicao interage com sistemas externos, e
como os dados so validados e persistidos;
Identificao dos pontos de entradas: Nessa etapa mapeiam-
se os pontos que expem as funcionalidades privilegiadas;
Identificao dos pontos de sada: onde o aplicativo envia
dados para o cliente ou sistemas externos, como banco de
dados compartilhados.
2.2.1.4 Identificao de Ameaas
Para identificao de ameaas, Wiesmann, Curphey e Stirbei (2005)
consideram os risco conhecidos (CSRF, Falha de Injeo, XSS entre outros)
para determinar quais implementaes voltadas segurana sero utilizadas
para o desenvolvimento da aplicao. O mesmo autor ilustra a construo de
um grfico de ameaas apresentado pela Figura 5.
-
33
Figura 5 - Grfico de identificao de ameaas. Adaptado de (WIESMANN, 2005).
Para conduzir o processo de identificao de ameaas, a equipe de
desenvolvimento, arquitetos, profissionais de segurana, testadores e
administradores do sistema devem trocar conhecimento para identificar as
ameaas e ataques que possam afetar a aplicao e compromenter os
objetivos de segurana.
2.2.1.5 Identificao de Vulnerabilidades
De acordo com Meier (2005), a identificao de vulnerabilidades
baseia-se na reviso do quadro de segurana da aplicao Web a procura de
vulnerabilidades. O mesmo autor afirma que as vulnerabilidades podem ser
encontradas analisando:
Camada por camada da aplicao, observando as
funcionalidades de autenticao para realizar o mapeamento
de quais contedos cada usurio pode obter acesso;
-
34
Entrada e validao dos dados, com objetivo de verificar se
os dados inseridos pelos usurios esto no formato esperado
pela aplicao;
Gerenciamento de configurao, para identificar se h o
fornecimento de informaes inseguras e garantir a
configurao do servidor de aplicaes, frameworks e
servidor de bando de dados;
Gerenciamento de sesso, para observar se as sesses podem
ser criadas e mantidas durante toda a visita do usurio no
sistema, de modo que os dados no sejam expostos;
Criptografia dos dados, a fim de garantir a integridade,
confidencialidade, disponibilidade e autenticidade da
informao e;
Sistema de login, com objetivo de encontrar falha na
restrio das funcionalidades e contedos, aos usurios que
utilizam o sistema.
2.3 Consideraes Finais
Neste captulo, foram apresentados os principais assuntos
relacionados a aplicaes Web, Web 2.0, segurana na Web, vulnerabilidades
e ataques e os pilares da informao segura como autenticidade,
disponibilidade, confidencialidade e integridade. A metodologia OWASP
tambm foi abordada, com conceitos de modelagem de risco estruturada a
ameaas e falhas em aplicaes Web.
No Captulo 3 ser apresentado metodologia do trabalho, a maneira
de conduo das atividades e o modo como os conceitos sero aplicados para
alcanar o objetivo geral do trabalho.
-
35
3. METODOLOGIA
3.1 Classificao da Pesquisa
Este trabalho realizou uma pesquisa aplicada, pois abordou a
utilizao de fatores de segurana em um sistema real. De acordo com
Barros et al. (2000), a pesquisa aplicada apresenta como motivao a
necessidade de produzir conhecimento para aplicao de seus resultados,
com o objetivo de construir para fins prticos, uma soluo para o problema
encontrado na realidade.
Conforme afirmado por Avison (1999), a utilizao da pesquisa-ao
como forma metodolgica possibilita a investigao de determinadas
praticas de uma forma crtica e reflexiva. Sendo assim, o objetivo da
pesquisa foi classificado como pesquisa-ao. vista disto, foram
considerados, em um sistema de comercio eletrnico (e-commerce), os
problemas de segurana mais comuns presente na Web para planejar,
desenvolver e avaliar um prottipo de software, de modo que as
recomendaes e tcnicas apresentadas pela OWASP pudessem ser
aplicadas e avaliadas.
De acordo com Wainer (2007), o mtodo qualitativo se caracteriza
por ser um estudo aprofundado de um sistema, onde se espera que o mesmo
seja implantado, deste modo para atingir os objetivos do trabalho, foi
adotada uma abordagem qualitativa. Contudo, utilizaram-se conceitos e
recomendaes de segurana para o desenvolvimento de uma aplicao Web
segura. A aplicao Web desenvolvida, constituiu-se dos conceitos de um
sistema de e-commerce, que apresenta as funcionalidades bsicas para a
realizao segura de compras atravs da Internet.
-
36
3.2 Procedimentos metodolgicos
Para consecuo dos objetivos propostos neste trabalho, foram
definidas atividades, conforme apresentado a seguir.
Inicialmente, foi realizada uma pesquisa bibliogrfica em livros,
guias e artigos buscando conceitos, recomendaes e relatos sobre o
desenvolvimento seguro de aplicaes e sobre segurana na Web. vista
disto, utilizou-se uma metodologia que possibilitasse verificar a efetividade
dos conceitos e recomendaes, aplicadas no sistema de e-commerce,
encontradas nas pesquisas.
Para tratamento dos riscos e ameaas presente no prottipo de
software (e-commerce), foi utilizado uma modelagem de riscos estruturada a
ameaas, indicado por Wiesmann et al. (2005). Esta modelagem composta
por atividades para auxiliar no desenvolvimento de design seguro de
aplicaes Web, como conceituado na Sesso 2.2
3.3 Viso geral da aplicao
3.3.1 Descrio geral
A aplicao deve permitir que um usurio (cliente), navegue
livremente pelo sistema, e adquira um ou mais produtos oferecidos, como
ilustrado na Figura 6. De modo que para cada tipo de usurio foi
determinada as restries de acesso necessrias, como descrito abaixo:
Administrador: este usurio possui acesso privilegiado sobre
as funcionalidades do sistema. Incluindo o cadastramento,
edio, listagem e remoo de produtos, clientes e
administradores do sistema;
-
37
Cliente: O usurio cliente est apto a comprar e pesquisar
um ou mais produtos disponibilizados pelo sistema.
Mais detalhes e informaes sobre as funcionalidades e o comportamento do
sistema proposto pelo trabalho podem ser encontradas no Apndice A.
Figura 6 - Caso de uso para um sistema de e-commerce bsico, onde as linhas
tracejadas presentam as aes do usurio que preciso fazer login.
3.3.2 Cenrio
A aplicao desenvolvida apresenta as caractersticas de uma
aplicao cliente - servidor como conceituado na Sesso 2.1.1 e
exemplificado na Figura 7.
-
38
Figura 7 - Viso geral da aplicao de e-commerce desenvolvida pelo trabalho.
3.4 Objetivos de Segurana
As aplicaes com comportamento de comrcio eletrnico (e-
commerce) proporcionam um conjunto relevante de facilidades para os
usurios no processo de compra. Dentre este conjunto de facilidades est
possibilidade de no precisar sair de casa para adquirir um produto, e ter
acesso a todas as informaes sobre os produtos em uma pequena quantidade
de tempo. No entanto, como na maioria das relaes de negcios, o e-
commerce tambm est sujeito a riscos e fraudes de segurana.
Para preservar a imagem da aplicao evitando que algum ataque
seja bem sucedido, os objetivos de segurana definidos para o
desenvolvimento do prottipo de software foram:
Assegurar ao usurio que a comunicao realizada atravs
do sistema realmente procedente da origem informada em
seu contedo;
-
39
Proteger a identidade dos usurios e disponibilizar
informaes somente aos usurios corretos;
Garantir que as informaes acessadas estejam sem
alteraes, completas e, portanto confivel;
Proteger os servios prestados pelo sistema, para que no se
tornem indisponvel sem autorizao, assegurando ao
usurio o acesso aos dados sempre que deles precisar.
3.4.1 Restries de segurana
Para alcanar os objetivos gerais de segurana, descritos na Sesso
3.3, e a confidencialidade, integridade, autenticidade e disponibilidade dos
dados na aplicao desenvolvida conceituada na Sesso 2.1.4, foram
utilizados as seguintes restries de segurana:
Evitar que comandos ou consulta entrem no sistema como
parte de dados enviados pelo usurio;
No enviar dados originados do usurio ao navegador, sem
primeiramente validar ou codificar o contedo;
Autenticar e gerenciar as sesses do usurio;
Evitar expor uma referncia a um objeto de implementao
interna, como por exemplo, um arquivo, diretrio, registro
na base de dados, uma URL ou um parmetro de um
formulrio;
Evitar redirecionamento vulnervel de pginas;
Criptografar dados sensveis com algoritmos bem
concebidos.
-
40
3.5 Tecnologias utilizadas
Aps a definio de uma arquitetura do prottipo de software, foram
utilizadas tecnologias voltadas para o desenvolvimento seguro de aplicaes
Web que suportassem os objetivos pretendidos por um sistema de compra e
venda online.
3.5.1 Linguagem de desenvolvimento
A linguagem utilizada para o desenvolvimento das funcionalidades
bsicas do sistema de comercio eletrnico foi a linguagem Ruby, juntamente
com o framework56 Ruby on Rails. Ruby uma linguagem orientada a
objetos, com tipagem forte, dinmica e interpretada. Segundo Ruby (2012),
uma das principais caractersticas de Ruby a expressividade, pois se teve
como objetivo desde o incio que fosse uma linguagem muito simples de ler
e ser entendida, para facilitar o desenvolvimento e manuteno de sistemas
desenvolvido com a mesma.
O Ruby on Rails foi criado para proporcionar maior agilidade,
praticidade e segurana no desenvolvimento de aplicaes Web, possuindo
mtodos auxiliares bem produtivos, como exemplo, contra Injeo de SQL
(GUIDES, 2012).
A arquitetura de desenvolvimento em Rails baseada no conceito de
separar toda a aplicao em trs camadas como: o modelo, visualizao e
controlador, ou seja, o MVC (Model View Controller). MVC um padro
arquitetural onde os limites entre seus modelos, suas lgicas e suas
visualizaes so bem definidas, sendo mais simples fazer um reparo, uma
mudana ou uma manuteno, j que essas trs partes se comunicam de
maneira desacoplada (THOMAS, 2005).
56 Um conjunto de cdigos comuns entre vrios projetos de software.
-
41
3.5.2 Sistema operacional
O sistema operacional utilizado para desenvolvimento e teste da
aplicao foi o Linux. O Linux foi criado em 1991 por Linus Torvalds, e
hoje mantido por uma comunidade mundial de desenvolvedores. O sistema
adota a GPL, uma licena de software livre, proporcionando que todos os
interessados podem us-lo e redistribu-lo, nos termos da licena (CAMPOS,
2012).
Segundo Silva (2008), com o objetivo de prover um ambiente pronto
para a realizao de diversas atividades desempenhadas por analistas de
segurana e auditores, as distribuies Linux possuem como caractersticas:
I) Coleta de Informao II) Mapeamento de Rede; II) Identificao de
vulnerabilidade; IV) Penetrao; V) Escalao de Privilgio VI) Controle de
Acesso; VII) Anlise de Rede de Rdio.
3.5.3 Banco de dados
O banco de dados utilizado para armazenamento dos dados presente
do sistema de e-commerce proposto pelo trabalho foi o MySQL. O MySQL
um sistema de gerenciamento de banco de dados (SGBD), que utiliza a
linguagem SQL (Structured Query Language) como meio de manipulao
dos dados. atualmente um dos bancos de dados mais populares, com mais
de 10 milhes de instalaes pelo mundo, possuindo as seguintes principais
caractersticas (MYSQL, 2012):
Portabilidade (suporta praticamente qualquer plataforma
atual);
Compatibilidade com vrias linguagens de programao.
Excelente desempenho e estabilidade;
Pouco exigente quanto a recursos de hardware;
Facilidade de uso;
-
42
um software livre com base na GPL;
Replicao facilmente configurvel;
Meios grficos de fcil utilizao.
3.5.4 Mecanismos de segurana da aplicao
O Guia para Desenvolvimento Seguro de Aplicaes Web e Web
Services ressalta que, para obter uma aplicao Web segura, de acordo com
Wiesmann (2005), necessrio atentar-se para validao dos dados de
entrada, autenticao, gerenciamento de configurao, tratamento dos dados
sensveis, gerenciamento de sesses, criptografia, codificao de sada dos
dados, tratamento de excees e notificao de mensagens de erros
detalhadas. Durante o desenvolvimento das funcionalidades bsicas do
sistema de e-commerce, foram aplicadas as recomendaes e tcnicas de
segurana citadas para sanar as vulnerabilidades, garantir a disponibilidade
dos dados, proteger informaes e a identidade dos usurios.
Para que o prottipo de software contasse com mecanismos de
segurana para a realizao de compra segura atravs da Internet,
considerando os principais ataques presente na Web como Cross Site
Request Forgery, Falha de Injeo, Referncia Insegura Direta a Objetos,
Cross-Site Scripting (XSS), Falha de Autenticao e Gerenciamento de
Sesso, Falha de Restrio de Acesso URL, foram utilizadas
recomendaes e prticas de seguranas de acordo com o The Ten Most
Critical Web Application Security Risks (OWASP, 2010), conforme
apresentado a seguir.
Validao de entrada: Como ilustrado na Figura 8, foi
utilizado um mecanismo padro de validao de entrada,
antes dos dados serem exibidos ou armazenados na
aplicao de e-commerce, para validar todas as entradas
quanto ao tamanho, tipo, sintaxe e regras de negcio.
-
43
Figura 8 - Exemplo de validao dos campos na entidade Administrador.
Como apresentado pela Figura 9, foi especificado a
codificao de sada (como UTF-8), para no permitir que o
atacante tenha liberdade para determinar uma codificao de
sada desejada.
Figura 9 - Exemplo de codificao de sada com UTF-8.
-
44
Evitou-se a notificao de mensagens de erros detalhadas que
sejam teis ao atacante, ou seja, mensagem que podem
mostrar para o usurio mal intencionado qual dado est
incorreto, como ilustrado pela Figura 10.
Figura 10 - Exemplo de mensagem segura emitida pelo sistema.
Para criptografar os valores dos parmetros sensveis (CPF,
senha e nmero do carto de crdito) durante as requisies
da aplicao, foi realizada uma filtragem de parmetros como
apresenta a Figura 11.
Figura 11 - Mtodo que garante a no visualizao dos dados presente nos
parmetros especificados.
-
45
Foi verificado se os dados de entrada do usurio, enviados
aos interpretadores da aplicao, no podiam modificar os
comandos de manipulao do banco de dados. Como mostra
o contorno em vermelho apresentado pela Figura 12.
Figura 12 - Mtodo que impede a passagem de comandos enviados pelos usurios.
Evitou-se aes de ataque como Cross Site Request Forgery
como conceituado na sesso 2.1.4, atravs da definio de um
token de segurana como ilustrado pela Figura 13, calculado
a partir da sesso atual, que ser includo em todos os
formulrios da aplicao.
-
46
Figura 13 - Definio do token de segurana, calculado a partir da sesso atual do
usurio.
Como apresentado pela Figura 14 e Figura 15, foi utilizado
um mapeamento indireto de objetos, para no disponibilizar o
diretrio real dos arquivos da aplicao.
Figura 14 - Mapeamento indireto de objetos - Configurao das rotas, no arquivo
routes.rb, para acesso dos recursos da entidade Produto.
-
47
Figura 15 - Mapeamento indireto de objetos - Modo como os recursos, da entidade
Produto, foram disponveis.
Foi utilizado um mecanismo padro para gerncia de sesso,
o objetivo desse gerenciamento no expor os dados do
usurio presente na sesso e determinar o prazo de expirao
das sesses, como ilustrado pela Figura 16.
Figura 16 - Configurao de gerenciamento de sesso.
-
48
Como ilustrado pela Figura 17, foi assegurado que todas as
pginas apresentassem um link para o usurio sair do sistema,
para evitar a permanncia dos dados do usurio na sesso da
aplicao.
Figura 17 - Boto para sair do sistema, presente em todas as pginas.
Foi assegurado que os dados armazenados no disco fossem
criptografados, como exemplifica a Figura 18.
Figura 18 - Mtodo de codificao de senhas.
Garantiu-se que todas URLs e funes de negcio fossem
protegidas por um mecanismo de controle de acesso efetivo
que verifique as funes e direitos do usurio antes que
qualquer funcionalidade seja executada, como ilustrado pela
Figura 19 e Figura 20.
-
49
Figura 19 - Interceptadores de acesso ao sistema e s funcionalidades destinadas ao
Administrador.
Figura 20 - Filtro no Controlador na entidade Cliente para os recursos disponveis e
recursos destinados somente ao Administrador.
-
50
3.6 Consideraes finais
Neste captulo, foi detalhada a sequncia das atividades realizadas no
trabalho e o modo como as recomendaes e tcnicas de segurana proposta
pela OWASP foram aplicados no sistema de e-commerce para alcanar o
resultado esperado.
No Captulo 4 sero detalhadas as funcionalidades e o
comportamento do prottipo de software neste captulo, apresentando as
principais funcionalidades e como utiliz-las.
-
51
4. APLICAO DESENVOLVIDA
A aplicao Web projetada e desenvolvida para o presente trabalho
constitui-se dos conceitos de um sistema de e-commerce, que apresenta as
funcionalidades bsicas para a realizao de compra segura atravs da
Internet.
4.1 Viso do usurio (cliente)
O sistema apresenta em suas pginas uma barra superior contendo
do lado esquerdo um formulrio para o usurio fazer o acesso ao sistema. No
lado direito apresentado dois links, um para criar uma conta na aplicao e
outro link para o usurio sair da aplicao. No centro da pgina inicial so
apresentados alguns produtos cadastrados no sistema, como apresentado pela
Figura 21.
Figura 21 - Pgina inicial do sistema de comrcio eletrnico.
-
52
Com a escolha de algum produto presente na pgina inicial, o
usurio direcionado para uma nova pgina com as principais caractersticas
do produto escolhido, como preo, prazo de entrega, disponibilidade e
classificao. Com o produto em destaque, o usurio pode adicionar o
produto em seu carinho de compra e/ou finalizar a compra, como ilustrado
pela Figura 22.
Figura 22 - Pgina para adicionar produto ao carinho de compras.
Se a escolha de finalizar a compra for realizada o usurio
direcionado para a pgina que mostra todos os produtos adicionados ao
carinho de compra. Essa relao apresenta a descrio, preo, prazo de
entrega, disponibilidade e classificao dos produtos adicionados ao carrinho
de compra. Outras informaes contidas nessa mesma pgina so as formas
de pagamento a serem escolhidas pelo usurio, onde o sistema oferece a
opo de pagamento com carto, de modo que o usurio informe o cdigo de
segurana e o nmero do carto para concluir a compra, como apresentado
pela Figura 23.
-
53
Figura 23 - Pginas dos produtos adicionados ao carinho de compra.
4.2 Viso do administrador
Na barra superior, presente em todas as pginas do sistema,
apresentado um link para o administrador fazer o acesso ao sistema.
Clicando sobre esse link, o usurio direcionado para uma pgina contendo
um formulrio. O formulrio necessita como dados de entrada o login e
senha de um administrador para obter acesso ao sistema, como ilustrado pela
Figura 24.
-
54
Figura 24 - Pgina para o Administrador acessar o sistema.
Como ilustrado pela Figura 25, quando um administrador acessa o
sistema disponibilizado trs botes para esse tipo de usurio, sendo estes
botes denominados como Produtos, Clientes e Administradores
respectivamente.
Figura 25 - Funcionalidades disponveis ao Administrador.
-
55
Com acesso a sesso de Clientes, uma listagem de todos os clientes
cadastrados ao sistema de e-commerce disponibilizado ao administrador.
Com essa listagem o administrador capaz de remover, editar cada cliente
e/ou adicionar um novo cliente na aplicao, como ilustrado pela Figura 26.
Figura 26 - Listagem de todos os clientes cadastrados no sistema.
Com acesso a sesso de Administradores, o administrador tem uma
listagem de todos os outros responsveis pelo sistema de e-commerce. Na
listagem obtida o administrador pode executar as funcionalidades de editar,
remover cada responsvel e/ou adicionar um novo responsvel pela
aplicao, como ilustrado pela Figura 27.
-
56
Figura 27 - Listagem de todos os Administradores do sistema.
Com um clique na sesso de Produtos o administrador tem acesso s
informaes que um usurio (cliente) obtm e uma listagem geral de todos
os produtos cadastrados no sistema. Com essa viso o administrador tem as
opes de editar, remove cada produto e/ou adicionar um novo produto ao
sistema, como apresentado pela Figura 28.
-
57
Figura 28 - Listagem de todos os produtos cadastrados no sistema.
Se a escolha de adicionar um novo produto ao sistema for realizada
o administrador direcionado para a pgina de cadastro de produtos. Para
cadastrar um produto so necessrios vrios dados de entrada, como
explicado no Apndice A. Com a entrada de dados incorretos mensagens de
validao so apresentadas ao administrador, como ilustrado pela Figura 29.
-
58
Figura 29 - Formulrio de cadastro de novos produtos com a ausncia de alguns
campos obrigatrios.
Com um clique no boto de remoo de um produto, uma nova
janela de mensagem lanada na tela, questionando o administrador se ele
realmente est seguro em executar a ao de remoo do produto escolhido.
Se a opo escolhida for sim, o produto removido seno o produto ser
mantido no sistema, como apresenta a Figura 30.
-
59
Figura 30 - Tentativa de remoo de algum produto no sistema.
Como ilustrado pela Figura 31, se a escolha de edio de um produto
for realizada, o administrador tem acesso ao formulrio de edio do produto
escolhido com todas as informaes j contidas no produto no valor dos
campos de entrada. Nesse formulrio o administrador pode ainda alterar os
valores do produto escolhido.
-
60
Figura 31 - Pgina para edio de Produto.
As funcionalidades apresentadas acima com as figuras de nmero
29, 30 e 31 tambm podem ser executadas para os Clientes e
Administradores do sistema de e-commerce.
-
61
5. ANLISE E DISCUSSO
5.1 Consideraes iniciais
Os materiais apresentados pela OWASP como o Guia de
Desenvolvimento Seguro de Aplicao Web e Web Service (WIESMANN,
2005) e The Ten Most Critical Web Application Security Risks (OWASP,
2010), utilizados no trabalho, apresentam como caractersticas a
objetividade, bons exemplos e tima didtica, como descrita a seguir.
Objetividade: Os materiais so compostos por captulos bem
definidos que explicam e apresentam claramente os conceitos
e atividades de segurana. Os contedos discutem e
apresentam reas chaves de implementao como arquitetura,
autenticao, gesto de sesses, controle de acesso e
autorizao, registro de eventos e validao dos dados.
Didtica: Todas as prticas de segurana apresentadas so
compostas por mtodos e tcnicas que facilitam o
entendimento dos ataques, que acontecem em aplicaes
Web, e ou questes a serem respondidas, por exemplo, para a
identificao de vulnerabilidades.
Exemplos: As ilustraes e os exemplos prticos demostram
os agentes, meios de ataques, vulnerabilidades e controles de
segurana a serem utilizados. Desde modo, os exemplos
apresentam como implementar, em projetos reais, as
prevenes tais como validao de dados, gerenciamento de
sesso, criptografia entre outros.
5.2 Anlise da aplicao
A aplicao Web, desenvolvida pelo trabalho, constituda dos
conceitos e funcionalidades bsicas de um sistema de e-commerce foi testada
-
62
por Oliveira (2012). O objetivo dos testes foi ajudar na avaliao das
tcnicas e recomendaes utilizadas, e verificar se os problemas de
segurana considerados foram resolvidos.
Com a anlise dos resultados obtidos pelo teste de segurana, foi
possvel observar que:
As funcionalidades de autenticao, em cada camada da
aplicao, realizam o mapeamento de quais contedos cada
usurio pode obter acesso;
O sistema no fornece informaes de usurios vlidos da
aplicao que possibilitem a realizao de ataques;
Os dados inseridos pelos usurios esto no formato esperado
pela aplicao;
A aplicao faz uso de um cookie durante toda navegao
utilizando valores criptografados;
As sesses podem ser criadas e mantidas durante toda a
visita do usurio no sistema, de modo que os dados no
sejam expostos;
Aplicao no realiza nenhum bloqueio, aps certo nmero
de tentativas erradas, no mecanismo de autenticao de
login dos usurios;
Sistema de login foi desenvolvido com eficincia, na
restrio das funcionalidades e contedos, aos usurios que
utilizam o sistema.
Aplicao impossibilita o manuseio do cookie atravs de
linguagens de script;
No houve verificao do tipo da entrada fornecida para
executar funcionalidades como remover, editar e mostrar
clientes do sistema.
-
63
Com o resultado dos testes observa-se que a modelagem de risco
estruturada a ameaas, contida no guia da OWASP, foi essencial para
configurao e implementao de cdigo seguro no sistema de e-commerce.
As atividades fornecem orientaes detalhadas para projetistas e
desenvolvedores de software, modelar e desenvolver uma aplicao
atendendo as funcionalidades bsicas, porm preocupando-se com os riscos
de segurana mais graves que envolvem a aplicao Web em questo.
A identificao dos objetivos de segurana, para o sistema de e-
commerce, possibilita a definio das atividades e prevenes necessrias
para projetar e desenvolver uma aplicao segura. Com os objetivos de
segurana definidos e com a aplicao dos controles de segurana, durante
todo o ciclo de vida do sistema de software, foi possvel:
Preservar a identidade dos usurios e fornecer informaes
somente aos usurios corretos;
Certificar ao usurio que os dados trocados atravs do
sistema so consequentes da origem informada em seu
contedo;
Assegurar que as informaes acessadas estejam completas,
confivel e, portanto sem alteraes.
Com a realizao das recomendaes e tcnicas proposta por
Wiesmann (2005), as pessoas envolvidas na construo do sistema so
capazes de analisar o design da aplicao Web atravs da deteco dos
principais usurios, funcionalidades e do cenrio necessrio para a execuo
do sistema. Com a realizao desta anlise, possvel identificar os fluxos
de dados e seus componentes e caracterizar as funcionalidades da aplicao e
seus usurios, ajudando a implementar as funcionalidades considerando os
principais ataques presente na Web e as medidas de segurana para combat-
los.
-
64
5.3 Consideraes finais
Neste captulo, foi apresentada uma anlise e discusso sobre a
metodologia utilizada para a construo do prottipo de software,
considerando os testes, conceitos e recomendaes de segurana.
As falhas de segurana encontradas, tais como bloqueio de
funcionalidades aps certo nmero de tentativas erradas, e a falta de
verificao do tipo da entrada fornecida para executar funcionalidades como
remover, editar e mostrar clientes do sistema, no foram consideradas como
vulnerabilidade, pois no foi possvel violar a integridade do sistema a partir
desta.
No Captulo 6 ser apresentada a concluso das atividades e
conceitos relatados no trabalho.
-
65
6. CONCLUSO
Considerando os objetivos levantados no inicio do trabalho, podemos
concluir que foi desenvolvida uma aplicao Web com as funcionalidades
bsicas de um e-commerce seguro.
O uso de guias e metodologias que suportem os objetivos gerais de uma
aplicao Web, em desenvolvimento, auxilia os envolvidos no projeto a
construrem uma aplicao segura. Nesse sentido, os princpios de segurana
como confidencialidade, autenticidade, integridade e disponibilidade so
valorizados durante todo o ciclo de vida da aplicao.
Com o aproveitamento das caractersticas dos materiais apresentados
pela OWASP como objetividade, didtica, bons exemplos, e a valorizao
dos princpios de segurana, o sistema de e-commerce proposto obteve uma
arquitetura de software que resiste vrios tipos de ataques comuns a sistemas
Web. Essa caracterstica de segurana da aplicao desenvolvida pode ser
observada na anlise dos resultados obtidos com os testes de segurana
presente na Sesso 5.2.
As atividades de controle de segurana tais como anlise de riscos,
ameaas e reviso de cdigo, proporcionaram facilidade na modificao dos
cdigos implementados e do design proposto. Desde modo, foi possvel
reduzir as taxas de erros correntes, e melhorar a produtividade do
desenvolvimento. A chance de o desenvolvedor introduzir vulnerabilidades
de segurana, utilizando de boas prticas de desenvolvimento,
consideravelmente baixa em relao ao desenvolvimento de projetos sem o
auxlio de atividades voltadas para a segurana.
Contudo observa-se a importncia de utilizar tcnicas e
recomendaes de segurana em aplicaes Web. No entanto importante
ressaltar que a conscientizao, das pessoas envolvidas no projeto, a respeito
de segurana e a utilizao de tecnologias que auxiliem na execuo de
prticas de segurana, so extremamente importantes para que o projeto
-
66
alcance o objetivo principal que garantia da integridade, confidencialidade,
disponibilidade e autenticidade do sistema.
-
67
7. REFERNCIAS BIBLIOGRFICAS
AVISON, D. E., Lau, F., Myers, M. D., and Nielsen, P. A. (1999). Action
research. Communications of the ACM, 42(1):9497.
AL-FEDAGHI, S.; ALRASHED, A. Threat Risk Modeling. Kuwait. 2010.
BARROS, A. J. S. e LEHFELD, N. A. S. Fundamentos de Metodologia:
Um Guia para a Iniciao Cientfica. 2 Ed. So Paulo: Makron Books,
2000.
CAMPOS, A. L. N. Sistema de Segurana da Informao: controlando
os riscos. Florianpolis. 2006.
CAMPOS, A. O que o Linux. Disponvel em: http://br-
linux.org/faq-linux/ . Acessado em: 23/03/2012
CAMPI, M. Brasil ter Centro de Defesa Ciberntica. 2011. Disponvel
em: http://info.abril.com.br/noticias/ti/brasil-
tera-centro-de-defesa-cibernetica-09062011-21.shl.
Acessado em 15/09/2011.
GUIDES; R. Guia sobre segurana do Ruby on Rails. Disponvel em:
http://guias.rubyonrails.com.br/security.html.
Acessado em: 23/03/2012.
HOWARD, M. Building More Secure Software with Improved
Development Process. McLean. 2004.
KUROSE, J. F. Redes de Computadores e a Internet: uma abordagem
top-down. 5 ed. So Paulo. 2010.
LAWTON, G. Web 2.0 Creates Security Challenges. San Francisco. Pag-1.
2007.
MURUGESAN, S. Understanding Web 2.0. IT Professional. Pag-7. 2007.
MYSQL. Why MySQL? Disponvel em:
http://www.mysql.com/why-mysql/. Acessado em 23/03/2012.
MEIER, D. J.; MACKMAN, A.; WASTELL, B. How to: Create a Threat
Model for a Web Application at Design Time. 2005 Disponvel em: http://msdn.microsoft.com/en-
us/library/ms978527.aspx. Acessado em 03/10/2011.
-
68
SILVA, G.; M. Segurana em Sistemas Linux. Rio de Janeiro.2008.
NIC.BR. Estatsticas do CERT.br confirma tendncia de ataques a
servidores Web. Disponvel em: http://www.nic.br/imprensa/releases/2011/rl-2011-
19.pdf. Acessado em: 24/08/2011.
OWASP. Threat Modeling Risk. 2007. Disponvel em: https://www.owasp.org/index.php/Threat_Risk_Modelin
g. Acessado em 03/10/2011.
OWASP. About The Open Web Application Security Project. Disponvel
em: https://www.owasp.org/index.php/OWASP:About.
Acessado em: 15/05/2012.
OLIVEIRA, T. T. Testes de Segurana em Aplicaes Web segundo a
metodologia OWASP. Lavras. 2012.
OWASP. OWASP Top 10 - 2010 The Ten Most Critical Web Application
Security Risks. 2010.
RUBY, B. O que Ruby? Disponvel em: http://ruby-
br.org/?page_id=15. Acessado em: 23/03/2012.
SCHNEIER, B. Segurana.com Segredos e mentiras sobre a proteo na
vida digital. Rio de Janeiro. 2011.
SILVA, G.; M. Segurana em Sistemas Linux. Rio de Janeiro.2008.
THOMAS; D.; RUBY, S.; HANSSON, H. D. Agile Web Development with
Rails. California. 2005.
UCHA, Q. J. Introduo Segurana Computacional. Lavras. 2011.
WIESMANN, A.; STOCK, A.; CURPHEY, M; STIRBEI, R. A Guide to
Building Secure Web Applications and Web Services. 2005.
WANG, F. AIS Hall of Fame: IEEE Computer Society. Tucson. Pag-10. 2011.
WAINER, J. Mtodos de pesquisa quantitativa e qualitativa para a
Cincia da Computao. Sociedade Brasileira da Computao. 2007.
-
69
8. APNDICE A REQUISITOS FUNCIONAIS DO E-COMMERCE
8.1.1 RF1 Cadastro de administrador
Descrio: O Sistema deve permitir o cadastramento de um novo
administrador. Este cadastro s poder ser feito por outro administrador do
sistema.
Entrada: Nome, e-mail, login, senha e perfil (administrador).
Processamento: O sistema far a verificao se o login informado j existe.
Caso o login exista ser exibida a mensagem de alerta e solicitado que um
novo login seja informado. Caso o login no exista ser exibida a mensagem
que o cadastro foi realizado com sucesso.
Sada: Mensagem: O login j existe. Favor alterar e tentar novamente. ou
O cadastro foi realizado com sucesso.
8.1.2 RF2 Alterao de administrador
Descrio: O Sistema deve permitir a alterao dos dados de um
administrador. Esta alterao s poder ser feita pelo prprio.
Entrada: Nome, e-mail, login e senha.
Processamento: O sistema far a verificao se o login informado j existe.
Caso o login exista ser exibida a mensagem de alerta e solicitado que um
novo login seja informado. Caso o login no exista ser exibida a mensagem
que o cadastro foi realizado com sucesso.
Sada: Mensagem: O login j existe. Favor alterar e tentar novamente. ou
O cadastro foi realizado com sucesso.
8.1.3 RF3 Cadastro de Produto
Descrio: O sistema deve permitir que o administrador cadastrasse os
produtos no sistema.
Entrada: Cdigo do produto, Descrio, Valor, Prazo de entrega, Formas de
pagamento, Classificao, Disponibilidade.
Processamento: O sistema ir verificar se o cdigo do produto informado j
existe nos cadastros de produtos da empresa. Caso j exista, uma mensagem
de alerta ser exibida ou caso no exista, uma mensagem ser exibida
concluindo a operao.
-
70
Sada: Mensagem: O produto informado j est cadastrado. ou Cadastro
efetuado com sucesso.
8.1.4 RF4 Alterao de Produto
Descrio: O sistema deve permitir que o administrador pudesse alterar os
dados de seus produtos oferecidos.
Entrada: Cdigo do produto, Descrio, Valor, Prazo de entrega, Formas de
pagamento disponveis, Classificao, Disponibilidade.
Processamento: O sistema deve verificar se o cdigo do produto alterado j
existe nos cadastros de produtos da empresa. Caso j exista, uma mensagem
de alerta ser exibida ou se no existir, uma mensagem ser exibida
concluindo a operao.
Sada: Mensagem: O produto informado j est cadastrado. ou Produto
alterado com sucesso.
8.1.5 RF5 Pesquisa de Produto
Descrio: O sistema possibilitar a realizao de pesquisas dos produtos
cadastrados. Esta pesquisa poder ser feita por qualquer usurio.
Entrada: Critrio de pesquisa, Filtros por classificao e Ordenao.
Processamento: O sistema deve buscar os produtos conforme o critrio de
pesquisa e os filtros, ordenando-os sempre por ordem alfabtica.
Sada: Lista na tela com os produtos pesquisados.
8.1.6 RF6 Compra de Produto
Descrio: O sistema deve permitir a montagem de um pedido com os
produtos selecionados por um usurio. Para finalizar a compra, o usurio
deve ser cadastrado no sistema.
Entrada: Produtos selecionados (pedido), login, Senha, Forma de
pagamento, Nmero de carto e Senha do carto ou Cdigo de segurana.
Processamento: O sistema verificar a situao do cliente e listar as formas
de pagamentos disponveis para o pedido elaborado. Caso seja selecionada
forma de pagamento carto, ser feita a chamada do sistema bancrio, caso
seja feita a forma de pagamento boleto ser emitido o boleto. Ao finalizar a
forma de pagamento, o sistema emitir uma mensagem.
-
71
Sada: Chamada do sistema bancrio ou imagem com o boleto e mensagem
Seu pedido foi efetuado com sucesso!.
8.1.7 RF7 Cadastro de usurio (Cliente)
-
Descrio: O sistema deve permitir que um novo cliente fosse cadastrado.
Este cadastro realizado pelo prprio usurio.
Entrada: Nome do cliente, E-mail, CPF, Endereo, Endereo de entrega,
Telefone e Senha.
Processamento: O sistema ir validar o CPF digitado e verifica tambm se o
mesmo j no possui cadastro. Caso o CPF seja invlido, o sistema
solicita a correo. Caso o CPF j esteja cadastrado, ser emitido o alerta de
existente. Caso o CPF seja vlido e no existente, finalizar o cadastro da
cliente e emite uma confirmao .
Sada: Mensagem: O CPF digitado no vlido. Favor alterar e tentar
novamente ou O CPF digitado j existe. Favor alterar e tentar novamente
ou Cadastro efetuado com sucesso. Receber um e-mail de confirmao.
8.1.8 RF8 Alterao de usurio (cliente)
Descrio: O sistema dever permitir que o cliente pudesse alterar seus
dados cadastrais.
Entrada: Nome do cliente, E-mail, Endereo, Endereo de entrega, Telefone
e Senha.
Processamento: Caso os dados sejam alterados, a alterao ser concluda
com a exibio de uma mensagem.
Sada: Mensagem: Dados alterados com sucesso.