O que é varredura secreta?
A verificação secreta é a prática de executar verificações automatizadas em repositórios de código, pipelines de execução, arquivos de configuração, confirmações e outras fontes de dados para evitar possíveis ameaças à segurança representadas por segredos expostos.
A verificação de segredos faz parte do escopo mais amplo do gerenciamento de segredos, que abrange os processos e ferramentas envolvidos no armazenamento e proteção de segredos de entidades não autorizadas.
The Secure Coding Best Practices [Cheat Sheet]
With curated insights and easy-to-follow code snippets, this 11-page cheat sheet simplifies complex security concepts, empowering every developer to build secure, reliable applications.
Download Cheat SheetO que são segredos?
Segredos são credenciais usadas para autenticar ou obter acesso autorizado para executar ações confidenciais nos sistemas de TI de uma empresa.
Os projetos de software geralmente dependem de componentes de terceiros: contêineres e plataformas de orquestração de contêineres, ferramentas de DevOps e CI/CD, bancos de dados, repositórios etc. Para se conectar a esses serviços de terceiros e habilitar a comunicação entre vários componentes do aplicativo, seu ambiente de software precisa de uma maneira de autenticar o serviço ou componente do aplicativo; Isso geralmente acontece na forma de um "segredo", ou seja, uma chave, senha, certificado ou token.
Como os segredos diferem dos dados confidenciais?
Ao contrário dos dados confidenciais (por exemplo, números de previdência social e informações de cartão de crédito), que normalmente pertencem aos usuários finais, os segredos pertencem às empresas. Exemplos de segredos incluem:
Senhas LDAP
Certificados PKI/TLS
Chaves de criptografia
Credenciais de contêiner
Chaves SSH
Tokens de API
Os desenvolvedores usam segredos para autenticar e estabelecer comunicação entre seus sistemas e outros serviços em nuvem ou para controlar o acesso humano e de máquina a sistemas confidenciais.
As digital authentication credentials, secrets—if exposed—can grant adversaries unauthorized access to a company’s code bases, databases, and other sensitive digital infrastructure.
Por que a varredura secreta é importante?
Como credenciais de autenticação digital, os segredos, se expostos, podem conceder aos adversários acesso não autorizado às bases de código, bancos de dados e outras infraestruturas digitais confidenciais de uma empresa.
Infelizmente, proteger segredos não é uma tarefa fácil. Embora os segredos devam ser criptografados e rigidamente controlados, eles também devem ser disponibilizados para equipes de engenharia, aplicativos e em todo o ambiente.
Consequentemente, em um ponto ou outro durante o ciclo de vida de desenvolvimento de software (SDLC), os segredos geralmente encontram seu caminho em espaços potencialmente expostos: credenciais codificadas em pipelines de integração contínua e entrega contínua (CI/CD), repositórios de código, Sistemas de controle de versão (VCS), software de segurança, ambientes de conteinerização ou canais de comunicação no local de trabalho (por exemplo, Slack, Teams).
Isso acontece porque os desenvolvedores estão focados em escrever e enviar código de qualidade em uma velocidade vertiginosa. Portanto, quando o software ainda está nos estágios de desenvolvimento e teste, eles podem considerar ideal armazenar segredos em máquinas locais para acelerar o desenvolvimento e facilitar ciclos de feedback mais rápidos.
Digite a verificação secreta. Vamos discutir os quatro principais motivos pelos quais os desenvolvedores devem implementá-lo.
Protegendo dados e segredos confidenciais
Para salvaguardar Dados confidenciais, nós o criptografamos, em trânsito e em repouso, e o armazenamos em bancos de dados. Os segredos são então usados para manter os bancos de dados, limitando o acesso apenas a humanos e máquinas autorizados.
Por exemplo, para confirmar os pares de nome de usuário/senha inseridos pelos usuários finais, seu portal de login deve estabelecer uma conexão automática com seu banco de dados. Essa conexão é autenticada com um segredo, autorizando o acesso do portal às informações confidenciais no banco de dados. Se esse segredo vazar ao longo do caminho ou acabar em um espaço não seguro, indivíduos não autorizados podem acessar, roubar, expor ou criptografar os dados para ataques de ransomware.
O Incidente de exposição de dados da Microsoft 2023 descoberto pela equipe de pesquisa da Wiz é uma demonstração perfeita da importância da varredura secreta. Em uma tentativa de publicar dados de treinamento baseados em IA no GitHub, uma equipe de pesquisa da Microsoft compartilhou acidentalmente um link que expôs 38 TB de dados privados, incluindo chaves privadas, segredos, senhas e mais de 30.000 mensagens internas do Microsoft Teams, armazenadas em uma conta de armazenamento do Microsoft Azure.
Esse incidente poderia ter sido evitado se a equipe tivesse verificado a conta em busca de segredos antes de liberar o link para o GitHub.
Frustrando ataques cibernéticos
O Equipe de pesquisa da Wiz também encontrou segredos esquecidos em vários locais negligenciados em pipelines de CI/CD, especialmente camadas base de imagem de contêiner e arquivos de histórico bash do Linux. Os invasores podem aproveitar esses segredos expostos para realizar ataques cibernéticos usando vários cenários. Os segredos esquecidos podem facilitar o movimento lateral e Execução remota de código em ataques à cadeia de suprimentos de software, capacitando hackers a modificar os códigos-fonte de uma empresa, plantar código malicioso em artefatos prontos para produção ou adulterar processos de construção de imagens.
Ao encontrar segredos esquecidos ou codificados antes de serem expostos, as ferramentas de varredura secreta ajudam a cortar várias formas de invasores cibernéticos pela raiz.
Many companies are subject to regulatory standards designed to protect end users’ sensitive personal, financial, and health-related information. As secrets guard this data, any accidental release of secrets may result in a data breach that could result in hefty noncompliance fines.
Melhorando a conformidade
Muitas empresas estão sujeitas a padrões regulatórios projetados para proteger as informações pessoais, financeiras e relacionadas à saúde confidenciais dos usuários finais. Como os segredos protegem esses dados, qualquer liberação acidental de segredos pode resultar em uma violação de dados que pode resultar em pesadas multas por não conformidade.
A verificação secreta pode ajudar a detectar e impedir que segredos sejam comprometidos.
Proteção contra danos à reputação e perdas financeiras
Violações e ataques cibernéticos causam danos significativos à reputação, impactando negativamente a receita e aumentando os custos, como multas, honorários advocatícios e acordos.
A verificação proativa e a proteção de segredos ajudarão a evitar consequências tão íngremes.
Como funciona a varredura secreta?
A varredura secreta envolve algumas etapas, executadas com ferramentas e métodos especializados. Veja como funciona.
Passo 1: Digitalização
Depois que um scanner secreto é instalado e conectado a todas as partes relevantes de sua pilha de TI, ele realiza verificações em tempo real ou em repouso de sua pilha.
As verificações em tempo real são orientadas por eventos, acionadas por solicitações pull em seu sistema de controle de versão (VCS) ou alterações de código em qualquer um dos seguintes componentes de sua pilha:
Código: Repositórios de código, arquivos de configuração
Recipientes: Imagens de contêiner e arquitetura do Kubernetes
Pilha de tecnologia DevOps: Sistemas de construção, sistemas de tickets, canais de comunicação, sistemas de gerenciamento de conhecimento, software de rastreamento de bugs, pilha de suporte, etc.
Pipelines de observabilidade: Software de observabilidade/registro em log e armazenamentos de dados
As varreduras em repouso realizam varreduras históricas dos mesmos componentes em intervalos programados.
Técnicas de varredura secreta
Como os segredos geralmente são incorporados ao código, logs, etc., identificá-los pode ser complicado. A tabela abaixo detalha quatro técnicas de varredura secreta.
If the scanner detects a potential secret, it either corresponds with the service provider or extracts metadata within your stack to identify the service that the secret pattern matches; it then detects if it is still valid.
Etapa 2: Identificando e verificando segredos
Se o verificador detectar um segredo em potencial, ele corresponderá ao provedor de serviços ou extrairá metadados em sua pilha para identificar o serviço ao qual o padrão secreto corresponde; Em seguida, ele detecta se ainda é válido.
Etapa 3: Relatórios e alertas
Se uma correspondência for confirmada, o mecanismo de varredura notificará você sobre o segredo exposto. Dependendo da abrangência das ferramentas, elas também podem fornecer recomendações para resolver o problema. Nota: Certifique-se de que apenas as partes autorizadas tenham acesso a esse relatório, pois ele conteria dados confidenciais.
Ferramentas de varredura secreta de código aberto
Abaixo, exploramos cinco ferramentas comuns de varredura secreta de código aberto.
Detectar-segredos
Detect-secrets é um projeto da Microsoft que verifica o histórico do Git do seu projeto usando heurística e regex.
Gitleaks scans repos, directories, files, and entire Git histories to detect past and present exposed secrets. It can be installed using Docker, Go, or Homebrew.
Vazamentos de gitleaks
O Gitleaks verifica repositórios, diretórios, arquivos e históricos inteiros do Git para detectar segredos expostos passados e presentes. Ele pode ser instalado usando Docker, Go ou Homebrew.
Whispers scans static structured text files such as configs, XML, JSON, and Python3 for hard-coded secrets. Unlike the others, it doesn't scan code but instead parses known data formats and extracts key-value pairs to detect secrets.
Sussurros
O Whispers verifica arquivos de texto estruturados estáticos, como configs, XML, JSON e Python3 em busca de segredos codificados. Ao contrário dos outros, não't, mas analisa formatos de dados conhecidos e extrai pares chave-valor para detectar segredos.
Git-secrets is an AWS command-line tool for scanning commits, commit messages, and “–no-ff” merges.
Segredos do Git
Git-secrets é uma ferramenta de linha de comando da AWS para verificar confirmações, mensagens de confirmação e mesclagens "–no-ff".
Git-all-secrets is an aggregation of multiple secret scanners, including TruffleHog (a regular expression-based scanner) and repo-supervisor (a high entropy-based scanner).
Segredos do Git-all
Git-all-secrets é uma agregação de vários scanners secretos, incluindo TruffleHog (um scanner baseado em expressão regular) e repo-supervisor (um scanner baseado em alta entropia).
Secret scanning can be approached in a few different ways, including open-source and commercial options. Each brings strengths that can be valuable depending on your environment and use case.
E as ferramentas proprietárias?
A varredura secreta também pode ser feita usando ferramentas proprietárias. As ferramentas de código aberto têm pouco ou nenhum custo financeiro, mas também podem não oferecer tanta cobertura quanto as ferramentas proprietárias. Por outro lado, as ferramentas proprietárias exigem vários graus de compromisso financeiro, mas normalmente têm mais recursos e ofertas.
Seja qual for a sua escolha, certifique-se de observar a técnica de digitalização que a ferramenta usa; Por exemplo, um scanner híbrido ajudará a reduzir falsos positivos e detectar mais tipos secretos. Além disso, considere a reputação do provedor e a capacidade da ferramenta de realizar monitoramento/alerta em tempo real, Resposta a incidentese priorização de riscos.
6 melhores práticas para gerenciamento de segredos
Além dos segredos de verificação, também é importante implementar as seguintes práticas recomendadas para gerenciá-los adequadamente.
1. Armazene e criptografe segredos usando um gerenciador de segredos
Evite armazenar segredos em imagens de contêiner, arquivos de configuração, código e outros locais desprotegidos para evitar a expansão de segredos. Em vez disso, use ferramentas dedicadas de gerenciamento de segredos (por exemplo, HashiCorp Vault ou AWS Secrets Manager) que criptografam segredos em repouso e em trânsito.
2. Adote a rotação de segredos (regulares) e os segredos dinâmicos
A rotação de segredos envolve a alteração periódica de segredos em intervalos pré-configurados ou o acionamento manual de uma alteração. Usar segredos dinâmicos é uma maneira de implementar a rotação de segredos; Ao contrário dos segredos estáticos, eles são de curta duração, o que significa que expiram após um período de tempo específico ou após certas condições serem atendidas.
A rotação regular de segredos limita a janela de oportunidade de um hacker, reduzindo a possibilidade de segredos comprometidos serem usados para realizar ataques cibernéticos.
3. Restringir o acesso a segredos
Crie políticas de acesso secreto que sejam consistentes em toda a sua pilha e automatize sua aplicação. Isso inclui impor o princípio do privilégio mínimo (PoLP), listas de controle de acesso (ACLs) e controle de acesso baseado em função (RBAC); Isso limitará o acesso de usuários e aplicativos a segredos, dados e infraestrutura apenas à necessidade de uso.
Se uma credencial for comprometida acidentalmente, PoLP, ACLs e RBAC podem ajudar a reduzir a superfície de ataque, limitando a capacidade de um agente de ameaça de se mover lateralmente em seu ambiente.
4. Use espaços reservados
Evite segredos de codificação, pois talvez seja necessário compartilhar código em repositórios públicos. O incidente da Microsoft discutido acima é um exemplo disso. Em vez de segredos codificados, use variáveis de ambiente para fazer referência a segredos em seu código.
5. Acompanhe o ciclo de vida dos segredos
Acompanhe os segredos atualmente em uso, revogue segredos comprometidos e registre eventos de acesso (quem está acessando o quê e quando) em um registro de auditoria abrangente.
6. Implementar a análise do caminho da ameaça
Escolha uma ferramenta de varredura secreta com Análise avançada do caminho de ataque; Isso detectará segredos, correlacioná-los com sistemas relevantes e fornecer um mapa claro de recursos e sistemas no caminho do ataque.
What is the Principle of Least Privilege (PoLP)? Use Cases, Benefits, and Implementation
Leia maisVerificando segredos com o Wiz
Código Wiz aprimora seus esforços de varredura secreta detectando credenciais expostas, chaves de API e informações confidenciais em sua base de código, garantindo que elas sejam capturadas antes de chegar aos ambientes de produção.
Como parte do Wiz's plataforma abrangente de segurança em nuvem, o Wiz Code verifica todo o seu fluxo de trabalho em busca de ameaças e vulnerabilidades usando 35+ estruturas de conformidade suportadas no Terraform, CloudFormation, Ansible, Google Deployment Manager, ARM, Kubernetes, Helm e Docker.
O Wiz se integra automaticamente aos repositórios de código para:
Analise os volumes do sistema e detecte segredos expostos, como chaves de acesso à plataforma de nuvem, certificados de domínio e chaves SSH
Verificar dados conhecidos relacionados a segredos e extrair metadados para fornecer contexto
Extraia informações de algoritmo e comprimento de bits para vincular chaves privadas SSH à configuração de chaves autorizadas
Extraia detalhes como assuntos, datas de expiração e atributos importantes para vincular um certificado ao recurso para o qual ele é usado
Forneça gráficos de segurança para rastrear possíveis caminhos de ataque
Alertar as partes interessadas quando segredos forem detectados
A Wiz implanta scanners nativos da nuvem para garantir velocidade, eficiência e digitalização abrangente - uma combinação rara.
Solicite um demo hoje para ver como Wiz pode ajudar a manter seus segredos seguros.