Skip to main content

4 maneiras fáceis de analisar seu código Java e Kotlin

Escrito por
feature insights context

13 de agosto de 2024

0 minutos de leitura

Hoje em dia, a segurança dos seus aplicativos é tão importante quanto as funcionalidades que eles oferecem. Por isso, analisar seu código em busca de vulnerabilidades de segurança é essencial para preservar a integridade dos aplicativos e proteger os dados dos usuários. Como desenvolvedores, estamos na linha de frente dessa batalha. É nossa responsabilidade garantir que o código que escrevemos não seja apenas funcional e eficiente, mas também seguro.

O teste estático de segurança de aplicações (SAST) é um método para descobrir vulnerabilidades de segurança no código de um aplicativo. Ele analisa o código-fonte ou o bytecode do aplicativo em busca de falhas de segurança e outros problemas que possam levar a violações de segurança. O Snyk Code é uma ótima ferramenta para esse tipo de análise, permitindo que desenvolvedores identifiquem possíveis vulnerabilidades com rapidez e facilidade e corrijam esses problemas antes que se agravem.

Ignorar ferramentas de SAST como o Snyk Code no ciclo de desenvolvimento pode ter consequências significativas. Deixar para resolver problemas de segurança nas etapas finais do ciclo pode custar caro e consumir muito tempo. Mais importante ainda, isso pode fazer com que vulnerabilidades passem despercebidas e cheguem ao produto final. Ao adotar uma abordagem proativa à segurança e incluir o SAST no processo regular de desenvolvimento, você pode economizar tempo e dinheiro e, potencialmente, evitar uma violação de segurança prejudicial.

Usando o Snyk Code em projetos Java

A Snyk oferece um conjunto de ferramentas de segurança voltadas para desenvolvedores, que ajudam você a encontrar e corrigir vulnerabilidades no código-fonte, em pacotes de código aberto e imagens de contêiner, além de identificar configurações incorretas na infraestrutura de nuvem. Um dos recursos mais poderosos da Snyk é o Snyk Code, desenvolvido especificamente para analisar seu código em busca de vulnerabilidades de segurança. O Snyk Code oferece suporte a várias linguagens de programação, incluindo Java e Kotlin, sendo uma opção ideal para projetos JVM.

O Snyk Code é uma ferramenta de SAST baseada em aprendizado de máquina que detecta possíveis vulnerabilidades de segurança no seu código. Ela identifica vários tipos de problemas, de falhas de injeção a desserialização insegura. A ferramenta mostra o fluxo do código vulnerável no seu sistema para ajudar você a entender o que está acontecendo. Ela também oferece recomendações detalhadas de correção para ajudar você a resolver esses problemas e reforçar a segurança do seu aplicativo.

Outra vantagem é que você não fica limitado a uma única forma de trabalhar. A Snyk oferece esse recurso de várias maneiras diferentes, para que você escolha a opção mais adequada ao seu fluxo de trabalho.

Opção 1: análise do código-fonte usando a CLI da Snyk

Nesta seção, vamos explicar como analisar o código-fonte Java em busca de vulnerabilidades de segurança usando a interface de linha de comando (CLI) da Snyk. Com a CLI da Snyk, você pode integrar facilmente os poderosos recursos de análise de segurança da Snyk aos seus fluxos de trabalho de desenvolvimento, facilitando a identificação e a correção de vulnerabilidades no início do processo.

A CLI da Snyk é uma interface de linha de comando para a plataforma Snyk. Com ela, você pode incorporar a análise de segurança da Snyk diretamente ao seu processo de desenvolvimento local, aos pipelines de CI/CD e a outros fluxos de trabalho automatizados.

Para fazer testes estáticos de segurança de aplicações (SAST) com a CLI da Snyk, você precisa instalar a CLI e autenticá-la com sua conta da Snyk. Veja como:

# Install the Snyk CLI using NPM
npm install -g snyk

# Authenticate the CLI with your Snyk account
snyk auth

Depois de instalar e autenticar a CLI, você pode usar o comando `snyk code test` para analisar seu código-fonte Java:

# Navigate to your project directory
cd /path/to/your/java/project

# Scan your source code with Snyk Code
snyk code test

Esse comando analisa seu código-fonte em busca de vulnerabilidades e gera um relatório detalhado dos problemas encontrados.

A CLI da Snyk é versátil e pode ser usada de várias maneiras, conforme suas necessidades. Por exemplo, se quiser analisar seu código sempre que fizer commit de alterações, você pode integrar os comandos da CLI aos hooks de pre-commit. Outra opção é incluir os comandos da CLI nos pipelines de integração e entrega contínuas (CI/CD) para garantir que seu código seja analisado em busca de vulnerabilidades antes da implantação.

Terminal exibindo os resultados da análise estática de código do Snyk CLI, com oito problemas de segurança em Java, incluindo XSS, injeção de SQL e travessia de caminho.

Lembre-se: quanto mais cedo você encontrar e corrigir vulnerabilidades de segurança, mais seguro será seu aplicativo. Então, que tal começar na sua máquina local, antes mesmo de fazer commit do código? Basta criar uma conta gratuita na Snyk e instalar a CLI da Snyk.

Ainda não tem uma conta na Snyk? Crie uma conta na Snyk hoje mesmo e comece a proteger seu código.

Opção 2: usando o Snyk Code com integrações para IDEs

Como desenvolvedor, seu ambiente de desenvolvimento integrado (IDE) é seu principal espaço de trabalho. Integrar a segurança à IDE de forma simples pode economizar seu tempo e proteger seu código contra vulnerabilidades. A Snyk oferece integrações para IntelliJ e Visual Studio Code, permitindo analisar seu código Java em busca de vulnerabilidades diretamente na IDE.

Plugin da Snyk para IntelliJ

O plugin da Snyk para IntelliJ é uma ferramenta poderosa que oferece feedback em tempo real sobre a segurança do seu código Java. Depois de instalar o plugin, clique com o botão direito no projeto e selecione Snyk e, em seguida, Scan Project. O plugin analisará seu código e apresentará uma lista de possíveis vulnerabilidades, seus níveis de gravidade e sugestões para corrigi-las.

Painel do Snyk destacando uma vulnerabilidade de injeção de SQL de alta gravidade em HomeController.java, com um fluxo de dados de seis etapas e exemplos de correções

No exemplo acima, o plugin da Snyk para IntelliJ detectaria que a consulta SQL está vulnerável a ataques de injeção de SQL.

Plugin da Snyk para VS Code

O plugin da Snyk para VS Code é outra excelente ferramenta para analisar código Java em busca de vulnerabilidades de segurança. Para usá-lo, instale a extensão da Snyk pelo marketplace do VS Code. Depois, clique com o botão direito no projeto na exibição Explorer e selecione Scan with Snyk. O plugin fará uma análise detalhada do seu código Java e Kotlin para identificar vulnerabilidades de segurança conhecidas, apresentando uma lista de problemas e as medidas recomendadas para corrigi-los.

A análise de vulnerabilidades da Snyk em um IDE destaca um problema de cross-site scripting em ProductController.java, na linha 93.

No exemplo acima, o plugin da Snyk para VS Code detectaria que a saída HTML está vulnerável a ataques de cross-site scripting (XSS).

Ao integrar a Snyk à sua IDE, você protege seu código Java desde o início. Não espere até a implantação para pensar em segurança.

Opção 3: conecte seu repositório Git à Snyk e habilite a análise de código

Conectar seu repositório Git à Snyk é uma etapa fundamental para reforçar a segurança do seu código Java e dos seus aplicativos. A Snyk se integra facilmente aos principais repositórios de controle de código-fonte, incluindo GitHub, GitLab, Azure Repo e BitBucket. Com essa integração, seu código Java é analisado continuamente em busca de vulnerabilidades, reforçando a segurança do aplicativo.

Painel de análise do Snyk Code com vulnerabilidades de cross-site scripting (XSS), código Java, filtros de gravidade e pontuações dos problemas.

Usando o trecho de código Java acima como exemplo, depois que seu repositório Git for conectado à Snyk, o Snyk Code analisará automaticamente o código com testes estáticos de segurança de aplicações (SAST). Essa análise detecta vulnerabilidades como injeção de SQL, cross-site scripting (XSS) e desserialização insegura, entre outras, e as exibe na interface da Snyk (UI).

Um dos diferenciais da Snyk é que ela não apenas identifica vulnerabilidades, mas também recomenda como corrigi-las. Na interface da Snyk, você pode ver os detalhes das vulnerabilidades identificadas, entender seus possíveis impactos e receber orientações para resolvê-las. Esse recurso diferencia a Snyk de outras ferramentas de segurança e faz dela um recurso valioso para desenvolvedores que querem reforçar a segurança dos seus aplicativos.

Verifique pull requests em busca de alterações de código vulneráveis

Outro excelente recurso da Snyk é a capacidade de verificar pull requests em busca de alterações de código que possam introduzir vulnerabilidades. Assim, você pode identificar possíveis problemas de segurança antes que sejam mesclados à base de código principal. Essa abordagem preventiva é essencial para preservar a integridade e a segurança do seu aplicativo Java.

Opção 4: integre o Snyk Code ao seu pipeline de CI

Integrar o Snyk Code ao seu pipeline de CI/CD é uma ótima maneira de automatizar a análise de segurança do código e garantir que seu código Java esteja livre de vulnerabilidades. Com os recursos do Snyk Code, você pode detectar e corrigir problemas de segurança no código antes que eles ameacem a segurança do seu aplicativo.

Nesta seção, vamos mostrar como integrar o Snyk Code ao seu pipeline com plugins, usar as GitHub Actions disponibilizadas pela Snyk para fazer análises de SAST e criar uma integração personalizada para o Snyk Code usando a CLI e a saída JSON.

A Snyk oferece plugins para várias ferramentas de CI/CD, como Jenkins, CircleCI, Azure Pipelines e outras. Ao integrar o Snyk Code ao seu pipeline com esses plugins, você automatiza a detecção e a correção de vulnerabilidades de segurança no seu código Java.

Use as GitHub Actions da Snyk para fazer análises de SAST

A Snyk também oferece GitHub Actions para análises de SAST. Com elas, você pode automatizar a análise do seu código Java em busca de vulnerabilidades de segurança nos repositórios do GitHub.

Veja um exemplo de como usar uma GitHub Action da Snyk para analisar seu código Java:

name: Snyk
on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]
jobs:
  security:
    runs-on: ubuntu-latest
    steps:
    - name: Check out code
      uses: actions/checkout@v2
    - name: Run Snyk to find vulnerabilities
      uses: snyk/actions/java@master
      env:
        SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}

Neste exemplo, a ação da Snyk para Java analisa o código Java sempre que é feito um push ou aberta uma pull request na branch master.

Crie uma integração personalizada para o Snyk Code usando a CLI e a saída JSON

Você também pode criar uma integração personalizada para o Snyk Code usando a CLI e a saída JSON. Isso pode ser útil se quiser personalizar o processo de análise do seu código Java em busca de vulnerabilidades de segurança.

Veja um exemplo de como fazer isso:

#!/bin/bash
# Run Snyk test and output the results as JSON
snyk test --all-projects --json > snyk_output.json

Neste exemplo, a CLI da Snyk executa o comando Snyk test e gera os resultados em JSON. Essa saída JSON pode ser usada em etapas posteriores de processamento ou análise.

Ao integrar o Snyk Code ao seu pipeline de CI/CD, você garante que seu código Java seja analisado continuamente em busca de vulnerabilidades de segurança, reforçando a segurança do seu aplicativo.

Analise seu código em todas as etapas do desenvolvimento

Em resumo, vale destacar uma lição essencial para desenvolvedores Java e Kotlin: é indispensável analisar o código dos aplicativos de forma contínua em todas as etapas do desenvolvimento. Encontrar problemas cedo e com frequência não se resume a corrigir bugs. É também criar uma cultura de qualidade e segurança desde o início. Usar uma ferramenta de SAST como o Snyk Code não significa apenas adicionar mais um recurso ao seu conjunto de ferramentas. Significa criar um hábito essencial no seu modo de trabalhar, independentemente da configuração adotada. Quando a ferramenta é integrada corretamente ao processo, ela passa a fazer parte da rotina e ajuda você a encontrar problemas sem atrapalhar o trabalho.

Como desenvolvedores, muitas vezes precisamos conciliar várias tarefas, desde escrever a lógica de negócios até garantir que nossa base de código seja segura e tenha bom desempenho. Incorporar um scanner de SAST que se adapte ao nosso jeito de trabalhar — seja por meio de plugins para IDEs, pipelines de CI/CD ou integrações diretas com o Git — permite incluir verificações de segurança e qualidade no processo de desenvolvimento de forma intuitiva, sem interrupções. Essa flexibilidade nos ajuda a nos concentrar na criação de excelentes aplicativos Java e Kotlin, com a tranquilidade de saber que nosso código está sendo avaliado continuamente em busca de vulnerabilidades e padrões inadequados.

Adotar o Snyk Code em todas as etapas do desenvolvimento melhora a qualidade e a segurança dos nossos projetos. Ao tornar a análise uma parte integrada e simples da rotina de desenvolvimento, podemos identificar e resolver problemas muito antes que se transformem em questões sérias. Por isso, vamos incentivar a prática de analisar o código desde cedo e com frequência. Essa decisão traz benefícios para a qualidade do código, a segurança e a tranquilidade — vantagens que todos nós, como desenvolvedores, podemos valorizar.

Proteja seu código enquanto desenvolve

O Snyk analisa seu código em busca de problemas de qualidade e segurança e recomenda correções direto no seu IDE.

Leia mais

blog feature snyk container custom base recommendations
Blog

Conheça o Evo Agentic AppSec: segurança que acompanha o ritmo do desenvolvimento com IA

O desenvolvimento impulsionado por IA está ultrapassando os fluxos de trabalho tradicionais de segurança. O Agentic AppSec da Snyk usa agentes de segurança para encontrar, corrigir e verificar vulnerabilidades continuamente, enquanto as pessoas definem os critérios.

feature insights context
Blog

Os ataques autônomos já chegaram. A defesa precisa acompanhar o ritmo.

Os atacantes autônomos estão reduzindo o tempo disponível para a defesa. Saiba como a descoberta, a correção, a validação e a prevenção contínuas ajudam as equipes de segurança a acompanhar esse ritmo.

illustration hero ai
Blog

O furacão da IA chegou

A IA está acelerando tanto a criação de software quanto os ataques cibernéticos. As lideranças devem proteger agentes e código desde o início, aplicar controles em tempo de execução e validar as defesas de forma independente.