Segurança client-side

Aplicações em geral podem ser divididas em duas categorias segundo o local onde estão sendo executadas: Server-side ou Client-side. Estas definições aparecem quando temos dado aplicativo que roda em ambiente Client-server. É muito comum haver fóruns de discussão e debates com respeito a segurança do lado servidor, visto que é lá onde em geral está o ‘cerne das informações’, tal como uma base de dados, um repositório de arquivos etc. Quando trata-se de segurança no lado cliente, não há muito material a ser estudado além das tradicionais receitas e manuais para instalação de antivírus e algumas suítes de segurança de Internet que estão bastante em moda hoje em dia.

Definição de Client-side

O termo ‘client-side’ do inglês (lado do cliente, ou lado do usuário) refere-se à operações que são executadas na estação de trabalho do usuário conectado à um serviço em rede.

Existem inúmeros motivos para uma aplicação client-server executar operações no lado cliente, tal como necessidade de acesso à informações ou funcionalidades que estão disponíveis em sua estação e não no servidor, poupar poder de processamento no servidor.[1]

Segurança no lado cliente

Garantir a segurança client-side é muito mais complexo do que no server-side. Essa complexidade se dá devido a impossibilidade da equipe de segurança estar próximo as estações dos usuários. Servidores estão sempre confinados em um CPD que muitas vezes são tão seguros quanto um cofre-forte, como no caso do CPD do STF[2] e além de serem monitorados constantemente através de ferramentas de controle de acesso etc.

Com acesso quase sempre remoto, ou mesmo quando local, controlado e manipulado por especialistas no assunto ou outras orientadas diretamente por estas, fica “fácil” manter uma relativa segurança, se comparado a fragilidade de um equipamento instalado em algum lugar onde o gerente de segurança apenas conhece o equipamento como se fosse “um número na rede” e que é diariamente “operado por um login”.

Velocidade de disseminação

A forma de trabalho de um usuário é imprevisível. Ele pode estar operando um contas-a-pagar enquanto alguém o está observando e imediatamente alternar desta aplicação para um navegador web acessando páginas de conteúdo malicioso que infectarão seu equipamento e muitas vezes dali para toda a rede será uma questão de minutos, tal como o Slammer que em 2004 precisou de apenas 10 minutos para infectar cerca de 75 mil máquinas conectadas à Internet[3].

Segundo um estudo realizado em Julho de 2008, um computador com Windows XP (sistema operacional que ainda hoje é muito utilizado) sem recursos de segurança ou desatualizados não leva mais do que 5 minutos para ser infectado por um vírus[4]. Tão ruim quanto isto é saber que não apenas computadores estão vulneráveis. Atualmente até telefones celular correm o risco de serem avariados por um malware qualquer[5].

Outras vulnerabilidades podem ser exploradas pelos vírus

Ainda que a rede corporativa possuísse todos os recursos para evitar que o usuários acesse um site malicioso. Hoje em dia pendrivers, mp3 players e telefones celulares podem ser livremente conectados a um porta USB, tal como se fazia nos anos 80 com os disquetes. Tais dispositivos pode ter sido infectado na casa do usuário, em um cibercafé, lan-house etc e trazer o vírus até a sua estação de trabalho.

Algumas vezes os vírus são programados para se aproveitar a vulnerabilidade existente em um programa que roda na estação do usuário, tal como as frequentes falhas de segurança que se encontram em navegadores web em geral e que permitem a um atacante executar remotamente um código malicioso, um bom exemplo foi a que acometeu os navegadores Internet Explorer 6 e 7 para Windows XP e Vista, bem como o Navegador Safari da Apple em 2008[6].

Outros tipos de vulnerabilidades

Nos que lidamos com segurança de TI todos os dias sabemos que não apenas vírus que chegam pela Internet ou dispositivos portáteis são as fontes de risco de segurança para um sistema ou uma rede, embora quase sempre eles sejam o ponto de partida que trará um “facilitador” para o atacante.

Um bom exemplo disso são ataques do tipo man-in-the-middle, em que o atacante poderá se aproveitar de técnicas como o ARP-poisoning ou port-stealing para capturar pacotes originados/destinados a máquina do usuário, ou mesmo fazer um DNS-Spoofing que resultaria no mesmo objetivo que seria levar o usuário a acessar involuntariamente uma página web não esperada de onde poderia roubar senhas, informações pessoais e corporativas, explorar alguma vulnerabilidade no navegador ou mesmo instalar um malware em seu sistema. Embora pareça difícil tal procedimento pode ser realizado por qualquer amador, tal como demonstrado por Christian Seifert em seu artigo Injection of client-side attacks with Ettercap [7]. O mesmo autor, em outro artigo entitulado Types of Web-based Client-side Atacks[8], enumera alguns tipos de ataques e divide-os em três categorias de acordo co mo seu impacto: Confidencialidade, Disponibilidade e Integridade.

Atualmente com a tecnologia conhecida como AJAX é possível inclusive a execução de código malicioso de forma que o usuário nem se dará conta, visto que uma das características desta tecnologia é mascarar as chamadas ao servidor. Shaj, em seu artigo Top 10 web 2.0 Atack Vectors[9] apresenta esta e algumas outras técnicas usadas para explorar vulnerabilidades nesta que se tornou a tecnologia do momento para desenvolvimento de websites interativos.

Conclusão

Para minimizar os riscos de uma infecção por vírus, worms e trojans existem os kits de antivírus e antitrojans que podem ser encontrados gratuitamente na Internet ou mesmo comprados à uma quantia monetária relativamente baixa se considerarmos o preço de outros tipos de ferramentas de segurança e também o valor das informações que estão em risco.

Como visto, aplicações web2.0 podem ser fontes de risco também, portanto precisam ser muito bem escritas, pois embora o ataque ocorra diretamente na conexão do usuário, caso o atacante consiga falsificar bem a página, não há um meio de se perceber tal ocorrência e o usuário será facilmente enganado.

O texto Client-side security publicado no site Gnucitizen[10] nos deixa uma frase que reflete bem o motivo de devermos nos preocupar com a segurança client-side. “clients and servers are in symbiosis. The security of the server depends on the security of the client and vice versa”, ou, em tradução livre, “clientes e servidores estão em uma simbiose. A segurança do servidor depende da segurança do cliente e vice-versa.”.

O conceito de simbiose é aquele em que dois organismos individuais entre si possuem uma ligação tão extrema entre si que tal ligação se torna obrigatória para sua existência. Partindo deste princípio notamos que a segurança client-side é tão importante quanto a server-side.

A conclusão que se chega então é a mesma que chegou o Ricardo Crivelli em seu texto “Segurança server-side ou client-side, qual é a mais importante?”[11]. Não adianta termos nossos servidores em uma sala-cofre monitorados em regime 24×7 com diversos sistemas de segurança auditando os seus acessos se do lado do cliente, deixarmos que um simples pendrive infectado possa permitir a infiltração de um atacante que se aproveitará dos privilégios do usuário para acessar informações que não deveria.

Referências

[1] Wikipédia. Client-side. Mai. 2009. Disponível em <http://en.wikipedia.org/wiki/Client-side>. Acesso em 05-08-2009.

[2] JusBrasil Noticias. Mudança de CPD para sala-cofre prepara Supremo para receber processos eletrônicos. Jun. 2007. Disponível em <http://www.jusbrasil.com.br/noticias/139204/mudanca-de-cpd-para-sala-cofre-prepara-supremo-para-receber-processos-eletronicos>. Acesso em 05-08-2009.

[3] Thompson, Clive. Criadores de Vírus. JB online. Fev. 2004. Disponível em <http://jbonline.terra.com.br/jb/papel/cadernos/internet/2004/02/29/jorinf20040229006.html>. Acesso em 05-08-2009.

[4]Terra tecnologia. Estudo: ataque a PC desatualizado leva 5 minutos. Jul. 2008. Disponível em <http://tecnologia.terra.com.br/interna/0,,OI3016399-EI4805,00-Estudo+ataque+a+PC+desatualizado+leva+minutos.html>. Acessado em 05-08-2009.

[5] Folha Online. Vírus de celular poderia espalhar-se pelo mundo em minutos. Mar. 2005. Disponível em <http://www1.folha.uol.com.br/folha/informatica/ult124u18107.shtml>. Acesso em 05-08-2009.

[6] Naraine, Ryan. Microsoft issues Safari-to-IE blended threat warning. ZD.net. Mar. 2008. Disponível em <http://blogs.zdnet.com/security/?p=1230>. Acessado em 06-08-2009.

[7] Seifert, Christian. Injection of client-side attacks with Ettercap. Disponível em <http://homepages.mcs.vuw.ac.nz/~cseifert/blog/pivot/entry.php?id=63>. Acesso em 06-08-2009.

[8] Seifert, Christian.Types of Web-Based Client-Side Attacks. Help Net Security. Sep. 2008. Disponível em <http://www.net-security.org/article.php?id=1176&p=1>. Acesso em 06-08-2009.

[9] Shaj, Shreeraj. Top 10 Web 2.0 Attack Vectors. Help Net Security. Oct. 2006. Disponível em <http://homepages.mcs.vuw.ac.nz/~cseifert/blog/pivot/entry.php?id=63>. Acesso em 06-08-2009.

[10] Gnucitizen. Client-side security. Jun. 2007. Disponível em <http://www.gnucitizen.org/blog/client-side-security/>. Acesso em 07-08-2009.

[11] Crivelli, Ricardo. Segurança server-side ou client-side, qual é a mais importante? Jun. 2009. Disponível em <http://blog.ricocrivelli.co.cc/2009/06/seguranca-server-side-ou-client-side-qual-e-a-mais-importante/>. Acesso em 07-08-2009.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.