Skip to main content

Explora las tecnologías avanzadas detrás de Snyk Code

Escrito por

Frank Fischer

blog feature snyk code dark

20 de octubre de 2021

0 minutos de lectura

Snyk Code es la solución de pruebas estáticas de seguridad de aplicaciones (SAST) de Snyk e incorpora tecnologías revolucionarias al campo de SAST. Se basa en la investigación y las tecnologías desarrolladas por DeepCode, una empresa derivada de la ETH (Zúrich, Suiza), que DeepCode se unió a Snyk a finales de 2020. Este artículo trata sobre estas tecnologías y explica cómo Snyk no solo contribuye a la comunidad de código abierto, sino que también promueve la colaboración con la comunidad académica en el campo del análisis estático de programas.

El proceso de Snyk Code

El proceso general se muestra a continuación.

Diagrama del flujo de trabajo de Snyk Code que muestra cómo el código de gran tamaño se analiza en árboles, se procesa con algoritmos de aprendizaje automático y resolutores, y se evalúa con reglas de seguridad seleccionadas

Comienza a la izquierda con «Big Code», un conjunto de entrenamiento compuesto por cientos de miles de repositorios de código abierto y su historial de cambios, que abarca diversos lenguajes de programación. El primer paso consiste en transformar el código mediante el análisis sintáctico para obtener representaciones intermedias. Snyk Code usa un árbol de sintaxis abstracta (AST) y un grafo de eventos (EG), que permiten realizar un análisis sensible al flujo de datos y al contexto. Encontrarás más detalles en los artículos académicos citados más adelante. El EG puede representar diversos lenguajes de programación.

A continuación, se aplica un solucionador lógico usando la representación intermedia y reglas lógicas. Hay varios aspectos destacables de este solucionador. En primer lugar, es propietario y está optimizado para esta tarea, con algoritmos de menor complejidad temporal que los que se usan en los solucionadores Datalog estándar. En segundo lugar, esto se traduce en un rendimiento de ejecución líder en la industria. Por último, al ser un sistema basado en restricciones, genera hechos semánticos que pueden utilizarse como entrada para el proceso de aprendizaje guiado por personas.

Mediante el uso de código abierto, Snyk Code aprovecha el conocimiento de la comunidad global de desarrolladores para identificar y resolver problemas de seguridad. Incluso detecta combinaciones de orígenes y destinos que todavía no se usan en el conjunto de entrenamiento, pero que podrían representar una amenaza. Además, permite agregar reglas para exploits de día cero, aunque todavía no haya datos de entrenamiento disponibles.

En el proceso de aprendizaje participan los ingenieros de seguridad de Snyk, quienes trabajan con algoritmos de aprendizaje automático para generar y mantener la base de conocimientos. También agregan información adicional para ayudar a los desarrolladores a comprender los problemas y tomar medidas cuando se detectan.

En producción, Snyk Code sigue este flujo, pero no usa el código para aprender. En su lugar, aplica la base de conocimientos y genera resultados precisos en minutos o incluso segundos. ¡Y eso es todo! Así es como logramos que Snyk Code sea una solución SAST tan potente.

Comienza con Capture the Flag

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

Participación en publicaciones y conferencias académicas

Además de crear esta herramienta SAST, el equipo detrás de Snyk Code lleva muchos años publicando activamente en las principales conferencias de aprendizaje automático y lenguajes de programación, y también ha publicado varias herramientas académicas para el análisis estático de programas.

Aquí tienes una selección de publicaciones y sistemas de investigación:

Herramientas disponibles públicamente

Además, durante el desarrollo de las tecnologías que sustentan Snyk Code, se desarrollaron y publicaron herramientas de investigación. A continuación, encontrarás un resumen de estas herramientas.

Nota: Snyk no se hace responsable de estas herramientas ni las mantiene ni las aloja. Son parte de los respectivos proyectos de investigación en los que han participado miembros del equipo de Snyk.

JSNice

JSNice desofusca programas de JavaScript mediante aprendizaje automático. Lo usan decenas de miles de programadores en todo el mundo.

Logotipo de JS Nice en blanco y morado

Nice2Predict

Nice2Predict es un framework de código abierto eficiente y escalable para la predicción estructurada, que permite crear nuevos motores estadísticos con mayor rapidez.

Banner morado con el texto «NICE 2 Predict» en blanco

DeGuard

DeGuard revierte el proceso de ofuscación del diseño de aplicaciones Android. Los analistas de seguridad la usan a diario.

Logotipo de DEGUARD en azul y blanco

En resumen

Como se muestra arriba, el equipo de Snyk Code está a la vanguardia de la investigación y contribuye mediante la publicación de artículos científicos, la mentoría de estudiantes y la participación en otros proyectos científicos. Comprueba por ti mismo los resultados de su investigación: regístrate hoy en Snyk Code.

Comienza con Capture the Flag

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