The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Доступен out-of-tree 0.2, инструментарий для проверки кода с разными ядрами Linux

02.12.2018 10:30

Подготовлен выпуск инструментария out-of-tree 0.2, позволяющего автоматизировать сборку и тестирование модулей ядра или проверку работоспособности эксплоитов с различными версиями ядра Linux. Out-of-tree формирует виртуальное окружение (используется QEMU и Docker) с произвольной версией ядра и выполняет указанные действия по сборке, тестированию и запуску модулей или эксплоитов. Код проекта написан на языке Go и распространяется под лицензией AGPLv3.

Сценарий проверки задаётся в файле .out-of-tree.toml и может охватывать сразу несколько выпусков ядра (например, можно протестировать работу эксплоита или разрабатываемого модуля с разными версиями ядра). Пример сценария ".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


  1. Главная ссылка к новости (https://github.com/jollheef/ou...)
  2. OpenNews: Уязвимость в ядре Linux, позволяющая обойти ограничения user namespace
  3. OpenNews: Опубликован эксплоит для уязвимости в подсистеме vmacache ядра Linux
  4. OpenNews: Локальная root-уязвимость в ядре Linux
  5. OpenNews: Уязвимость в ядре Linux, потенциально позволяющая поднять привилегии
  6. OpenNews: Проект Openwall подготовил модуль для защиты от эксплуатации уязвимостей в ядре Linux
Лицензия: CC-BY
Тип: Программы
Ключевые слова: kernel, build, test, module
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (21) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.2, Аноним (2), 11:03, 02/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А kerneltotal будет?
     
     
  • 2.15, Аноним (15), 17:14, 02/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А что это?
     
     
  • 3.22, Аноним (2), 22:10, 04/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    это название гипотетического веб-сервиса, имеющего интерфейс, напоминающий virustotal. Грузишь файл - получаешь список ядер, на которых работает. Было бы полезно для тестирования совместимости с прогами для телефонов. Напр. последние дистры в контейнер не встанут на древних девайсах - ядро протухло, но к нему блобы гвоздями прибиты, хрен обновишь.
     

  • 1.3, Аноним (3), 11:19, 02/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Странно это все вы gitlab ci можете попробовать сделает тоже самое что и ваша тулза. Хотя конечно для тех кому не нужен ci она наверное выход. Но я мало понимаю зачем нужны тесты для тех кому ci не нужен.
     
     
  • 2.10, Аноним (10), 15:11, 02/12/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Когда садиться мы за парт, мы доставать тетрадь и ручек.
     
     
  • 3.18, Аноним (18), 05:24, 03/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И зачем шутить над человеком не нативом русском языке?
     
  • 2.19, anonymous (??), 09:51, 03/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Не вижу причин не сочетать оба инструмента. CI для интеграции, утилита отрабатывает на низком уровне.
     

  • 1.4, Аноним (4), 11:22, 02/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Идеально для создателей бинарных блобов и "обвязок" для сборки с конкретной версией ядра Linux
     
     
  • 2.6, пох (?), 11:35, 02/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    идеально для создания эксплойтов. вам же пример показали.

    авторы бинарных блобов обычно работают за деньги, и им приходится тестировать их _работоспособность_, а не "компилируетца".

     
  • 2.14, Аноним (14), 16:44, 02/12/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > бинарных блобов

    Это как cd-диск?:)
    Пишите блоб, чо вы. Кому надо понятно, кому не понятно - пусть гуглит.

     

  • 1.5, Аноним (3), 11:28, 02/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    По гиту видно что автор мечтает написать хороший опен сорс и стать известным. Ну так напиши что бы софт решал какую-то проблему.
     
     
  • 2.13, Аноним (15), 15:36, 02/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну так напиши что бы софт решал какую-то проблему.

    Ты кажется, совсем ничего не знаешь про разработку модулей ядра, которые должны работать одновременно и на 2.6.18, и на 2.6.32, и на 4.х, если для тебя сабж "не решает какую-то проблему".

    Без подобной автоматизации подобные задачи превращаются в АДъ.

     
     
  • 3.17, Аноним (17), 23:12, 02/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не благодари https://github.com/ligurio/awesome-ci
     

  • 1.7, iPony (?), 11:50, 02/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    https://snapcraft.io/out-of-tree

    > amd64, arm64, armhf, i386, ppc64el, s390x

    Ну ничего себе так обдолбаться... Я даже одно слово тут не знаю.

    Как-то пробовал кроссплатформенную сборку в snapcraft, ну там знатно повозится надо. В итоге даже пришлось Raspberry Pi брать для сборки под armhf, чтобы если обмазываться, то обмазываться.
    А на i386 забил в итоге - один процент, или сколько там.

     
     
  • 2.12, Аноним (15), 15:33, 02/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> amd64, arm64, armhf, i386, ppc64el, s390x
    > Ну ничего себе так обдолбаться... Я даже одно слово тут не знаю.

    Так golang же. Там для кросс-компиляции достаточно указать GOARCH и GOOS, то есть компилятор является по умолчанию и кросс-компилятором из коробки

     

  • 1.8, имя (?), 14:36, 02/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А docker ему для тестирования ядер зачем вдруг понадобился?
     
     
  • 2.16, Аноним (15), 21:34, 02/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А docker ему для тестирования ядер зачем вдруг понадобился?

    Там схема (https://github.com/jollheef/out-of-tree/blob/master/kernel.go) получения ядер/хидеров и сборки работает на основе генерации контейнеров.

     

  • 1.9, Андрей (??), 14:45, 02/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > out-of-tree 0.2

    Это не первая версия программы, значит, в тексте новости необходимо указать изменения. Иначе похоже на рекламу.

     
     
  • 2.11, Аноним (15), 15:29, 02/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Иначе похоже на рекламу.

    А что плохого в рекламе свободно распространяемого ПО?

     
     
  • 3.20, Анонимчжан (?), 04:54, 04/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    ни фига я жадный. закопирайчу все свои проги и буду сидеть на них))) ахахах
     
  • 2.21, Аноним (21), 07:56, 04/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Это не первая версия программы, значит, в тексте новости необходимо указать изменения.
    > Иначе похоже на рекламу.

    Это именно первый публичный выпуск, сразу опубликовали 0.2, а 0.1 пропустили.
    https://github.com/jollheef/out-of-tree/tags

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру