Conheça o monitoramento de segurança de código aberto em tempo de execução
Aner Mazur
12 de novembro de 2018
0 minutos de leituraA Snyk acaba de lançar o primeiro recurso de sua solução de monitoramento de segurança de aplicações em tempo de execução, que permite aos desenvolvedores acompanhar o comportamento real dos componentes de código aberto durante a execução!
Atualmente, a integração da Snyk com o repositório do projeto ou com o ciclo de CI permite analisar dependências de código aberto, sinalizar as vulneráveis e sugerir ações para corrigi-las. A Snyk investe muito para facilitar a correção de vulnerabilidades e incorporá-la ao fluxo de desenvolvimento, por exemplo, abrindo PRs com correções, fornecendo patches quando não é possível atualizar e muito mais.
No entanto, mesmo quando a correção é relativamente simples, muitos desenvolvedores e organizações ainda podem ter um grande acúmulo de vulnerabilidades para tratar. Toda orientação que pudermos oferecer para ajudar na priorização é útil. Acreditamos que uma etapa importante é determinar se uma dependência vulnerável está realmente sendo usada em tempo de execução de uma forma que possa ser explorada. Algumas soluções disponíveis no mercado tentam fazer isso por meio da análise estática de código. O principal problema é o alto índice de falsos positivos e negativos que elas geram (por exemplo, quando o código é chamado dinamicamente ou só é acessado com uma entrada específica etc.).
A Snyk oferece uma solução que monitora o comportamento real da aplicação em tempo de execução e mostra com precisão quando funções vulneráveis das dependências de um projeto são chamadas.
Fique tranquilo: estamos nos empenhando para garantir que o impacto no desempenho da aplicação seja mínimo e continuaremos testando. No momento, nossa solução de monitoramento em tempo de execução está disponível em uma versão beta fechada para acesso antecipado. Se quiser experimentar, envie um e-mail para runtime@snyk.io!
Priorize vulnerabilidades com base nos dados de chamadas em tempo de execução
Depois que o agente estiver instalado corretamente e instrumentando as instâncias em execução da aplicação monitorada, um indicador no cartão de detalhes do problema mostrará se funções vulneráveis foram chamadas recentemente em uma instância monitorada. As vulnerabilidades serão ordenadas primeiro conforme tenham sido chamadas ou não em tempo de execução e, em seguida, pelo nível de severidade. Também serão exibidos os nomes e caminhos de todas as funções vulneráveis. Isso facilita a triagem, ajudando você a entender que parte da aplicação as utiliza. Também mostraremos há quanto tempo uma das funções vulneráveis foi chamada pela última vez.

Como pode haver várias instâncias da aplicação em execução e sendo monitoradas, você poderá ver o número de instâncias monitoradas no canto inferior direito dos metadados do projeto.

Primeiros passos com Node.js
Para começar a monitorar suas aplicações Node.js, adicione a dependência @snyk/nodejs-runtime-agent ao projeto executando npm install @snyk/nodejs-runtime-agent na pasta do projeto e configure-a o quanto antes na sequência de inicialização da aplicação. Veja um exemplo de fluxo:
No trecho acima, a dependência @snyk/nodejs-runtime-agent é carregada antes de qualquer outra instrução require. Assim, o agente pode inspecionar todas as dependências carregadas e criar um hook de execução que o avisa quando a aplicação chama funções vulneráveis.
O agente é configurado com o ID de um projeto monitorado em snyk.io. Você pode obter o ID do projeto pela API ou consultando a página de configurações do projeto em snyk.io.
Para saber mais, consulte nossa documentação sobre como instalar a proteção em tempo de execução.
Primeiros passos com Java
Para começar a monitorar suas aplicações Java, baixe nosso agente de monitoramento em tempo de execução para Java (.ZIP) e descompacte o arquivo.
Copie
snyk-java-runtime-agent.jarpara o mesmo diretório da aplicação.Crie um arquivo
snyk-agent.propertiesno local do arquivo JAR do agente, contendo o ID do projeto Snyk, desta forma:projectId=0462e42b-c92f-4b48-bac8-81eb3ff7f43e.Adicione o agente como argumento de linha de comando ao comando Java usado para iniciar a aplicação. Por exemplo:
java -javaagent:path/to/snyk-java-runtime-agent.jar -jar my-app.jar.- Se você usa o Apache Maven, adicione-javaagent:path/to/snyk-java-runtime-agent.jarà variável de ambienteMAVEN_OPTS.
- Se você usa contêineres JavaEE, como o GlassFish, localize as opções deJVM Optionse adicione-javaagent:path/to/snyk-java-runtime-agent.jarcomo uma opção.
Em breve
Planejamos encerrar a beta fechada e lançar nossa solução de monitoramento em tempo de execução nas próximas semanas, depois de receber seus comentários.
E agora? Monitorar o comportamento malicioso de componentes de código aberto em tempo de execução e conectar esses dados aos resultados da análise do código-fonte permite que os desenvolvedores cuidem da segurança de código aberto durante todo o ciclo de vida da aplicação, tanto para vulnerabilidades conhecidas quanto desconhecidas. A instrumentação da aplicação em tempo de execução abre caminho para muitos outros recursos além da priorização de vulnerabilidades baseada em execução, lançada hoje. Esses recursos estarão disponíveis nos próximos meses. Fique de olho!
Comece a resolver desafios de capture the flag
Aprenda a resolver desafios de capture the flag assistindo sob demanda ao nosso workshop virtual introdutório.
