Cómo resolver desafíos de seguridad con Snyk Code e IA simbólica
27 de febrero de 2025
0 minutos de lectura¿Qué tan buena es la IA simbólica como sistema experto automatizado para analizar rutas de código y detectar vulnerabilidades de seguridad? Snyk Code se pone a prueba y demuestra las ventajas de los sistemas algorítmicos basados en reglas.
¿Qué es el motor de seguridad de IA simbólica de Snyk?
El motor de SAST de Snyk, que realiza análisis de seguridad estático en bases de código, se basa en un sistema de IA simbólica que ofrece mayor precisión y una ejecución más rápida. Además, aprovecha en profundidad la experiencia de investigadores de seguridad para ofrecer un sistema experto en seguridad basado en reglas de vulnerabilidades.
Estas características de Snyk Code le dan superioridad tecnológica frente a la búsqueda tradicional de patrones (búsquedas de expresiones regulares similares a grep) para detectar vulnerabilidades en tu código.
SAST gana desafíos de seguridad de código
Florin Walter es un profesional de seguridad y tester de penetración que, durante los últimos meses, ha compartido desafíos de seguridad y publicaciones de cuestionarios sobre código seguro en LinkedIn.
Me dio curiosidad saber si Snyk detectaría vulnerabilidades en el código en distintos lenguajes, así que importé el repositorio de código de Florin. En el resto de este artículo revisaremos los hallazgos.
Redirección abierta en una aplicación Flask de Python
Flask es un framework popular para aplicaciones web en Python. El siguiente código de Python usa distintas rutas para mostrar una página de inicio y una página de inicio de sesión.
Por desgracia, al permitir que los usuarios y otros sistemas especifiquen una URL de redirección, también se incorpora una vulnerabilidad de redirección abierta.
Como desarrollador, quizá no la hayas notado porque tenías que enfocarte principalmente en las tareas relacionadas con el producto del backlog. Aun así, Snyk ejecuta una prueba estática de seguridad de aplicaciones para analizar este código de Python y detectar la vulnerabilidad de redirección abierta:

Snyk va más allá de detectar código inseguro. Gracias a su motor de aprendizaje automático, que analiza defectos de seguridad y sus correcciones provenientes de la comunidad de código abierto, puede deducir y sugerir la solución de seguridad que los desarrolladores podrían aplicar a su código para corregir esta vulnerabilidad de redirección abierta.
A continuación se muestra una captura de pantalla de una de las tres correcciones de código sugeridas por Snyk, junto con prácticas recomendadas para prevenir el problema e información contextual sobre este tipo de vulnerabilidad de seguridad:

SSRF y XSS en código JavaScript para una aplicación Node.js
El siguiente desafío de seguridad está escrito en JavaScript y se basa en una aplicación web del lado del servidor creada con Node.js y Express:
Dedica un momento a revisar el código e identificar las vulnerabilidades de seguridad.
También importé este desafío a Snyk y estos son algunos de los hallazgos que detectó.
Falsificación de solicitudes del lado del servidor (SSRF) con Axios
Snyk detectó que una entrada sin sanitizar de un parámetro HTTP (req.query.url) llega a la biblioteca cliente HTTP axios en la línea 24. Esta variable url especifica la dirección URL remota a la que se enviará una solicitud HTTP.
Como el usuario puede controlar la URL completa, podría abusar de esto y especificar una dirección interna, como http://localhost, u otras direcciones IP internas y reservadas desde las que podría recopilar datos y extraer información.
Snyk identificó el siguiente código inseguro y muestra todas las rutas de código y las líneas pertinentes afectadas por la vulnerabilidad:

Vulnerabilidad de scripting entre sitios en una respuesta HTTP de Express
Como continuación del código anterior, vulnerable a SSRF debido a una solicitud HTTP realizada con una variable de URL completa controlada por el usuario, Snyk detectó otra vulnerabilidad.

Esta otra vulnerabilidad es sutil; no se trata solo de un problema de seguridad SSRF. Si prestas mucha atención al código resaltado en la línea 25 por el análisis de Snyk, verás que la respuesta HTTP se envía tal cual al navegador:
De forma predeterminada, Express establece los encabezados de respuesta HTTP en application/html. Esto significa que, si el atacante controla el servidor remoto, puede insertar código JavaScript malicioso para activar un XSS en el cliente, ya que el navegador interpreta la respuesta HTML completa.
Otro hallazgo de código inseguro que detecta Snyk es una posible inyección CRLF. Observa esta parte del código de la aplicación web Express que vimos antes:
El SAST de Snyk detecta fácilmente esta posible inyección CRLF como parte de los hallazgos de vulnerabilidades:

¿Cómo puede Snyk proteger mi código de las vulnerabilidades de seguridad?
La herramienta de pruebas estáticas de seguridad de aplicaciones de Snyk, llamada Snyk Code, ayuda a los desarrolladores a encontrar vulnerabilidades en su código en tiempo real, ya que muestra los hallazgos de código inseguro directamente en su IDE.
Comenzar es gratis: instala la extensión Snyk para VS Code y elimina esos errores de seguridad.

Herramienta gratuita en línea para revisar código
Protege tu código antes de tu próximo commit.



