Developing and certifying in Coq/MathComp of Datalog optimizations for network verification - IMAG Accéder directement au contenu
Thèse Année : 2021

Developing and certifying in Coq/MathComp of Datalog optimizations for network verification

Développement et certification en Coq/MathComp d'optimisations Datalog pour la vérification réseau

Pierre-Léo Bégay
  • Fonction : Auteur

Résumé

Over the last decades, the world has gone more and more digital. This trend was not refuted in 2020 or 2021, as professional and personal services are increasingly provided and accessed through computers, tablets and mobile devices. This intense digital shift means that network failures are more costly and prejudicial than ever, let alone critical in many instances. We emphasize that the failures we mention and are interested in do not result from external attacks – which do occur on a weekly, if not daily basis and in industrial proportions –, but are to be seen as bugs.These bugs stem, first and foremost, from the extremely high complexity of network design, which in turn comes from the intrinsically distributed nature of networks. Moreover, networking has run for a long time on a duct tape culture, in the sense that it lacked formal foundations, and the possibilities that the existence and study of such foundations unlock.Over the last ten to fifteen years, researchers with a background in programming language theory have started to take an interest in networking, and how they could apply their theoretical tools and approaches to this field. Combined with the critically increased need for safety (and security), this situation led to the introduction of formal methods for networks. This trend is also fostered by the latest advances in formal methods, both in terms of modeling techniques and computational efficiency (e.g. the existence of fast solvers such as Z3).One such tool that was introduced is Network Optimized Datalog (NoD), a Datalog engine developed at Microsoft and tailored to handle programs that describe, in the form of horn clauses, the behavior of a particular network. Although an interesting step in the desired direction, using this engine requires engineers to manually write encodings of each analyzed network, which in itself is a complex and error-prone process.Moreover, NoD does not scale with naive translations of real-size networks. In practice, the authors work with programs that contain many inlined values, using manual, convoluted, undocumented and unjustified Datalog-level program transformations. This gap in an otherwise remarkable tool led us to work on the design and automatization of such program transformations, this time with a full formalization.However, having a formalization of non-trivial operations is not enough to trust them. The aim of our work has then been the formal verification of these transformations in the Coq proof assistant, using (and slightly extending) an existing Coq implementation of Datalog.Although inspired by network verification, our work is not circumscribed to it. Concretely, the analyses and rewritings we provide can be used – and relevant – in other contexts. Moreover, we believe that this works brings a new insight into the semantics and formal study of Datalog programs, which may serve as the basis of future works in other contexts.
Au cours des dernières décennies, le monde est devenu de plus en plus numérique. Cette tendance ne s’est pas inversée en 2020 ou 2021, les services professionnels et personnels étant de plus en plus fournis et utilisés au travers d’ordinateurs, tablettes ou téléphones portables.Cet intense basculement numérique implique que les pannes réseaux sont plus coûteuses et nuisibles que jamais, voire parfois critiques. Nous insistons sur le fait que les pannes mentionnées et auxquelles nous nous intéressons ne sont pas le résultat d’attaques externes – qui par ailleurs arrivent toutes les semaines, sinon tous les jours et dans des proportions industrielles –, mais sont simplement des bugs.Ces bugs sont avant tout dus à l’incroyable complexité de la conception de réseaux, qui elle-même vient de la nature hautement distribuée de ces derniers. De plus, la communauté réseau s’est longtemps basée sur une culture bricolo, dans le sens où elle ne disposait pas de fondations formelles, et donc des possibilités que l’existence et l’étude de telles fondations permet.Durant les dix à quinze dernières années, des chercheurs et chercheuses avec un passif en théorie des langages de programmation ont commencé à s’intéresser au réseau, et à la façon dont ils pourraient appliquer leurs outils et approches théoriques à ce domaine. Combinée à l’augmentation critique des besoins en sûreté (et sécurité), cette situation a mené à l’introduction de méthodes formelles pour le réseau. Cette tendance a également été renforcée par les dernières avancées en méthodes formelles, à la fois en termes de techniques de modélisation et d’efficacité concrète (voir par exemple les solvers rapides comme Z3).Parmi les outils crées, on trouve Network Optimized Datalog (NoD), un moteur Datalog developpé chez Microsoft conçu pour gérer des programmes qui décrivent, sous la forme de clauses de horn, le comportement d’un réseau donné. Bien qu’étant un pas dans la bonne direction, utiliser ce moteur demande aux ingénieurs réseaux d’écrire manuellement un codage de chaque réseau analysé, ce qui est en soi un processus complexe et risqué.De plus, NoD ne passe pas à l’échelle en utilisant des traductions naïves de réseaux de taille industrielle. En pratique, les auteurs se basent sur des programmes qui contiennent beaucoup de valeurs en dur, en utilisant des transformations (au niveau Datalog) manuelles, pas totalement claires et non-documentées. Cet angle mort dans un outil par ailleurs remarquable nous a poussé à travailler sur la conception et l’automatisation de transformations de programme similaires, cette fois avec une formalisation complète.Cependant, avoir une formalisation d’opérations non-triviales n’est pas suffisant pour avoir confiance en elles. Le but de notre travail a donc été la vérification formelle de cette transformation dans l’assistant de preuve Coq, en utilisant (et étendant légèrement) une implémentation Coq de Datalog préexistante.Bien qu’inspiré par le cadre de la vérification réseau, notre travail n’y est pas circonscrit. Concrètement, les analyses et réécritures que nous proposons peuvent être utilisées – et pertinentes – dans d’autres contextes. De plus, nous pensons que ce travail apporte un nouvel éclairage concernant la sémantique et l’étude formelle de programmes Datalog, éclairage qui pourrait servir comme base de travaux futurs, potentiellement dans d’autres contextes.
Fichier principal
Vignette du fichier
BEGAY_2021_archivage.pdf (1.54 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)

Dates et versions

tel-03643235 , version 1 (15-04-2022)

Identifiants

  • HAL Id : tel-03643235 , version 1

Citer

Pierre-Léo Bégay. Developing and certifying in Coq/MathComp of Datalog optimizations for network verification. Other [cs.OH]. Université Grenoble Alpes [2020-..], 2021. English. ⟨NNT : 2021GRALM052⟩. ⟨tel-03643235⟩
153 Consultations
254 Téléchargements

Partager

Gmail Facebook X LinkedIn More