Skip to main content

Cómo empezar a usar Snyk para desarrollar aplicaciones Java seguras

Escrito por
blog social snyk secure java

23 de junio de 2021

0 minutos de lectura

Si eres desarrollador de Java y quieres desarrollar aplicaciones más seguras, estás en el lugar indicado. Snyk puede ayudarte a lograrlo. En este artículo te explicamos cómo empezar a usar Snyk para el desarrollo seguro en Java, y así mejorar la seguridad desde el principio.

Si recién empiezas a usar Snyk, es importante que sepas que ofrecemos distintas herramientas y productos enfocados en los desarrolladores. Algunas de estas herramientas, como nuestra CLI y ciertas integraciones con IDE, son compatibles con varios productos. Sin embargo, podemos distinguir cuatro productos diferentes dentro de Snyk:

  1. Snyk Open Source - Protege tus dependencias de código abierto

  2. Snyk Container - Protege tus imágenes de contenedor

  3. Snyk Infrastructure as Code (Snyk IaC) - Protege tu infraestructura como código

  4. Snyk Code - Protege tu código personalizado. En esta publicación, nos enfocaremos únicamente en Java.

Para empezar a usar estas herramientas, tendrás que registrarte para obtener una cuenta gratuita de Snyk. Para quienes desarrollan por su cuenta, nuestro plan gratuito suele ser más que suficiente, así que puedes dejar la tarjeta de crédito en la billetera.

Después de registrarte, tienes varias formas de empezar a usar Snyk para Java. Te explicaré cada herramienta por separado.

Snyk CLI

La Snyk CLI es la forma más sencilla de empezar a usar Snyk para Java. Puedes instalarla de varias maneras, por ejemplo, con npm o brew:

npm install -g snyk

Esta herramienta es ideal para usar en tu equipo local y también puede ser muy útil en tu pipeline de CI. Lo primero que debes hacer es autenticar la CLI de Snyk, ya sea configurando tu token de API como variable de entorno (recomendado para sistemas de CI) o ejecutando snyk auth.

Analizar tu proyecto de Java para detectar problemas de seguridad en tus dependencias de código abierto es tan sencillo como ejecutar snyk test en la raíz del proyecto. Según el sistema de compilación que uses para Java, asegúrate de que Maven o Gradle estén instalados y disponibles. La CLI de Snyk usa tu administrador de paquetes y pom.xml o build.gradle para obtener el árbol completo de dependencias. Antes de ejecutar snyk test, asegúrate de compilar tu proyecto con Maven o Gradle para evitar resultados inesperados.

Si tu proyecto contiene varios archivos de manifiesto, como varios archivos pom, usa la opción --all-projects para analizar todos tus proyectos. También funciona, por ejemplo, si tienes un proyecto Java con Gradle combinado con un frontend en JavaScript que usa npm. Por último, usa la opción --help para encontrar configuraciones específicas de Maven o Gradle.

Consulta la guía rápida de la CLI para obtener más consejos y trucos sobre Snyk CLI. Puedes usar la misma CLI para analizar tus contenedores en busca de problemas de seguridad y analizar tu infraestructura como código (IaC). Además, pronto lanzaremos Snyk Code para la CLI, que ayuda a prevenir vulnerabilidades de seguridad en tu código Java personalizado.

Conecta el repositorio Git de tu proyecto Java

A continuación, puedes conectar tu repositorio Git. Si conectas tu repositorio de Java, por ejemplo, en GitHub, Snyk buscará automáticamente el archivo de manifiesto de Maven o Gradle y analizará tus dependencias. De forma predeterminada, este proceso se repetirá a diario y recibirás una notificación cada vez que se detecte una nueva vulnerabilidad de seguridad o una nueva corrección en tu repositorio.

El siguiente ejemplo muestra un archivo pom de un proyecto de demostración que contiene vulnerabilidades de seguridad conocidas. Cada vez que Snyk detecte un nuevo problema, aparecerá en tu panel, junto con una explicación de la vulnerabilidad y posibles recomendaciones para corregirla. Además, la integración con Git también puede analizar archivos Dockerfile y ejecutar análisis de Snyk Code. Si quieres más información sobre los análisis de Snyk Code para aplicaciones Java con la integración de Snyk con Git, consulta esta publicación del blog: Cómo solucionar problemas de seguridad de Java en mi aplicación Spring MVC.

Panel de análisis de código que muestra los resultados del análisis de seguridad de un repositorio, incluidos los archivos Dockerfile y pom.xml con el recuento de vulnerabilidades por nivel de gravedad.

Complementos de Maven y Gradle

Algunas personas prefieren automatizar las pruebas de seguridad durante las compilaciones. Por supuesto, puedes hacerlo dentro de un pipeline de CI. Sin embargo, podría tener más sentido hacerlo desde tu herramienta de compilación. Si usas Maven o Gradle, es en este punto cuando se incorporan tus dependencias y se crea el artefacto. ¿Por qué no automatizar el análisis de seguridad igual que hacemos con las pruebas unitarias? Snyk ofrece complementos para Maven y Gradle. Lo único que necesitas es una clave de API, que puedes obtener con tu cuenta gratuita.

Ahora puedes ejecutar manualmente snyk test desde Maven o Gradle, o conectarlo con una tarea específica durante la compilación de tu aplicación. Consulta los artículos específicos sobre los complementos de Maven y Gradle de Snyk.

Complementos de Snyk para IDE de Java

Algunos desarrolladores prefieren hacer todo desde su IDE. En cierta medida, hoy en día un IDE es como una navaja suiza, con muchísimas opciones y posibilidades de ampliación. Algunos desarrolladores prácticamente viven en su IDE.

En el informe del ecosistema JVM de 2021, descubrimos que IntelliJ IDEA, Eclipse y VS Code son los tres IDE más usados para el desarrollo en Java. Snyk tiene complementos para IDE disponibles para los tres.

Consulta los siguientes artículos para obtener más información sobre cada complemento.

Es fácil empezar a usar Snyk

Como puedes ver, empezar a usar Snyk y crear aplicaciones Java seguras no tiene por qué ser difícil. Elige las opciones que se adapten a tu forma de trabajar para desarrollar rápido y mantener la seguridad. También tenemos muchas integraciones para distintos pipelines de CI/CD, por si te conviene más. En cualquier caso, Snyk ofrece todo lo que un desarrollador de Java necesita para crear software seguro desde el principio.

Comienza con Capture the Flag

Aprende a resolver desafíos de Capture the Flag con nuestro taller virtual 101 a pedido.