Quais são alguns dos crescentes riscos de segurança cibernética no cenário moderno de desenvolvimento de software que mantêm os CISOs ocupados?
Os desenvolvedores e as equipes de segurança enfrentam uma gama cada vez maior de ameaças, desde ataques sofisticados de código aberto e à cadeia de suprimentos controlados por fornecedores até vulnerabilidades introduzidas por código gerado por IA, como injeção imediata e segurança de código deficiente pelo GitHub Copilot. A complexidade dos aplicativos modernos, que muitas vezes dependem fortemente de componentes de código aberto (como aqueles que você encontra em npm, PyPI ou RubyGems) e implantações em contêineres, aumenta o desafio.
Dada a escala e a complexidade desses riscos, automatizar o gerenciamento de vulnerabilidades tornou-se essencial. Os processos manuais de segurança cibernética simplesmente não conseguem acompanhar o volume e a velocidade das vulnerabilidades potenciais e do desenvolvimento de software. A automação não apenas acelera a identificação e a correção de problemas de segurança, mas também garante que esses processos, seguidos rotineiramente pelas equipes de segurança, sejam aplicados de forma consistente em todos os estágios do ciclo de vida de desenvolvimento de software.
Vamos detalhar um pouco mais… Outro exemplo de ataque à cadeia de suprimentos de alto perfil é o ataque ao Codecov, onde os invasores obtiveram acesso a dados confidenciais explorando vulnerabilidades em uma ferramenta popular de cobertura de código. A rotina de um desenvolvedor inclui o gerenciamento dos riscos associados às dependências de código aberto. As dependências de código aberto podem introduzir vulnerabilidades diretas e transitivas em sua base de código. Vulnerabilidades diretas são encontradas nas bibliotecas que você inclui explicitamente, enquanto vulnerabilidades transitivas existem nas dependências dessas bibliotecas. Gerenciar esses riscos manualmente é assustador, tornando a automação um componente crítico de uma estratégia de segurança robusta.
Com GenAI, assistentes de código de IA como GitHub Copilot ou ChatGPT apresentam vulnerabilidades reais e potenciais. A GenAI pode introduzir inadvertidamente práticas de codificação inseguras ou deixar de reconhecer requisitos de segurança específicos do contexto. Por exemplo, um modelo de IA pode gerar código vulnerável a ataques de injeção de SQL ou de script entre sites (XSS). Monitorar e proteger o código gerado pela IA é, portanto, crucial para manter a segurança das aplicações.
A complexidade de acompanhar as novas vulnerabilidades de contêineres também não escapa às equipes de segurança. O ritmo acelerado de novas vulnerabilidades em contêineres pode ser esmagador. Cada nova vulnerabilidade requer identificação e correção oportunas para evitar possíveis explorações. Essa complexidade exige soluções automatizadas com experiência em segurança para gerenciar a segurança dos contêineres de maneira eficaz.
As vulnerabilidades dos contêineres podem ter um impacto significativo na segurança geral dos seus aplicativos. Uma única imagem de contêiner vulnerável pode comprometer toda a pilha de aplicativos. Ferramentas como o Snyk Container automatizam o processo de identificação e correção de vulnerabilidades em imagens de contêineres. Snyk Container pode sugerir novas tags de imagem base que minimizam contagens de vulnerabilidade e automatizam solicitações pull para atualizar seus repositórios de código.
Como podemos mitigar todas essas ameaças à segurança cibernética da AppSec?
Para mitigar os riscos associados ao código gerado por IA, considere o uso de ferramentas como o Snyk Code. Desenvolvido por Snyk DeepCode AI, esta ferramenta SAST rápida pode ser integrada diretamente ao IDE de um desenvolvedor por meio de um plugin. Ele usa treinamento de dados específico de segurança para reconhecer códigos vulneráveis e inseguros, garantindo que os problemas sejam identificados e resolvidos no início do desenvolvimento.
Começar a usar o Snyk DeepCode AI é simples. O plug-in oferece suporte a IDEs populares, como Visual Studio Code, IntelliJ IDEA, VS Code e PyCharm.
Uma vez instalado, o logotipo Snyk na barra lateral apresentará vulnerabilidades e problemas de segurança encontrados em suas dependências de código aberto, seu próprio código (ou código produzido pela GenAI) e problemas de IaC.
Vamos ver um exemplo de mitigação de vulnerabilidades introduzidas pelo GenAI. Usei o GitHub Copilot neste projeto para completar automaticamente o código que cria uma rota de endpoint Express POST para consultar a API OpenAI e, em seguida, usei res.send() para enviar a resposta ao navegador.
No entanto, e se a resposta nesta carga útil fosse renderizada diretamente no navegador? Se o cabeçalho de tipo de conteúdo texto/html padrão fosse usado para enviar essa solicitação, uma vulnerabilidade de script entre sites afetaria o aplicativo em execução. O que podemos fazer sobre isso?
Bem, como você pode ver na anotação acima da linha 31, Snyk propõe corrigir esse problema de segurança. Cliquei nele e em alguns segundos, a extensão Snyk DeepCode AI propôs uma mitigação que substituiu res.send() por res.json da seguinte forma:
res.json(response.choices[0].message.content);
Com essa alteração, o aplicativo Express força o tipo de conteúdo na resposta a ser application/json, que é um texto genérico e pode permitir texto como alert().
Ao aproveitar o Snyk em seu IDE, os desenvolvedores podem identificar e mitigar vulnerabilidades de forma proativa usando o mecanismo Snyk DeepCode AI subjacente, garantindo que seu código esteja seguro desde o início. Esta abordagem proativa à segurança de aplicações é essencial no ambiente atual, onde os riscos associados às cadeias de fornecimento de código aberto e ao código gerado pela GenAI estão sempre presentes.
Snyk Open Source é uma ferramenta poderosa projetada para ajudar desenvolvedores e equipes de segurança a gerenciar os riscos associados às dependências de código aberto. Com a crescente dependência de bibliotecas de código aberto, a necessidade de um gerenciamento de dependências robusto e automatizado nunca foi tão crítica. O Snyk Open Source oferece recursos abrangentes de verificação e correção de vulnerabilidades, garantindo que seus projetos permaneçam seguros e em conformidade.
Em meu aplicativo Node.js anterior, também uso uma dependência SQLite, que Snyk me alerta sobre um problema de segurança da seguinte forma:
Estas informações sobre vulnerabilidade são úteis para compreender qual dependência transitiva está introduzindo o risco à segurança e como mitigá-la, se possível. Nesse caso, a dependência transitiva em andamento é detectada como tendo uma vulnerabilidade média.
Snyk detecta que meu arquivo de bloqueio e dependência estão potencialmente desatualizados e, portanto, não consegue encontrar um caminho de correção. Porém, vamos ver a automação na prática quando importamos o repositório de código GitHub para o Snyk. Fazendo isso, mostra as seguintes informações no aplicativo Snyk:
Deste ponto em diante, Snyk abrirá automaticamente novas solicitações pull para sugerir atualizações de dependências quando vulnerabilidades de segurança forem detectadas no manifesto do meu pacote.
O gerenciamento de dependências não envolve apenas as bibliotecas que você inclui diretamente em seu projeto. Dependências transitivas – aquelas atraídas por suas dependências diretas – também podem introduzir vulnerabilidades. Snyk é excelente na identificação e correção de vulnerabilidades em dependências diretas e transitivas.
Considere o seguinte cenário:
{ "dependencies": { "express": "^4.17.1", "lodash": "^4.17.20" } }
Neste exemplo, express e lodash são dependências diretas. No entanto, o express pode ter seu próprio conjunto de dependências, que por sua vez podem ter suas próprias dependências. Snyk percorrerá toda essa árvore de dependências, identificando e abordando vulnerabilidades em todos os níveis.
Quando se trata de gerenciar vulnerabilidades de contêineres, o Snyk Container ajuda a eliminar o fardo de manter as tags de imagem base atualizadas com patches de segurança.
Snyk Container é uma solução abrangente projetada para ajudar desenvolvedores e equipes de segurança a gerenciar vulnerabilidades de contêineres de maneira eficaz. As cargas de trabalho de aplicativos em contêineres são predominantes nas empresas, assim como a necessidade de proteger esses ambientes. O Snyk Container integra-se perfeitamente ao seu pipeline de CI/CD, fornecendo monitoramento contínuo e correção proativa de vulnerabilidades nas imagens do seu contêiner.
Um dos recursos de destaque do Snyk Container é sua capacidade de automatizar a criação de solicitações pull para solucionar vulnerabilidades em suas imagens de contêiner. Essa automação é uma virada de jogo tanto para desenvolvedores quanto para equipes de segurança, pois reduz significativamente o esforço manual necessário para manter as imagens de contêiner seguras.
Aqui está um exemplo de como o Snyk Container pode automatizar um PR para atualizar um pacote vulnerável em um Dockerfile:
FROM node:14.1.0 RUN npm install express COPY . /app CMD ["node", "/app/index.js"]
Quando o Snyk Container detecta uma vulnerabilidade, ele gera automaticamente um PR com as alterações necessárias para mitigar o problema. Isto pode incluir a atualização de um pacote vulnerável ou a aplicação de um patch de segurança. Ao automatizar esse processo, o Snyk Container garante que as vulnerabilidades sejam abordadas prontamente, reduzindo a janela de exposição.
Seguindo essas imagens base recomendadas, você pode reduzir significativamente o número de vulnerabilidades em suas imagens de contêiner, melhorando a segurança geral de seus aplicativos.
Snyk Container identificou múltiplas vulnerabilidades nesta imagem base e gerou PRs automaticamente para atualizar a imagem e as dependências associadas. A equipe conseguiu revisar e mesclar esses PRs rapidamente, reduzindo sua contagem de vulnerabilidades em mais de 30% em segundos, mesclando a solicitação pull e garantindo que os testes do pipeline de CI/CD passassem com louvor.
Essa abordagem proativa não apenas melhorou a postura de segurança de seus aplicativos, mas também liberou um tempo valioso para os desenvolvedores se concentrarem na criação de novos recursos, em vez de no gerenciamento de vulnerabilidades.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3