Pular para o conteúdo principal

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:

  1. 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.

  2. 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.

  3. Forneça uma base de parâmetros personalizados da empresa (por exemplo, conta AWS, região, padrões de nomenclatura, etc.).

  4. Escreva os prompts para garantir resultados ótimos usando o software de inteligência artificial para seus propósitos específicos.

  5. Crie um passo para integrar com o GitHub para criar uma issue de patch para a vulnerabilidade encontrada automaticamente.

  6. 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:

Captura de tela de um código Java com vulnerabilidades de SQL Injection.

Depois:

Captura de tela da StackSpot AI que corrigiu a vulnerabilidade detectada substituindo a concatenação de String no código pela passagem de parâmetros usando Java PreparedStatement.

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:

Captura de tela do código Java contendo credenciais expostas.

Depois:

Captura de tela do StackSpot AI substituiu os campos de nome de usuário e senha hard-coded no código usando o AWS Secret Manager, aplicando as informações armazenadas neste segredo.

 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:

Captura de tela do código Python vulnerável a ataques XSS.

Depois:

Captura de tela da StackSpot AI detectou a vulnerabilidade de Cross-Site Scripting (XSS) e corrigiu o código escapando a variável user_input.

 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:

Screenshot código Python com vulnerabilidade XXE

Depois:

Captura de tela: O parser é corretamente passado para a função tree.fromstring no código corrigido usando o argumento de palavra-chave 'parser'. Isso garante o uso do XMLParser, com a configuração 'resolve_entities' definida como False, impedindo que o parser XML processe entidades externas e reduzindo o risco de ataques XXE.

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:

Captura de tela do código Terraform que cria um Bucket S3 público.

Depois:

Captura de tela: StackSpot AI removeu o acesso público ao bucket S3 e restringiu as políticas de acesso.

Vídeo & Blog