Aikido

Guia DIY: ‘Build vs buy’ seu kit de ferramentas de varredura de código OSS e segurança de aplicativos

Joel HansJoel Hans
|
#
#
#

Você confia em suas habilidades de desenvolvimento — confiante o suficiente para saber que os aplicativos que você construiu não estão completamente livres de falhas de segurança e configuração. Você também pesquisou o vasto ecossistema de ferramentas de varredura disponíveis e talvez tenha ficado sobrecarregado pela enorme quantidade de opções. Qual é o "portfólio" certo de ferramentas de segurança de aplicativos de código aberto para identificar vulnerabilidades em suas dependências, configurações de Infrastructure as Code (IaC), Containers e muito mais?

Para colocá-lo no caminho certo, abordaremos 10 categorias essenciais de escaneamento de código e ferramentas de segurança, e recomendaremos 9 projetos OSS, com apenas as informações essenciais que você precisa para começar:

  • Como essa varredura ajuda a segurança do seu aplicativo.
  • Qual projeto open-source você pode instalar e como executá-lo.
  • Algumas alternativas (quando disponíveis) que você pode escolher.

Com isso, você terá um caminho direto e sem rodeios para escanear seus aplicativos em busca de problemas críticos de segurança em código e configurações de Cloud. O que não amar?

Bem, a parte de configuração e gerenciamento não é só flores — mas chegaremos a isso mais tarde.

O que você precisará

Basta trazer sua estação de trabalho local, seja um desktop ou laptop—não importa se você está usando macOS, Windows ou Linux.

Um ambiente de desenvolvimento é opcional, mas recomendado. Para executar este conjunto de ferramentas de varredura open-source, você precisará instalar muitos softwares que talvez não queira em seu sistema operacional base, exigindo atualizações maiores, poluindo seu autocompletar e prendendo você a ferramentas específicas que podem não funcionar em todos os seus projetos. Um ambiente de desenvolvimento containeriza e isola, em certa medida, todas as suas ferramentas específicas de desenvolvimento do restante do seu sistema operacional.

Felizmente, você tem algumas ótimas ferramentas de código aberto para escolher:

  1. Com Docker, você pode iniciar um novo Container básico chamado devenv-01 assim: docker run --name devenv-01 -it ubuntu:24.04 sh
  2. Com Daytona, que vem com muitos recursos inclusos para fluxos de trabalho de desenvolvimento: daytona create --code
  3. Ou com Distrobox, que incorpora qualquer distribuição Linux dentro do seu terminal, permitindo que você instale software

A grande vantagem de um ambiente de desenvolvedor é que, uma vez que você termina com uma determinada “stack”, pode excluir o Container com segurança sem impactar sua estação de trabalho.

#1: Gerenciamento da postura de segurança na Cloud (CSPM)

Como o CSPM ajuda na segurança de aplicações?

O CSPM ajuda a aprimorar a segurança e a conformidade dos seus ambientes de Cloud. Ao monitorar continuamente suas aplicações e seus serviços upstream em relação às melhores práticas da indústria e às suas políticas internas, as ferramentas de CSPM avaliam problemas, os priorizam com base em sua criticidade e oferecem recomendações para remediação. Com o CSPM, você assume mais responsabilidade pelas linhas de base e guardrails que impedem você ou outros de promover aplicações vulneráveis para produção, ao mesmo tempo em que elimina configurações incorretas e funções de usuário excessivamente permissivas.

Instale e execute seu projeto OSS CSPM: CloudSploit

Para instalar CloudSploit, você precisará primeiro de Node.js para baixar suas dependências e executar o motor.

git clone https://github.com/aquasecurity/cloudsploit.git
cd cloudsploit
npm install

Em seguida, você precisa configurar o CloudSploit com permissões de leitura para sua conta Cloud, com suporte para AWS, Azure, GCP, e Oracle. Siga as instruções do seu provedor de Cloud, usando o repo’s config_example.js arquivo como seu template, para criar um config.js arquivo com todos os detalhes de que você precisará para executar seu primeiro diagnóstico completo e obter resultados em JSON.

./index.js --collection=file.json config.js

#2: análise de composição de software (SCA) de dependências de código aberto

Como o SCA ajuda na segurança de aplicações?

Suas aplicações inevitavelmente possuem uma grande árvore de dependências de código aberto nas quais você agora confia, desde seu framework de UI até bibliotecas auxiliares que você usa em uma única LOC, como um validador para endereços de e-mail. O SCA é como uma verificação de antecedentes da família estendida do seu código, identificando vulnerabilidades de segurança e problemas de licenciamento não apenas uma vez, mas continuamente. Como suas ferramentas de SCA o notificam sobre novas vulnerabilidades e remediações, você terá confiança de que sua cadeia de suprimentos de código aberto continua sendo uma ajuda, e não um obstáculo, para a produtividade.

Instale e execute seus projetos OSS SCA: Syft + Grype

Para SCA executado localmente, você precisará do Syft para criar uma lista de materiais de software (SBOM) e do Grype para analisar essa SBOM em busca de vulnerabilidades conhecidas. Como a mesma equipe desenvolve Syft e Grype, eles suportam muitos métodos de instalação, mas recomendam seus respectivos comandos de uma linha:

curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin

Com o Syft instalado em sua estação de trabalho local, você pode criar uma SBOM para seu Container, substituindo <YOUR-IMAGE> por uma imagem em um registro de Container configurado ou um diretório local.

syft <YOUR-IMAGE> -o syft-json=sbom.syft.json

Você terá um sbom.syft.json no seu diretório de trabalho, que você pode então alimentar no Grype.

grype sbom:path/to/syft.json -o json

O Grype então imprime um resumo de vulnerabilidades no formato abaixo, incluindo detalhes de severidade e informações sobre correções conhecidas, que você pode usar para guiar seu processo de priorização e remediação.

{
"vulnerability": {
   ...
 },
"relatedVulnerabilities": [
   ...
 ],
"matchDetails": [
   ...
 ],
"artifact": {
   ...
 }
}

Alternativas e ressalvas

O Trivy é uma alternativa OSS sólida para SCA — ele não oferecerá paridade de recursos 1:1 em todos os aspectos, mas será mais do que suficiente para você começar.

#3: detecção de segredos

Como a detecção de segredos ajuda na segurança de aplicações?

Uma ferramenta de detecção de Secrets escaneia seu código e configurações em busca de credenciais que você não deseja expor publicamente. Esses Secrets podem incluir chaves de API, tokens de acesso a provedores terceirizados, senhas para bancos de dados upstream, certificados, chaves de criptografia e muito mais. Uma vez que são enviados para um repositório público, você terá que passar por um processo doloroso para removê-los do seu histórico Git — é melhor detectá-los cedo e agir antes de fazer o commit.

Instale e execute seu projeto OSS de detecção de segredos: Gitleaks

Gitleaks verifica seus repositórios pela presença de Secrets hardcoded, passados ou presentes, analisando logs do Git. Seu detectar comportamento identifica Secrets que já foram commitados, enquanto o proteger o comportamento verifica as alterações não commitadas para evitar que você cometa erros desde o início.

Para controle máximo, recomendamos instalar o Gitleaks a partir do código-fonte.

git clone https://github.com/gitleaks/gitleaks.git
cd gitleaks
make build

Na primeira vez que você executa o Gitleaks, você pode criar um relatório de linha de base para obter resultados apenas para novas exposições de Secrets.

gitleaks detect --report-path gitleaks-report.json

Com invocações subsequentes, você deve referenciar seu gitleaks-report.json arquivo para escanear logs do Git apenas para Secrets adicionados desde que você criou seu relatório de linha de base.

gitleaks detect --baseline-path gitleaks-report.json --report-path findings.json

Seu findings.json arquivo conterá detalhes sobre o hash do commit e o autor de cada vazamento potencial, ajudando você a focar nas correções.

Alternativas e ressalvas

Infelizmente, não há muitas opções além do Gitleaks. Outros projetos open-source de detecção de Secrets estão há anos sem um commit — o que não inspira exatamente confiança para proteger os aplicativos em que você está trabalhando hoje. Se você é um provedor de serviços, pode se registrar no programa de parceiros de varredura de Secrets do GitHub, que identifica quando seus usuários acidentalmente commitam seus formatos de token de Secrets em um de seus repositórios.

#4: Testes de segurança de aplicações estáticas (SAST)

Como o SAST ajuda?

SAST é o pente fino das ferramentas de segurança de aplicativos, analisando seu código-fonte linha por linha para verificar sintaxe, estrutura ou lógica falhas que poderiam deixar seu aplicativo vulnerável. Pense em ataques de injeção SQL, oportunidades de cross-site scripting (XSS), estouros de buffer e muito mais. Ao verificar contra bancos de dados populares de CVEs conhecidos, uma ferramenta SAST robusta lhe dará confiança de que você não está deixando grandes falhas de segurança expostas — e algumas até oferecem sugestões de correção automática para remediação rápida.

Instale e execute seu projeto SAST OSS: Semgrep

Semgrep escaneia seu código, encontra bugs e impõe padrões de código estabelecidos a cada invocação, com suporte para mais de 30 linguagens. Para simplificar, estamos focados no Semgrep CLI, que é apenas uma parte de um complexo ecossistema de produtos.

A maneira mais universal de instalar o Semgrep CLI é com Python/pip.

python3 -m pip install semgrep

Execute sua primeira varredura para criar um relatório de falhas e vulnerabilidades em nível de código como um arquivo JSON.

semgrep scan --json --json-output=semgrep.json

Alternativas e ressalvas

O mundo do SAST está repleto de oportunidades — se o Semgrep não funcionar para você, confira algumas alternativas específicas de linguagem como Bandit (Python), Gosec (Go) ou Brakeman (Ruby on Rails) para começar.

#5: Testes Dinâmicos de Segurança de Aplicações (ou Testes de Segurança em Tempo de Execução) (DAST)

Como o DAST ajuda na segurança de aplicativos?

Ao contrário do SAST, o DAST simula vulnerabilidades comumente exploradas contra seu aplicativo em um ambiente real. É menos sobre a sintaxe e estrutura do código que você escreveu e muito mais sobre replicar as abordagens que um invasor pode usar contra sua implantação em produção. As ferramentas DAST verificarão CVEs conhecidos em frameworks e bibliotecas que você usa e testarão se usuários logados podem acessar dados sensíveis devido a permissões quebradas ou “combinações tóxicas” de múltiplas vulnerabilidades que expõem seu aplicativo a consequências muito piores.

Instale e execute seu projeto DAST OSS: Nuclei

Nuclei é um scanner de vulnerabilidades impulsionado pela comunidade que usa templates para enviar requisições à aplicação que você deseja proteger, rodando em um ambiente local. Você pode escrever templates personalizados usando YAML, mas a comunidade Nuclei também possui uma extensa biblioteca de templates pré-configurados para testar sua aplicação.

Você precisa de Go em sua estação de trabalho local para instalar o Nuclei.

go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

A partir daí, a maneira mais simples de executar o Nuclei é especificando um único alvo—seu aplicativo rodando localmente em um ambiente de desenvolvimento—e aproveitando a biblioteca de templates, que o Nuclei ativa por padrão.

nuclei -u localhost:5678 -je nuclei-report.json

Alternativas e ressalvas

O Zed Attack Proxy (ZAP) é um scanner fantástico ativamente mantido por uma equipe global de especialistas em segurança e desenvolvedores. No entanto, ao contrário de outros nesta lista, o ZAP é um aplicativo gráfico por padrão. Existem opções para usar seu terminal, mas elas não são exatamente as mais amigáveis para desenvolvedores em comparação com outros processos que você seguiu até agora.

#6: Scan de Infrastructure as Code (IaC)

Como a varredura IaC ajuda na segurança de aplicativos?

Seu código é apenas metade da equação para chegar à produção – hoje, a maioria das equipes usa ferramentas IaC como Terraform, CloudFormation e Helm charts “base” do Kubernetes para provisionar serviços de Cloud de forma declarativa, versionada e repetível. Scanners IaC identificam vulnerabilidades nesses blueprints JSON ou YAML para evitar que você implante um estado inseguro em produção.

Instale e execute seu projeto OSS de varredura IaC: Checkov

O Checkov escaneia muitos tipos de código IaC — configurações Terraform, Helm charts, Dockerfiles e muito mais — em busca de configurações incorretas comuns e potenciais vulnerabilidades de segurança. Com mais de 1.000 verificações de política integradas para AWS, GCP e Azure, a ferramenta rapidamente ajuda você a entender os riscos e oportunidades atuais de suas implantações na Cloud em poucos minutos.

A equipe recomenda instalar o Checkov localmente via gerenciador de pacotes do Python.

python -m pip install checkov

Você pode então executar o Checkov contra seu diretório de trabalho (ou outro diretório onde você armazenou arquivos IaC) e obter um arquivo JSON como sua saída.

checkov --directory . -o json

#7: Varredura de imagens de contêiner

Como a varredura de imagens de contêiner ajuda na segurança de aplicativos?

Nós amamos Containers porque eles abstraem muita complexidade, mas sempre que você constrói uma imagem de contêiner, ela pode herdar vulnerabilidades de sua imagem base ou dependências de pacote. Scanners de imagens de contêiner descobrem vulnerabilidades em suas imagens base e Dockerfiles, por mais profunda que seja a árvore de dependências, para evitar que você implante um aplicativo explorável sem saber.

Um modelo de imagem de meme com um homem mais velho e um menino sentados em um banco. Painel um: “Funciona na minha máquina.” Painel dois: “Então enviaremos sua máquina.” Painel três: “E foi assim que o Docker nasceu.”

E é assim também que as vulnerabilidades de imagens de contêiner nasceram.

Instale e execute seu projeto OSS de varredura de imagens de contêiner: Trivy

Trivy é um scanner de segurança versátil capaz de analisar suas imagens de contêiner em busca de vulnerabilidades conhecidas com CVEs, problemas de IaC e más configurações, a presença de Secrets e muito mais. A equipe da Aqua Security, responsável pelo projeto de código aberto Trivy, mantém um banco de dados público de informações de vulnerabilidade, coletadas de mais de uma dúzia de fontes de dados.

Em sintonia com os outros mecanismos de instalação recomendados até agora, sugerimos usar o script do Trivy para instalar diretamente da última release do GitHub.

curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.51.1

Por padrão, o Trivy verifica imagens de contêiner em busca de vulnerabilidades, más configurações e Secrets em qualquer imagem de contêiner que você especificar, com resultados em formato JSON padrão.

trivy image --format json --output trivy-result.json <YOUR-IMAGE>

Alternativas e ressalvas

Se você tem acompanhado, já tem o Grype instalado em sua workstation local da seção anterior sobre SCA, e ele funciona muito bem para varrer imagens de contêiner com um SBOM criado pelo Syft. Se você está na AWS, este é outro lugar onde o Amazon Inspector pode ser útil, matando dois coelhos com uma cajadada só.

Amazon Inspector também é uma opção, mas com duas grandes ressalvas — primeiro, ele só funciona com implantações AWS, e segundo, não é um software open source como o restante de nossas recomendações, o que significa que ele vem com novos custos mensais.

#8: Análise de licenças open-source

Como o scanning de licenças de código aberto ajuda na segurança de aplicações?

A legalidade do uso de software de código aberto em seus produtos comerciais não é algo que você verifica com as equipes jurídica ou de compliance uma vez e esquece. Projetos OSS mudam de licença com mais frequência do que você imagina, exigindo que você pague por uma versão enterprise, procure uma alternativa ou torne parte do seu código privado de código aberto. Scanners de licença identificam mudanças e ajudam você a passar por auditorias de segurança com uma lista de materiais de software (SBOM) pronta para uso.

Instale e execute seu projeto OSS de varredura de licenças: Syft

Assim como o Grype na etapa anterior, você já tem o Syft instalado em sua workstation local e pode até ter um SBOM existente da configuração de sua integração SCA com o Grype. Se ainda não tiver, você pode criar rapidamente um novo, referenciando uma imagem de contêiner de um registry configurado ou um caminho em sua workstation local.

syft <YOUR-IMAGE> -o syft-json=sbom.syft.json
syft /path/to/image -o syft-json=sbom.syft.json

Dependendo da complexidade da sua imagem e da profundidade das dependências, você pode obter um arquivo SBOM com alguns milhares de linhas. Dentro de toda essa saída JSON, você está procurando nos artefatos array para o licenças valores de cada pacote e dependência dos quais sua imagem de contêiner depende.

{
"artifacts":[
   {
"id":"cdd2655fffa41c69",
"name":"alpine-baselayout",
"version":"3.4.3-r2",
"type":"apk",
"foundBy":"apk-db-cataloger",
"locations":[
       …
     ],
"licenses":[
       {
"value":"GPL-2.0-only",
"spdxExpression":"GPL-2.0-only",
"Type":"declared",
         …

Com esses detalhes em um único SBOM, você poderá verificar suas obrigações de licenciamento para mudanças que talvez precise fazer downstream ou migrações para as quais deve começar a se preparar. Você também terá um recurso de referência para a próxima auditoria de segurança à qual for submetido.

Alternativas e ressalvas

O Trivy, mencionado pela primeira vez na seção anterior, possui um recurso de varredura de licenças que apresenta resultados opinativos sobre o risco associado aos projetos em sua árvore de dependências de código aberto.

#9: Detecção de malware

Como a detecção de malware ajuda na segurança de aplicações?

Scanners de malware ajudam você a identificar uma ameaça que tem crescido nos últimos anos: malware injetado em pacotes de dependência por atacantes. A recente tentativa de backdoor zx é um exemplo fantástico — e assustador. Scanners de malware detectam esses ataques à supply chain de software antes mesmo de você mesclar seu código, para evitar que você tenha que fazer correções urgentes e caras assim que o CVE se tornar público.

Instale e execute seu projeto OSS de detecção de malware: Phylum

As ferramentas CLI do Phylum permitem que você envie seus lockfiles para a API deles para análise de dependências, o que difere um pouco das outras ferramentas open-source que estamos recomendando aqui — a análise não ocorre em sua estação de trabalho local. Em vez disso, você precisa registrar uma conta no Phylum para autenticação com o serviço deles.

Comece instalando o Phylum localmente.

curl https://sh.phylum.io | sh

Então registre sua conta e execute sua primeira análise—o Phylum deve identificar o lockfile que você está usando.

phylum auth register
phylum auth login
phylum init
phylum analyze --json

A análise do Phylum entrega um resultado abrangente, começando com um true ou falso resultado baseado se seu projeto passa na verificação de malware do Phylum. No array de rejeições para cada dependência, você encontrará uma descrição detalhada da vulnerabilidade e conselhos de remediação da comunidade OSS. Isso permite que você agregue resultados de seus testes SAST, DAST e SCA, capacitando-o a entender quais vulnerabilidades são devido às suas dependências e quais estão incorporadas diretamente no código que você escreveu.

{
"is_failure": true,
"incomplete_packages_count": 2,
"help": "...",
"dependencies": [
   {
"purl": "pkg:npm/next@13.5.6",
"registry": "npm",
"name": "next",
"version": "13.5.6",
"rejections": [
       {
"title": "next@13.5.6 is vulnerable to Next.js Server-Side Request Forgery",
"source": {
"type": "Issue",
"tag": "HV00003FBE",
"domain": "vulnerability",
"severity": "high",
         ...

#10: Detecção de End-of-life (EOL) em tempo de execução

Como a detecção de runtime EOL ajuda na segurança de aplicações?

Quanto mais frameworks, bibliotecas e runtimes você incluir em seu aplicativo, mais oportunidades haverá para que você seja perigosamente explorado contra versões desatualizadas ou dependências sem manutenção. Isso é especialmente crítico para runtimes diretamente expostos à internet pública. Detectores de runtime EOL leem sua árvore de dependências através de lockfiles—mesmo aqueles em Containers—para alertá-lo com bastante antecedência, para que você possa se preparar para atualizações ou migrações.

Instale e execute seu projeto OSS: endoflife.date

endoflife.date é um banco de dados de informações de EOL sobre mais de 300 ferramentas e plataformas, muitas das quais são parte integrante da operação e segurança do seu aplicativo. Em vez de ter que explorar sites de documentação obscuros ou vasculhar listas de e-mail para descobrir quando uma versão específica de sua dependência deixa de ser mantida, você pode rapidamente definir datas para as atualizações necessárias para priorizar seus esforços daqui para frente.

A maneira mais fácil de descobrir dados de EOL é explorar o site, prestando atenção especial às suas linguagens de programação, bancos de dados, frameworks, ferramentas de implantação e CLIs para serviços de Cloud.

Como desenvolvedor, você pode querer uma abordagem mais centrada na CLI para explorar dados de EOL para seus principais runtimes e bibliotecas — o endoflife.date possui uma API simples que gera dados JSON, os quais você também pode anexar a um arquivo local para referência futura.

curl --request GET \
 --url https://endoflife.date/api/nginx.json \
 --header 'Accept: application/json' \
>> eol.json

Um novo problema: Gerenciar todos os seus dados de varredura de código e segurança de aplicativos

Se você acompanhou até aqui, construiu um kit de ferramentas útil de código-fonte aberto e ferramentas de varredura de configuração. Você está pronto para executá-las em seus projetos e branches armazenados localmente para obter garantias de segurança pré-commit muito melhores. Aí sim, shift left!

Seu futuro, no entanto, não é instantaneamente impecável. Este novo conjunto de ferramentas vem com uma grande ressalva: Suas ferramentas não se comunicam entre si, e apenas em torno do seu aplicativo.

Você ainda é responsável por:

  1. Configurar individualmente cada ferramenta. Vamos pegar uma opção simples, como uma allowlist de certos diretórios ou dependências que você não quer se preocupar em escanear, já que não são relevantes para a segurança do seu ambiente de produção. Você precisará aprender os argumentos para cada ferramenta CLI lendo a documentação e testando, o que rouba um tempo valioso do que você realmente quer fazer: implementar correções.
  2. Executar cada scanner contra cada repositório e branch. Mesmo que você tenha um único repo e duas branches—principal e dev —são quase 20 operações para escanear vulnerabilidades. Idealmente, você executa esses scanners antes de enviar quaisquer alterações para um repositório remoto, o que significa muitas operações repetidas ao longo do seu dia.

    Existem algumas maneiras de simplificar isso, é claro. Você pode escrever um script para encadear esses scanners de código aberto para rodar manualmente ou como um hook Git de pré-commit. Isso economiza seu tempo no terminal, mas apenas gera a saída JSON mais rapidamente—você ainda é responsável por entender o quêmudou e se você ainda pode enviar suas alterações e (finalmente) criar seu pull request.
  3. Navegue por arrays JSON massivos em busca de insights. Essas ferramentas frequentemente produzem saídas com milhares de linhas. A abrangência é boa, mas quem tem tempo para explorar dezenas ou centenas de potenciais problemas de segurança, esperando entender cada um bem o suficiente para compreender sua gravidade?

    Com o tempo, você precisará de uma forma mais intuitiva de ler os resultados do que linhas de JSON não formatadas, como importar para o Google Sheets ou construir um aplicativo simples para visualizar os resultados.
  4. Compreenda o que mudou entre as execuções. A varredura de segurança tem dois propósitos. Primeiro, ajudar a identificar problemas existentes em seu código e configuração. Segundo, evitar que você introduza novas vulnerabilidades à medida que desenvolve. Se você não consegue entender rapidamente se corrigiu uma determinada vulnerabilidade ou não é notificado quando uma nova falha entra em seu código, todo esse esforço é tempo perdido.

    Uma opção é incrementar ou adicionar um timestamp aos seus arquivos JSON de saída e, em seguida, usar ferramentas CLI para compará-los. diff file1.json file2.json é uma ótima ferramenta autônoma, ou você pode tentar git diff --no-index file1.json file2.json para arquivos não commitados em seu repositório Git.
  5. Agregue, armazene e compartilhe dados para análise de longo prazo. Como dissemos antes, o scanning de segurança é uma operação contínua, não um item único em sua lista de tarefas. Além disso, os resultados dos seus esforços de scanning não devem ficar guardados em sua estação de trabalho local — seus colegas vão querer saber sobre as vulnerabilidades mais relevantes para o que eles construíram, mesmo que não tenham um conjunto de ferramentas semelhante em execução no momento.

    Você precisará explorar plataformas de dados que coloquem todas essas informações em um só lugar — mais uma peça de infraestrutura para auto-hospedar ou pagar.
  6. Crie tickets no Jira ou GitHub. Você ou um colega deve escalar cada vulnerabilidade identificada para um ticket relevante contendo todo o contexto necessário e possíveis remediações. Essa é a única maneira de garantir a transparência da segurança, fazer com que seus colegas colaborem e criar o log de auditoria que seus padrões de conformidade podem exigir. Nenhuma dessas ferramentas oferece suporte à integração com sua plataforma de tickets, então você terá que criar esses tickets manualmente — e pode haver dezenas, senão centenas, para analisar.
  7. Priorize esses tickets com base na severidade. Inundar seus repositórios com tickets é um pesadelo de gerenciamento de projetos. É uma versão diferente, mas igualmente dolorosa, da fadiga de alertas: Como alguém sabe em qual focar primeiro? Se suas ferramentas OSS não puderem ajudar com a severidade, você terá que gastar tempo fazendo essas determinações por conta própria, o que pode envolver anos de conhecimento em segurança que você simplesmente não pode atalhar.
  8. Gerenciar o ciclo de vida de cada ferramenta OSS. Seja mantendo suas ferramentas atualizadas, tentando construir automação ou integrando execuções e resultados em seu pipeline de CI/CD, você agora é responsável pela eficácia a longo prazo do seu conjunto de ferramentas. Você pode ter uma postura de segurança melhor do que nunca, mas a que custo para sua postura no mundo real?
  9. Preocupe-se e questione o que acontece se o projeto perder seu mantenedor. Se suas dependências e runtimes podem atingir o EOL e criar problemas, o mesmo pode acontecer com as ferramentas e plataformas das quais seu ambiente de desenvolvimento local depende. Infelizmente, projetos de código aberto são frequentemente construídos sobre modelos de financiamento e mantenedores que não são sustentáveis a longo prazo. Você ainda pode usar projetos estagnados ou abandonados em sua CLI, mas ao tentar melhorar a segurança do seu aplicativo, eles não o ajudarão a descobrir novas vulnerabilidades ou métodos de ataque.

A conversa atual em ferramentas de desenvolvimento gira em torno de um único conceito: experiência do desenvolvedor (DX). Quanto melhor a DX, maior a probabilidade de uma ferramenta ser integrada, usada, valorizada e defendida. E sejamos honestos—a DX deste kit de ferramentas de varredura OSS executado localmente não é particularmente ótima. Você possui totalmente seu processo e dados, mas com custos e compromissos de tempo excepcionais. Quanto você está disposto a pagar por segurança avançada de aplicativos?

Ferramentas de segurança de código aberto são incríveis — nós até construímos um firewall de aplicação web para proteger autonomamente aplicativos Node.js contra ataques comuns e críticos — mas para varredura de segurança contínua e remediação de vulnerabilidades, deve haver outra maneira. Talvez até uma que seja construída sobre esta fantástica base OSS.

Uma nova solução de segurança de aplicativos: Aikido

O Aikido substitui todas essas soluções pontuais de código aberto por uma plataforma de segurança ponta a ponta.

Em vez de executar mais de 10 ferramentas toda vez que você se prepara para commitar suas últimas alterações, você só precisa adicionar seus repositórios, imagens Docker e provedores de Cloud ao Aikido uma vez para uma varredura abrangente. O Aikido é executado automaticamente em segundo plano para varredura contínua ou em seu pipeline de CI/CD para recomendações direcionadas a cada pull request, protegendo você de novas vulnerabilidades enquanto aponta as existentes que estão à espreita em seu codebase há meses ou anos.

Melhor ainda, todos os resultados, contexto e possíveis remediações são agregados e armazenados em um único lugar — o dashboard do Aikido — para que você nunca precise se preocupar em fazer parsing de JSON, mesclar múltiplas fontes de dados ou gastar com uma plataforma cara de gerenciamento de dados para criar uma fonte da verdade. Nós até construímos regras personalizadas e uma 'cola' especial entre esses projetos de código aberto para desenterrar correlações e resultados que, de outra forma, exigiriam um pesquisador de segurança especializado interno.

O Aikido também se integra com suas plataformas de gerenciamento de tarefas e mensagens, como GitHub e Slack, para criar tickets pré-triados e priorizados. Com todo o contexto, documentação e autofixes sugeridos, qualquer pessoa da sua equipe pode assumir o problema e levá-lo à remediação de forma rápida e abrangente.

A segurança de aplicações estaria em uma situação muito pior se não fossem essas ferramentas de código aberto e muitas outras. Isso é indiscutível. Mas, justamente pela forma como as ferramentas de desenvolvedor operam — em sua estação de trabalho local, dentro do seu terminal — significa que elas são infinitamente flexíveis e inerentemente isoladas. O meme “funcionou na minha máquina” ainda se aplica aqui, apenas com uma terminologia diferente:

Uma imagem de meme de segurança de aplicativos de Elon Musk e um Cybertruck com vidros quebrados com o texto: "~~Funcionou~~ Scaneou na minha máquina"
Este *não* deveria ser o futuro da segurança de aplicativos.

Se você está procurando outra maneira, que substitua todo o fardo de construir este toolkit de código aberto por uma plataforma que já é construída sobre os mesmos projetos, considere dar uma chance ao Aikido gratuitamente.

Se você escolher a rota OSS, você tem nossos parabéns e respeito... mas enquanto você está adicionando novas ferramentas e dependências aos seus workflows, você realmente deveria deixar o Web Application Firewall do Aikido proteger de forma autônoma e contínua seus aplicativos Node.js até das vulnerabilidades mais perigosas. A melhor DX, afinal, é quando a ferramenta realmente faz todo o trabalho duro por você.

4.7/5

Proteja seu software agora

Comece Gratuitamente
Não é necessário cc
Agendar uma demonstração
Seus dados não serão compartilhados · Acesso somente leitura · Não é necessário cartão de crédito

Fique seguro agora

Proteja seu código, Cloud e runtime em um único sistema centralizado.
Encontre e corrija vulnerabilidades rapidamente de forma automática.

Não é necessário cartão de crédito | Resultados da varredura em 32 segundos.