Durante o processo de desenvolvimento e lançamento de softwares, existem muitos riscos envolvidos. Conhecer os principais inimigos da segurança no desenvolvimento de software é, portanto, fundamental, mas como fazer isso?
Uma das primeiras medidas necessárias é mudar a cultura de desenvolvimento de software dentro da organização, de modo a produzir um código mais seguro. Entender os inimigos mais comuns e como se proteger é outro passo, igualmente determinante para o sucesso de um software.
A seguir, veja os principais inimigos da segurança no desenvolvimento de software, segundo o OWASP!
Principais inimigos da segurança no desenvolvimento de software
Desenvolvimento de software
Como identificar os principais inimigos da segurança no desenvolvimento de software? Uma das formas de se fazer isso é consultando documentos que elencam os maiores riscos, segundo pesquisas de mercado e dados obtidos de empresas.
O OWASP Top 10 é um documento padrão de conscientização para desenvolvedores e segurança de aplicativos da web. Ele traz um amplo consenso sobre os riscos de segurança mais críticos para aplicativos da web.
Atualmente, muitas organizações adotam este documento para iniciar o processo de garantir que seus aplicativos da web minimizem riscos. Junto com essas diretrizes, é recomendável investir em uma mudança na cultura de desenvolvimento de software para gerar códigos mais seguros.
De acordo com o documento, os riscos e vulnerabilidades de segurança mais comuns em aplicativos web são:
1. Falhas de injeção
Falhas de injeção, como SQL, NoSQL, OS e injeção LDAP, ocorrem quando dados não confiáveis são enviados a um intérprete como parte de um comando ou consulta.
Com isso, os dados hostis do invasor podem induzir o intérprete a executar comandos indesejados ou acessar dados sem autorização.
2. Autenticação quebrada
Muito frequentemente, as funções de aplicativo relacionadas à autenticação e gerenciamento de sessão são implementadas de maneira errada. Isso permite que invasores comprometam senhas, chaves ou tokens de sessão, ou explorem outras falhas de implementação para assumir as identidades de outros usuários de forma temporária ou permanentemente.
3. Exposição de dados confidenciais
Muitos aplicativos da web e APIs não protegem os dados confidenciais, incluindo finanças, saúde e PII. Quando isso acontece, os invasores podem roubar ou modificar esses dados para conduzir fraude de cartão de crédito, roubo de identidade ou outros crimes.
4. Entidades externas XML (XXE)
Muitos processadores XML mais antigos ou mal configurados avaliam referências de entidades externas em documentos XML. Entidades externas podem ser usadas para divulgar arquivos internos usando o manipulador de URI de arquivo, compartilhamentos de arquivos internos, varredura de porta interna, execução remota de código e ataques de negação de serviço.
5. Controle de acesso quebrado
Muitas vezes, as restrições sobre o que os usuários autenticados têm permissão para fazer não são aplicadas de forma adequada. Quando isso acontece, invasores podem explorar essas falhas para acessar funcionalidades e/ ou dados não autorizados, como acessar contas de outros usuários, visualizar arquivos confidenciais, modificar dados de outros usuários, alterar direitos de acesso, etc.
6. Configuração incorreta de segurança
Um dos problemas mais comuns na segurança de softwares é a configuração incorreta de segurança. Isso geralmente é resultado de configurações padrão inseguras, configurações incompletas ou ad hoc, armazenamento em nuvem aberta, cabeçalhos HTTP configurados incorretamente e mensagens de erro detalhadas contendo informações confidenciais.
7. Cross-Site Scripting XSS
Outro risco para desenvolvedores de software, as falhas de XSS ocorrem sempre que um aplicativo inclui dados não confiáveis em uma nova página da web sem validação ou escape adequado. Ou, ainda, atualiza uma página da web existente com dados fornecidos pelo usuário usando uma API do navegador que pode criar HTML ou JavaScript.
O XSS permite que os invasores executem scripts no navegador da vítima, podendo sequestrar as sessões do usuário, desfigurar sites da web ou redirecionar o usuário para sites maliciosos.
8. Desserialização insegura
A desserialização insegura geralmente leva à execução remota de código. Ela pode ser usada para realizar ataques, incluindo ataques de repetição, ataques de injeção e ataques de escalonamento de privilégios.
9. Registro e monitoramento insuficientes
O registro e o monitoramento insuficientes, juntamente com a integração ausente ou ineficaz com a resposta a incidentes, permitem que os invasores ataquem ainda mais os sistemas.
A maioria dos estudos de violação mostra que o tempo para detectar uma violação é de mais de 200 dias – geralmente, a descoberta é feita por partes externas em vez de processos internos ou monitoramento.
Newsletter HNZ
Fique por dentro de nossos conteúdos se cadastrando na nossa newsletter semanal! Clique aqui!