Uma pessoa segura uma chave

Detecção de segredos com IA: um guia para desenvolvedores

Definição da detecção de segredos

A detecção de segredos é o processo de encontrar e sinalizar dados confidenciais conhecidos como "segredos" em bases de código ou outros locais dentro de ambientes de desenvolvimento de software. Essa camada automatizada de defesa ajuda a garantir que nenhuma informação confidencial seja codificada ou introduzida no código-fonte de uma forma facilmente legível ou não criptografada.

A detecção de segredos faz parte de uma abordagem "shift left" que antecipa a segurança no processo de desenvolvimento. Os segredos podem se estender para além do código, aumentando o risco de exposição a incidentes de segurança. A proteção automatizada por meio da detecção de segredos pode ajudar a proteger o fluxo de trabalho em escala do desenvolvedor.

O que são segredos?

Na segurança de aplicações (AppSec), segredos são informações digitais que concedem acesso a usuários humanos ou identidades não humanas, como aplicativos, dispositivos ou cargas de trabalho, permitindo que eles se comuniquem ou executem ações. Devido à sua natureza sigilosa, os segredos devem ser mantidos confidenciais.

Aqui estão alguns tipos comuns de segredos:

  • Os dados biométricos incluem características físicas e comportamentais inerentes a uma pessoa, como seus traços faciais, impressões digitais, voz ou até mesmo sua maneira de andar, que podem ser usadas para verificar sua identidade.

  • Os certificados digitais e suas chaves privadas associadas são empregados para autenticar endpoints e estabelecer canais de comunicação seguros.

  • As cadeias de conexão são sequências de texto contendo instruções para se conectar a uma fonte de dados.

  • As credenciais de banco de dados são combinações de nome de usuário e senha para obter acesso aos bancos de dados.

  • As credenciais de contas de serviço permitem que aplicativos e fluxos de trabalho automatizados acessem e interajam com os sistemas operacionais.

  • As chaves SSH (Secure Shell) são usadas para autenticar entidades que acessam servidores e outras infraestruturas.

  • As combinações de nome de usuário e senha consistem em cadeias de caracteres que autenticam o acesso de um usuário a um sistema.

Por que a detecção de segredos é importante

Os segredos são os principais alvos dos agentes de ameaças. Eles podem empregar bots para coletar um token exposto, uma credencial vazada ou uma configuração incorreta em um ambiente nativo da nuvem. Os invasores exploram esses segredos para obter acesso não autorizado a aplicações e sistemas. Como o acesso é obtido por meio de credenciais legítimas, pode ser mais difícil detectá-lo, podendo passar despercebido por longos períodos.

Isso torna a detecção de segredos um componente crucial da estratégia de cibersegurança de uma empresa. A detecção de segredos ajuda as organizações a:

  • Evitar o sequestro de contas e o aumento de privilégios: os hackers podem usar credenciais vazadas para aumentar seus privilégios. Munidos de privilégios mais elevados, eles podem alterar configurações do sistema, interromper servidores e infraestrutura, executar comandos, instalar malware ou assumir o controle de ativos.

  • Prevenir violações de dados: agentes maliciosos podem realizar exploração de segredos expostos para roubar informações pessoais sensíveis ou dados corporativos confidenciais. Essas violações de dados podem ser caras e levar a perdas financeiras, diminuição da confiança dos clientes e danos à reputação.

  • Reduzir as vulnerabilidades: segredos expostos são portas abertas. Localizá-los permite que as empresas removam proativamente essas vulnerabilidades, fechando a porta para ataques cibernéticos bem-sucedidos.

Como funciona a detecção de segredos

O processo começa com a varredura de segredos, em que as ferramentas de detecção vasculham repositórios de código (também chamados de repos) e recursos relacionados em busca de segredos expostos. Essas ferramentas então geram alertas ou relatórios para quaisquer segredos identificados, incluindo seu tipo e onde está localizado. As equipes de desenvolvimento e de segurança podem usar esses alertas ou relatórios para orientar as medidas de remediação, como a migração de informações confidenciais para uma solução de gerenciamento de segredos. Essas soluções ajudam a automatizar, centralizar e agilizar a criação, o uso, a rotação e a proteção de segredos.


A detecção de segredos envolve uma combinação de métodos para identificar com precisão os segredos em todos os repositórios:

  • Correspondência de padrões

  • Varredura por dicionário

  • Análise de entropia

Correspondência de padrões

Os algoritmos de correspondência de padrões buscam strings que correspondam aos formatos padrão de segredos. Eles também empregam expressões regulares, que são padrões de pesquisa compostos por sequências de caracteres.

Esse método geralmente é eficaz para segredos que seguem um formato predefinido, como tokens de acesso para serviços de nuvem ou chaves de API. No entanto, a varredura de segredos usando expressões regulares (também conhecidas como regex) pode ser lenta, e segredos com uma composição aleatória podem passar despercebidos.

Varredura por dicionário

Na detecção de segredos, dicionários são fontes de dados que contêm segredos conhecidos. Esses dicionários podem ser usados como referência ao pesquisar segredos.

A verificação por dicionário ajuda a determinar se um segredo está em uso ou não. Mas pode ser que não consiga detectar segredos que não estejam no dicionário.

Análise de entropia

A entropia mede a aleatoriedade ou imprevisibilidade dos dados. Quanto maior a entropia, mais aleatórios são os dados e mais difícil é a previsão. Dessa forma, a análise de entropia avalia as sequências de caracteres em busca de atributos de aleatoriedade.

Esse método ajuda a descobrir possíveis segredos que não seguem padrões conhecidos, como chaves de criptografia. Também pode revelar novos segredos ou segredos de alta entropia.

Ferramentas para detecção de segredos

Há muitas opções de sistemas de detecção de segredos. Ao escolher a solução ideal, as empresas devem considerar a precisão de uma solução, a profundidade e a amplitude de seus recursos de detecção, sua escalabilidade em grandes bases de código e ao longo do ciclo de vida de desenvolvimento de software (SDLC), além de verificar se ela é compatível e se integra sem dificuldades ao seu stack e fluxos de trabalho de desenvolvimento de software.

Aqui estão algumas ferramentas populares para detectar segredos:

Detecção de segredos do GitLab

O GitLab utiliza um analisador para detecção de segredos específico para ambientes GitLab. Ele oferece estas funcionalidades:

  • A proteção de push de segredos analisa as alterações antes de serem enviadas ao GitLab e bloqueia o envio caso sejam detectados segredos.

  • A detecção de segredos em pipelines funciona como um componente dos pipelines de CI/CD, inspecionando solicitações de merge e commits na branch padrão de um repositório.

  • A detecção de senhas do lado do cliente examina comentários e descrições em problemas e solicitações de merge.

O GitLab pode responder automaticamente a tipos específicos de segredos vazados, revogando-os. Para determinados níveis de contas, a funcionalidade de detecção de falsos positivos do GitLab Duo avalia os segredos identificados para determinar possíveis falsos positivos.

Gitleaks

O Gitleaks é uma ferramenta de código aberto para detectar segredos em repositórios Git, diretórios, arquivos e outras entradas padrão. Seu mecanismo de detecção é baseado em uma combinação de correspondência de padrões por meio de análises de regex e entropia.

As organizações podem criar conjuntos de regras personalizados para seus próprios segredos. Eles também podem executar o Gitleaks como um pre-commit hook para detectar segredos no código-fonte antes que sejam enviados ao repositório.

Hashicorp Vault Radar

O Vault Radar é o produto de detecção de segredos da HashiCorp. Ele realiza varreduras contínuas e em tempo real em busca de segredos e até mesmo informações de identificação pessoal (PII), categorizando-as e classificando-as em um dashboard para auxiliar nos esforços de remediação.

As verificações também são realizadas em commits de código, pull requests e ao adicionar fontes de dados. As fontes de dados compatíveis incluem repositórios e plataformas como Azure DevOps, Bitbucket, GitHub e GitLab, além de plataformas de colaboração como Confluence, Jira e Slack.

O Vault Radar fornece orientação de remediação integrada para determinadas contas empresariais. Os segredos expostos também podem ser copiados para a Vault, a plataforma de gerenciamento de segredos da HashiCorp, como parte do processo de remediação.

 
IA para detecção de segredos

A inteligência artificial pode melhorar a precisão e a eficiência das ferramentas de detecção de segredos, a maioria delas produz altas taxas de falsos positivos. Os modelos de IA podem ser treinados para reconhecer características que correspondem a uma gama mais ampla de tipos de segredos, tornando-os mais dinâmicos do que as soluções baseadas em regras.

Vantagens da detecção de segredos com IA

As equipes de desenvolvimento que implementam a IA para detecção de segredos podem obter os seguintes benefícios:

  • Consciência de contexto: os modelos de IA podem aprender o contexto que envolve os segredos, incluindo comentários no código, estrutura do código-fonte e nomes de variáveis. Essa análise semântica e contextual permite que os modelos distingam melhor entre segredos verdadeiros e dados de amostra ou valores de teste. Dessa forma, a consciência de contexto pode ajudar a aumentar as taxas de verdadeiros positivos e reduzir as taxas de falsos positivos.

  • Detecção em tempo real: algumas ferramentas de detecção de segredos impulsionadas por IA se integram perfeitamente aos IDEs, sinalizando segredos codificados de forma fixa enquanto os desenvolvedores escrevem código, além de capturar segredos expostos antes que sejam comprometidos ou enviados para repositórios.

  • Priorização e remediação automatizadas: a detecção de segredos orientada por IA pode automatizar a priorização dos segredos sinalizados, atribuindo uma pontuação de risco com base em fatores como explorabilidade, impacto, localização e gravidade. Também pode sugerir correções, como substituir segredos expostos por chamadas para uma plataforma de gerenciamento de segredos.

Técnicas baseadas em IA para detectar segredos

O uso de IA na detecção de segredos envolve diversas técnicas:

  • Aprendizagem em conjunto: o aprendizado em conjunto mescla vários classificadores para aumentar a precisão da previsão.

Ferramentas de detecção de segredos impulsionadas por IA

Uma combinação de estratégias convencionais e baseadas em IA pode fortalecer o processo de detecção de segredos. A correspondência de padrões e a análise de entropia podem ser usadas para pesquisar segredos, enquanto as metodologias orientadas por IA validam os segredos descobertos para eliminar falsos positivos.

Aqui estão alguns exemplos de soluções de detecção de segredos que usam IA:

GitGuardian

A plataforma de segurança de código GitGuardian escaneia repositórios Git, pipelines de CI/CD, imagens Docker e sistemas de colaboração como Confluence, Jira e Slack. Os desenvolvedores podem configurar pre-commit hooks e integrar a varredura em IDEs ou usar o aplicativo de interface de linha de comando do GitGuardian.

O mecanismo de detecção de segredos do GitGuardian consiste em dois tipos de detectores de correspondência de padrões: detectores específicos dedicados a encontrar tipos particulares de segredos, resultando em alta precisão e cobertura, e detectores genéricos para capturar o que os detectores específicos possam não detectar. Vários modelos de aprendizado de máquina também adicionam funcionalidades valiosas, como filtrar segredos que provavelmente são falsos positivos e avaliar o contexto em torno de um segredo genérico para atribuir a ele uma categoria e um provedor apropriados.

Outras funcionalidades baseadas em aprendizado de máquina incluem o agrupamento de incidentes semelhantes, que reúne segredos que compartilham similaridades contextuais, e a pontuação de risco, que utiliza o XGBoost (eXtreme Gradient Boosting), um conjunto de árvores de decisão que aprendem com os erros umas das outras, para classificar segredos com base em múltiplos sinais de risco.

Proteção secreta do GitHub

O GitHub Secret Protection é o sistema de verificação de segredos próprio do GitHub. Ele examina todo o histórico do Git em todos as branches de um repositório, bem como as descrições e comentários em issues e pull requests.

A função de proteção contra push do sistema analisa cada push em tempo real, bloqueando commits que contenham segredos. Ele pode realizar verificações automáticas de validade para verificar se um segredo descoberto está ativo e exposto publicamente.

O GitHub Secret Protection também usa o GitHub Copilot para detectar segredos não estruturados comprometidos em repositórios.

IBM Bob

O Bob é o assistente de programação de IA da IBM, projetado para ajudar na elaboração de código-fonte, depuração, refatoração, revisões de código e documentação. Ele pode identificar vulnerabilidades de segurança no código e, juntamente com seu recurso de detecção de segredos integrado, o Bob facilita e promove a programação segura.

O Bob pode ser programado para assumir um modo de agente personalizado que procura segredos predefinidos, explica os riscos de segurança e recomenda ações para protegê-los. Ele pode substituir segredos por referências a uma plataforma de gerenciamento como a Vault da HashiCorp e enviar segredos codificados para a Vault usando o Model Context Protocol (MCP).

Melhores práticas na detecção de segredos

A detecção de segredos pode aprimorar a postura de segurança de uma empresa. Pode ser mais eficaz quando incorporada às fases de desenvolvimento, implementação e manutenção do SDLC.

Aqui estão algumas melhores práticas que as equipes de desenvolvimento podem ter em mente ao implementar a detecção de segredos:

  • Defina os segredos mais importantes

  • Vá além das fontes relacionadas ao código

  • Incorpore a detecção de segredos nos pipelines de CI/CD

  • Triagem e retificação

  • Instrua as equipes de desenvolvimento e DevOps

Defina os segredos mais importantes

As empresas podem começar definindo o que constitui um segredo para elas e classificando esses segredos por importância para orientar o processo de remediação. Também devem auditar toda a cadeia de suprimentos de software para mapear a extensão da exposição de segredos.

Vá além das fontes relacionadas ao código

Os segredos podem se espalhar para além de fontes relacionadas ao código. Isso significa que a detecção também deve considerar outras possíveis fontes de exposição, como:

  • Arquivos de configuração

  • Bancos de dados

  • Documentação

  • Logs

Incorpore a detecção de segredos nos pipelines de CI/CD

As equipes de DevOps podem implementar hooks de pré-commit que tornam a verificação de segredos uma etapa obrigatória antes que os desenvolvedores confirmem o código ou iniciem pull requests, bloqueando alterações que contenham segredos embutidos no código. Também devem verificar se as ferramentas têm a capacidade de verificar continuamente artefatos, criar logs e variáveis de ambiente em busca de segredos expostos antes de chegarem aos ambientes de tempo de execução e produção.

Triagem e retificação

As empresas devem estabelecer políticas sobre como os segredos expostos são priorizados e corrigidos. As políticas de triagem podem incluir a avaliação dos riscos de segurança representados por diferentes tipos de segredos e quais equipes são responsáveis pela triagem.

As políticas de remediação devem definir claramente as ações a serem tomadas, seja revogar ou rotacionar segredos ou substituí-los por chamadas para uma plataforma de gerenciamento de segredos. Automatizar essas correções pode economizar tempo e resultar em respostas rápidas, mas as correções devem ser testadas para verificar se um segredo não pode mais ser detectado.

 
Instrua as equipes de desenvolvimento e DevOps

As organizações devem incluir a detecção de segredos como parte de um desenvolvimento ou treinamento da equipe de DevOps em programação segura. As equipes devem entender os riscos de segredos codificados diretamente no código ou expostos, o que podem fazer para limitar esses riscos e como utilizar as ferramentas necessárias para a detecção de segredos.

Autores

Rina Diane Caballar

Staff Writer

IBM Think

Cole Stryker

Staff Editor, AI Models

IBM Think

Soluções relacionadas
IBM Verify

Construa um framework de identidade seguro e independente de fornecedor que modernize o gerenciamento de acesso e identidade (IAM), integre-se às ferramentas existentes e permita o acesso híbrido contínuo sem complexidade adicional.

Explore o IBM Verify
Soluções de gerenciamento de acesso e identidade (IAM)
Proteja e unifique identidades em ambientes híbridos, reduzindo riscos e simplificando o acesso.
Conheça as soluções de IAM
Serviços de gerenciamento de acesso e identidade (IAM)

Proteja e gerencie o acesso do usuário com controles de identidade automatizados e governança baseada em risco em ambientes de nuvem híbrida.

    Explore os serviços de IAM
    Dê o próximo passo

    Aprimore o gerenciamento de acesso e identidade (IAM) com o IBM Verify para obter acesso híbrido sem dificuldades e fortalecer a proteção de identidade descobrindo riscos ocultos baseados em identidade com IA.

    1. Descubra o IBM Verify 
    2. Explore as soluções de gerenciamento de acesso e identidade