Desenvolvimento Seguro de Aplicacoes Web

download Desenvolvimento Seguro de Aplicacoes Web

of 71

description

Este trabalho apresenta um estudo sobre dispositivos móveis e as plataformas J2ME e J2EE,explicando a implementação de um protótipo de software

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.