out-of-tree v1.0.0 - инструменти за разработване и тестване на експлойти и модули на ядрото на Linux


out-of-tree v1.0.0 - инструменти за разработване и тестване на експлойти и модули на ядрото на Linux

Първата (v1.0.0) версия на out-of-tree, набор от инструменти за разработване и тестване на експлойти и модули на ядрото на Linux, беше пусната.

out-of-tree ви позволява да автоматизирате някои рутинни действия за създаване на среди за отстраняване на грешки в модули на ядрото и експлойти, генериране на статистики за надеждност на експлойтите, а също така предоставя възможност за лесно интегриране в CI (непрекъсната интеграция).

Всеки модул на ядрото или експлойт се описва от файл .out-of-tree.toml, който определя информация за необходимата среда и (ако е експлойт) ограничения за работа при наличието на определени мерки за сигурност.

Инструментариумът също така ви позволява да идентифицирате конкретни версии на ядрото, засегнати от уязвимост (с помощта на командата --guess), и може също да се използва за опростяване на двоични търсения за конкретен ангажимент.

По-долу е даден списък на промените от версия v0.2.

Добавен

  • Внедрена е възможността за ограничаване на броя на генерираните (автоген на ядрото извън дървото) ядра (въз основа на описанието в .out-of-tree.toml) и проверка на изпълнението (извън дървовидната пейка), използвайки —max= X параметър.

  • Нова команда genall, която ви позволява да генерирате всички ядра за конкретна дистрибуция и версия.

  • Всички регистрационни файлове вече се съхраняват в базата данни sqlite3. Внедрени команди за прости често необходими заявки, както и експортиране на данни в json и markdown.

  • Внедрено изчисляване на вероятността за успешна операция (въз основа на предишни изстрелвания).

  • Възможност за запазване на резултатите от изграждането (нов параметър --dist за команда pew извън дървото)

  • Поддръжка за генериране на метаданни за ядра, инсталирани на хост системата, както и изграждане директно на хоста.

  • Поддръжка на ядра на трети страни.

  • Средата за отстраняване на грешки извън дървото вече автоматично търси символи за отстраняване на грешки в хост системата.

  • Добавена е възможност за управление на смекчаване на сигурността с флагове за активиране/деактивиране KASLR, SMEP, SMAP и KPTI по ​​време на отстраняване на грешки.

  • Добавен е параметърът --threads=N към командата за тестване на pew извън дървото, която може да се използва за указване на броя нишки, в които да се изграждат/изпълняват и тестват експлойти и модули на ядрото.

  • Възможност за задаване на етикет, който ще бъде записан в дневника и след това може да се използва за изчисляване на статистика.

  • Добавена е възможност за указване на версията на ядрото без използване на регулярни изрази.

  • Нова команда за пакетиране, използвана за масово тестване на експлойти и модули на ядрото в поддиректории.

  • В конфигурацията (.out-of-tree.toml) за експлойта и модула на ядрото е добавена възможност за деактивиране на KASLR, SMEP, SMAP и KPTI, както и задаване на необходимия брой ядра и памет.

  • Сега изображенията (rootfs) се зареждат автоматично, докато автоматичното генериране на ядрото работи. bootstrap вече не е необходим.

  • Поддръжка на CentOS ядра.

промени

  • Сега, ако няма изображение (rootfs) за необходимата версия на дистрибуцията, out-of-tree ще се опита да използва изображението на най-близката версия. Например изображение на Ubuntu 18.04 за Ubuntu 18.10.

  • Сега тестовете за модули на ядрото няма да се считат за грешки, ако липсват (няма тестове - няма грешки!).

  • Сега out-of-tree ще върне отрицателен код за грешка, ако поне един етап (изграждане, стартиране или тест) на някое от ядрата е неуспешен.

  • Проектът е преминал към използване на модули Go, изграждането с GO111MODULE=on вече е за предпочитане.

  • Добавени тестове по подразбиране.

  • Test.sh вече ще се използва по подразбиране, ако асемблирането в ${TARGET}_test не е имплементирано в Makefile.

  • Регистърът на ядрото вече не се изчиства преди стартиране на модул на ядрото или експлойт. Някои от експлойтите използват изтичане на база на ядрото в dmesg, за да заобиколят KASLR, така че почистването може да наруши внедрената логика на експлойта.

  • qemu/kvm вече използва всички възможности на хост процесора.

заличава

  • Фабрика на ядрото напълно премахнат поради внедряването на генериране на ядро ​​въз основа на постепенно актуализирани Dockerfiles.

  • bootstrap не прави нищо друго. Командата ще бъде премахната в следващото издание.

Поправено

  • В macOS GNU coreutils вече не се изисква да работи.

  • Временните файлове са преместени в ~/.out-of-tree/tmp/ поради грешки при монтиране в докер на някои системи.

Източник: linux.org.ru

Добавяне на нов коментар