out-of-tree v1.0.0 - mga tool para sa pagbuo at pagsubok ng mga pagsasamantala at Linux kernel modules


out-of-tree v1.0.0 - mga tool para sa pagbuo at pagsubok ng mga pagsasamantala at Linux kernel modules

Ang unang (v1.0.0) na bersyon ng out-of-tree, isang toolkit para sa pagbuo at pagsubok ng mga pagsasamantala at Linux kernel modules, ay inilabas.

Ang out-of-tree ay nagbibigay-daan sa iyo na i-automate ang ilang nakagawiang pagkilos upang lumikha ng mga kapaligiran para sa pag-debug ng mga kernel module at pagsasamantala, pagbuo ng mga istatistika ng pagiging maaasahan ng pagsasamantala, at nagbibigay din ng kakayahang madaling isama sa CI (Continuous Integration).

Ang bawat kernel module o exploit ay inilalarawan ng isang file na .out-of-tree.toml, na tumutukoy sa impormasyon tungkol sa kinakailangang kapaligiran at (kung ito ay isang pagsasamantala) mga paghihigpit sa pagpapatakbo sa pagkakaroon ng ilang mga pagpapagaan sa seguridad.

Binibigyang-daan ka rin ng toolkit na tukuyin ang mga partikular na bersyon ng kernel na apektado ng isang kahinaan (gamit ang --guess command), at maaari ding gamitin upang pasimplehin ang mga binary na paghahanap para sa isang partikular na commit.

Nasa ibaba ang isang listahan ng mga pagbabago mula noong bersyon v0.2.

Idinagdag

  • Ipinatupad ang kakayahang limitahan ang bilang ng nabuong (out-of-tree kernel autogen) kernels (batay sa paglalarawan sa .out-of-tree.toml) at check run (out-of-tree pew) gamit ang β€”max= X parameter.

  • Bagong utos ng genall, na nagpapahintulot sa iyo na bumuo ng lahat ng mga kernel para sa isang partikular na pamamahagi at bersyon.

  • Ang lahat ng mga log ay naka-imbak na ngayon sa sqlite3 database. Ipinatupad ang mga utos para sa mga simpleng query na madalas na kailangan, pati na rin ang pag-export ng data sa json at markdown.

  • Ipinatupad ang pagkalkula ng posibilidad ng matagumpay na operasyon (batay sa mga nakaraang paglulunsad).

  • Kakayahang mag-save ng mga resulta ng build (bagong --dist parameter para sa out-of-tree pew command)

  • Suporta para sa pagbuo ng metadata para sa mga kernel na naka-install sa host system, pati na rin ang direktang pagbuo sa host.

  • Suporta para sa mga kernel ng third party.

  • Awtomatikong naghahanap na ngayon ang out-of-tree debug environment para sa mga simbolo ng pag-debug sa host system.

  • Idinagdag ang kakayahang pamahalaan ang mga pagpapagaan sa seguridad gamit ang paganahin/paganahin ang mga flag na KASLR, SMEP, SMAP at KPTI habang nagde-debug.

  • Idinagdag ang --threads=N na parameter sa out-of-tree pew testing command, na maaaring gamitin upang tukuyin ang bilang ng mga thread kung saan bubuo/patakbuhin at subukan ang mga pagsasamantala at kernel module.

  • Ang kakayahang magtakda ng tag na itatala sa log at pagkatapos ay magagamit upang kalkulahin ang mga istatistika.

  • Nagdagdag ng kakayahang tukuyin ang bersyon ng kernel nang hindi gumagamit ng mga regular na expression.

  • Bagong pack command, na ginagamit para sa mass testing ng mga pagsasamantala at kernel module sa mga subdirectory.

  • Sa configuration (.out-of-tree.toml) para sa exploit at kernel module, ang kakayahang i-disable ang KASLR, SMEP, SMAP at KPTI ay naidagdag, pati na rin tukuyin ang kinakailangang bilang ng mga core at memory.

  • Ngayon ang mga imahe (rootfs) ay awtomatikong na-load habang tumatakbo ang kernel autogen. hindi na kailangan ang bootstrap.

  • Suporta para sa mga kernel ng CentOS.

Pagbabago

  • Ngayon, kung walang larawan (rootfs) para sa kinakailangang bersyon ng pamamahagi, susubukan ng out-of-tree na gamitin ang larawan ng pinakamalapit na bersyon. Halimbawa, ang imahe ng Ubuntu 18.04 para sa Ubuntu 18.10.

  • Ngayon ang mga pagsubok para sa mga kernel module ay hindi ituturing na mga pagkabigo kung sila ay nawawala (walang mga pagsubok - walang mga error!).

  • Ngayon ang out-of-tree ay magbabalik ng negatibong error code kung hindi bababa sa isang yugto (bumuo, ilunsad o subukan) sa alinman sa mga core ay nabigo.

  • Ang proyekto ay lumipat sa paggamit ng mga module ng Go, ang pagbuo na may GO111MODULE=on ay mas gusto na ngayon.

  • Nagdagdag ng mga default na pagsubok.

  • Gagamitin na ngayon ang Test.sh bilang default kung ang assembly sa ${TARGET}_test ay hindi ipinatupad sa Makefile.

  • Hindi na na-clear ang kernel log bago patakbuhin ang kernel module o exploit. Ang ilan sa mga pagsasamantala ay gumagamit ng kernel base leak sa dmesg upang i-bypass ang KASLR, kaya maaaring masira ng paglilinis ang ipinatupad na lohika ng pagsasamantala.

  • Ginagamit na ngayon ng qemu/kvm ang lahat ng kakayahan ng host processor.

Inalis

  • Pabrika ng Kernel ganap na tinanggal dahil sa pagpapatupad ng pagbuo ng kernel batay sa mga incrementally na-update na Dockerfiles.

  • Walang ibang ginagawa ang bootstrap. Aalisin ang command sa susunod na release.

Itinama

  • Sa macOS, hindi na kailangang tumakbo ang GNU coreutils.

  • Ang mga pansamantalang file ay inilipat sa ~/.out-of-tree/tmp/ dahil sa mga error sa pag-mount sa loob ng docker sa ilang system.

Pinagmulan: linux.org.ru

Magdagdag ng komento