A codificação de segredos da empresa em seu código é um risco de segurança sério e evitável.
Traduzido de Como evitar que segredos se insinuem no código , autor Robert Curlee.
As informações confidenciais geralmente aparecem em códigos publicados, expondo os proprietários a riscos de segurança. Essas informações confidenciais incluem senhas, chaves de API, chaves de criptografia, tokens, credenciais de banco de dados e outras informações privadas da empresa.
A codificação de informações confidenciais no código-fonte é perigosa e, apesar dos esforços mais cuidadosos do desenvolvedor, informações confidenciais ainda podem infiltrar-se. Os desenvolvedores podem usar atalhos e passar informações confidenciais para o código ao escrevê-lo ou podem não perceber o impacto das informações confidenciais no código. Além disso, a maioria das soluções de verificação deixa para o desenvolvedor determinar por que o código foi sinalizado como um problema. Por fim, a maioria das ferramentas só procura segredos no repositório de código após a ocorrência de um vazamento, o que requer uma correção dolorosa (ou seja, rotação de segredos).
Devido às limitações de tempo, a gestão, o armazenamento e a proteção adequados de informações confidenciais podem ser complicados, mal compreendidos ou simplesmente ignorados. Além disso, se as empresas não souberem quando e onde as informações confidenciais entram em um projeto, elas não poderão evitar que elas vazem à medida que o projeto é divulgado e comprometam sua segurança.
Credenciais e outras informações confidenciais infiltradas regularmente em códigos chegam às manchetes — e o número de exposições está aumentando devido a erro humano . Ferramentas que capturam informações confidenciais no IDE e em todo o pipeline de CI/CD — antes que tenham a chance de causar problemas — são revolucionárias.
Saiba como as informações confidenciais chegam ao código
Ser capaz de detectar informações confidenciais antes que elas vazem no código permite que as organizações reduzam sua exposição ao risco. Ao detectá-los no IDE, você evita o incômodo de alternar segredos para remediá-los. Mas primeiro você precisa entender como as informações confidenciais vão parar no seu código. Existem vários motivos:
1. Falta de conhecimento
Possivelmente devido à falta de experiência ou treinamento inadequado, alguns desenvolvedores podem simplesmente não compreender o gerenciamento adequado de informações confidenciais e a segurança do código-fonte. Basta apenas um desenvolvedor que não conheça as melhores práticas para lidar com informações confidenciais em código para colocar uma empresa nas mãos de agentes de ameaças. Se conhecimento é poder, então a melhor linha de defesa é uma equipe experiente.
2. Por engano
Um desenvolvedor pode codificar temporariamente credenciais ou segredos para testes locais rápidos com a intenção de removê-los posteriormente. No entanto, às vezes esses arquivos são acidentalmente confirmados no repositório público, tornando essas alterações temporárias permanentes. Mesmo que o código seja excluído posteriormente, alguém pode ter copiado o código contendo informações confidenciais antes de limpá-lo. É humano cometer erros, mas quando as consequências podem ser enormes, é melhor evitá-las proativamente sempre que possível.
3. Confiança cega
Resolver problemas sozinho é uma ótima maneira de aprender, e às vezes os problemas são tão específicos que a única maneira de resolvê-los é fazendo você mesmo. Se levar muito tempo e você não conseguir encontrar uma solução, é melhor procurar ajuda na documentação do produto e em sites como Stack Overflow. No entanto, embora estes materiais forneçam explicações e exemplos úteis, não devem ser simplesmente copiados e colados e tomados pelo seu valor nominal.
O código no Stack Overflow e a documentação podem responder à pergunta, mas não é a maneira mais segura de implementar uma solução. Por exemplo, a documentação geralmente contém trechos de código para ilustrar os recursos do produto, mas pode não mencionar se deve ser usado com cautela e se existem opções mais seguras. resultado? Código ruim . Qualquer solução introduzida em sua base de código deve ser avaliada adequadamente para confirmar se atende aos padrões de qualidade e não causa problemas ao código.
Outra questão de confiança que leva à fuga de informações confidenciais para o código é o aumento da utilização de código gerado por IA . À medida que a IA generativa se torna mais popular no desenvolvimento de código, você verá um aumento no número de linhas de código que precisam ser digitalizadas e no número de problemas com informações confidenciais. O código gerado pela IA pode levar você a pensar que a maneira correta de se conectar ao serviço é codificar um token ou segredo. Dependendo da qualidade das dicas e do conhecimento do problema, a IA pode não gerar código limpo e levar ao vazamento de informações confidenciais. O código gerado pela IA pode servir de base para entender como se conectar ao serviço, mas você deve modificá-lo para usar o Cofre de Informações Confidenciais.
Em última análise, você deve desafiar qualquer código que encontrar ou gerar usando IA. As organizações devem garantir que suas equipes de desenvolvedores tenham as ferramentas de qualidade de código adequadas para evitar que informações confidenciais penetrem no código e resolver quaisquer vazamentos no estágio mais inicial possível de desenvolvimento do código.
Capture informações confidenciais desde o início
Quando informações publicamente confidenciais são sinalizadas no ponto de introdução, seja em tempo real durante a codificação ou logo antes de um commit, isso pode poupar muitas dores de cabeça à equipe. Erros humanos acontecem, mas ao fazer as verificações certas no momento certo, você pode evitar as consequências dos erros desde o início.
O melhor lugar para detectar e resolver esses problemas no fluxo de trabalho de desenvolvimento é no início, no IDE. Os recursos de detecção de informações confidenciais no SonarLint, SonarQube e SonarCloud permitem que as organizações detectem informações confidenciais disponíveis publicamente no código-fonte, eliminem sua exposição e reduzam o risco de segurança de acesso ilegal ou não autorizado a dados privados. Os desenvolvedores que usam o SonarQube Enterprise Edition 10.3 e posterior também podem criar regras personalizadas de detecção de padrões de segredos . Combiná-los com os métodos Clean as You Code (CaYC) e Learn as You Code oferece suporte à entrega de código limpo – código que produz software sustentável, confiável e seguro.
Ao eliminar informações confidenciais do código no IDE desde o início do desenvolvimento, as equipes podem impedir que informações confidenciais entrem em seus repositórios. Detectar e remover informações confidenciais no início do desenvolvimento do projeto reduz a correção complexa e cara necessária quando as informações confidenciais expostas são descobertas posteriormente no ciclo de lançamento.
Decidi desistir do software industrial de código aberto . Grandes eventos - OGG 1.0 foi lançado, a Huawei contribuiu com todo o código-fonte do Ubuntu 24.04 LTS foi oficialmente demitido . ". O Fedora Linux 40 foi lançado oficialmente. Uma conhecida empresa de jogos lançou novos regulamentos: os presentes de casamento dos funcionários não devem exceder 100.000 yuans. A China Unicom lança a primeira versão chinesa Llama3 8B do mundo do modelo de código aberto. Pinduoduo é condenado a compensar 5 milhões de yuans por concorrência desleal Método de entrada na nuvem doméstica - apenas a Huawei não tem problemas de segurança de upload de dados na nuvem.Este artigo foi publicado pela primeira vez em Yunyunzhongsheng ( https://yylives.cc/ ), todos são bem-vindos para visitar.