Подготовлен (https://github.com/jollheef/out-of-tree/releases/tag/v0.2) выпуск инструментария out-of-tree 0.2 (https://out-of-tree.io/), позволяющего автоматизировать сборку и тестирование модулей ядра или проверку работоспособности эксплоитов с различными версиями ядра Linux. Out-of-tree формирует виртуальное окружение (используется QEMU и Docker) с произвольной версией ядра и выполняет указанные действия по сборке, тестированию и запуску модулей или эксплоитов. Код проекта написан на языке Go и распространяется (https://github.com/jollheef/out-of-tree/) под лицензией AGPLv3.
Сценарий проверки задаётся в файле .out-of-tree.toml (https://github.com/jollheef/out-of-tree/blob/master/examples...) и может охватывать сразу несколько выпусков ядра (например, можно протестировать работу эксплоита или разрабатываемого модуля с разными версиями ядра).
Пример сценария ".out-of-tree.toml" для выявления версий ядра 4.4.x и 4.8.x, в которых работоспособен определённый эксплоит:
name = "CVE-XXXX-YYYYY exploit"
type = "exploit" # or "module" for LKM[[supported_kernels]]
distro_type = "Ubuntu"
distro_release = "16.04"
release_mask = "4.4.0-(1|2|3|4)-.*"[[supported_kernels]]
distro_type = "Ubuntu"
distro_release = "16.04"
release_mask = "4.8.0-(1|2|3|4|5|6|7|8|9|10)-.*"Для сборки ядер для тестирования следует перейти в каталог с файлом .out-of-tree.toml и выполнить:
out-of-tree kernel autogen
Cборка и запуск тестируемого эксплоита или модуля ядра:out-of-tree pew
Проверка уже собранного эксплоита:out-of-tree pew --binary some_exploit --test some_exploit_test
Выявления версий ядра, подверженных уязвимости:
out-of-tree pew --guess
URL: https://github.com/jollheef/out-of-tree/releases
Новость: https://www.opennet.me/opennews/art.shtml?num=49695
А kerneltotal будет?
А что это?
это название гипотетического веб-сервиса, имеющего интерфейс, напоминающий virustotal. Грузишь файл - получаешь список ядер, на которых работает. Было бы полезно для тестирования совместимости с прогами для телефонов. Напр. последние дистры в контейнер не встанут на древних девайсах - ядро протухло, но к нему блобы гвоздями прибиты, хрен обновишь.
Странно это все вы gitlab ci можете попробовать сделает тоже самое что и ваша тулза. Хотя конечно для тех кому не нужен ci она наверное выход. Но я мало понимаю зачем нужны тесты для тех кому ci не нужен.
Когда садиться мы за парт, мы доставать тетрадь и ручек.
И зачем шутить над человеком не нативом русском языке?
Не вижу причин не сочетать оба инструмента. CI для интеграции, утилита отрабатывает на низком уровне.
Идеально для создателей бинарных блобов и "обвязок" для сборки с конкретной версией ядра Linux
идеально для создания эксплойтов. вам же пример показали.авторы бинарных блобов обычно работают за деньги, и им приходится тестировать их _работоспособность_, а не "компилируетца".
> бинарных блобовЭто как cd-диск?:)
Пишите блоб, чо вы. Кому надо понятно, кому не понятно - пусть гуглит.
По гиту видно что автор мечтает написать хороший опен сорс и стать известным. Ну так напиши что бы софт решал какую-то проблему.
> Ну так напиши что бы софт решал какую-то проблему.Ты кажется, совсем ничего не знаешь про разработку модулей ядра, которые должны работать одновременно и на 2.6.18, и на 2.6.32, и на 4.х, если для тебя сабж "не решает какую-то проблему".
Без подобной автоматизации подобные задачи превращаются в АДъ.
Не благодари https://github.com/ligurio/awesome-ci
https://snapcraft.io/out-of-tree> amd64, arm64, armhf, i386, ppc64el, s390x
Ну ничего себе так обдолбаться... Я даже одно слово тут не знаю.
Как-то пробовал кроссплатформенную сборку в snapcraft, ну там знатно повозится надо. В итоге даже пришлось Raspberry Pi брать для сборки под armhf, чтобы если обмазываться, то обмазываться.
А на i386 забил в итоге - один процент, или сколько там.
>> amd64, arm64, armhf, i386, ppc64el, s390x
> Ну ничего себе так обдолбаться... Я даже одно слово тут не знаю.Так golang же. Там для кросс-компиляции достаточно указать GOARCH и GOOS, то есть компилятор является по умолчанию и кросс-компилятором из коробки
А docker ему для тестирования ядер зачем вдруг понадобился?
> А docker ему для тестирования ядер зачем вдруг понадобился?Там схема (https://github.com/jollheef/out-of-tree/blob/master/kernel.go) получения ядер/хидеров и сборки работает на основе генерации контейнеров.
> out-of-tree 0.2Это не первая версия программы, значит, в тексте новости необходимо указать изменения. Иначе похоже на рекламу.
> Иначе похоже на рекламу.А что плохого в рекламе свободно распространяемого ПО?
ни фига я жадный. закопирайчу все свои проги и буду сидеть на них))) ахахах
> Это не первая версия программы, значит, в тексте новости необходимо указать изменения.
> Иначе похоже на рекламу.Это именно первый публичный выпуск, сразу опубликовали 0.2, а 0.1 пропустили.
https://github.com/jollheef/out-of-tree/tags