Google представила Mangle — новый язык программирования с открытым исходным кодом, который расширяет классический логический язык Datalog для современного программирования дедуктивных баз данных. Mangle, реализованный в виде библиотеки Go, призван упростить сложную задачу запроса данных и рассуждений о них, распределённых по различным источникам.
Проблема фрагментации данных
В современных программных экосистемах информация о зависимостях, уязвимостях, конфигурациях и инфраструктуре хранится в разных форматах и местах. Mangle предоставляет унифицированную декларативную среду для комплексного анализа этой информации.
Основные особенности и расширения
Mangle расширяет традиционный Datalog функциями, необходимыми для современных рабочих процессов разработки и обеспечения безопасности:
- Рекурсивные правила. Mangle полностью поддерживает рекурсивные правила, что позволяет разработчикам элегантно выражать транзитивные отношения. Это полезно для отслеживания полного дерева зависимостей проекта или отображения прав доступа в иерархии.
- Единый доступ к данным. Mangle может обрабатывать несколько источников данных как единую логическую базу. Он может принимать факты из файлов, API или других хранилищ данных, позволяя разработчикам писать запросы, которые беспрепятственно объединяют информацию.
- Агрегация и вызовы функций. Mangle включает практические расширения, такие как функции агрегирования (например, count, sum) и возможность вызова внешних функций. Это позволяет выполнять более сложные вычисления и интегрироваться с существующими кодовыми базами.
Практические применения
Дизайн Mangle делает его особенно подходящим для нескольких критически важных областей:
- Обнаружение уязвимостей. Команды безопасности могут использовать Mangle для моделирования политик безопасности и кодовых баз как набора фактов и правил.
- Анализ зависимостей программного обеспечения. Mangle подходит для навигации по сложностям современных цепочек поставок программного обеспечения.
- Моделирование графов знаний. Язык предоставляет мощный инструмент для построения и запросов графов знаний.
Доступность для разработчиков
Реализовав Mangle в виде библиотеки Go, Google обеспечила его лёгкую интеграцию в широкий спектр существующих приложений и инструментов анализа. Это позволяет разработчикам использовать мощные возможности дедуктивного запроса непосредственно в своих проектах.
Выпуск Mangle предоставляет мощный новый инструмент для любого разработчика, SRE или специалиста по безопасности, которому необходимо разобраться в сложной распределённой информации. Сочетая декларативную элегантность Datalog с практическими функциями, необходимыми для современного программного обеспечения, Google предложила решение, призванное упростить всё: от анализа безопасности до управления инфраструктурой.
Ознакомьтесь с [GitHub-страницей](https://github.com/). Не стесняйтесь посетить нашу [GitHub-страницу](https://github.com/) для ознакомления с учебными пособиями, кодами и ноутбуками. Также подписывайтесь на нас в [Twitter](https://twitter.com/) и присоединяйтесь к нашему [ML SubReddit](https://www.reddit.com/r/MachineLearning/) с более чем 100 000 участников и подписывайтесь на нашу [рассылку](https://www.marktechpost.com/newsletter).
1. Какие основные проблемы решает Mangle в современных программных экосистемах?
Mangle решает проблему фрагментации данных, которая заключается в том, что информация о зависимостях, уязвимостях, конфигурациях и инфраструктуре хранится в разных форматах и местах. Mangle предоставляет унифицированную декларативную среду для комплексного анализа этой информации.
2. Какие функции Mangle делает его особенно подходящим для обнаружения уязвимостей?
Mangle подходит для обнаружения уязвимостей благодаря поддержке рекурсивных правил, которые позволяют разработчикам элегантно выражать транзитивные отношения. Это полезно для отслеживания полного дерева зависимостей проекта или отображения прав доступа в иерархии, что помогает в выявлении потенциальных уязвимостей.
3. Какие практические расширения включает в себя Mangle для выполнения более сложных вычислений?
Mangle включает практические расширения, такие как функции агрегирования (например, count, sum) и возможность вызова внешних функций. Эти функции позволяют выполнять более сложные вычисления и интегрироваться с существующими кодовыми базами.
4. В каких областях Mangle может быть особенно полезен?
Mangle может быть особенно полезен в следующих областях:
* обнаружение уязвимостей (команды безопасности могут использовать Mangle для моделирования политик безопасности и кодовых баз как набора фактов и правил);
* анализ зависимостей программного обеспечения (Mangle подходит для навигации по сложностям современных цепочек поставок программного обеспечения);
* моделирование графов знаний (язык предоставляет мощный инструмент для построения и запросов графов знаний).
5. Как реализация Mangle в виде библиотеки Go влияет на его доступность для разработчиков?
Реализация Mangle в виде библиотеки Go обеспечивает его лёгкую интеграцию в широкий спектр существующих приложений и инструментов анализа. Это позволяет разработчикам использовать мощные возможности дедуктивного запроса непосредственно в своих проектах.