Segurança de Aplicação

Saiba como aumentar a segurança de aplicações web

Apesar das vantagens que são oferecidas pelas aplicações web, muitas pessoas se sentem preocupadas quanto à segurança. Como a web é acessada por diferentes usuários, e muitos deles são mal-intencionados e trabalham visando efetivamente invadir sistemas, o cuidado com a segurança torna-se um requisito fundamental.

A web é, de fato, bastante vulnerável, já que é um espaço “aberto”, sujeito a invasões de hackers e falhas nos sistemas em geral. Dessa forma, estratégias que aperfeiçoem a segurança de aplicações web são sempre oportunas.

Confira como aumentar a segurança nessas aplicações lendo esse post!

Teste de invasão

O teste de invasão, também chamado teste de intrusão ou penetration testing (pentest), avalia a segurança de sistemas, plataformas e de qualquer ambiente através da simulação. A finalidade do teste é medir o nível de riscos do ambiente, fornecendo um relatório minucioso que apresenta, além dos resultados, as melhores soluções para os problemas.

São 4 os níveis de risco:

  • Crítico;
  • Alto;
  • Médio;
  • Baixo.

É um processo de natureza cíclica, que exige certo grau de conhecimento técnico por parte do profissional responsável. Através das simulações de ataques reais, é possível identificar e explorar todas as vulnerabilidades.

Criação e controle efetivos das senhas

Sabe-se da importância que as senhas têm para garantir a confidencialidade dos dados. No entanto, ainda assim, a criação de senhas fracas é um erro frequente, favorecendo que um ataque de força bruta descubra qual o login/senha utilizado.

É fundamental desenvolver uma política de gerenciamento de senhas que obrigue os usuários a criar senhas com, no mínimo, oito caracteres (envolvendo letras minúsculas e maiúsculas, números, símbolos) que devem valer durante um prazo e, depois, precisem ser alteradas.

As senhas usadas nos sistemas de autenticação da aplicação são armazenadas em texto plano no banco de dados e podem ser utilizadas de forma indevida tanto na mesma aplicação quanto em outras (quando os usuários possuem a mesma senha em sistemas diferentes). Para garantir segurança maior às senhas de aplicação, o ideal é usar um algoritmo de hash de acesso público, que já foi testado e seja de largo uso. Entre esses algoritmos disponíveis em várias linguagens de programação, estão RIPEMD-160, SHA256, SHA384 e SHA512 (nível de segurança em ordem crescente). MD5 e SHA1 são considerados algoritmos vulneráveis e devem ser evitados. Aqui um conteúdo mais técnico sobre o armazenamento de senhas.

HTTP x HTTPS / HTML

Outra falha é confiar no protocolo HTTP que, na verdade, não oferece segurança na comunicação dos dados. A melhor opção é o HTTPS (protocolo HTTP sobre SSL ou TLS), que pode ser utilizado para segurança para as aplicações, oferecendo serviços como:

  • Confidencialidade da informação entre servidor-cliente (criptografia);
  • Autenticação do servidor para o cliente mediante a apresentação de certificados digitais.

Certas aplicações usam campos ocultos no código HTML. Essa é uma estratégia que visa o controle interno da aplicação. É preciso compreender que esses parâmetros podem ser alterados por outras pessoas, gerando problemas. O correto é determinar campos que, se modificados por usuários de má fé, não comprometam a segurança da aplicação.

Atualização e configuração de softwares

A atualização dos softwares garante a segurança das aplicações web, dos servidores e da rede, e por isso deve sempre estar em dia. Outro ponto importante é a configuração adequada dos softwares das aplicações. Um erro muito repetido é usar a mesma configuração do ambiente de desenvolvimento no ambiente de produção. É importante observar que cada ambiente requer suas próprias configurações.

Principais vulnerabilidades e soluções

As vulnerabilidades com maior índice de incidência são:

  • Injeção de SQL;
  • Cross Site Scripting;
  • Sequestro de sessões;
  • Ataques a sistemas de autenticação;
  • Execução de comandos no sistema operacional;
  • Visualização de arquivos indevidos
  • Elevação de privilégios.

Para injeção de SQL, sugere-se validar todos os dados de entrada (em especial, o lado do servidor), impedindo assim o uso de caracteres maliciosos. Somente caracteres já selecionados devem ser admitidos.

Solução para o Cross Site Scripting: recomenda-se a filtragem de toda a entrada do usuário na aplicação (incluindo cookies, urls,  dados via POST e GET) e também a saída do servidor web para o usuário. O ideal é a abordagem positiva da filtragem de dados, ou seja, a reprovação das entradas que não correspondam aos dados já selecionados.

Para evitar o sequestro de sessões, o HTTPS pode ser útil, além de estratégias como:

  • Redução do tempo de expiração do cookie;
  • Separação entre as categorias de cookies (autenticação e personalização);
  • Eliminação de cookies persistentes.

Para combater os ataques a sistemas de autenticação, deve-se evitar mensagens de erros muito detalhadas e gerenciar os logins que falham (uso de captcha, limite na quantidade de falhas, bloqueio ao acesso).

Quando todos os dados vindos do usuário (utilizados como padrões em determinadas funções) são validados antes da execução, os riscos com a execução indevida de comandos diminuem. Para a recriação da funcionalidade, recomenda-se o uso de chamadas à biblioteca ao invés de processos externos (exec (), system () e outros).

Como forma de combate à visualização dos arquivos indevidos, o ideal é armazenar todos os arquivos de configuração e sigilosos (como .cfg, .ini, .conf, .log, .pdf, .gbd ) em uma pasta inacessível pela web e gerenciar com rigor o acesso aos dados sigilosos quando for necessário disponibilizá-los.

A elevação de privilégios pode ser evitada através da validação em ambos os extremos (servidor e cliente). Utilize ainda o conceito de privilégio mínimo para execução dos processos da aplicação, ou seja, o mínimo de permissões para que seja efetuado o serviço.

Soluções gerais

É fundamental que os gestores:

  • Elaborem uma estratégia clara para garantir segurança no processo de desenvolvimento da aplicação;
  • Estruturem métodos para que sua equipe e os fornecedores possam desenvolver aplicações mais seguras;
  • Façam a avaliação e testem a segurança do ambiente e das aplicações projetadas pela equipe e fornecedores;
  • Desenvolvam um projeto de Gestão de Vulnerabilidades e testes de segurança para garantir que suas aplicações estarão sob nítido controle.

A Conviso oferece todos esses serviços e, através da plataforma Conviso Armature, dá suporte completo de segurança no desenvolvimento de aplicações:

  • Identificando vulnerabilidades;
  • Aplicando teste de invasão e revisão de código fonte;
  • Aplicando varreduras automatizadas;
  • Elaborando planos de ação para o desenvolvimento seguro da aplicação;
  • Gerenciando através de dashboard;
  • Fornecendo indicadores para acompanhar o processo.

Já conhece a Conviso? Ela é uma empresa cujo foco é exatamente a segurança das aplicações! Aproveite esse momento e entre em contato! A Conviso pode oferecer as melhores soluções para a máxima segurança de aplicações web!

About author

Articles

Uma equipe de profissionais, altamente conectados com as notícias, técnicas e informações sobre a segurança de aplicações.
Related posts
Segurança de Aplicação

Desenvolvimento Seguro para Dispositivos de IoT: Garantindo a Resiliência na Era da Conectividade

Não é mais incomum olharmos para vários lugares e acharmos dispositivos IoT, estão em nossas…
Read more
Segurança de Aplicação

O Impacto da Inteligência Artificial no Desenvolvimento Seguro de Software

Não é segredo para ninguém, a Inteligência Artificial (IA) tem impactado significativamente…
Read more
Segurança de Aplicação

Secure By Design em ASPM - Como as ferramentas se integram ao processo

Neste artigo vamos trabalhar um pouco com os conceitos de Secure by Design em ASPM e como as…
Read more

Deixe um comentário

Descubra mais sobre Conviso AppSec

Assine agora mesmo para continuar lendo e ter acesso ao arquivo completo.

Continue reading