A natureza cada vez mais complexa do ambiente moderno de desenvolvimento de software deu origem, nos últimos anos, ao problema crescente de programadores deixarem segredos expostos em repositórios de código, tornando-os fáceis de capturar para os cibercriminosos.
O GitGuardian vem rastreando o problema há vários anos, colocando em detalhes gritantes o número crescente de segredos expostos encontrados no GitHub a cada ano em seus relatórios anuais State of Secret Sprawl. O último relatório, lançado este ano, mostrou que a empresa detectou quase 12,8 milhões de novos segredos em commits do GitHub em 2023, quase 3 milhões a mais do que no ano anterior.
Em 2020, no primeiro ano dos relatórios, o número foi de 3 milhões. Em 2023, 8 milhões dos 1,1 bilhão de commits escaneados pelo GitGuardian expuseram pelo menos um segredo.
Pesquisadores da Aqua Security aumentaram a preocupação crescente na semana passada, dizendo que encontraram alguns segredos — tokens de API, credenciais e chaves de acesso — que foram expostos por anos. Eles também descobriram que codificar um segredo em código apenas uma vez pode expô-lo permanentemente, mesmo depois de supostamente ser removido.
Ainda mais preocupante: a maioria dos métodos de varredura não detecta esses “segredos fantasmas”, com os pesquisadores descobrindo que quase 18% dos segredos nos repositórios Git podem ser ignorados.
“Descobrimos segredos importantes, incluindo credenciais para ambientes de nuvem, infraestruturas internas e plataformas de telemetria, expostos na Internet”, escreveram Yakir Kadkoda e Ilay Goldman, pesquisadores da unidade de segurança da Aqua, Aqua Nautilus, em um relatório. “Por meio de uma variedade de processos baseados em Git cujo impacto não é bem compreendido pelos desenvolvedores e profissionais de AppSec, e pelo comportamento das plataformas de gerenciamento de código-fonte (SCM), os segredos permanecem expostos mesmo depois de serem considerados removidos.”
Desenvolvedores e seus segredos
Os desenvolvedores por anos têm codificado segredos em software para configuração mais rápida e outros propósitos legítimos. A ascensão da computação em nuvem e a natureza cada vez mais complexa e descentralizada da programação hoje, com código de código aberto e de terceiros e reutilização de código se tornando a norma, tornaram a programação mais rápida, mas também a expuseram a crescentes ameaças cibernéticas e riscos da cadeia de suprimentos.
Uma miríade de fornecedores de segurança soaram o alarme sobre a exposição de segredos, com Kadkoda e Goldman escrevendo que há anos “têm educado os desenvolvedores a não codificar segredos em seu código”. Além disso, espera-se que o mercado global de software de gestão de segredos cresça rapidamente, com uma previsão a exigir que salte de 67 mil milhões de dólares no ano passado para 104,6 mil milhões de dólares em 2031.
O problema com segredos fantasmas se deve em grande parte à maneira como os sistemas SCM, como GitHub, Bitbucket e GitLab, salvam commits de código excluídos ou atualizados em suas infraestruturas baseadas em Git, de acordo com a equipe do Aqua Nautilus. Isso pode significar que até mesmo um único segredo usado no código ou um segredo que se acredita ter sido excluído pode permanecer exposto.
Para o relatório, os pesquisadores da Aqua analisaram as 100 principais organizações no GitHub, o que incluía mais de 52.000 repositórios disponíveis publicamente.
“Durante nossa pesquisa, descobrimos alguns segredos significativos, incluindo obter acesso aos ambientes de nuvem completos de algumas das maiores organizações do mundo, infiltrar a infraestrutura interna de fuzzing de projetos sensíveis, acessar plataformas de telemetria e até mesmo obter acesso a dispositivos de rede, segredos do Simple Network Management Protocol (SNMP) e filmagens de câmeras de empresas da Fortune 500”, escreveram Kadkoda e Goldman. “Essas descobertas podem levar a ataques significativos às organizações impactadas.”
Mozilla e Cisco como contos de advertência
Em um caso, os pesquisadores descobriram um token de API para o FuzzManager da Mozilla, uma ferramenta interna usada para coletar e analisar dados de fuzzing para encontrar vulnerabilidades de segurança. O token deu a eles acesso aos dados de fuzzing internos da Mozilla, que geralmente são mantidos em segredo para que atores mal-intencionados não possam explorar bugs não corrigidos. Em outro, eles encontraram tokens de API privilegiados para o Meraki Dashboard da Cisco, que permite que as organizações gerenciem suas redes. Os invasores que encontrarem esses tokens podem assumir o controle dos recursos da rede e acessar informações confidenciais, incluindo segredos SNMP e filmagens de câmeras.
Em outro caso, eles encontraram um token principal de serviço do Azure de uma grande empresa de assistência médica em um commit do Git. O token deu ao detentor alto acesso aos recursos do Microsoft Azure da empresa, incluindo seu Azure Kubernetes Service interno e o Azure Container Registry. Um ator malicioso com o token poderia assumir o controle dos clusters Kubernetes da empresa.
Todas as organizações com segredos expostos foram notificadas e os segredos revogados.
Ainda assim, o problema dos segredos fantasmas permanece. Aqua escaneou os repositórios usando duas ferramentas – git clone e git clone –mirror – em versões espelhadas dos repositórios e descobriu que eles perderam quase 18% dos segredos. O problema é que os commits permanecem acessíveis através de “visualizações de cache” no SCM, então qualquer segredo removido das versões clonadas e espelhadas de um repositório ainda pode estar disponível para qualquer pessoa que conheça o hash do commit.
Chegando às visualizações em cache
Os pesquisadores descreveram quatro estratégias para recuperar commits de visualização em cache, desde hashes de commit de força bruta e uso de endpoints da API REST até olhar para a GUI de solicitações pull e usar um conjunto de dados históricos do GitHub.
As organizações terão de resolver o problema dos segredos fantasmas se quiserem conter os riscos cibernéticos para os desenvolvedores, de acordo com especialistas em segurança cibernética.
“Esta questão é essencial, pois aponta para uma falha fundamental na forma como os segredos são gerenciados em sistemas baseados em Git, que pode impactar inúmeras organizações”, disse Eric Schwake, diretor de estratégia de segurança cibernética da Salt Security, ao The New Stack. “A exposição a segredos como tokens e credenciais de API pode levar a consequências graves, como acesso não autorizado, violações de dados e perdas financeiras. A natureza persistente dos “segredos fantasmas”, mesmo após a eliminação ou actualização, agrava o problema, representando um risco a longo prazo. Como as APIs são a base dos aplicativos modernos, elas estão se tornando cada vez mais um alvo para os invasores.”
Sarah Jones, analista de pesquisa de inteligência sobre ameaças cibernéticas da Critical Start, disse que uma abordagem em várias camadas para mitigar esses riscos será importante para as organizações.
“Desenvolvedores exigem treinamento abrangente sobre práticas de codificação seguras, gerenciamento de segredos adequado usando ferramentas dedicadas e a criticidade de prevenir vazamentos acidentais”, Jones disse ao The New Stack. “Ferramentas de varredura automatizadas podem identificar segredos antes que eles sejam enviados para repositórios públicos, com processos de revisão de código adicionando uma camada adicional de segurança. Além disso, as organizações devem implementar soluções dedicadas de gerenciamento de segredos para garantir armazenamento seguro e controle de acesso granular.”
Atores maliciosos adoram desenvolvedores
Tanto Schwake quanto Jones disseram que os desenvolvedores continuarão a ser um alvo atraente para os atores de ameaças devido ao seu acesso a informações e sistemas confidenciais e à superfície de ataque expandida devido ao uso crescente de código-fonte aberto e desenvolvimento nativo da nuvem. Além disso, à medida que a prática de DevSecOps for integrada ao ciclo de vida de desenvolvimento, os invasores continuarão a mudar seu foco para a exploração de vulnerabilidades no próprio processo de desenvolvimento, de acordo com Schwake.
“No entanto, a situação está melhorando gradualmente”, disse ele. “À medida que as violações de segurança se tornam mais frequentes e seu impacto mais severo, os desenvolvedores estão começando a reconhecer a importância da segurança. As organizações devem investir em programas de treinamento de segurança e integrar ferramentas de segurança em fluxos de trabalho de desenvolvimento. Adotar práticas DevSecOps também promove uma cultura de responsabilidade compartilhada pela segurança, encorajando os desenvolvedores a assumir a responsabilidade pela segurança em seu trabalho.”
Ele acrescentou que “também estamos vendo uma importância crescente na governança da postura em todo o ciclo de vida de desenvolvimento da API para tentar prevenir problemas de segurança o mais rápido possível”.
YOUTUBE.COM/THENEWSTACK
A tecnologia se move rápido, não perca um episódio. Inscreva-se em nosso canal do YouTube para transmitir todos os nossos podcasts, entrevistas, demos e muito mais.
SE INSCREVER
Jeffrey Burt é jornalista há mais de três décadas, sendo que os últimos mais de 20 anos cobrem tecnologia. Durante mais de 16 anos na eWEEK e desde então como jornalista freelance de tecnologia, ele cobriu tudo, desde dados…
Este site utiliza cookies para melhorar sua experiência de navegação. Ao continuar, você concorda com o uso de cookies. Para mais informações, consulte nossa Política de Privacidade.
Funcional
Sempre ativo
O armazenamento ou acesso técnico é estritamente necessário para a finalidade legítima de permitir a utilização de um serviço específico explicitamente solicitado pelo assinante ou utilizador, ou com a finalidade exclusiva de efetuar a transmissão de uma comunicação através de uma rede de comunicações eletrónicas.
Preferências
O armazenamento ou acesso técnico é necessário para o propósito legítimo de armazenar preferências que não são solicitadas pelo assinante ou usuário.
Estatísticas
O armazenamento ou acesso técnico que é usado exclusivamente para fins estatísticos.O armazenamento técnico ou acesso que é usado exclusivamente para fins estatísticos anônimos. Sem uma intimação, conformidade voluntária por parte de seu provedor de serviços de Internet ou registros adicionais de terceiros, as informações armazenadas ou recuperadas apenas para esse fim geralmente não podem ser usadas para identificá-lo.
Marketing
O armazenamento ou acesso técnico é necessário para criar perfis de usuário para enviar publicidade ou para rastrear o usuário em um site ou em vários sites para fins de marketing semelhantes.