Piotr-Adamowicz-623x4101-623x410

No mundo acelerado de hoje, os desenvolvedores de software frequentemente devem trabalhar sob pressão, sobretudo quando se tratam de projetos com prazos muito estritos (ou de pedidos feitos sem a antecipação necessária).

No entanto, esses “trabalhinhos rápidos”, às vezes, podem sair bem mais caros, pois é possível que falhas ou vulnerabilidades não desejadas ocorram no código. No entanto, há formas de diminuir estes riscos, como ter procedimentos adequados de controle de qualidade, utilizar processos e ferramentas de teste bem definidas, e educar os programadores para que apliquem o enfoque chamado “segurança desde o projeto”.

Inclusive hoje em dia, um grande número de desenvolvedores de software não estão se atentando para a segurança como deveriam. Alguns nunca receberam uma capacitação adequada sobre práticas de desenvolvimento seguro por parte das empresas, enquanto que outros tratam de acelerar o trabalho, utilizando código de terceiros (o que não está ruim, mas pode conter erros não detectados).

Tudo isso, somado ao fato de que os clientes preferem uma entrega rápida (acima da segurança), faz com que a criação de software seguro seja mais difícil de ser alcançada.

Isso também afeta aos usuários. Algumas falhas são tão graves que permitem a um atacante roubar dados confidenciais, sequestrar uma sessão, e inclusive se fazer passar por uma vítima. No entanto, existem certas recomendações para os desenvolvedores que podem ajudar a evitar alguns destes problemas, para ser mais específico, por meio da aplicação das práticas “segurança desde o projeto”.

Para começar, o enfoque “seguro desde o projeto” estimula aos desenvolvedores a criar seus aplicativos pensando na segurança. O processo segue três princípios que formam a base da segurança da informação:

  1. Os usuários apenas podem ter acesso aos dados para os quais tem permissão.
  2. Os sistemas devem garantir que os usuários (não autorizados) não possam manipular nem alterar os dados.
  3. Os sistemas devem conceder aos usuários autorizados acesso aos dados sempre que necessitem.

A Fundação OWASP (Projeto Aberto de Segurança em Aplicações Web), partidária do enfoque “seguro desde o projeto”, tem como propósito ajudar aos desenvolvedores e às empresas a criar e a controlar aplicativos confiáveis para os usuários. Para isso, publicam as vulnerabilidade mais comuns de modo que qualquer pessoa possa identificá-las quando as encontra online. Estas são as três primeiras:

1. As falhas de injeção, que afetam buscas SQL, comandos do sistema operativo, entre outros, é a "número um".

Exemplo: Em um sistema vulnerável, o atacante inserta um script no formulário de início da sessão para a substituição de uma conta de dados legítima (como o nome de usuário e a senha). O interprete (um programa que o usuário não pode ver, mas que está realizando as instruções dadas) executa o comando não projetado e permite ao atacante acessar, roubar ou alterar os dados no sistema host, sendo possível até mesmo negar o acesso ou, no pior dos casos, tomar o controle total.

2. A perda da autenticação e gestão das sessões é outra falha muito difundida e comumente aproveitada pelos atacantes, por meio da qual um aplicativo web não consegue proteger os dados confidenciais.

Exemplo: o usuário se identifica (em geral) proporcionando um nome de usuário e uma senha, e recebe um ID de sessão do aplicativo vinculado as credenciais. No entanto, se a conexão não está encriptada, um atacante pode utilizar um ataque de intercepção do tipo man-in-the-middle para capturar os dados confidenciais transferidos. Os usuários mal intencionados também podem sequestrar a sessão ou, pior ainda, se fazer passar pela vítima por meio do uso não autorizado do ID de sessão que aparece na URL.

3. A sequência de comandos nos sites cruzados (também conhecida como XSS), é outra vulnerabilidade muito comum. Permite ao atacante comprometer a conta de um usuário ou tomar o controle dela para extrair seus dados. O atacante também pode redirecionar a vítima a uma página maliciosa ou instalar malware no sistema.

Exemplo: o usuário recebe um email ou uma mensagem nas mídias sociais, que contém um link malicioso. Quando a vítima clica nele e é redirecionada ao site, se executa um script encrostado pelo atacante que lhe permite sequestrar a sessão do usuário ou extrair dados por meio do site.

 

Autor: Ondrej Kubovič, da ESET.

Adaptação: Francisco de Assis Camurça, da ESET.