Google ha presentado Mangle, un nuevo lenguaje de programación de código abierto que amplía el clásico Datalog, orientado a la programación deductiva en bases de datos modernas. Desarrollado como una biblioteca en Go, Mangle busca facilitar la compleja tarea de consultar y razonar sobre datos dispersos en múltiples fuentes heterogéneas.
Esta herramienta responde a un desafío creciente para desarrolladores y especialistas en seguridad: la fragmentación de datos. En los ecosistemas de software actuales, la información sobre dependencias, vulnerabilidades, configuraciones e infraestructura suele estar distribuida en distintos formatos y ubicaciones. Mangle ofrece un marco unificado y declarativo para analizar toda esta información de forma conjunta.
Mangle se basa en Datalog, un lenguaje declarativo con raíces en la teoría de bases de datos, conocido por su potencia para expresar consultas complejas. Sin embargo, Datalog tradicionalmente carece de algunas características necesarias para aplicaciones prácticas en entornos reales. Por eso, Mangle introduce varias extensiones clave, manteniendo la simplicidad y accesibilidad de su predecesor.
Entre sus principales novedades destacan: soporte completo para reglas recursivas, que permite expresar relaciones transitivas como las que se usan para trazar árboles completos de dependencias o mapas de derechos de acceso en jerarquías; acceso uniforme a datos, capaz de integrar hechos provenientes de archivos, APIs u otras fuentes, facilitando consultas que combinan información sin importar su origen; y funciones de agregación junto con la capacidad de llamar a funciones externas, lo que permite realizar cálculos más complejos e integrar lógica empresarial personalizada.
Mangle es especialmente útil en áreas como la detección de vulnerabilidades, donde los equipos de seguridad pueden modelar políticas y bases de código mediante hechos y reglas. Por ejemplo, se puede definir que un proyecto es vulnerable si depende de una biblioteca con alguna vulnerabilidad conocida, y Mangle verifica de forma recursiva todo el grafo de dependencias para identificar proyectos afectados. También se adapta bien al análisis de dependencias de software, ayudando a explorar cadenas de suministro modernas, analizar listas de materiales de software (SBOM), aplicar políticas de versiones o detectar proyectos afectados por librerías obsoletas. Además, sirve para construir y consultar grafos de conocimiento, representando entidades y sus relaciones como hechos lógicos para descubrir conexiones ocultas y realizar razonamientos complejos sobre grandes conjuntos de datos.
Al estar implementado como una biblioteca en Go, Mangle puede integrarse fácilmente en diversas aplicaciones y herramientas de análisis sin la necesidad de un sistema de base de datos independiente. Esto pone capacidades avanzadas de consulta deductiva directamente en manos de los desarrolladores. La documentación del proyecto está orientada a la practicidad, buscando que quienes estén más familiarizados con paradigmas imperativos u orientados a objetos puedan adoptar la programación lógica de forma sencilla.
En resumen, la llegada de Mangle supone una herramienta poderosa para desarrolladores, ingenieros de confiabilidad y profesionales de seguridad que necesitan comprender y gestionar información compleja y distribuida. Al combinar la elegancia declarativa de Datalog con características prácticas para el software moderno, Google ofrece una solución capaz de simplificar desde análisis de seguridad hasta la gestión de infraestructuras.



