Segurança da Aplicação
Detectar vulnerabilidades de código e aplicar correções automáticas com StackSpot AI
Vulnerabilidades em aplicações podem levar a acessos não autorizados a dados, manipulação de informações, interrupções de serviço e execução de código arbitrário por hackers. Este exemplo demonstra como usar a StackSpot AI para detectar e corrigir vulnerabilidades em aplicações automaticamente.
Os passos mostram como detectar e corrigir vulnerabilidades comuns de código usando a StackSpot AI:
-
Crie um Quick Command. Este recurso ajuda você a centralizar e orquestrar uma série de prompts de comando, usar uma base de conhecimento e chamar APIs externas.
-
Você pode inserir informações e trechos de código para correção de vulnerabilidades em um Knowledge Source. Este passo é opcional, pois o prompt geralmente será suficiente. Você pode usar esta opção para casos específicos ou vulnerabilidades de dia zero.
-
Forneça uma base de parâmetros personalizados da empresa (por exemplo, conta AWS, região, padrões de nomenclatura, etc.).
-
Escreva os prompts para garantir resultados ótimos usando o software de inteligência artificial para seus propósitos específicos.
-
Crie um passo para integrar com o GitHub para criar uma issue de patch para a vulnerabilidade encontrada automaticamente.
-
Finalmente, publique o Quick Command em um Workspace AI.
O Quick Command criado busca vulnerabilidades com base no OWASP Top 10, explica cada vulnerabilidade, exibe o trecho de código onde se aplica e sugere uma correção de código.
Exemplos de correção de vulnerabilidades de código
Usando um Quick Command para testar hipóteses e identificar e corrigir automaticamente vulnerabilidades de código. As capturas de tela demonstram as correções sugeridas para vulnerabilidades conhecidas no código.
Exemplo 1. Vulnerabilidade de Injeção de SQL na linguagem Java
A Injeção de SQL é um ataque cibernético que explora vulnerabilidades em um sistema por meio de consultas SQL. Os atacantes inserem código SQL malicioso em campos de entrada, como formulários da web e parâmetros de URL. Suponha que a aplicação web não valide essa entrada. Nesse caso, o sistema de banco de dados pode executar o código SQL malicioso, permitindo que os atacantes acessem, modifiquem ou excluam dados ou executem comandos no servidor.
Antes:
Depois:
Exemplo 2. Vulnerabilidade de credenciais hard-coded na linguagem Java
Credenciais hard-coded envolvem a incorporação de detalhes de autenticação, como nomes de usuário, senhas, tokens de acesso ou chaves de API, diretamente no código-fonte de uma aplicação. Esta prática é arriscada porque qualquer pessoa com acesso ao código, incluindo pessoas desenvolvedoras, revisores de código ou atacantes, podem facilmente ver essas credenciais. Então, é essencial armazenar informações de autenticação de forma segura em um local protegido, como um arquivo de configuração seguro ou gerenciador de segredos.
Antes:
Depois:
Exemplo 3. Vulnerabilidade de Cross-Site Scripting (XSS) na linguagem Python
XSS (Cross-site scripting) constitui uma vulnerabilidade de segurança significativa em aplicações web. Ele permite que atacantes injetem e executem scripts maliciosos no navegador de um usuário. Essa ameaça surge quando dados não confiáveis são incorporados em uma página web e executados nos navegadores de outros usuários. Esses ataques comprometem a segurança e a privacidade dos usuários, levando a possíveis consequências como roubo de sessão, redirecionamento para sites maliciosos, roubo de cookies e exibição de conteúdo indesejado.
Antes:
Depois:
Exemplo 4. Vulnerabilidade de Entidade Externa XML (XXE) na linguagem Python
A Entidade Externa XML (XXE) é uma vulnerabilidade de segurança em sistemas que processam documentos XML. Ela ocorre quando uma aplicação processa entradas XML que contêm referências a entidades externas, dando aos atacantes a capacidade de acessar recursos do sistema ou realizar ações indesejadas. Em um ataque XXE, os atacantes podem ler arquivos do sistema, interagir com serviços internos, executar código remoto e causar negação de serviço. Isso pode resultar em consequências graves, como vazamento de dados confidenciais e comprometimento do sistema.
Antes:
Depois:
Exemplo 5. Criando um bucket público com risco de vazamento de dados na linguagem Terraform
Embora não seja exatamente uma vulnerabilidade, não é recomendado, exceto em casos específicos.
Antes:
Depois:
Vídeo & Blog
-
Para mais informações, confira o artigo no Blog da StackSpot.
-
Aprenda mais como a StackSpot AI corrige as vulnerabilidades no vídeo: