out-of-tree v1.0.0 - tools voor het ontwikkelen en testen van exploits en Linux-kernelmodules


out-of-tree v1.0.0 - tools voor het ontwikkelen en testen van exploits en Linux-kernelmodules

De eerste versie (v1.0.0) van out-of-tree, een toolkit voor het ontwikkelen en testen van exploits en Linux-kernelmodules, werd uitgebracht.

out-of-tree stelt u in staat enkele routinematige acties te automatiseren om omgevingen te creëren voor het debuggen van kernelmodules en exploits, het genereren van statistieken over de betrouwbaarheid van exploits, en biedt ook de mogelijkheid om eenvoudig te integreren in CI (Continuous Integration).

Elke kernelmodule of exploit wordt beschreven door een bestand .out-of-tree.toml, dat informatie specificeert over de vereiste omgeving en (als het een exploit is) beperkingen op de werking in de aanwezigheid van bepaalde beveiligingsmaatregelen.

Met de toolkit kun je ook specifieke kernelversies identificeren die door een kwetsbaarheid zijn getroffen (met behulp van het commando --guess), en kan ook worden gebruikt om binaire zoekopdrachten voor een specifieke commit te vereenvoudigen.

Hieronder vindt u een lijst met wijzigingen sinds versie v0.2.

Toegevoegd door

  • De mogelijkheid geïmplementeerd om het aantal gegenereerde (out-of-tree kernel autogen) kernels te beperken (gebaseerd op de beschrijving in .out-of-tree.toml) en runs te controleren (out-of-tree kernel pew) met behulp van de —max= X-parameter.

  • Nieuwe genall-opdracht, waarmee u alle kernels voor een specifieke distributie en versie kunt genereren.

  • Alle logboeken worden nu opgeslagen in de sqlite3-database. Geïmplementeerde opdrachten voor eenvoudige, vaak benodigde vragen, evenals het exporteren van gegevens naar json en markdown.

  • Geïmplementeerde berekening van de waarschijnlijkheid van een succesvolle operatie (op basis van eerdere lanceringen).

  • Mogelijkheid om buildresultaten op te slaan (nieuwe parameter --dist voor out-of-tree pew-opdracht)

  • Ondersteuning voor het genereren van metadata voor kernels die op het hostsysteem zijn geïnstalleerd, en voor het rechtstreeks bouwen op de host.

  • Ondersteuning voor kernels van derden.

  • De debug-omgeving buiten de boom zoekt nu automatisch naar foutopsporingssymbolen op het hostsysteem.

  • De mogelijkheid toegevoegd om beveiligingsmaatregelen te beheren met de vlaggen KASLR, SMEP, SMAP en KPTI in-/uitschakelen tijdens foutopsporing.

  • De parameter --threads=N is toegevoegd aan het out-of-tree pew testcommando, dat kan worden gebruikt om het aantal threads te specificeren waarin exploits en kernelmodules moeten worden gebouwd/uitgevoerd en getest.

  • De mogelijkheid om een ​​tag in te stellen die in het logboek wordt vastgelegd en vervolgens kan worden gebruikt om statistieken te berekenen.

  • De mogelijkheid toegevoegd om de kernelversie te specificeren zonder reguliere expressies te gebruiken.

  • Nieuwe pack-opdracht, gebruikt voor het massaal testen van exploits en kernelmodules in submappen.

  • In de configuratie (.out-of-tree.toml) voor de exploit- en kernelmodule is de mogelijkheid toegevoegd om KASLR, SMEP, SMAP en KPTI uit te schakelen, en om het vereiste aantal cores en geheugen op te geven.

  • Nu worden afbeeldingen (rootfs) automatisch geladen terwijl kernel autogen actief is. bootstrap is niet langer nodig.

  • Ondersteuning voor CentOS-kernels.

Veranderingen

  • Als er nu geen afbeelding (rootfs) is voor de vereiste versie van de distributie, zal out-of-tree proberen de afbeelding van de dichtstbijzijnde versie te gebruiken. Bijvoorbeeld Ubuntu 18.04-afbeelding voor Ubuntu 18.10.

  • Nu worden tests voor kernelmodules niet als mislukkingen beschouwd als ze ontbreken (geen tests - geen fouten!).

  • Nu zal out-of-tree een negatieve foutcode retourneren als ten minste één fase (build, launch of test) op een van de cores mislukt.

  • Het project is overgestapt op het gebruik van Go-modules, bouwen met GO111MODULE=aan heeft nu de voorkeur.

  • Standaardtests toegevoegd.

  • Test.sh wordt nu standaard gebruikt als de assembly in ${TARGET}_test niet in de Makefile is geïmplementeerd.

  • Het kernellogboek wordt niet langer gewist voordat een kernelmodule of exploit wordt uitgevoerd. Sommige exploits gebruiken een kernelbasislek in dmesg om KASLR te omzeilen, dus het opruimen kan de geïmplementeerde logica van de exploit doorbreken.

  • qemu/kvm gebruikt nu alle mogelijkheden van de hostprocessor.

verwijderde

  • Kernelfabriek volledig verwijderd vanwege de implementatie van kernelgeneratie op basis van stapsgewijs bijgewerkte Dockerfiles.

  • bootstrap doet niets anders. De opdracht wordt in de volgende release verwijderd.

справлено

  • Op macOS is GNU coreutils niet langer vereist om te draaien.

  • Tijdelijke bestanden zijn verplaatst naar ~/.out-of-tree/tmp/ vanwege montagefouten in docker op sommige systemen.

Bron: linux.org.ru

Voeg een reactie