out-of-tree v1.0.0 - ark foar it ûntwikkeljen en testen fan eksploaten en Linux kernel modules


out-of-tree v1.0.0 - ark foar it ûntwikkeljen en testen fan eksploaten en Linux kernel modules

De earste (v1.0.0) ferzje fan out-of-tree, in toolkit foar it ûntwikkeljen en testen fan eksploaten en Linux kernel modules, waard frijlitten.

out-of-tree kinne jo automatisearje guon routine aksjes te meitsjen omjouwings foar debuggen kernel modules en eksploitaasje, generearje eksploitaasje betrouberens statistiken, en ek jout de mooglikheid om maklik te yntegrearjen yn CI (Continuous Integration).

Elke kernel module of eksploitaasje wurdt beskreaun troch in triem .out-of-tree.toml, dy't spesifisearret ynformaasje oer de fereaske omjouwing en (as it is in eksploitaasje) beheinings op operaasje yn it bywêzen fan bepaalde feiligens mitigations.

De toolkit lit jo ek spesifike kearnferzjes identifisearje dy't beynfloede binne troch in kwetsberens (mei it kommando --guess), en kin ek brûkt wurde om binêre sykopdrachten foar in spesifike commit te ferienfâldigjen.

Hjirûnder is in list mei feroarings sûnt ferzje v0.2.

Tafoege

  • Implementearre de mooglikheid om it oantal generearre (out-of-tree kernel autogen) kernels te beheinen (basearre op 'e beskriuwing yn .out-of-tree.toml) en kontrolearje runs (out-of-tree pew) mei de —max= X parameter.

  • Nij genall kommando, wêrtroch jo alle kernels kinne generearje foar in spesifike distribúsje en ferzje.

  • Alle logs wurde no opslein yn 'e sqlite3-database. Implementearre kommando's foar ienfâldige faak nedige fragen, lykas it eksportearjen fan gegevens nei json en markdown.

  • Implementearre berekkening fan 'e kâns op suksesfolle operaasje (basearre op eardere lansearringen).

  • Mooglikheid om buildresultaten te bewarjen (nije --dist parameter foar out-of-tree pew kommando)

  • Stipe foar it generearjen fan metadata foar kernels ynstalleare op it hostsysteem, en ek direkt op 'e host te bouwen.

  • Stipe foar kernels fan tredden.

  • De out-of-tree debug-omjouwing siket no automatysk nei debuggen-symboalen op it hostsysteem.

  • De mooglikheid tafoege om feiligensbeheiningen te behearjen mei flaggen KASLR, SMEP, SMAP en KPTI ynskeakelje/útskeakelje tidens debuggen.

  • De parameter --threads=N tafoege oan it testkommando bûten de beam pew, dat kin wurde brûkt om it oantal triedden op te jaan wêryn eksploitanten en kernelmodules boud/útfierd wurde moatte.

  • De mooglikheid om in tag yn te stellen dy't sil wurde opnaam yn it log en kin dan brûkt wurde om statistiken te berekkenjen.

  • De mooglikheid tafoege om de kernelferzje oan te jaan sûnder reguliere útdrukkingen te brûken.

  • Nij pakketkommando, brûkt foar massatesten fan eksploaten en kernelmodules yn submappen.

  • Yn 'e konfiguraasje (.out-of-tree.toml) foar de eksploitaasje- en kernelmodule is de mooglikheid om KASLR, SMEP, SMAP en KPTI út te skeakeljen tafoege, en ek it fereaske oantal kearnen en ûnthâld oantsjutte.

  • No wurde ôfbyldings (rootfs) automatysk laden wylst kernel autogen rint. bootstrap is net mear nedich.

  • Stipe foar CentOS kernels.

Feroarings

  • No, as d'r gjin ôfbylding (rootfs) is foar de fereaske ferzje fan 'e distribúsje, sil out-of-tree besykje de ôfbylding fan 'e tichtste ferzje te brûken. Bygelyks, Ubuntu 18.04-ôfbylding foar Ubuntu 18.10.

  • No wurde testen foar kernelmodules net beskôge as mislearrings as se ûntbrekke (gjin tests - gjin flaters!).

  • No sil out-of-tree in negative flaterkoade weromjaan as op syn minst ien poadium (bou, lansearje of test) op ien fan 'e kearnen mislearre.

  • It projekt is oergien op it brûken fan Go-modules, bouwen mei GO111MODULE=oan hat no de foarkar.

  • Standerttests tafoege.

  • Test.sh sil no standert brûkt wurde as de gearstalling yn ${TARGET}_test net ymplementearre is yn 'e Makefile.

  • It kernellog wurdt net mear wiske foardat in kernelmodule of eksploitaasje wurdt útfierd. Guon fan 'e eksploaten brûke in kernelbasislek yn dmesg om KASLR te omgean, sadat opromjen de ymplementeare logika fan 'e eksploitaasje kin brekke.

  • qemu/kvm brûkt no alle mooglikheden fan de hostprosessor.

Fuorthelle

  • Kernel Factory folslein fuortsmiten fanwege de ymplemintaasje fan kernelgeneraasje basearre op inkrementeel bywurke Dockerfiles.

  • bootstrap docht neat oars. It kommando sil fuortsmiten wurde yn 'e folgjende release.

Korrizjearre

  • Op macOS is GNU coreutils net langer nedich om te rinnen.

  • Tydlike triemmen binne ferpleatst nei ~/.out-of-tree/tmp/ fanwege mounting flaters binnen docker op guon systemen.

Boarne: linux.org.ru

Add a comment