die erste bedeutende Veröffentlichung des Werkzeugs , das die Automatisierung von Kompilierung und Test von Kernelmodulen oder die Überprüfung der Funktionsfähigkeit von Exploits mit verschiedenen Versionen des Linux-Kernels ermöglicht. Out-of-tree erstellt eine virtuelle Umgebung (verwendet QEMU und Docker) mit einer beliebigen Kernelversion und führt die angegebenen Aktionen zur Kompilierung, Test und Ausführung von Modulen oder Exploits durch. Das Test-Skript kann mehrere Kernelversionen gleichzeitig abdecken (beispielsweise kann die Funktionsfähigkeit eines Exploits oder eines in Entwicklung befindlichen Moduls mit verschiedenen Kernelversionen getestet werden). Der Projektcode ist in Go geschrieben und unter der AGPLv3-Lizenz.
In der neuen Version wurde der Befehl genall hinzugefügt, um alle im Skript definierten Kernelversionen für die angegebene Distribution zu generieren. Befehle zur Analyse der Kompilierungsprotokolle wurden hinzugefügt, und die Protokolle werden nun in einer SQLite-Datenbank gespeichert (es gibt Unterstützung für den Export in Markdown und JSON). Die Unterstützung für die Kompilierung in der Host-Umgebung, die Generierung von Informationen über die Kernel der Host-Systeme und die Erstellung eigener Kernel-Editionen wurde hinzugefügt.
Die Funktionen zum schnellen Aktivieren/Deaktivieren der Schutzmodi kaslr, smep, smap und kpti wurden im Kernel implementiert. Optionen zur Steuerung der maximalen Anzahl von Build-Aufträgen und parallelen Threads für Build, Test und Start wurden hinzugefügt. Die Unterstützung für Kernel aus CentOS wurde implementiert.
speziellen Distribution Projekts , das ein Framework für die Organisation der Entwicklung und des Tests von Kerneln unter Verwendung des DevOps-Modells anbietet. Kdevops ermöglicht es, schnell eine Umgebung zur Anwendung verschiedener Test-Frameworks mit dem Kernel zu erstellen, ohne Zeit für die Vorbereitung der notwendigen Komponenten und Anpassungen aufzuwenden. Der Start dieser Umgebungen mit dem erforderlichen Kernel erfolgt in eigenen virtuellen Maschinen mithilfe von oder über externe Cloud-Anbieter mithilfe von . Für die Bestimmung der Konfiguration und der notwendigen Komponenten der Umgebungen wird Ansible verwendet.
Quelle: opennet.ru
