1 ORGANIZAÇÃO SETE DE SETEMBRO DE CULTURA E ENSINO LTDA FACULDADE SETE DE SETEMBRO FASETE CURSO DE BACHARELADO EM SISTEMAS DE INFORMAÇÃO Adonel Gomes de Sá Júnior MECANISMOS DE SEGURANÇA UTILIZADOS EM TRANSAÇÕES BANCÁRIAS NA WEB PAULO AFONSO/BA Novembro/2010 2 Adonel Gomes de Sá Júnior MECANISMOS DE SEGURANÇA UTILIZADOS EM TRANSAÇÕES BANCÁRIAS NA WEB Monografia apresentada ao curso de Bacharelado em Sistemas de Informação da Faculdade Sete de Setembro. FASETE. Sob a orientação do professor Esp. Igor de Oliveira Costa. PAULO AFONSO/BA Novembro/2010 3 MECANISMOS DE SEGURANÇA UTILIZADOS EM TRANSAÇÕES BANCÁRIAS NA WEB Monografia apresentada ao curso de Bacharelado em Sistemas de Informação da Faculdade Sete de Setembro. FASETE. Sob a orientação do professor Esp. Igor de Oliveira Costa. BANCA EXAMINADORA __________________________________ Prof. Esp. Igor de Oliveira Costa (Orientador) __________________________________ Prof. MS Igor Medeiros Vanderlei __________________________________ Prof. Esp. Ricardo Azevedo Porto PAULO AFONSO/BA Novembro/2010 4 Dedico este trabalho a minha esposa Priscylla Rafaela, aos meus filhos André, Breno, Gabriel e Mariana, aos meus pais Adonel e Geralda, e aos meus amigos, que sempre me apoiaram e incentivaram. 5 AGRADECIMENTOS Agradeço primeiramente a Deus, por estar presente em todos os momentos da minha vida, dando-me forças e sabedoria para continuar e superar todos os desafios da vida. A minha mãe e ao meu pai, Geralda Soares e Adonel Gomes, por acreditar e contribuir na minha formação pessoal, acadêmica, ética e profissional. A minha esposa, Priscylla, por tudo que ela fez e faz, com o intuito de me fazer um homem melhor. Aos professores e mestres, que tive o prazer de conhecer e aprender com eles. Agradeço aos meus amigos e colegas de graduação pelo o apoio e contribuição. Agradeço a todas as pessoas que, direta ou indiretamente, ajudaram no desenvolvimento deste trabalho. 6 JUNIOR, Adonel Gomes de Sá. Mecanismo de Segurança Utilizados em Transações Bancárias na Web. 2010. 55 fls.. Monografia de Graduação do Curso de Bacharelado em Sistemas de Informação. Faculdade Sete de Setembro FASETE. Paulo Afonso – BA. RESUMO Nos dias atuais, torna-se imprescindível que as Agências Bancárias se modernizem e busquem acompanhar as necessidades impostas pelo século XXI. Isso se faz necessário devido ao aumento do número de clientes que utilizam a web para realizar transações bancárias. No entanto, este aumento de forma considerável trouxe alguns problemas como o aumento do número de páginas clonadas e fraudes no internet banking. As vulnerabilidades encontradas durante uma transação on-line podem ser classificadas em dois grupos, são eles: Erros de Sistema e Aplicações Vulneráveis. Onde temos o Cross-site Scripting (XSS) e o SQL Injection nos erros de sistema e o Cross Site Request Forgery (CRSF) em aplicações vulneráveis. Sendo assim, foi visto a necessidade de discutir sobre a segurança oferecida pelas agências bancárias aos clientes na realização de transações eletrônicas e como também identificar as ameaças existentes e os mecanismos utilizados nestas aplicações. Palavras chaves: segurança. Vulnerabilidades, Internet, Segurança, Mecanismos de 7 JUNIOR, Adonel Gomes de Sá. Mechanism of Security Used in Bank Transactions in the Web. 2010. 55 f. Monograph of the B.Sc. Degree in Information Systems. School Seven Months - FASETE. Paulo Afonso – BA. ABSTRACT Nowadays, it is essential that the Bank agencies seek to modernize and meet the necessities imposed by the twenty-first century. This is necessary because of the increasing number of customers using the web to conduct banking transactions. However, this increase significantly caused some problems such as increasing the number of pages and cloned in internet banking fraud. The vulnerabilities found during an online transaction can be classified into two groups, they are: System Errors and Application Vulnerabilities. Where we have the Cross-site Scripting (XSS) and SQL Injection in system errors and Cross Site Request Forgery (CRSF) in vulnerable applications. It was therefore seen the need to discuss the security offered by banks to customers in conducting electronic transactions and also identify existing threats and the mechanisms used in these applications. Keywords: Vulnerabilities, Internet, Security, Mechanisms of security. 8 SUMÁRIO 1 CONSIDERAÇÕES INICIAIS ............................................................................. 12 1.1 CONTEXTUALIZAÇÃO ..................................................................................... 12 2 JUSTIFICATIVA................................................................................................ 14 3 PROBLEMA DE PESQUISA ............................................................................ 15 4 OBJETIVO......................................................................................................... 16 4.1 OBJETIVO GERAL ............................................................................................ 16 4.1.1 Objetivos Específicos ...................................................................................... 16 5 METODOLOGIA ............................................................................................... 17 6 REFERENCIAL TEÓRICO................................................................................ 19 6.1 INTERNET ........................................................................................................ 19 6.2 PRINCIPAIS VULNERABILIDADES ENCONTRADAS NAS APLICAÇÕES DE WEB ......................................................................................................................... 20 6.2.1 A Cross-Site Scripting (XSS) .......................................................................... 20 6.2.2 O SQL Injection ............................................................................................ 22 6.2.3 Cross site Request Forgery (CSRF) ................................................................ 23 6.2.4 Ataques de Sessão (Session Hijacking) .......................................................... 25 6.2.5 Ataque de Força Bruta .................................................................................... 26 6.3 AMEAÇAS ..................................................................................................... 27 6.3.1 SPAM ............................................................................................................. 27 6.3.2 Phishing........................................................................................................... 28 6.3.3 Pharming ......................................................................................................... 29 6.3.4 Vírus ................................................................................................................ 29 6.3.5 Cavalo de Tróia ............................................................................................... 29 6.3.6 Adware e Spyware .......................................................................................... 30 6.3.7 Backdoors ....................................................................................................... 30 6.3.8 Keyloggers e Screenloggers ......................................................................... 30 6.3.9 Worms ............................................................................................................. 31 6.3.9.1 Bots e Botnets .......................................................................................... 31 6.4 SEGURANÇA ................................................................................................ 32 6.5 MECANISMOS DE SEGURANÇA ................................................................. 34 6.5.1 AUTENTICAÇÃO ............................................................................................ 34 9 6.5.2 Mecaniso de Controle de Acesso .................................................................... 35 6.5.3 Criptografia ...................................................................................................... 36 6.5.4 Certificado Digital ............................................................................................ 38 6.5.5 Teclado Virtual ................................................................................................ 39 6.5.6 Secure Socket Layer (SSL) ............................................................................. 40 6.5.7 Selo Digital ...................................................................................................... 42 6.5.8 Completely Automated Public Turing Test To Tell Computers And Humans Apart (CAPTCHA) .................................................................................................... 42 6.5.9 Sistema de Detecção de Intrusões (IDS) ........................................................ 44 7 RISCOS NAS APLICAÇÕES BANCÁRIAS E CORREÇÕES ............................ 45 8 CONSIDERAÇÕES FINAIS ................................................................................ 48 9 TRABALHOS FUTUROS..................................................................................... 49 10 REFERÊNCIAS BIBLIOGRAFICAS ................................................................. 51 10 LISTA DE FIGURAS FIGURA 1 – ATAQUE XSS REFLETIDO. ................................................................ 21 FIGURA 2 – ATAQUE XSS ARMAZENADO. ........................................................... 21 FIGURA 3 – ATAQUE DE XSS DOM. ...................................................................... 22 FIGURA 4 – SQL INJECTION .................................................................................. 23 FIGURA 5 – CROSS SITE REQUEST FORGERY .................................................. 24 FIGURA 6 – ATAQUE DE SESSÃO ........................................................................ 25 FIGURA 7 – ATAQUE DE FORÇA BRUTA.............................................................. 26 FIGURA 8 – PÁGINA DE PHISHING. ...................................................................... 28 FIGURA 9 – PROCESSO DE AUTENTICAÇÃO...................................................... 35 FIGURA 10 – CHAVE SIMÉTRICA .......................................................................... 37 FIGURA 11 – CHAVE ASSIMÉTRICA ..................................................................... 38 FIGURA 12 – CERTIFICADO DIGITAL. ................................................................... 39 FIGURA 13 – TECLADO VIRTUAL. ......................................................................... 40 FIGURA 14 – PROTOCOLO SSL. ........................................................................... 41 FIGURA 15 – SELO DIGITAL DO HSBC. ................................................................ 42 FIGURA 16 – MODELO DE UM CAPTCHA. ............................................................ 43 11 CONSIDERAÇÕES INICIAIS 12 1 CONSIDERAÇÕES INICIAIS O crescimento econômico nas últimas décadas tem possibilitado o surgimento de diversas empresas e, com isso, a economia mundial se tornou mais competitiva. Dessa forma, as empresas passaram a investir em tecnologias. CUMMINS (2002) ressalta que o surgimento de tecnologias como a Internet e a Web eliminaram barreiras de comunicação e forneceram às pessoas acesso imediato a informações de toda parte do mundo. Sendo assim, empresas que atuam no mercado bancário passaram a investir em tecnologias denominadas de Business to Consumer (B2C), para acompanhar esse crescimento da economia. Segundo MARTIM (2005), o internet banking representa uma nova modalidade de comércio eletrônico, pela qual o cliente, valendo-se da internet tem acesso a vários serviços bancários para a realização de negócios e contratos eletrônicos, os quais, por sua vez, são definidos como contratos celebrados por meio de programas de computador ou aparelhos com tais programas, dispensando-se o uso da assinatura codificada ou até mesmo de uma senha. Com o uso cada vez mais freqüente do internet banking, o presente trabalho elenca os principais tipos de vulnerabilidades que podem existir durante uma transação bancária ocorrida na web, como também, identifica quais os mecanismos de segurança freqüentemente utilizados pelas empresas e, além disso, analisa as possíveis ameaças para o cliente que utiliza o internet banking. 1.1 CONTEXTUALIZAÇÃO Segundo SUAPESQUISA (2010) a rede mundial de computadores, ou Internet, surgiu em plena Guerra Fria, criada com objetivos militares pelas forças armadas norte-americanas com intuito de manter as comunicações em caso de ataques inimigos. Foi somente no ano de 1990 que a Internet se popularizou. Neste ano, o engenheiro inglês Tim Bernes-Lee desenvolveu a World Wide Web, possibilitando a utilização de uma interface gráfica e a criação de sites mais dinâmicos e visualmente 13 interessantes. A partir deste momento, o uso da Internet cresceu em ritmo acelerado. Segundo ANTINO (2010, p.1) a internet é o canal de atendimento bancário mais usado pelos brasileiros, um estudo comprovou que as operações realizadas pela web representaram 30,6% (8,365 bilhões) do total de atendimentos bancários realizados em 2009. Para que uma transação bancária ocorra na web é necessária a utilização do internet Banking, sendo hoje, o meio de comunicação mais utilizado pelas empresas bancárias, junto com o acesso crescente a esse meio de relacionamento dos bancos com os seus clientes, também cresce o número de páginas falsas. Em uma pesquisa feita pelo CERT, o número de páginas falsas de bancos apresentou um crescimento de 85% no segundo trimestre de 2008 com relação ao mesmo período de 2007 (CERT, 2008). Segundo SERASA (2009), a utilização dos serviços oferecidos por um banco na Internet é considerada segura, pois o setor de instituições financeiras é o que mais investe em tecnologias de segurança. Esse investimento se dá ao fato de que essas instituições são as mais prejudicadas quando ocorrem as chamadas fraudes eletrônicas. Essas fraudes eletrônicas vêm aumentando nos servidores de Web, os fraudadores aproveitam as vulnerabilidades em aplicações Web para, em alguns casos, hospedar cavalos de tróia, que são utilizados em fraudes ou páginas falsas de instituições financeiras. Com o crescimento dos serviços disponibilizados pelas instituições financeiras os fraudadores têm mudado o foco, estimulados pelo anonimato e por possíveis fraudes muito mais rentáveis do que simplesmente usar um cartão de crédito de um cliente para obter lucros (CERT, 2008). 14 2 JUSTIFICATIVA Pode-se destacar que a busca por um diferencial no atendimento das empresas e a procura constante por um padrão de qualidade no atendimento aos clientes torna essencial o uso da internet para realização de negócios. Segundo Bill Gates (apud LIMA, 2010, p1), em alguns anos vai existir dois tipos de empresas: as que fazem negócios pela internet e as que estão fora dos negócios. Nos dias atuais, torna-se imprescindível que as Agências Bancárias se modernizem e busquem acompanhar as necessidades impostas pelo século XXI. Isso se faz necessário devido ao aumento do número de clientes que utilizam a web para realizar transações bancárias. No entanto, este aumento de forma considerável trouxe alguns problemas como o aumento do número de páginas clonadas e negócios invadidos. Sendo assim, foi visto a necessidade de discutir sobre a segurança oferecida pelas agências bancárias aos clientes na realização de transações eletrônicas. Como também, identificar as principais vulnerabilidades encontradas nas aplicações bancárias realizadas na web, bem como, as principais ameaças e mecanismos de proteção. 15 3 PROBLEMA DE PESQUISA Para que a pesquisa proposta fosse iniciada, os seguintes problemas foram identificados: • Quais são as principais vulnerabilidades existentes em uma transação bancária realizada na web? • Quais são os principais mecanismos de segurança que podem ser utilizados em uma transação bancária online? • Quais são os principais mecanismos de segurança existentes para combater tais vulnerabilidades? 16 4 OBJETIVO 4.1 OBJETIVO GERAL Devido a essas questões discutidas anteriormente, tem-se como objetivo geral: Identificar como os Mecanismos de Segurança podem sanar as principais Vulnerabilidades encontradas nas transações bancárias online. 4.1.1 Objetivos Específicos • Identificar os principais mecanismos de segurança que podem ser utilizados nas transações bancárias; • Identificar as principais vulnerabilidades encontradas em transações bancárias online; • Estudar a utilização dos mecanismos identificados; • Analisar uma combinação de mecanismos de Segurança que podem tornar uma aplicação web mais segura. 17 5 METODOLOGIA A metodologia utilizada no presente trabalho baseou-se no estudo das Ameaças e Vulnerabilidades, como também dos Mecanismos de Segurança aqui elencados, pontuando todos os problemas e possíveis soluções, para que possa ser realizada uma transação bancária on-line. A mesma foi realizada através de estudo das fontes primárias e secundárias, utilizando-se livros, sites e publicações sobre o referido tema. 18 CONCEITOS BÁSICOS 19 6 REFERENCIAL TEÓRICO 6.1 INTERNET Nas décadas de 1970 e 1980, além de ser utilizada para fins militares, a Internet foi ampliada também para o uso acadêmico. Estudantes e professores universitários, principalmente dos EUA, compartilham idéias, mensagens e descobertas pelas linhas da rede mundial. Com isso, a ARPANET, primeiro nome da internet, começou a ter dificuldades em administrar todo este sistema, devido ao grande e crescente número de localidades universitárias contidas nela. Um sistema técnico denominado Protocolo de Internet (Internet Protocol) permitia que o tráfego de informações fosse encaminhado de uma rede para outra, como explica ZEVALLOS(2009) ”devido ao grande número de informaçãoes trocadas o protocolo NCP (Network Control Protocol), foi visto como inadequado, então, o TCP/IP foi criado e continua sendo o protocolo base da Internet na atualidade. Vale destacar que já em 1992, o então senador Al Gore, já falava na Superhighway of Information. Essa "super-estrada da informação" tinha como unidade básica de funcionamento a troca, compartilhamento e fluxo contínuo de informações, usadas e trocadas pelos usuários nos quatro cantos do mundo, através de um rede mundial, a Internet. O que se pode notar é que o interesse mundial aliado ao interesse comercial, que evidentemente observava o potencial financeiro e rentável daquela "novidade". Proporcionando assim, o boom (explosão) e a popularização da Internet na década de 1990 até 2003, cerca de 600 milhões de pessoas estavam conectadas à rede. Segundo SILVA (2009), em junho de 2007 este número se aproximavam de 1 bilhão e 234 milhões de usuários. Em síntese, a Internet é um conjunto de redes de computadores interligadas que tem em comum um conjunto de protocolos e serviços, de uma forma que os usuários conectados possam usufruir de serviços de informação e comunicação de alcance mundial (BOGO, p.1, 2010). 20 6.2 PRINCIPAIS VULNERABILIDADES ENCONTRADAS NAS APLICAÇÕES DE WEB Segundo CERT(2010), a vulnerabilidade é definida como uma falha no projeto, implementação ou configuração de um software ou sistema operacional que, quando explorada por um atacante, resulta na violação da segurança de um computador. No ano de 2009, a Web Application Security Consortium (WASC) divulgou um estudo no qual provou que 96,85% das aplicações corporativas Web possuíam vulnerabilidades derivadas de falhas em seu desenvolvimento. Ainda de acordo com os dados da WASC, as vulnerabilidades predominantes são divididas em dois grupos que são eles: Erros de Sistema, onde não temos atualização de ferramentas de segurança como firewall e Ips, como também a falta de atualizações fornecidas pelo fabricante, não conceder direitos administrativos para a aplicação da base de dados enquanto nas Aplicações Vulneráveis, temos aplicações de web vulneráveis onde os atacantes introduzem scripts maliciosos, desta forma capturando dados de sessão dos usuários. Onde temos o Cross-site Scripting (XSS) e o SQL Injection nos erros de sistema e o Cross Site Request Forgery (CRSF) em aplicações vulneráveis (CERT, 2010). 6.2.1 A Cross-Site Scripting (XSS) A Cross-site scripting (XSS) é um tipo de vulnerabilidade do sistema de segurança de um computador encontrado normalmente em aplicações web que ativam ataques maliciosos ao injetarem client-side script dentro das páginas web vistas por outros usuários. Um script de exploração de vulnerabilidade cross-site pode ser usado pelos atacantes para escapar aos controles de acesso (GROSSMAN & HANSEN, 2007). Existem três tipos bem conhecidos de XSS: refletido, armazenado e inserção DOM. O XSS refletido é o de exploração mais fácil, uma página refletirá o dado fornecido pelo usuário como retorno direto a ele, a Figura 1 ilustra esse tipo de ataque. 21 Figura 1 – Ataque XSS Refletido. Fonte: http://www.seguranca-informatica.net. A Figura 1 acima demonstra o ataque xss refletido, onde o atacante envia um email para vitima contendo um link, com a palavra clique aqui, quando o cliente clica no link este o leva a um servidor de web vulnerável, ao mesmo tempo é enviado uma resposta a vitima, que já foi programada, a partir de então o fraudador usando as credenciais da vítima navega em qualquer aplicação. Enquanto que o XSS armazenado recebe o dado hostil, guarda em arquivo, do banco de dados ou outro sistema de suporte à informação, e então, em um estágio avançado mostra o dado ao usuário, não filtrado. Isto é perigoso em sistemas como, CMS1, blogs ou fóruns, onde uma grande quantidade de usuários acessará entradas de outros usuários. Figura 2 – Ataque XSS Armazenado. Fonte: http://www.seguranca-informatica.net Neste ataque, representado pela Figura 2, a vítima recebe um email com um link. Esta ao clicar no endereço, estará enviando as informações para o atacante. Estas 1 CMS – Sistema de Gerenciamento de Conteúdo. 22 informações enviadas estão no banco de dados da vítima, em um segundo momento o atacante pegará as informações e a manipulará como o convir, já que a vítima liberou o acesso ao clicar no link enviado. Com ataques XSS baseados em DOM, o código Java Script do site e as variáveis são manipulados ao invés dos elementos HTML. Alternativamente, os ataques podem ser uma combinação dos três tipos, o perigo com o XSS não está no tipo de ataque, mas na sua possibilidade. Figura 3 – Ataque de XSS DOM. Fonte: http://www.seguranca-informatica.net Este tipo de ataque como mostra a Figura 3 se dá no servidor de web de uma loja, onde o atacante inclui um script no browser da mesma, desta forma capturando as entradas válidas no browser. A utilização de XSS torna possível a obtenção de dados que podem pôr em risco a segurança da informação. Desse modo, o entendimento desta técnica possibilita a exploração de uma vasta quantidade de sítios e aplicações Web (OLIVEIRA, BRITO, RIQUE e FUJIOKA, 2007). 6.2.2 O SQL Injection Segundo GUMERATO (2009), o SQL Injection consiste na inserção ou "injeção" de uma consulta SQL através de dados de entrada do cliente para o aplicativo. O ataque injeção de SQL bem-sucedido se dá através de uma inserção de código no 23 banco de dados podendo assim, alterar dados do banco de dados, com as seguintes funções: (Insert / Update / Delete). As falhas de Injeção habilitam o atacante a criar, ler, atualizar ou apagar arbitrariamente qualquer dado disponível para a aplicação. No pior cenário, estes, furos, permitem ao atacante comprometer completamente a aplicação e os sistemas relacionados, até pelo contorno de ambientes controlados por firewall. Esta vulnerabilidade só acontece quando a aplicação esta vulnerável e permite a inclusão querys dinâmicas, como por exemplo: var Shipcity; ShipCity = Request.form ("ShipCity"); var sql = "select * from OrdersTable where ShipCity = '" + ShipCity + "'"; SELECT UserList. Utilizador FROM UserList DA UserList WHERE UserList . Username = 'Username' ONDE UserList. Username = 'Nome' AND UserList . Password = 'Password' E UserList. Password = 'senha' Figura 4 – Sql Injection Fonte: http://www.worldlingo.com. Este ataque, Figura 4, dá-se basicamente na inserção de um código em SQL simples, onde no primeiro comando é inserida uma consulta de SQL concatenando cadeias de caracteres inseridas pelo usuário. No segundo comando é feita uma consulta de uma lista dos utilizadores onde ele busca as credenciais do usuário como nome e senha. 6.2.3 Cross site Request Forgery (CSRF) Antes de detalharmos a vulnerabilidade Croos Site Request Forgery (CSRF), vamos conhecer um pouco sobre verificação de autorização que é a solicitação das credenciais do usuário ao acessar uma aplicação confiável, neste momento é que se dá a captura das informações do usuário, a partir daí o atacante utiliza os dados válidos do usuário e faz novos acessos com as credenciais válidas, sem o mesmo perceber. Segundo BRAZ (2008), o Cross Site Request Forgery (CSRF), força o navegador logado da vítima a enviar uma requisição para uma aplicação web vulnerável, estes ataques funcionam, 24 pois a credencial de autorização do usuário (tipicamente um cookie2 de sessão) é automaticamente incluída em requisições do navegador, mesmo que o atacante não forneça tal credencial, esta vulnerabilidade é extremamente disseminada, uma vez que qualquer aplicação web, não possua em seu aplicativo a verificação de autorização. Um ataque típico CSRF pode ser visto em fóruns, pois os mesmos direcionam o usuário a invocar alguma função, como por exemplo, a página de logout da aplicação. A seguir temos a Figura 5 ilustrando o funcionamento do CSRF. Figura 5 – Cross site request forgery Fonte: http://news.cnet.com. Este ataque se inicia com o usuário fazendo o seu login em um browser, onde ele autentica a sessão, a partir deste ponto o atacante utiliza a sua autenticação de sessão e faz outras ações no mesmo site ou em outro sem o usuário perceber. Segundo CERT (2007), existem outras vulnerabilidades que são implantadas por programas que podem ter um comportamento estranho não por acidente, mas pela execução de códigos gerados com o intuito de danificar ou alterar seu funcionamento normal. Estes códigos são chamados de ameaças programadas, e têm se espalhado pelo mundo inteiro, causando muito incomodo e prejuízo a quem se depara com este tipo de ameaça chamando à atenção da mídia, que convencionou tratá-las por vírus de computador (TURBAN & KING, 2004). 2 cookie de sessão – Um cookie é uma cadeia de texto incluída em pedidos e respostas do protocolo de transferência. 25 6.2.4 Ataques de Sessão (Session Hijacking) Uma sessão é um identificador único que serve para marcar o período de tempo que uma pessoa navega em um determinado site. Logo, assim que ou usuário acessa uma aplicação e coloca a sua identificação, ele cria uma sessão válida, então seus dados estarão disponíveis em qualquer parte do site, até que a sessão seja encerrada, ou o browser fechado. Existem dois tipos de ataque de sessão, são eles: Predicação e Captura. O ataque de predicação consiste em se adivinhar uma ID, que identifica uma sessão, porém como o mecanismo de geração de sessões é muito aleatório, esse método se torna quase inviável na prática (PONTUAL, M., QUEIROZ, R. e HENRIQUE, J., 2006). Já no ataque de captura, existem dois métodos. No primeiro as sessões estão sendo propagadas através da URL, bastará ao atacante possuir um sniffer3 na mesma rede do atacado e ler o ID da vítima. A defesa para esse tipo de ataque é a utilização de um servidor rodando sobre HTTPS. No segundo, as sessões foram propagadas por cookies, caberá ao atacante executar um ataque do tipo XSS, para que o cookie da vítima seja enviado ao adversário, e com isso ele possa reconstruir a ID da sessão. <?php session_start(); if (!isset($_SESSION['visits'])) { $_SESSION['visits'] = 1; }else{ $_SESSION['visits']++; } echo $_SESSION['visits']; ?> Figura 6 – Ataque de sessão Fonte: www.conisli.org.br. 3 Sniffer - Programa que coleta os dados dentro de uma rede. 26 O código ilustrado na Figura 6, representa o contador na sessão, enquanto a sessão estiver ativa, cada vez que o usuário executar essa página, será acrescentado 1 e impresso o número de vezes que ele rodou essa página. 6.2.5 Ataque de Força Bruta Segundo PINKAS & SANDER (2010), o método de ataque por força bruta, consiste em utilizar um programa ou script externo que testa cada combinação de letras e números existentes no teclado, com isso, tentará descobrir o login e senha de algum usuário cadastrado no site. Além disso, o atacante poderá utilizar um dicionário de senhas (worldlists) com o intuito de tornar a tarefa de invasão mais rápida. Inicialmente, o atacante deve abrir o código HTML do site, em seguida será criado um código fonte parecido com o original, porém no action do form, será colocado o caminho completo da URL para onde se deseja enviar esse formulário. A seguir vai modificar o valor dos inputs, colocando os dados desejados e criará também um script em javascript com o comando document.form2.submit(), que submete um formulário. Na Figura 7, logo abaixo mostra como o atacante procede no ataque de força bruta. Figura 7 – Ataque de Força Bruta Fonte: http://segurancalinux.com. 27 6.3 AMEAÇAS Segundo MARINHO (2007), uma ameaça pode ser definida por elementos que tem condição de explorar vulnerabilidades e causar problemas severos aos ativos de uma empresa. Os ativos estão continuamente expostos às ameaças existentes, que podem colocar em risco a segurança. Dentre as várias classificações, podemos citar as seguintes: ameaça natural, intencional e involuntárias. 6.3.1 SPAM Uma ameaça aos usuários da Internet Banking, são os spams, segundo o ANTISPAM (2009), spam é o termo usado para se referir aos e-mails não solicitados, que geralmente são enviados para um grande número de pessoas, quando este conteúdo é exclusivamente comercial, esse tipo de mensagem é chamada de Unsolicited Commercial E-mail (UCE). Reforçaremos estes conceitos com a afirmação de INFOGUERRA. Em plena era de Internet comercial, o spam é uma das principais, perturbações para internautas, administradores de redes e provedores, de tal forma que o abuso desta prática já se tornou um problema de segurança de sistemas. Além disso, é também um problema financeiro, pois vem trazendo perdas econômicas para uma boa parte dos internautas e lucro para um pequeno e obscuro grupo (INFOGUERRA, 2009). Com o surgimento do spam também surgiram os spam zombies, esses são computadores de usuários comuns que foram infectados com códigos maliciosos, como worms, bots, vírus e cavalos de tróia. Estes códigos maliciosos, uma vez instalados, permitem que spammers utilizem a máquina para o envio de spam, sem o conhecimento do usuário. Os spammers utilizam máquinas infectadas para executar suas atividades, dificultando assim a identificação da origem do spam e também dos autores. Os spam zombies são muito explorados pelos spammers, por proporcionar o anonimato que tanto os protege (ANTISPAM, 2009). 28 6.3.2 Phishing Este termo foi originalmente criado para descrever o tipo de fraude que se dá através do envio de mensagem não solicitada, que se passa por comunicação de uma instituição conhecida, como um banco, empresa ou site, que procura induzir o acesso a páginas fraudulentas (falsificadas), projetadas para furtar dados pessoais e financeiros de usuários. Este tipo de spam é conhecido como phishing ou scam, o usuário pode sofrer prejuízos financeiros, caso forneça as informações ou execute as instruções solicitadas neste tipo de mensagem fraudulenta (BONFIETTI, 2007). O cliente, muitas vezes desconhece as políticas básicas de segurança do seu banco e acaba clicando no link, que o conduz a informar os dados de sua conta corrente em uma página falsa. Assim que o cliente digita os dados de sua conta, a página falsa envia as informações fornecidas pelo cliente ao fraudador, caracterizando-se o phishing. Mostrado na Figura 8. Figura 8 – Página de Phishing. Fonte: http://www.ipa.go.jp/security. Na Figura 8 acima, temos duas aplicações, uma a do site original e a outra a página clonada, esta foi enviada ao usuário por email, solicitando a atualização dos dados bancários do cliente, mas para atualizar os dados, 1 é necessário digitar o login e a senha. 29 6.3.3 Pharming Segundo LAU (2006), o pharming é um meio largamente utilizado para a efetivação da fraude sobre o ambiente do Internet Banking no Brasil. O mecanismo utilizado por este ataque promove o redirecionamento da vítima a páginas falsas de instituições financeiras, tal como descrito pelo phishing. Entretanto, este tipo de ataque não utiliza uma mensagem eletrônica como vetor de propagação e sim uma busca nos serviços de resolução de nomes na Internet, conhecidos como DNS, que resultam no acesso errôneo do usuário à página replicada pelo fraudador, similar a página da instituição financeira, mesmo que o usuário efetive a inserção do endereço da página do banco através da digitação da URL no browser utilizado na navegação Internet. 6.3.4 Vírus Vírus é um programa ou parte de um programa de computador, normalmente malicioso, que se propaga infectando, isto é, inserindo cópias de si mesmo e se tornando parte de outros programas e arquivos de um computador. O vírus depende da execução do programa ou arquivo hospedeiro para que possa se tornar ativo e dar continuidade ao processo de infestação (CERT, 2010). 6.3.5 Cavalo de Tróia De acordo com o CERT (2010), o cavalo de tróia ou trojan horse é um programa, normalmente, recebido como um “presente” (por exemplo, cartão virtual, álbum de fotos, protetor de tela, jogo, etc), que além de executar funções para as quais foi aparentemente projetado, também executa outras funções normalmente maliciosas e sem o conhecimento do usuário, tais como instalar keyloggers4, screenloggers5 e backdoors ou ainda alterar, corromper ou destruir arquivos. 4 5 Keyloggers – programa que armazena caracteres digitados. Screenloggers - dispositivo que tira foto da tela do usuário, os atacantes começaram com esta modalidade depois que os bancos implementaram um novo modelo de teclado virtual. 30 6.3.6 Adware e Spyware Adware é um tipo de aplicação especificamente projetada para apresentar propagandas através de um programa instalado em um computador. Em muitos casos, os adwares têm sido incorporados a softwares e serviços, constituindo uma forma legítima de patrocínio ou retorno financeiro para aqueles que desenvolvem ferramentas livres ou prestam serviços gratuitos. O spyware, por sua vez, é o termo utilizado para se referir a uma grande categoria de softwares que têm o objetivo de monitorar atividades de um sistema e enviar as informações coletadas para terceiros. Os spywares, assim como os adwares, podem ser utilizados de forma legítima, mas, na maioria das vezes, são utilizados de forma dissimulada, não autorizada e maliciosa (CERT, 2010). 6.3.7 Backdoors São programas que abrem “portas” de acesso ao atacante, permitindo acesso remoto ao computador. Os backdoors são usados para que os atacantes garantam uma forma de retornar a um computador comprometido, sem precisar recorrer aos métodos utilizados na realização da invasão. Na maioria dos casos, também é intenção do atacante poder retornar ao computador comprometido sem ser notado (PEREIRA, FAGUNDES, NEUKAMP, LUDWIG e KONRATH, 2007). 6.3.8 Keyloggers e Screenloggers O keylogger pode ser definido como um programa capaz de capturar e armazenar as teclas digitadas pelo usuário no teclado de um computador. Após sua ampla utilização para captura de senhas no Internet Banking, boa parte dos bancos mudou o modo da autenticação dos seus clientes. Antes os dados da agência, conta e senha eram digitados via teclado, agora os dados são fornecidos via mouse clicando sobre os caracteres do teclado virtual (BONFIETTI, 2007). Já o screenlogger é uma forma avançada do keylogger, pois ele captura a imagem da tela e o posicionamento do mouse. 31 6.3.9 Worms Programa capaz de se propagar automaticamente através das redes, enviando cópias de si mesmo de um computador para outro. Diferente do vírus, o worm não embute cópias de si mesmo em outros programas ou arquivos e não necessita ser explicitamente executado para se propagar. Sua propagação se dá através da exploração de vulnerabilidades existentes ou falhas na configuração de softwares instalados em computadores (CERT, 2006). Os worms são notadamente responsáveis por consumir muitos recursos. Degradam sensivelmente o desempenho de redes e podem lotar o disco rígido dos computadores, devido à grande quantidade de cópias de si mesmo que costumam propagar. Além disso, podem gerar problemas para aqueles que estão recebendo tais cópias (BONFIETTI, 2007). 6.3.9.1 Bots e Botnets Segundo (PEREIRA, FAGUNDES, NEUKAMP, LUDWIG e KONRATH, 2007), há três atributos que caracterizam um bot (nome derivado de (Robot): a existência de um controle remoto, a implementação de vários comandos e um mecanismo de espalhamento, que permite ao bot espalhar-se ainda mais. Enquanto as botnets são redes formadas por computadores infectados com bots e são usadas pelos invasores para aumentar a potência de seus ataques. Acredita-se que a maior parte dos spams são enviados por botnes, ora partindo diretamente destes, ora os mesmos sendo utilizados como relay. Adicionalmente, dispõe de mecanismos de comunicação com o invasor, permitindo que o bot seja controlado remotamente, portanto o invasor, ao se comunicar com um bot, pode enviar instruções para que ele realize diversas atividades, tais como: desferir ataques na Internet, enviar spam, e-mails de phishing, ataque de negação de serviço e furtar dados de onde foi executado. 32 6.4 SEGURANÇA Um computador ou sistema computacional é dito seguro se este atende aos requisitos básicos relacionados e aos recursos que o compõem: confidencialidade, integridade, autenticidade, disponibilidade e não repúdio. Segundo CURTI (2004) a confidencialidade é a proteção das informações contra ataques passivos e análise de mensagens, quando em trânsito nas redes ou contra a divulgação indevida da informação, quando sob guarda. Os termos privacidade e sigilo são usados em muitos casos para distinguir dentre a proteção de dados pessoais e a proteção de dados pertencentes à organização. Para garantia da confidencialidade, ou seja, que a informação seja acessada apenas por pessoas autorizadas, alguns mecanismos são indispensáveis como, por exemplo, controle de acesso e criptografia. A integridade é sempre um pré-requisito para outras propriedades da segurança, por exemplo, um atacante pode tentar contornar controles de confidencialidade, modificando o sistema operacional ou uma tabela de controle de acesso referenciada pelo sistema operacional, consequentemente, deve-se proteger a integridade do sistema operacional ou a integridade do controle de acesso para alcançar a confidencialidade nesse caso. Dentre os mecanismos usados na implementação da integridade se inclui: controle de acesso, assinatura digital (ARAUJO, 2008). Segundo ROSSI e FRANZIN (2000), a autenticidade é a propriedade necessária para garantir que um usuário é realmente quem ele diz ser, e as ações a ele atribuídas tenham sido realmente de sua autoria. A autenticidade é fundamental não só em Sistemas Computacionais, como também, em qualquer área do conhecimento humano. Pois todo ato praticado por um cidadão necessita de um mecanismo que identifique o seu autor para fins legais, como por exemplo, uma assinatura. A autenticidade pode ser garantida através dos mecanismos autenticação, controle de acesso e assinatura digital. 33 A disponibilidade do sistema corporativo está ainda agregada ao projeto de recuperação adotado por cada empresa como política de contingenciamento. A vantagem de contar com sistemas de alta disponibilidade é diminuir o tempo de parada, seja voluntária ou involuntária, e a recuperação quase que imediata de informações críticas para continuidade da atividade (TELEMIKRO, 2010). E por fim, o não repúdio previne tanto o emissor quanto o receptor, contra a negação de uma mensagem transmitida, desta forma, quando uma mensagem for enviada, o receptor pode ter certeza que de fato ela foi enviada pelo emissor em questão. De forma similar, quando for recebida, o emissor pode provar que a mesma foi realmente recebida pelo receptor em questão (CARLOS, 2004). Para finalizar tudo que foi exposto logo acima, ARANTES (2000), explica que as políticas de segurança estabelecem as bases para um bom programa de segurança. Essas políticas, freqüentemente chamadas de controles básicos, funcionam juntas no estabelecimento de um determinado nível de segurança na empresa como um todo, abordando aspectos físicos e lógicos. 34 6.5 MECANISMOS DE SEGURANÇA Os mecanismos de segurança, consistem em técnicas utilizadas para assegurar as propriedades de Segurança do Sistema Computacional, de tal forma que somente os usuários autorizados, ou processos sob seu controle, terão acesso às informações devidas, e nada além do necessário, essas primitivas são fundamentais na implementação de uma Política de Segurança (DOURADO, 2001). Nesta sessão, serão discutidas os principais mecanismos, como por exemplo: Autenticação, Mecanismos de Controle de Acesso, Criptografia, Assinatura Digital, Teclado Virtual, Secure Socket Layer, Selo Digital, Captcha, Sistema de Detecção de Intrusos onde temos, o Signature Detection e o Behaviour Detection. 6.5.1 AUTENTICAÇÃO Segundo DOURADO (2001), a autenticação é o mecanismo utilizado para garantir que um usuário ou processo, estão se identificando de acordo com suas reais identidades. Existem três formas básicas de autenticação que devem ser utilizadas de acordo com situação especifica, são elas: unilateral, mútua ou com a mediação de terceiros. A autenticação unilateral acontece quando apenas um parceiro da comunicação autentica-se perante o outro, mas a recíproca não é verdadeira. Na autenticação mútua os parceiros da comunicação se autenticam um perante o outro. A autenticação com a mediação de terceiros é utilizada quando os parceiros da comunicação não se conhecem e, portanto, não podem se autenticar mutuamente, mas conhecem um terceiro com quem se autenticam e recebem credenciais para procederem assim a autenticação mútua. A Figura 9 ilustra três tipos de autenticação básica. 35 Figura 9 – Processo de Autenticação. Fonte: http://wiki.dcc.ufba.br. Na Figura 9, no processo 1, não a autenticação do receptor, já no processo 2 a autenticação é mútua, ambos sabem quem são e por último a 3 autenticação se dá por um terceiro usuário que garante quem são as partes quês estão se comunicando. 6.5.2 Mecaniso de Controle de Acesso Os Mecanismos de Controle de Acesso se propõem a definir que usuários ou processos têm acesso a recursos específicos do Sistema Computacional e com que permissões. Estes mecanismos podem ser aplicados em qualquer nível, começando na aplicação definindo que usuários têm acesso e a que registros (DOURADO, 2001). Existem três tipos de controle de acesso: Access Control List, Capabilities e Access Control Matriz. Acces Control List, ou simplesmente ACL, é o mecanismo onde é criada uma lista para cada objeto, ou recurso do sistema, com a identificação do usuário ou processo e suas permissões para aquele objeto especifico (DOURADO, 2001). As ACL’s se tornam sobrecarregadas de forma gradativa à medida que a quantidade de recursos compartilhados de um sistema aumenta, por isto é comum o agrupamento de usuários de acordo com o seu perfil funcional, mas isto representa uma flexibilização perigosa no mecanismo de controle de acesso. Diferente da ACL, a Capabilities cria uma lista para cada usuário ou processo, com a identificação dos objetos e as permissões que o usuário ou processo possui sobre este objeto especifico. Este mecanismo resolve o problema da sobrecarga das 36 ACL’s, tendo em vista que cada usuário ou processo possui uma lista com as capabilities, as quais têm algum tipo de permissão de acesso. A Access Control Matriz (ACM) é o somatório dos dois mecanismos anteriores formando uma estrutura equivalente a uma matriz, onde as linhas são compostas pelos usuários, as colunas por objetos e os elementos são listas de permissões. Logo, cada coluna de uma ACM é uma ACL e cada linha é uma capability. 6.5.3 Criptografia A criptografia segundo TYSON (2009), não é algo novo, a novidade é sua aplicação em computadores, antes da era digital, os maiores usuários da criptografia eram os órgãos governamentais, particularmente para finalidades militares. A existência de mensagens codificadas foi verificada desde a época do Império Romano, mas a maior parte da criptografia utilizada atualmente se baseia em computadores, simplesmente porque um código baseado em seres humanos é muito fácil de ser decodificado por um computador. Segundo TYSON (2009), as formas mais populares de segurança dependem da criptografia, processo que codifica a informação de tal maneira que somente a pessoa (ou o computador) com a chave pode decodificá-la. Os primeiros métodos criptográficos existentes usavam apenas um algoritmo de codificação, assim, bastava que o receptor da informação conhecesse esse algoritmo para poder extraíla. O objetivo da encriptação consiste na aplicação de um algoritmo aos dados de maneira que eles se tornem ilegíveis (GUEDES, 2009). Para recuperar os dados originais será necessário conhecer o algoritmo de criptação. LAUDON e LAUDON (2008) complementam, criptografia é a codificação e a mistura de mensagens para impedir acesso indevido aos dados que são transmitidos entre redes. Ainda de acordo com o autor existem dois tipos de criptografias, são elas: chave simétrica e assimétrica. 37 Na criptografia de chave simétrica, cada computador possui uma chave secreta (código) que ele pode utilizar para criptografar um pacote de informações antes que ele seja enviado pela rede a outro computador, a chave simétrica exige que você saiba quais computadores irão se comunicar, de forma que seja possível instalar a chave em cada um deles (TYSON, 2009). A criptografia de chave assimétrica ou pública utiliza a combinação de uma chave privada e uma chave pública. A chave privada só é conhecida pelo seu computador, enquanto que a chave pública é dada por seu computador a todo computador que queira se comunicar de forma segura com ele. Para decodificar uma mensagem criptografada, um computador deve usar a chave pública, fornecida pelo computador de origem, e sua própria chave privada (TYSON, 2009). Figura 10 – Chave Simétrica Fonte: http://www.batebyte.pr.gov.br. Na Figura 10 a Chave Simétrica – o documento original é enviado para o destinatário e é criptografado, o destinatário recebe o documento criptografado e discriptografa com a mesma chave e lê o documento original. 38 Figura 11 – Chave Assimétrica Fonte: http://www.batebyte.pr.gov.br. Já a Chave Assimétrica na Figura 11 – neste método o emissor criptografa o documento com sua chave privada e envia para o receptor, que recebe o documento criptografado e discriptografa com a chave pública do emissor. 6.5.4 Certificado Digital O certificado digital é um arquivo eletrônico que contêm dados de uma pessoa ou instituição, utilizados para comprovar sua identidade, este arquivo pode estar armazenado em um computador ou em outra mídia, como um token ou smart card (CGI, 2009). Segundo SERGIO (apud DANIELA, 2004, p.1), a utilização das certificações digitais por corporações ou internautas em geral tornará mais seguro o tráfego de informações pela rede. Os navegadores reconhecem as principais empresas certificadoras e aceitam automaticamente os certificados assinados por ela, reconhecendo sua autenticidade e a da página correspondente (PONTES, 2008). Logo, abaixo SERGIO vem reforçar o conceito dito acima. A certificação digital garante a autenticidade, a integridade a confidencialidade e o não-repúdio de uma mensagem, ou seja, impede que o remetente negue que foi o autor de uma determinada mensagem, por exemplo SERGIO (apud DANIELA, 2004, p. 1). 39 Figura 12 – Certificado Digital. Fonte: http://www.cgd.pt. A Figura 12, contem Informações do certificado digital, dados que identificam o dono, nome da certificadora, número de série e o período de validade do certificado e por fim a assinatura digital da autoridade certificadora, esta garante a veracidade das informações contidas. 6.5.5 Teclado Virtual A segurança é a maior preocupação de todos aqueles que negociam por meios eletrônicos. A credibilidade do documento digital, ou de um dado transmitido via web, está ligada essencialmente à sua originalidade e à certeza de que ele não foi alterado de alguma maneira pelos caminhos que percorreu até chegar ao destinatário (VELASCO, 2005). O teclado virtual ou teclado de segurança trabalha com ambigüidade, ou seja, cada caractere da senha é apresentado junto a um grupo de três outros caracteres. A ordem dos números dentro de cada botão muda aleatoriamente toda vez que o cliente usa o teclado virtual. Os caracteres não são digitados como no teclado físico convencional e sim clicados com o auxílio do mouse (VELASCO, 2005). 40 Figura 13 – Teclado Virtual. Fonte: Banco Unibanco. O princípio de funcionamento do teclado virtual mostrado na Figura 13, baseia-se em concatenar a senha com a data e a hora do sistema e depois criptografá-la, nesta figura acima nos temos os novos modelos de teclado virtual onde o caractere digitado não é o válido ele referencia a outro caractere. Em Alguns bancos é possível mover o teclado dentro do navegador de Internet para evitar que outra pessoa que não seja o cliente veja a senha digitada. Mas o objetivo principal do teclado virtual é limpar os campos onde a senha é digitada, não as armazenando em disco ou memória, impedindo que os campos de digitação sejam monitorados (WONGTSCHOWSKY, 2005). 6.5.6 Secure Socket Layer (SSL) Secure Socket Layer (SSL) é um padrão global em tecnologia de segurança desenvolvida pela Netscape em 1994. Que cria um canal criptografado entre um servidor web e um navegador (browser) para garantir que todos os dados transmitidos sejam sigilosos e seguros, (CALLAO, 2005). Milhões de consumidores reconhecem o "cadeado dourado" que aparece nos navegadores quando estão acessando um website seguro, esta tecnologia ainda não foi normatizada pela IETF6, (COMODOBR, 2008). Segundo ARAÚJO (1998), o SSL é um conjunto de três protocolos, dois situados no nível de transporte e o outro na camada de aplicação. Seu objetivo é prover um 6 IETF - é a sigla para Internet Engineering Task Force e se refere a uma instituição que desenvolve e promove as normas de Internet. 41 canal seguro, com privacidade, com garantia opcional de autenticidade dos pares e garantia de integridade da mensagem. Quando se acessa uma página de Internet, principalmente de um banco e esta começa com https, significa que ela é criptografada (com encriptação de 128bits) e com SSL antes da transmissão. De acordo com CERTISIGN (2009), os sites que usam o protocolo SSL podem transmitir e armazenar as informações particulares dos clientes de forma segura. Ao estabelecer a conexão, o SSL Handshake Protocol7 usa um identificador de sessão, um conjunto criptográfico (cypher suite) a ser adotado e um método de compressão a ser utilizado. Figura 14 – Protocolo SSL. Fonte: http://www.tcs-ca.tcs.co.in. Na Figura 14 esclarecemos como se dá o Handshake Protocol, no primeiro passo o cliente envia um hello, no segundo o servidor envia o seu certificado, o terceiro passo é a verificação da autenticidade do certificado, no quarto o servidor solicita o certificado do cliente, no quinto o cliente envia o seu certificado, o sexto é a confirmação da autenticidade do certificado do cliente, no sétimo é enviada a chave de sessão e por fim é estabelecido um canal seguro. 7 Handshake Protocol – ou aperto de mão. 42 6.5.7 Selo Digital Segundo o HSBC (2009), a principal função do selo digital é garantir ao cliente, que o site acessado é realmente do seu Banco. O selo digital é uma figura formada por cinco elementos, combinados de modo a formarem a imagem de um selo único para cada cliente. De acordo ainda com a mesma fonte, o selo digital é composto por: um número de dois dígitos, uma imagem inserida ao fundo, uma cor de fundo padronizado pelo banco, uma forma de selo e por último uma forma e posição de "carimbo" impresso sobre o selo. O Selo digital tem uma vantagem sobre os fraudadores, ele é personalizado, por mais que uma página falsa consiga imitar um determinado selo legítimo não poderá associar os cinco elementos de cada selo para cada cliente, explica o HSBC (2009), na Figura 15. Figura 15 – Selo digital do HSBC. Fonte: http://www.hsbcinvestimentos.com.br. 6.5.8 Completely Automated Public Turing Test To Tell Computers And Humans Apart (CAPTCHA) De acordo com NUNES (2005), o captcha foi implementado na universidade de Carnegie-Mellon com a finalidade de distinguir os usuários reais dos virtuais, o termo foi inventado em 2000 por Luis von Ahn, por Manuel Blum, Nicholas J. Hopper (todos da universidade do Carnegie-Mellon), e por John Langford. O objetivo do captcha é impedir a tentativa de acesso ao sistema por meio de software mal intencionados que podem ocasionar à perda da qualidade do serviço, assim como, a danificação da aplicação por um uso incorreto, em meio às utilizações, esta aplicação de 43 segurança está presente em diversas funcionalidades na web, como serviços de email, postagens em fóruns e blogs, evitando que aplicativos de propagandas, por exemplo, se utilizem das funções dos serviços. Uma verificação Captcha baseia-se na facilidade que os humanos têm em reconhecer padrões, ele é definido como um programa de autenticação que permite estabilidade e segurança ao aplicativo, de forma que possa diferenciar um usuário real de uma máquina. Um captcha comum pode ser reconhecido como uma simples seqüência de caracteres, podendo ter variantes na visualização como sombreamento, distorções, entre outros, de forma a dificultar o reconhecimento da sequência por uma máquina (NUNES, 2005). Figura 16 – Modelo de um captcha. Fonte: http://computer.howstuffworks.com A Figura 16, demonstra o funcionamento da aplicação captcha, ela solicita a escolha de uma pergunta, logo após lhe pede uma resposta, solicita seu email secundário, pede a sua localização e para continuar solicita que o usuário digite os caracteres da imagem, imagem esta ilegível para máquinas. 44 6.5.9 Sistema de Detecção de Intrusões (IDS) Segundo VICENTE (2002), um IDS é uma solução complementar à instalação de uma firewall. A sua função é analisar permanentemente o tráfego da rede (interno e externo) e compará-lo com padrões conhecidos de comportamento de intrusos. Por estarem situados na rede interna analisam não só o tráfego externo, vindo da Internet, como também, o tráfego interno. Podendo assim, detectar ataques vindos de pessoas internas à empresa ou que acedem a esta por outros meios. Algumas IDS podem analisar o tráfego na rede de diferentes perspectivas, cada uma com objetivos e resultados diferentes, são eles, o signature detection (detecção de assinatura), consiste na procura de padrões específicos de tráfego, correspondentes a determinado ataque. A desvantagem é que o padrão de ataque tem de ser conhecido de antemão e tem de ser programado no IDS. Já o Behaviour detection (detecção de comportamento), analisa e procura por padrões de comportamento, através da identificação de anomalias estatísticas. A idéia é que uma rede segue determinados padrões de comportamento que resultam em determinadas estatísticas. As alterações dessas estatísticas (maior tráfego a horas pouco usuais, aumento do número de pacotes de determinado tipo de protocolo) resultam na identificação de um possível ataque. Por fim, o Protocol anomaly detection (protocolo de detecção de anomalias), procura analisar a conformidade com o standard (padrão) de pacotes de determinado protocolo. A título de exemplo, os recentes ataques do Code Red são facilmente detectados por este tipo de IDS, dado que os pedidos HTTP feitos ao servidor não estão conformes com o standard (padrão), usando caracteres inválidos para conseguirem subverter o funcionamento do Web server. 45 7 RISCOS NAS APLICAÇÕES BANCÁRIAS E CORREÇÕES Com o crescimento dos serviços disponibilizados pelos Bancos, aumentaram as ameaças contra aplicações web, incluindo sequestro da conta de usuário, burlar o controle de acesso, ler ou modificar dados sigilosos ou fornecer conteúdo fraudulento. Com estes problemas as instituições financeiras começaram a investir em novas tecnologias para garantir uma segurança a mais para seus usuários. A vulnerabilidade Cross Site Scripting, é uma implementação que visa copiar informações através dos cookies e instalar programas como spyware, worms e softwares de controle remoto. O roubo de cookies, nos aplicativos bancários, traz prejuízos como processos e indenizações, para os clientes um transtorno, pois, ter que comprovar que a transação não foi feita pelo mesmo não será tarefa fácil. Proteção: A melhor proteção para esta vulnerabilidade está na combinação de validação da lista branca de todos os dados de entrada e recodificação de todos os dados de entrada, há validação habilita a detecção de ataques e a recodificação previne a injeção de script. O Sql Injection, é uma aplicação que pode trazer grandes perdas pois as informações são alteradas direto no banco de dados. A manipulação de informações dentro de uma instituição financeira, como transferência ou pagamento de contas trará prejuízos ao cliente e a instituição. Proteção: Evitar o uso de interpretadores, caso utilize, o método para evitar a injeção de SQL é o uso de APIs seguras, como por exemplo querys parametrizadas e bibliotecas de mapeamento objeto relacional (ORM). Estas interfaces manipulam qualquer fuga de dados ou aquelas que não demandam fugas. O Cross Site Request Forgery, esta técnica provém de forçar o navegador da vitima a enviar uma requisição para uma aplicação web vulnerável, que realiza a ação desejada em nome da vítima. 46 Proteção: Garantir que não existam vulnerabilidades XSS na sua aplicação; Inserir tokens randômicos em todos os formulários e URL que não seja automaticamente submetido pelo browser; Não usar requisições GET (URLs) para dados sensíveis ou para transações de valores. O ataque de Força Bruta, consiste em gerar todas as combinações de senha possíveis em sequência para fazer acesso à um Sistema. Geralmente iniciados com Iogins padrão, como admin, root. Proteção: Verificação de PIN, imagem aleatória com um conjunto de caracteres que aparece para o usuário digitar ao efetuar login, quanto mais longo for o conjunto de caracteres e a diversidade dos mesmos, mais difícil de ser quebrado. O Phishing é uma das ameaças mais comuns hoje na web, o fraudador cria uma página falsa do internet banking e envia para um cliente, sugerindo que ele faça algumas atualizações o mesmo sem conhecimento atualiza estas informações e dá o acesso ao fraudador a sua conta. Proteção: Sempre instalar, atualizar e manter ativos o firewall e softwares para detecção de invasores, incluindo aqueles que oferecem segurança contra malwares e spywares; Utilizar a versão mais recente do navegador de internet, e instale todos os pacotes de segurança quando estiverem disponíveis; Nunca enviar pelo correio eletrônico informações pessoais ou financeiras detalhadas; O backdoor é utilizado pelos fraudadores para não terem trabalho de quebrar a segurança do servidor novamente, pois uma vez vulnerável ele aplica este método para manter a porta aberta. Proteção: Manter antivírus e firewall, sempre atualizado e ativo. 47 CONSIDERAÇÕES FINAIS 48 8 CONSIDERAÇÕES FINAIS Devido ao aumento do uso da internet nas últimas décadas, aumentaram os serviços ofertados na web, bem como o número de transações bancárias, através do Internet Banking. Neste contexto o conceito sobre segurança se tornou imprescindível, e para discutirmos sobre este ponto vimos que a confidencialidade, a integridade, a autenticidade, a disponibilidade e o não repudio são características fundamentais para o funcionamento de um aplicativo. Em seguida foram levantadas as principais ameaças e vulnerabilidades existentes enfocando como as mesmas funcionam. As vulnerabilidades discutidas foram o Sql Injection; o Cross Site Request Forgery; o Ataque de Sessão e o Ataque de Força Bruta e o Cross Site Scripting, com seus três métodos: o Ataque xss Refletido, o Ataque xss Armazenado e o Ataque xss DOM. As ameaças estudadas foram o Spam; o Phishing; o Scam; o Pharming; o Virus; o Cavalo de Tróia; o Adware e Spyware; o Backdoors; o Keyloggers; o Screenloggers, o Worms e o Bots e Botnets. Considerando todas as ameaças e vulnerabilidades elencadas acima, estudou-se os mecanismos de segurança que consiste em técnicas utilizadas para assegurar as propriedades de Segurança do Sistema Computacional. Foram exibidas as principais técnicas, como: Autenticação, Mecanismos de Controle de Acesso, Criptografia, Assinatura Digital, Teclado Virtual, Secure Socket Layer, Selo Digital, Captcha, Sistema de Detecção de Intrusos onde se tem o Signature Detection e o Behaviour Detection. Por fim, analisando os fundamentos teóricos trazidos no trabalho, pode-se afirmar que, uma aplicação bancária para ser mais confiável, deveria ter em sua implementação todos os aplicativos trazidos aqui neste trabalho. 49 9 TRABALHOS FUTUROS Considerando os pontos discutidos no trabalho e a necessidade sentida de novas ferramentas, propõem-se os seguintes pontos para trabalhos futuros: • Levantar junto aos usuários das instituições qual o grau de informação a cerca do uso do internet banking; • Propor as instituições um estudo de novas ferramentas e aplicações que estejam surgindo no mercado; • Pesquisar sobre novas fraudes e novas vulnerabilidades; • Sugerir também a nível acadêmico uma integração entre a faculdade e as instituições do nosso município. . 50 REFERÊNCIAS 51 10 REFERÊNCIAS BIBLIOGRAFICAS ANTINO. Internet é o meio mais utilizado por brasileiros em transações bancárias. Artigo publicado em 05//07/2010, no site: Fayerwayerbrasil. Disponível em: http://www.fayerwayer.com.br. Acesso em Setembro de 2010. ANTISPAM. Conceito. Disponível em: http://www.antispam.br/conceito/. Acesso em: 12/10/2010. ARANTES, M.: Comércio Eletrônico na Internet. Disponível em: http://www.computacao.unitri.edu.br. Acesso em: 09/11/2010. ARAUJO, Gorgonio, Atualidades em Segurança. Matéria publicada no site: NewsGeneration, disponível em: http://www.rnp.br. Acesso em setembro de 2010. ARAUJO, N.: Segurança da Informação(TI). Disponível em: http://www.administradores.com.br. Acesso em: 18/11/2010. BOGO, Kellen Cristina. A história da Internet como tudo começou. Matéria publicada no site: Kplus, disponível em: http://www.kplus.com.br. Acesso em setembro de 2010. BONFIETTI, H.: Fraudes no Internet Banking. Disponível em: http://www.icmc.usp.br. Acesso em: 09/11/2010. BRAUN, Daniela. Certificado Digital. Matéria publicada no site: RNP - Rede Nacional de Ensino e Pesquisa, disponível em: http://www.rnp.br. Acesso em setembro de 2010. BRAZ, F.: Segurança em Aplicações. Disponível em: http://www.rbrito.googlecode.com. Acesso em: 09/11/2010. CALLAO, G.: O Protocolo SSL. Disponível em: http://equipe.nce.ufrj.br. Acesso em: 08/11/2010. CARLOS, J.: Plataformas UNIX e MS-Windows como clientes e servidores. Disponível em: http://www.las.ic.unicamp.br. Acesso em 09/11/2010. 52 CERT. Cartilha de segurança para internet. Disponível em: http://cartilha.cert.br/. Acesso em: 12/10/2010. CERT.BR. Cartilha de Segurança para internet: Conceitos de Segurança. Disponível em: http://cartilha.cert.br/conceitos/sec5.html. Acesso em: 11/10/2010. CERTBR. Cartilha de Segurança. Matéria publicada no site: Cert.br – Centro de Estudos e Respostas e Tratamento de Insegurança no Brasil, disponível em: http://cartilha.cert.br. Acesso em setembro de 2010. CERTISING. Certificados Digitais. Disponível em: http://www.certisign.com.br. Acesso em: 10/10/2010. CUMMINS, Fred A. Integração de Sistemas: enterprise integration: Arquiteturas para integração de sistemas e aplicações coorporativas. Rio de Janeiro: Campus, 2002. CURTI, João C.: Análise de Segurança em Aplicações que utilizam Plataforma UNIX e MS-Windows como clientes e servidores. Disponível em: http://www.las.ic.unicamp.br. Acesso em: 03/12/2010. DOURADO, S.: Segurança em Sistemas Distribuídos. Disponível em: http://wiki.dcc.ufba.br. Acesso em: 08/11/2010. GOLLMANN, D. : Computer Security. Informatica e Segurança. Springer Verlag Ny, 2005. GORGONIO, A.: Transações Seguras via Web. Disponível em: http://www.rnp.br. Acesso em: 06/11/2010. GROSSMAN, Jeremiah; HANSEN, Robert; ET all. Syngress Cross Site Scripting Attacks Xss Exploits and Defense. GUEDES, E.: Fraudes no Internet Banking. Disponível em: http://www.fateczl.edu.br. Acesso em: 19/11/2010. GUMERATO, R.: Sql Injection em aplicações web. Disponível em: http://www.si.lopesgazzani.com.br. Acesso em 19/11/2010. 53 HSBC. Segurança, o que você deve fazer. Disponível em: http://www.hsbc.com.br. Acesso em 12/10/2010. INFO GUERRA.: O que é Spam. Disponível em: http://www.hsbc.com.br. Acesso em: 03/11/2010. LAU, M.: Análise das fraudes aplicadas sobre o ambiente Internet Banking. Disponível em: http://www.datasecur.com.br. Acesso em: 09/11/2010. LAUDON, Kenneth C. Laudon, Jane Price. Sistemas de Informação com a Internet. 4 Edição. São Paulo: LTC Editora, 1999. (página 4). LIMA, Ari. A importância da internet na Advocacia. Matéria divulgada pelo site de Administradores.com.br em 13/09/2010. Disponível em: http://administradores.com.br . Acesso em Setembro de 2010. MARINHO, R.: Implantação de Ferramentas e Técnicas de Segurança da Informação em Conformidade com as Normas da Isso 27001 e 17799. Disponível em: http://www.bibliotecadigital.puc-campinas.edu.br. Acesso em: 10/11/2010. MARTIM, M.: A Internet Banking no Brasil, na América Latina e na Europa. Disponível em: http://www.buscalegis.ufsc.br. Acesso em: 12/11/2010. NUNES, D.; OTHERS. Proposta de um sistema de CAPTCHA. Disponível em: ftp://ftp.registro.br/pub/gter/gter19/08-captcha.pdf. Acesso em: 01/11.2010. OLIVEIRA, G., BRITO, A., RIQUE, T. e FUJIOKA, R.: Disponível em: http://www.fatecjp.com.br. Acesso em 22/11/201. PEREIRA, E., FAGUNDES, L., NEUKAMP, P., LUDWIG, G. e KONRATH, M.: Forense Computacional: Fundamentos, Tecnologias e Desafios atuais. Disponível em: http://www.ppgia.pucpr.br. Acesso em 18/11/2010. PINKAS, B. e SANDER, T.: Securing Passwords Against Dictionary Attacks. Disponível em: http://www.pinkas.net. Acesso em: 08/11/2010. PONTES, Felipe. Http ou Htps, você sabe qual a diferença?. Disponível em: http://wnews.uol.com.br. Acesso em 10/10/2010. 54 PONTUAL, M., QUEIROZ, R. e HENRIQUE, J.: Segurança em Sites desenvolvidos em PHP. Disponível em: http://www.conisli.org.br. Acesso em: 12/11/2010. ROSSI, M. e FRANZIN, O.: Rede privada Virtual. Disponível em: http://www.gpr.com.br. Acesso em: 18//11/2010. SERASA. Como evitar golpes on-line: Bancos na Internet. Disponível em: http://www.serasaexperian.com.br/guiaInternet/29.htm. Acesso em: 12/10/2010. SILVA, A.: Como surgiu a Internet. Disponível em: http://falandointerpretando.blogspot.com. Acesso em: 08/11/2010. SILVA, A.A.R., Negócios Eletrônicos no Brasil. Disponível em: http://www.artigonal.com. Data de Acesso 23/08/2010. SIMON, C.: Scam, phishing e pharming: As fraudes praticadas no ambiente Internet Banking e sua recepção no Brasil. Revista de Derecho Informático, n. 105, abr., 2007. Disponível em: http://www.alfa-redi.org. Acesso em: 18/11/2010. SOUSA JR, Prof. Dr. Rafael T. de e PUTTINI. Prof. MSc. Ricardo S. SSL3. Mestrado em Engenharia de Redes e Tecnologias da Informação – UNB – Departamento de Engenharia Elétrica. Disponível em: http://www.redes.unb.br. Acesso em: 10/10/2010. SUAPESQUISA. História da Internet. Matéria publicada no site: suapesquisa.com, disponível em: http://www.suapesquisa.com. Acesso em Setembro de 2010. SUAPESQUISA: História da Internet. Disponível em: http://www.suapesquisa.com. Acesso em: 12/11/2010. TELEMIKRO: Segurança da Informação: Garantia de Disponibilidade de Sistemas Críticos. Disponível: http://www.faxes.com.br. Acesso em: 06/11/2010. TURBAN, E.; KING, D. Comércio eletrônico: estratégia e gestão. São Paulo: Prentice Hall, 2004. 55 TYSON, Jeff. Como funciona a Criptografia. Matéria publicada no site Howstuffworks.com.br, disponível em: http://informatica.hsw.uol.com.br. Acesso em Setembro 2010. VELASCO, M.: Segurança versus teclado virtual. Disponível em: http://www.netjuridica.com.br. Acesso em: 06/11/2010. VICENTE, M.: Segurança em Sistemas, Ênfase em Rede de Computadores. Disponível em: www.gta.ufrj.br. Acesso em 11/11/2010. WONGTSCHOWSKY, A.: Segurança em Aplicações Transacionais na Internet: O elo mais fraco. Disponível em: http://www.teses.usp.br. Acesso em: 19/11/2010. ZAVALLOS; R.J. A história da internet. Disponível em: www.artigonal.com. Acessado em: 27 de setembro de 2010. ZEVALLOS, R.: Surgimento e evolução da Internet. Disponível em: http://www.fateczl.edu.br. Acesso em 19/11/2010. COMODOBR: O que é SSL?. Disponível em: http://www.comodobr.com. Acesso em 04/12/2010.