O que são configurações incorretas de segurança e como evitá-las?
1 de novembro de 2021
0 minutos de leituraÀ medida que o software se torna mais complexo, os desenvolvedores assumem mais responsabilidades com contêineres, infraestrutura como código (IaC) e outras escolhas modernas de arquitetura de aplicações. Isso significa que as equipes de desenvolvimento também são cada vez mais responsáveis por configurar com segurança vários aspectos das aplicações nativas da nuvem.
Vamos analisar de perto as configurações incorretas de segurança e o impacto que elas têm na segurança de aplicações. Em seguida, veremos exemplos reais de como a Capital One e a Capgemini sofreram enormes violações de dados por causa de configurações incorretas de segurança. Por fim, discutiremos os tipos de configurações incorretas que podem ocorrer e como evitá-las com ferramentas automatizadas de segurança.

O que é uma configuração incorreta de segurança?
Uma configuração incorreta de segurança acontece quando os controles de segurança adequados não são implementados em uma aplicação, contêiner, infraestrutura ou qualquer outro componente de software. Essas configurações podem permitir acesso não autorizado aos dados e às funcionalidades do sistema ou, no pior dos casos, causar uma falha completa do sistema. Por isso, as configurações incorretas de segurança estão entre os 10 principais riscos de segurança de aplicações web, segundo a OWASP. Com a análise de segurança, as organizações podem detectar e corrigir configurações incorretas no código-fonte e nos arquivos de configuração.
Como ocorrem as configurações incorretas de segurança?
A maioria das configurações incorretas de segurança ocorre quando as organizações não implementam todos os controles recomendados para um componente específico da aplicação ou usam as configurações de segurança padrão. Quando os desenvolvedores não aplicam o princípio do menor privilégio a contas, interfaces de administração, bancos de dados e outros recursos, terceiros indesejados podem roubar dados confidenciais. Como a maioria dessas configurações incorretas é causada por erro humano, adotar IaC e automação pode ajudar a evitar muitas dessas vulnerabilidades.
Tipos de configurações incorretas de segurança
Como as configurações incorretas de segurança podem ocorrer em vários componentes de uma aplicação, há muitos tipos de vulnerabilidade. Entre eles:
Usar credenciais padrão em instâncias de servidores na nuvem, servidores web, bancos de dados e outros recursos
Não criptografar dados confidenciais, como senhas, chaves criptográficas ou chaves de API
Não seguir o princípio do menor privilégio para limitar os direitos de acesso aos recursos
Permitir tráfego público para URLs não divulgadas ou outros endpoints internos
Deixar arquivos ou diretórios desprotegidos por acidente
Esses são apenas alguns exemplos de configurações incorretas de segurança, mas eles deixam as organizações expostas a vários tipos de ataque. As configurações incorretas oferecem aos agentes de ameaça um vetor para realizar diferentes ataques de injeção, como cross-site scripting (XSS), injeção de código ou de comandos, exploração de buffer overflow e outros.
Um problema comum de configuração de segurança em aplicações Java está relacionado ao tratamento de erros. Quase toda aplicação Java acaba lançando uma exceção, o que significa que ocorreu um erro durante a execução. Em geral, os desenvolvedores Java procuram capturar essas exceções e tratá-las corretamente, mas exceções não capturadas muitas vezes expõem informações internas por padrão, como o stack trace. Agentes maliciosos podem usar essas informações para entender o funcionamento interno da aplicação e executar um ataque que explore configurações incorretas de segurança.
Novas configurações incorretas de segurança são descobertas constantemente, à medida que novos softwares de código aberto são lançados. Por isso, muitas ferramentas automatizadas de análise de segurança usam bancos de dados de vulnerabilidades atualizados com novos problemas de segurança e configurações incorretas divulgados. O Snyk Intel Vulnerability Database acompanha dados de vulnerabilidades de várias fontes para garantir a máxima cobertura para as equipes de desenvolvimento (370% mais vulnerabilidades do que o segundo maior banco de dados comercial de vulnerabilidades) e ajudar a detectar problemas antes que se tornem uma ameaça.
O impacto das configurações incorretas de segurança
À primeira vista, configurações incorretas de segurança podem parecer irrelevantes, mas representam riscos significativos para os negócios. Uma pesquisa recente constatou que a principal preocupação dos CISOs com ambientes de produção na nuvem eram as configurações incorretas de segurança que poderiam levar a uma violação de dados.
Violação de dados da Capital One
A violação de dados da Capital One, em que um ex-funcionário da Amazon roubou mais de 100 milhões de solicitações de crédito de consumidores, exemplifica o enorme impacto que até mesmo uma pequena configuração incorreta de segurança pode causar. A causa foi um firewall de aplicação web (WAF) de código aberto configurado incorretamente, que podia ser induzido a revelar credenciais de recursos de back-end com permissões desnecessárias. Essa pequena falha de configuração permitiu que o agente malicioso acessasse e baixasse dados confidenciais de um bucket do S3.
Violação de dados da Capgemini
Da mesma forma, a Capgemini expôs os dados pessoais de milhões de pessoas em busca de emprego ao não configurar adequadamente um banco de dados em um servidor de desenvolvimento de um provedor de TI. Isso permitiu que terceiros não autorizados acessassem facilmente os dados confidenciais pela internet pública. Agentes maliciosos estão sempre vasculhando a internet em busca de alvos fáceis, como bancos de dados configurados incorretamente.
Muitos agentes de ameaça consideram as configurações incorretas de segurança alvos fáceis, pois conseguem detectá-las e explorá-las com ferramentas automatizadas, e elas são comuns em muitas das aplicações nativas da nuvem atuais. De fato, nossa recente pesquisa sobre o estado da segurança de aplicações nativas da nuvem revelou que 69% dos desenvolvedores e profissionais de segurança já lidaram com configurações incorretas e vulnerabilidades sem correção em suas aplicações.
Como evitar configurações incorretas de segurança com ferramentas de análise
Como tantas aplicações correm o risco de apresentar configurações incorretas de segurança, é essencial que as organizações implementem processos automatizados para detectar e corrigir essas vulnerabilidades durante o desenvolvimento. Assim, elas eliminam o erro humano da equação e evitam que muitas configurações incorretas de segurança sejam introduzidas desde o início.
Snyk IaC permite que os desenvolvedores escrevam configurações seguras para Terraform, Kubernetes, Helm e muito mais. Isso ajuda as organizações a impedir que configurações incorretas de IaC cheguem à produção e evita ataques que explorem essas falhas antes que se tornem um problema.
Proteja a infraestrutura desde a origem
A Snyk automatiza a segurança e a conformidade de IaC nos fluxos de trabalho e detecta recursos com configurações divergentes ou ausentes.
A Snyk também pode analisar praticamente todos os componentes de software para detectar configurações incorretas de segurança e vulnerabilidades em toda a pilha moderna de aplicações nativas da nuvem. Com recomendações de correção contextualizadas, os desenvolvedores aprendem a aplicar práticas seguras de desenvolvimento e configuração e podem melhorar continuamente a postura de segurança de suas aplicações.
