Academia.eduAcademia.edu

TCC: APLICAÇÕES WEB E SUAS PRINCIPAIS VULNERABILIDADES

2015, ESTÁCIO - PÓS GRADUAÇÃO EM ARQUITETURA E ENGENHARIA DE SOFTWARE

Este artigo tem como objetivo proporcionar uma melhor compreensão do que são as aplicações web e, sobretudo, apresentar seus principais pontos vulneráveis, os quais podem afetar a segurança da informação e causar diversos tipos de transtornos e prejuízos.

Aplicações Web e as suas Principais Vulnerabilidades Jean Klebert de Albuquerque Modesto José do Carmo Rodrigues, MSc, PhD Curso de Pós-Graduação Lato Sensu em Engenharia e Arquitetura de Sotware da UNESA - Universidade Estácio de Sá Resumo Este arigo tem como objeivo proporcionar uma melhor compreensão do que são as aplicações web e, sobretudo, apresentar seus principais pontos vulneráveis, os quais podem afetar a segurança da informação e causar diversos ipos de transtornos e prejuízos. Há alguns anos atrás, as aplicações eram executadas em computadores ou terminais, sendo que o seu alcance, quando muito, restringia-se apenas à própria organização. Nessa época, a conecividade entre as unidades com separação geográica acontecia em geral através de Linhas Privadas de Comunicação de Dados. No entanto, notadamente a parir dos anos noventa, com a popularização da internet como plataforma de comunicação, começou a haver uma mudança nesse cenário. A troca de informações passou a acontecer em maior ritmo, a menor custo e com menos entraves tecnológicos. No mesmo ínterim, o surgimento de novas tecnologias permiiu o advento de páginas web mais interaivas e dinâmicas, criando as condições, assim, para o surgimento das aplicações web. Desde então, o uso crescente desses sistemas e a busca de conhecimento para torná-los mais seguros vieram consolidar um novo campo de estudo, tendo em vista que os problemas de segurança que acabaram surgindo se mostraram com potencial de afetar tanto pessoas, quanto organizações e governos. O presente arigo apresenta, portanto, o conhecimento base que auxiliará no entendimento mais claro do que são as aplicações web, as estratégias de exploração e ataque mais uilizadas por agentes maliciosos, bem como as maneiras de miigar os riscos associados à sua uilização, provendo uma melhor segurança da informação. Palavras-chave: aplicação web, banco de dados, segurança da informação, teste de sotware, crime virtual, auditoria de sistemas, hacker. 1. Introdução A popularização do uso da internet, em especial a parir da década de 90 em diante, veio consolidar o que se convencionou chamar de “era da informação”, não tardando para que rapidamente seus desdobramentos se apresentassem nos mais variados aspectos de nossa sociedade. De repente, empresas, governos e outros ipos de insituições viram-se compelidas a marcar sua presença no chamado mundo virtual. Sistemas que antes precisavam ser instalados e conigurados para somente assim serem executados no computador, ou em alguns casos emulados através de terminais, foram paulainamente migrados para sistemas disponibilizados através da rede - intranet e internet - e acessados facilmente através de apenas um endereço digitado no navegador web. De forma análoga, as bases de dados acabaram também sendo transferidas ou disponibilizadas nesse novo ambiente. Vislumbrando a oportunidade e na expectaiva de reduzir custos, muitas organizações iniciaram o processo de migração de suas aplicações manidas em plataforma 2 alta (computadores de grande porte e com tecnologia fortemente atrelada a um único fornecedor) para sistemas em plataforma web. Infelizmente, ao mesmo tempo que esse novo cenário tecnológico trouxe beneícios e novas possibilidades, impôs novos riscos e desaios. O crescimento no uso das aplicações web, associada à maneira que elas são disponibilizadas e facilmente acessíveis, tornou-as atraivas aos olhos de agentes maliciosos. Em geral, tais sistemas acabam guardando informações importantes dos seus usuários, como exemplo: endereço, conta bancária, número de cartão de crédito, senha, etc. Logo, um incidente de segurança possui o potencial de prejudicar sobremaneira a reputação do serviço disponibilizado e, até, a própria sobrevivência do negócio. É importante considerar, também, que não é incomum que muitos dos incidentes ocorridos sejam consequência do próprio processo de desenvolvimento do sistema: prazos de entrega apertados, mudanças conínuas de requisitos, testes inadequados ou não existentes e, inclusive, desconhecimento do desenvolvedor dos métodos de ataque uilizados pelos agentes mal intencionados. Para Campos (2014, p. 29), “muitas vezes é diícil obter o apoio da própria alta administração da organização para realizar os invesimentos necessários em segurança da informação. Os custos elevados das soluções contribuem para esse cenário, mas o desconhecimento da importância do tema é provavelmente ainda o maior problema”. Diante do exposto, o objeivo desse arigo é proporcionar uma visão geral do que são as aplicações web e, mais a fundo, as suas vulnerabilidades mais conhecidas. Trata-se de um temáica perinente que acabará por demonstrar os riscos associados ao uso desses sistemas, a necessidade de invesimento em segurança da informação e, também, a importância da adoção formal de tal políica pelas organizações. 2. Fundamentação teórica 2.1 Deinição de aplicação web Segundo Davis, Schiller e Wheeler (2011, p. 219), “poucas invenções tecnológicas mudaram tanto nossas vidas como as aplicações web ou tão rapidamente quanto. A interface web cresceu de páginas estáicas para uma mistura incrivelmente interaiva de recursos movidos por um exército de programadores criaivos. No inal de 1980, o conceito de World Wide Web começou suas origens humildes com Tim Berners-Lee e Robert Caillieau. Em 1991, o primeiro servidor web foi instalado nos Estados Unidos para se comunicar com o computador NeXT, na Suíça”. Pauli (2014, p. 26) deine aplicação web como “qualquer sotware baseado em web que realize ações (funcionalidades) de acordo com uma entrada de usuário e que normalmente interaja com sistemas de backend”. Considerando tal deinição, uma página web estáica não se enquadraria nas caracterísicas apresentadas, visto que serve apenas para apresentar uma informação sem qualquer interação com o usuário. Para Cannings, Dwivedi e Lackey (2010, p. 19-20), as caracterísicas das aplicações web e as tecnologias que lhe dão forma, as fazem se enquadrar dentro do advento da web 2.0. Esse novo paradigma veio fornecer aos uilizadores mais possibilidades, valendo-se de linguagens de programação para gerar páginas dinamicamente (Ex.: CGI, PHP, Java ), interações entre sistemas (Ex.: APIs, webservices ) e bancos de dados (Ex.: MySQL). Em sua deinição de aplicação web, o autor Pauli (2014, p. 26) denominou essas tecnologias de backend, ou seja, engrenagens invisíveis ao usuário porém que tornaram possível o salto do conteúdo estáico para o conteúdo interaivo e dinâmico. 3 Segundo Tim O'Reilly, fundador da O'Reilly Media, a web 2.0 "é a mudança para uma internet como plataforma, e um entendimento das regras para obter sucesso nesta nova plataforma. Entre outras, a regra mais importante é desenvolver aplicaivos que aproveitem os efeitos de rede para se tornarem melhores quanto mais são usados pelas pessoas, aproveitando a inteligência coleiva”. Já no entendimento de Cannings, Dwivedi e Lackey (2010, p. 26), “ web 2.0 é uma coleção de um monte de emergentes e existentes tecnologias novas que fazem sites funcionar em alguns casos e, simplesmente, mais interessante em outros casos. Infelizmente, na internet, as palavras novas, emergentes e emocionante geralmente signiicam a ausência de segurança (em favor de mais funcionalidade ou desempenho melhorado)”. Exemplos de aplicações ípicas da web 2.0 são: mecanismos de busca, lojas virtuais, blogs, redes sociais, home-bankings, webmails, wikis, etc. 2.1.1 Arquitetura de uma aplicação web De acordo com Stutard e Pinto (2011, p. 39), uma aplicação web é composta, no mínimo, dos seguintes elementos: - O protocolo HTTP: possibilita a comunicação entre a aplicação cliente e o servidor web. Geralmente é executado na porta TCP 80 e transita em modo texto como padrão; - Um servidor web: hospeda e executa a aplicação web (Ex.: Apache, Tomcat), respondendo às requisições das aplicações clientes através do protocolo HTTP; - Aplicação cliente: o navegador de internet do usuário (Ex.: Chrome, Safari) o qual permite visualizar e interagir com a aplicação web, ou seja, enxergar o frontend, a parte visível ao usuário da aplicação; - Aplicação web: código que será interpretado/executado pelo servidor web o qual dinamicamente produzirá como saída um código HTML que poderá ser renderizado pela aplicação cliente, no caso o navegador; - Banco de dados: faz a persistência de dados, possibilitando que as aplicações web de fato possuam uilidade. 2.2 Deinição de vulnerabilidade Vulnerabilidade, no que diz respeito ao assunto em foco, é uma brecha em um sistema ou na infraestrutura que lhe dá suporte representando uma ameaça à segurança da informação. Se a vulnerabilidade não é devidamente sanada, pode ser uilizada por agentes maliciosos em um ataque. Engebretson (2013, p. 2) complementa: “avaliação de vulnerabilidade é o processo de revisão de serviços e sistemas para potenciais problemas de segurança”. A exploração da vulnerabilidade pode ocorrer de forma local ou remotamente. Conforme conceitua Engebretson (2013, p. 17), a “exploração local exige que o atacante tenha acesso ísico ao computador, enquanto a exploração remota ocorre por meio de redes e sistemas, quando o atacante não pode tocar isicamente o alvo”. Como as aplicações web em geral encontram-se acessíveis através da rede para um público amplo, as fontes e os ipos de possíveis ataques são igualmente enormes. Independentemente do ataque ter origem local ou remota, o acesso completo à maquina que hospeda a aplicação é comumente a meta mais desejada. Engebretson (2013, p. 17) explica: “o acesso administraivo permite que um hacker controle a máquina de desino. Novos programas podem ser instalados, ferramentas defensivas podem ser desaivadas, documentos conidenciais podem ser copiados, editados ou apagados, as conigurações de segurança podem ser alteradas e muito mais”. 4 2.3 Deinição de segurança da informação A norma ABNT NBR ISO 27002:2013 (2013, p. 9) deine segurança da informação como "a proteção da informação de vários ipos de ameaças para garanir a coninuidade do negócio, minimizar o risco ao negócio, maximizar o retorno sobre os invesimentos e as oportunidades de negócio”. Neste senido, a segurança da informação é obida através de uma série de boas práicas, políicas e controles, os quais depois de estabelecidos e implementados, devem ser coninuamente monitorados, revisados e melhorados, a im de que permaneçam eicazes e condizentes com os novos métodos de ataques que porventura venham a surgir. Ainda de acordo a ABNT NBR ISO 27002:2013 (2013, p. 9), "a informação e os processos de apoio, sistemas e redes são importantes aivos para os negócios. Deinir, alcançar, manter e melhorar a segurança da informação podem ser aividades essenciais para assegurar a compeiividade, o luxo de caixa, a lucraividade, o atendimento aos requisitos legais e a imagem da organização junto ao mercado. As organizações, seus sistemas de informação e redes de computadores são expostos a diversos ipos de ameaças à segurança da informação, incluindo fraudes eletrônicas, espionagem, sabotagem, vandalismo, incêndio e inundação". 2.3.1 Princípios de segurança da informação Em um livro editado pelo Tribunal de Contas da União - TCU (2012, p. 25) é mencionado que “a segurança de informações visa garanir a integridade, conidencialidade, autenicidade e disponibilidade das informações processadas pela organização”: - Integridade: consiste em proteger a informação contra modiicação sem a permissão explícita do proprietário daquela informação. A modiicação inclui ações como escrita, alteração de conteúdo, alteração de status, remoção e criação de informações; - Conidencialidade: signiica proteger informações contra sua revelação para alguém não autorizado (interna ou externamente) e leitura e/ou cópia não autorizado. Deve-se cuidar não apenas da proteção da informação como um todo, mas também de partes da informação que podem ser uilizadas para interferir sobre o todo. No caso da rede, isto signiica que os dados, enquanto em trânsito, não serão vistos, alterados, ou extraídos da rede por pessoas não autorizadas; - Autenicidade: o controle de autenicidade está associado com ideniicação correta de um usuário ou computador. O serviço de autenicação em um sistema deve assegurar ao receptor que a mensagem é realmente procedente da origem informada em seu conteúdo; - Disponibilidade: consiste na proteção dos serviços prestados pelo sistema de forma que eles não sejam degradados ou se tornem indisponíveis sem autorização, assegurando ao usuário o acesso aos dados sempre que deles precisar. 2.4 Deinição de Políica de Segurança da Informação De acordo com o Tribunal de Contas da União - TCU (2012, p. 26), a "políica de segurança de informações é um conjunto de princípios que norteiam a gestão de segurança de informações e que deve ser observado pelo corpo técnico e gerencial e pelos usuários internos e externos”. A políica de segurança da informação (PSI) deve ser formalizada em documento escrito, de fácil acesso e compreensão aos interessados, sendo que o apoio da alta administração e o engajamento de todas as áreas da organização são considerados fatores de grande importância no sucesso de sua implementação. 5 3. Materiais e métodos Até o momento, este arigo apresentou em sua fundamentação teórica alguns conceitos a im de introduzir o leitor no que é uma aplicação web, vulnerabilidades em sistemas e segurança da informação. Já o conteúdo de materiais e métodos tem caráter essencialmente teórico e foi elaborado no intuito de focar nas vulnerabilidades desses sistemas, proporcionando o entendimento de quais métodos são uilizados nos ataques. Os tópicos seguintes são resultado de pesquisa bibliográica realizada em livros que tratam de segurança em aplicações web e que são comercializados de forma ísica e digital, facilitando o acesso a quem desejar se aprofundar no assunto ou futuros trabalhos e pesquisas acadêmicas. Houve o cuidado em compreender adequadamente o tema, bem como a forma que foi apresentado nos diversos livros da bibliograia estudada, a im de organizar o conteúdo de forma lógica e didáica. Dessa maneira, foi preciso condensar o que muitas vezes se encontrava disperso ou com excesso de detalhes nos livros, e que se apresentado de tal forma, poderia diicultar a compreensão e até a empaia com o tema. Segundo Gil (2010, p. 61), “O levantamento bibliográico pode ser entendido como um estudo exploratório permiindo o interessado ter mais familiaridade com o assunto”. 3.1 Formas de explorar possíveis vulnerabilidades em aplicações web Para entregar a sua principal funcionalidade, as aplicações web normalmente exigem conecividade com sistemas de computadores internos que contêm dados altamente sensíveis e que podem executar funções de negócios igualmente sensíveis. Um invasor que compromete uma aplicação web é capaz de, por exemplo, roubar informações pessoais, realizar fraudes inanceiras e realizar ações maliciosas contra outros usuários. Cada aplicação web é diferente e pode conter vulnerabilidades únicas. Para Scambray, Liu e Sima (2011, p. 11), apesar da enorme diversidade de ipos de aplicações web disponíveis atualmente a estratégia de ataque segue em geral alguns passos em comum ou uiliza-se de alguma técnica que de alguma forma acabará se enquadrando em um dos seguintes pontos: Ideniicação da infraestrutura; Exploração do servidor web; Inspeção da aplicação; Ataque aos mecanismos de autenicação; Ataque aos peris de autorização; Análise funcional dos componentes; Exploração das conecividades de dados; Ataque à interface de administração; e, Ataque ao cliente. Os três primeiros itens da lista referem-se ao que é denominado reconhecimento, ao passo que os demais itens enquadram-se como metodologia de ataque propriamente dita. As informações coletadas na fase de reconhecimento em geral servem de insumos para orientar quais abordagens o agente malicioso irá adotar em suas invesidas. 3.1.1 Ideniicação da infraestrutura As aplicações web exigem infraestrutura substancial - servidor e sotware, entradas de DNS (Domain Name System), equipamentos de rede, balanceadores de carga, e assim por diante. Sendo assim, não é surpresa que o primeiro passo seja a ideniicação e análise da infraestrutura de baixo nível em que a aplicação se encontra. O agente malicioso busca nesse ipo de exploração ideniicar o ipo de equipamento uilizado como servidor, portas TCP/IP abertas, sistema operacional e sotware de servidor web sobre o qual a aplicação é executada. Se a aplicação uiliza balanceadores de carga, haverá interesse em ter informações sobre cada equipamento que compõe a estrutura. Segundo Pauli (2014, p. 27), “depois de conhecer os detalhes do servidor web de desino, 6 tais como o endereço IP, portas abertas, a execução de serviços, e versões desses serviços, então você pode veriicar esses serviços em busca de vulnerabilidades”. 3.1.2 Exploração do servidor web O foco é explorar alguma vulnerabilidade ou falha de coniguração no sotware do servidor web com o objeivo de ganhar acesso a arquivos e diretórios que lá estão hospedados. Alguns inalidades que podem ser citadas: Inserir, copiar, alterar e deletar dados; Inserir código malicioso; Conhecer melhor a estrutura da aplicação a parir da análise da árvore de diretórios aim de veriicar outras possíveis brechas de segurança. Conforme menciona Pauli (2014, p. 34), “uma vez que isso ocorre, o hacker tem total controle da máquina e é livre para realizar qualquer ação, que normalmente inclui a adição de usuários, acrescentando administradores, a instalação de ferramentas hacking adicionais localmente na máquina para penetrar ainda mais na rede, e instalar código backdoor que permite conexões persistentes para esta máquina explorada”. É preciso mencionar que não raro os administradores desses servidores deixam de aplicar correções de segurança que evitariam certos ataques a vulnerabilidades já conhecidas e divulgadas em revistas ou fóruns da internet, por exemplo. Há também as falhas de coniguração, as quais podem deixar diretórios visíveis e com permissão de leitura ou escrita indevidas. 3.1.3 Inspeção da aplicação A inspeção da aplicação consitui o passo inal da fase de reconhecimento e o seu objeivo é permiir que o agente malicioso entenda o macro funcionamento da aplicação web, ou seja, como os componentes do sistema trabalham em conjunto, se relacionando e se comunicando, bem como os recursos com que o aplicaivo interage. Sendo assim, tenta-se estudá-los cuidadosamente em busca de vulnerabilidades. Scambray, Liu e Sima (2011, p. 45) mencionam que a inalidade da inspeção da aplicação “é gerar uma imagem completa do conteúdo, componentes, funções e luxo do site, a im de reunir pistas sobre onde vulnerabilidades subjacentes poderiam estar”. Entre as técnicas de inspeção de aplicações web, podem ser citadas algumas mais comuns: Ideniicação de formulários de entrada de dados; Como a aplicação trata e iltra as entradas; Como são formadas as URLs ( query strings) e se parâmetros são passados através delas. 3.1.4 Ataque aos mecanismos de autenicação A autenicação do usuário é um item fundamental e desempenha um papel críico na segurança de uma aplicação web, tendo em vista que todas as decisões de segurança posteriores geralmente são feitas com base na idenidade estabelecida pelas credenciais fornecidas. Logo, o foco desse ipo de ataque é conseguir um par válido de usuário e senha com o intuito de obter o acesso indevido ao sistema. Consituem contramedidas recomendadas por Scambray, Liu e Sima (2011, p. 124-217): - Uilizar o protocolo htps e token aleatório na página onde consta o formulário de autenicação: por padrão o htp transita as informações em texto puro e portanto o atacante com acesso àquela rede (uma rede sem io pública, por exemplo) pode capturar essa informação uilizando-se de aplicaivos que capturam pacotes de rede ( snifers). Já quanto à questão do uso de um token, este seria um número aleatório gerado toda vez a página de autenicação é carregada, sendo enviado junto ao formulário em cada envio ( POST). Essa técnica é uilizada a im de evitar o ataque de robôs ( scripts automaizados) ao formulário de 7 autenicação. Outro método para evitar o ataque de robôs é a uilização de um campo adicional chamado sopa de letrinhas ( captcha), que é uma sequência de caracteres aleatória que deve ser digitada pelo usuário; - Forçar os usuários uilizarem senhas mais robustas: uma credencial de autenicação formada por um par simples, como por exemplo admin/12345678, é facilmente quebrada por um ataque de força bruta os quais são baseados em dicionários de usuários/senhas muito uilizadas; - Uilizar trilhas de auditoria ( logs): gravar no banco de dados todas os acessos e tentaivas de acesso ao sistema, bem como o endereço IP de origem e a aplicação cliente, a im de permiir uma análise a qualquer tempo se houve tentaiva de burlar o mecanismo de autenicação da aplicação web; - Bloqueio de usuário: bloquear o usuário após um número estabelecido de tentaivas de autenicação frustradas; - Filtrar os campos do formulário: evita a injeção de código malicioso. Em aplicações web, os formulários são uma porta de entrada bastante uilizadas nas tentaivas de ataque. O desenvolvedor deve se preocupar sempre em validar adequadamente as entradas do usuário. Alguns desenvolvedores ainda realizam essa tarefa no lado cliente através de javascript, por exemplo, no entanto a implementação mais correta e segura seria realizar essas tarefas no backend, ou seja, no código executado no servidor; - Persisir a senha criptografada: não gravar no banco de dados a senha em texto puro e, sim, depois de uilizado algum mecanismo de criptograia. 3.1.5 Ataque aos peris de autorização Em aplicações web, o conceito de autorização refere-se ao que é permiido o usuário executar após autenicado no sistema. Scambray, Liu e Sima (2011, p. 168) deinem: “autenicação determina se os usuários podem fazer logon em uma aplicação web. A autorização determina quais partes do aplicaivo autenicado os usuários podem acessar, bem como as ações que eles podem tomar dentro do aplicaivo”. O foco desse ipo de ataque é poder executar mais do que originalmente está autorizado àquele usuário ou acessar áreas da aplicação as quais o seu peril não teria acesso. Uma das possibilidades é que essa brecha de segurança tenha sido deixada durante o desenvolvimento da aplicação onde por descuido ou falta de experiência o desenvolvedor não insere no código uma forma de conferir se o peril do usuário autenicado tem de fato autorização de acessar uma determinada área da aplicação. 3.1.6 Análise funcional dos componentes Segundo Stutard e Pinto (2011, p. 798), a essência da análise funcional é ideniicar cada componente da aplicação (por exemplo, a entrada do pedido, conirmação e acompanhamento de pedidos) e tentar injetar falhas em cada recipiente de entrada. Este processo de injeção de falhas por tentaiva é central para testes de segurança de sotware, e é por vezes referido como ataques de validação. Normalmente as aplicações web uilizam-se formulários para receber entradas de dados dos usuários. Essas entradas devem passar por algum ipo de validação a im de garanir que a informação digitada de fato é a esperada pela aplicação. Exemplo: em um campo que deve ser digitado um CPF, o número deve ser validado para garanir que se trata realmente de um CPF válido. Ocorre que é possível haver falhas nessa validação ou erros em como é implementada, sendo que a recomendação é que sempre ocorra no lado do servidor. Uma validação realizada no lado cliente, uilizando-se 8 javascript por exemplo, pode ser facilmente burlada. Alguns resultados que o agente malicioso poderá obter com esse ipo de ataque: - Geração de informações de erro: o aplicaivo poderá fornecer informações sobre as entradas de SQL (nomes de tabelas, nomes de campos). O erro poderá revelar caminhos completos de diretório. Um erro na execução da página poderá fazer com que o aplicaivo possa mostrar trechos do código fonte; - Obtenção arbitrária de dados; - Execução arbitrária de comandos: quando a entrada contém comandos que o servidor poderá executar; - Cross-Site Scriping : permite um atacante incorporar um script malicioso, em linguagens como javascript ou html, executando-o a im de coletar dados e podendo comprometer informações privadas, manipular ou roubar cookies, criar solicitações que podem ser confundidas como as de um usuário válido. Em muitos casos, o agente malicioso uiliza uma URL com argumentos customizados a im de veriicar as repostas da aplicação até encontrar uma brecha de segurança. 3.1.7 Exploração das conecividades de dados É no banco de dados que persistem as informações sensíveis das aplicações web. A maneira recomendada para impedir esses ataques é iltrar e validar sempre as entradas de dados que os usuários inserem nos campos de formulários do sistema e também as que são passadas pelas URLs. Uma das formas mais uilizadas de ataque a bases de dados é a chamada injeção de SQL ( Structured Query Language ou, em português, Linguagem de Consulta Estruturada ). A metodologia desse ataque é uilizar-se das entradas de dados na aplicação, a im de tentar adicionar um comando malicioso. As brechas disponíveis para a técnica de injeção SQL variam desde a geração de erros inócuos até a execução de uma linha de comando completa. De acordo Scambray, Liu e Sima (2011, p. 222), “quando devidamente implementados, roinas de validação de entrada garantem que os dados estão em um formato, ipo, duração e intervalo que é úil para a aplicação. Sem estas veriicações, a conidencialidade, integridade e disponibilidade de uma aplicação e suas informações podem estar em risco”. A validação de entrada deve ser realizada no servidor web e itens no banco de dados devem ser fortemente ipados. Um campo que uiliza apenas os valores numéricos devem ser um ipo int, não um varchar. 3.1.8 Ataque à interface de administração As aplicações web normalmente disponibilizam formas de serem acessadas e administradas remotamente, seja através de serviços como FTP (File Transfer Protocol) ou mesmo através de uma interface de administração no navegador web, dependendo da escolha do protocolo estas interfaces de gestão pode apresentar uma janela atraente para os atacantes oportunistas. Gerenciadores de conteúdo tais quais o wordpress, joomla e drupal disponibilizam seu módulo de administração no próprio navegador. O Zend Server , por exemplo, disponibiliza acesso às conigurações do servidor e do PHP através da porta 10081. Ainda bastante comum é encontrar uma instalação do phpmyadmin, o qual fornece uma interface web para administrar um banco de dados MySQL. Um aplicaivo que procura por portas abertas ( port scanners ) pode facilmente encontrar essas interfaces de administração, mesmo quando a porta padrão tenha sido alterada para outra qualquer pelo web admin. Scambray, Liu e Sima (2011, p. 332) explicam: “todas essas interfaces podem ser facilmente ideniicadas por atacantes que usam 9 varredura de portas e fraquezas nos sistemas explorados, sejam eles bugs conhecidos de sotware, senhas fracas (padrão) ou controles de acesso impróprios. Assim, cabe aos arquitetos de aplicaivos web considerar o gerenciamento remoto e garanir que ele é feito de forma segura”. Para diminuir os riscos faz-se necessário: Sempre alterar as senhas padrão dessas interfaces; Não uilizar senhas fracas; Limitar o número de tentaivas de autenicação sem sucesso, bloqueando o usuário; Sempre escolher o protocolo mais seguro entre os disponíveis, como por exemplo o SFTP ao invés do FTP; Limitar o acesso à interface a um IP especíico ou a um reduzido número de IPs; e, Gravar registros de acesso ( logs), tanto no sucesso da autenicação quanto no erro. 3.1.9 Ataque ao cliente À medida que os mecanismos contra os ataques ao lado servidor da aplicação se aperfeiçoam, o alvo passa a ser o lado cliente: O sistema operacional do computador do usuário; O navegador web; e, Complementos instalados no navegador ( plugins). Tais brechas de segurança são exploradas até que se tornem conhecidas e corrigidas pelo fornecedor do sotware. Uma vulnerabilidade day zero signiica que é uma brecha, conhecida ou desconhecida pelo desenvolvedor, para a qual ainda não foi fornecida correção. Também é importante levar em conta que muitos usuários não mantêm seus sistemas devidamente protegidos. Não baixam as atualizações do sistema operacional e demais aplicaivos instalados, inclusive o navegador. Não uilizam anivírus. Instalam aplicaivos piratas ou baixam arquivos de origem duvidosa. Clicam em endereços ou imagens que levam a páginas web contaminadas ou que baixam um arquivo executável malicioso. No que diz respeito à aplicações web, os diversos métodos de ataque ao lado cliente possuem o intuito de conseguir uma ideniicação válida (usuário/senha) que permita, assim, a realização do acesso indevido. 3.2 Importância de uma PSI para sistemas mais seguros Conforme menciona o Tribunal de Contas da União - TCU (2012, p. 9), “os aspectos de segurança aingiram tamanha complexidade que há a necessidade de desenvolvimento de equipes e de métodos de segurança cada vez mais soisicados. Paralelamente, os sistemas de informação também adquiriram importância vital para a sobrevivência da maioria das organizações modernas, já que, sem computadores e redes de comunicação, a prestação de serviços de informação pode se tornar inviável”. Uma PSI, quando apoiada pela alta administração e incorporada à cultura organizacional, leva ao entendimento do que se deve proteger e como fazê-lo. Muitas organizações acabam se submetendo a um risco desnecessário por olvidarem da importância de uma PSI. Segundo o TCU (2012, p. 12), “a PSI pode ser composta por várias políicas inter-relacionadas, como a políica de senhas, de backup, de contratação e instalação de equipamentos e sotwares”. No que diz respeito especiicamente à segurança de sistemas, alguns tópicos são geralmente tratados numa PSI, de acordo com o TCU (2012, p. 11): Princípios de conformidade dos sistemas computacionais com a PSI; Padrões mínimos de qualidade que esses sistemas devem possuir; Políicas de controle de acesso a recursos e sistemas computacionais; Classiicação das informações (de uso irrestrito, interno, conidencial e secretas); Princípios legais que devem ser observados quanto à tecnologia da informação (direitos de propriedade de produção intelectual, direitos sobre sotware, normas legais correlatas aos sistemas desenvolvidos, cláusulas contratuais); Princípios de supervisão constante das tentaivas de violação da segurança de informações; 10 Consequências de violações de normas estabelecidas na políica de segurança; Princípios de gestão da coninuidade do negócio. 4. Discussão As aplicações web começaram a surgir a mais de uma década e são decorrentes de uma série de tecnologias que permiiram a criação de páginas web mais interaivas e dinâmicas, o que acabou sendo denominado de web 2.0. Tal advento proporcionou uma verdadeira revolução na troca de informações e nas interações entre pessoas e organizações. Surgiram, então, os mecanismos de busca, lojas virtuais, as redes sociais, os blogs e muito mais. É necessário entender que as funcionalidades desses sistemas são apoiadas fortemente em bases de dados ou conexões com outros sistemas. Logo, as linguagens de programação que possibilitam a geração de html dinamicamente e os repositórios de dados formam o alicerce que permite entregar o serviço desejado pelo usuário. Por serem facilmente acessíveis através da rede – internet ou intranet – e, ao mesmo tempo, grandes repositórios de informações, tais sistemas tornaram-se instantaneamente objetos de desejo e alvos a serem explorados por agentes maliciosos, quase sempre em busca de algum ipo de vantagem ilícita. Ao ganharem importância, uma considerável literatura sobre suas questões de segurança também começou a surgir e ganhar corpo em arigos e livros. Contudo, não obstante o conhecimento disponível, muitas invesidas noiciadas na imprensa obiveram sucesso com técnicas já difundidas e amplamente destrinchadas na literatura existente. Alguns ataques são mais facilmente detectáveis e, logo, rapidamente corrigíveis, principalmente quando causa algum problema de desempenho ou indisponibilidade no sistema. Entretanto, os casos mais graves - no entendimento de alguns autores como Engebretson (2013, p. 17) - são considerados aqueles no qual o agente malicioso consegue o acesso administraivo ao equipamento que hospeda a aplicação, a parir daí podendo coletar informações sobre o sistema e sua infraestrutura. Os insumos coletados podem proporcionar um ataque de maior monta ou, mesmo, alterações no código da aplicação ou em sua base de dados que passem despercebidas. Tendo em vista que esse ipo de violação permite o autor encobrir os seus rastros, consequentemente demorando mais a ser descoberta, os prejuízos são em geral maiores. Outro aspecto a considerar é que estando as aplicações web amplamente disponíveis ao acesso público, ica praicamente impossível ter controle de onde poderá parir o ataque. Sendo assim, o foco deve ser miigar as vulnerabilidades exploráveis, a parir do conhecimento das metodologias em geral uilizadas pelos agentes maliciosos. Além disso, é necessário manter-se ciente que constantemente novas vulnerabilidades surgirão, seja em decorrência de brechas em programas (ex.: sistemas operacionais, servidores, navegadores, plugins), falhas de coniguração e/ou erro humano. O repertório de ameaças para as aplicações web é dinâmico e propenso a evoluir constantemente. Entre os principais moivos, podem ser citados: o surgimento constante de novas ferramentas para criação desses sistemas, o aumento de sua complexidade, o aumento da conecividade entre aplicações (ex.: web services ), as novas plataformas de acesso (ex.: tablets e smartphones) e os próprios avanços nas estratégias uilizadas pelos atacantes. Tal cenário de riscos trouxe à tona a necessidade das organizações adotarem formalmente uma Políica de Segurança da Informação. Quando é demandado um novo sistema, por exemplo, a falta de uma PSI pode levar a uma priorização apenas das suas funcionalidades, prazos mais curtos, minimização ou inexistência de testes, etc, levando o foco a ser manido na redução de custos e, consequentemente, deixando os aspectos de 11 segurança relevados a um segundo plano. A preocupação ocorrerá apenas de forma reaiva, ou seja, quando surgir os incidentes de segurança. 5. Conclusão No presente arigo foi possível compreender melhor o que é uma aplicação web e os aspectos relacionados à sua segurança. Atualmente, os principais métodos de ataque a esses sistemas encontram-se bastante documentados, seja através de livros, arigos na internet, etc. As contramedidas para cada um deles, idem. Quanto ao futuro, projeta-se o uso cada vez mais intenso de tais sistemas, tanto em computadores, quanto em novos disposiivos, como smartphones, tablets, relógios, carros, etc. As vulnerabilidades e os ataques acompanharão as novas tecnologias e as novas formas de acesso, demandando um esforço conínuo de aprendizado. Embora as aplicações web estejam atualmente tão disseminadas ao ponto de terem se tornado indispensáveis, ainda faz-se necessário uma melhor compreensão dos riscos associados ao seu uso, sobretudo por parte de empresas e pessoas que as desenvolvem. Os ataques de tempos em tempos noiciados na imprensa levam a crer que nem sempre esses atores aplicam corretamente o conhecimento disponível a im de proteger adequadamente esses sistemas. Por tal razão, os riscos apenas poderão ser miigados à medida que um aitude proaiva por parte das organizações seja de fato adotada e passe a estar imbuída na própria cultura organizacional, englobando todos os processos que digam respeito à segurança da informação. Para aingir esse ponto, é importante relembrar que a adoção de uma Políica de Segurança da Informação é o caminho recomendado e que poderá proporcionar sistemas de melhor qualidade e mais seguros. Tal políica deve permear os processos e decisões organizacionais e é de fundamental importância que conte com o compromeimento dos níveis gerenciais e da alta administração. Nos dias atuais, a informação deve ser considerada como um aivo da organização e, sendo assim, deve-se zelar por ela a im de preservar os interesses de sócios, invesidores, clientes, etc. Por im, vale relembrar a citação de Cannings, Dwivedi e Lackey (2010, p. 15): “a evolução da web é emocionante e, de certa forma, assustadora. Junto com os avanços sem precedentes nas funcionalidades oferecidas, veriica-se uma escalada dramáica da corrida armamenista entre as pessoas que escrevem o código e aqueles que tentam quebrá-lo”. Referências Bibliográicas ABNT NBR ISO/IEC 27002:2013 – Tecnologia da Informação – Técnicas de Segurança – Código de práica para a gestão da segurança da informação . Rio de Janeiro: ABNT, 2013. CAMPOS, André. Sistemas de Segurança da Informação , 2 a Edição. Florianópolis: Visual Books, 2014. CANNINGS, Rich; DWIVEDI, Himanshu; LACKEY, Zane. Hacking Exposed Web 2.0: Web 2.0 Security Secrets and Soluions, 3a Edição. EUA: McGraw-Hill, 2010. DAVIS, Chris; SCHILLER, Mike; WHEELER, Kevin. IT Audiing: Using Controls to Protect a Informaion Assets, 2 Edição. EUA: McGraw-Hill, 2011. 12 ENGEBRETSON, Patrick. The basics of hacking and penetraion tesing: ethical hacking and penetraion tesing made easy. 2a Edição. EUA: Syngress, 2013. GIL, Antonio Carlos. Como elaborar projetos de pesquisa. 5 a Edição. São Paulo: Atlas, 2010. PAULI, Josh. Introdução ao Web Hacking : Ferramentas e Técnicas para Invasão de Aplicações Web. São Paulo: Novatec Editora, 2014. SCAMBRAY, Joel; LIU, Vicent; SIMA, Caleb. Hacking Exposed Web Applicaions: Web Applicaion Security Secrets and Soluions, 3a Edição. EUA: McGraw-Hill, 2011. STUTTARD, Dafydd; PINTO, Marcus. The Web Applicaion Hacker`s Handbook: Finding and Exploiing Security Flaws, 2a Edição. EUA: Wiley Publishing INC, 2011. Tribunal de Contas da União. Boas Práicas em Segurança da Informação , 4a Edição. Brasília: TCU, Secretaria de Fiscalização de Tecnologia da Informação, 2012.