The OpenNET Project / Index page

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

BumbleBee - инструментарий для упрощения создания и распространения eBPF-программ

11.01.2022 15:13

Компания Solo.io, развивающая продукты для обеспечения работы облачных систем, микросервисов, изолированных контейнеров и бессерверных вычислений, опубликовала открытый инструментарий BumbleBee, нацеленный на упрощение подготовки, распространения и запуска eBPF-программ, выполняемых в специальной виртуальной машине внутри ядра Linux и позволяющих обрабатывать сетевые операции, контролировать доступ и отслеживать работу систем. Код написан на языке Go и распространяется под лицензией Apache 2.0.

BumbleBee даёт возможность упаковать eBPF-программу в виде образа контейнера в формате OCI (Open Container Initiative), который можно запускать на любых системах без перекомпиляции и использования дополнительных компонентов в пространстве пользователя. Взаимодействие с eBPF-кодом в ядре, в том числе обработку поступающих из eBPF-обработчика данных, берёт на себя BumbleBee, который автоматически экспортирует эти данные в виде метрик, гистограмм или логов, доступ к которым можно получить, например, при помощи утилиты curl. Предлагаемый подход позволяет разработчику сосредоточить внимание на написании кода eBPF и не отвлекаться на организацию взаимодействия с этим кодом из пространства пользователя, сборку и загрузку в ядро.

Для управления eBPF-программами предлагается работающая в стиле Docker утилита "bee", при помощи которой можно сразу загрузить интересующий eBPF-обработчик из внешнего репозитория и запустить на локальной системе. Инструментарий позволяет сгенерировать каркас кода на языке Си для eBPF-обработчиков выбранной тематики (в настоящее время поддерживаются только обработчики сетевых и файловых операций, перехватывающих вызовы сетевого стека и файловых систем). На основе сформированного каркаса разработчик может быстро реализовать интересующую его функциональность.

В отличие от BCC (BPF Compiler Collection) в BumbleBee не выполняется полная пересборка кода обработчика для каждой версии ядра Linux (BCC использует компиляцию на лету при помощи Clang при каждом запуске eBPF-программы). Для решения проблем с переносимостью развиваются инструментарии CO-RE и libbpf, позволяющие собирать код только один раз и использовать специальный универсальный загрузчик, адаптирующий загружаемую программу к текущему ядру и типам BTF (BPF Type Format). BumbleBee является надстройкой над libbpf и предоставляет дополнительные типы для автоматической интерпретации и отображения данных, размещаемых в штатных для eBPF map-структурах RingBuffer и HashMap.

Для сборки итоговой eBPF-программы и сохранения в виде OCI-образа достаточно выполнить команду "bee build файл_с_кодом имя:версия", а для запуска команду "bee run имя:версия". По умолчанию получаемые от обработчика события будут выводиться в окно терминала, но при необходимости можно получить данные обратившись утилитами curl или wget к привязанному к обработчику сетевому порту. Обработчики можно распространять через OCI-совместимые репозитории, например, для запуска внешнего обработчика из репозитория ghcr.io (GitHub Container Registry) можно выполнить команду "bee run ghcr.io/solo-io/bumblebee/tcpconnect:$(bee version)". Для помещения обработчика в репозиторий предлагается команда "bee push", а для привязки версии - "bee tag".

  1. Главная ссылка к новости (https://www.solo.io/blog/solo-...)
  2. OpenNews: Создана организация eBPF Foundation
  3. OpenNews: Представлена библиотека Aya для создания eBPF-обработчиков на языке Rust
  4. OpenNews: Microsoft подготовил реализацию eBPF для Windows
  5. OpenNews: В состав GCC принят бэкенд для компиляции в eBPF
  6. OpenNews: Компания Oracle намерена переработать DTrace для Linux с использованием eBPF
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/56489-​​bumblebee
Ключевые слова: ​​bumblebee, tbpf, bpf
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (51) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 16:13, 11/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +24 +/
    он тоже удаляет /usr при деинсталляции пакета?
     
     
  • 2.10, НяшМяш (ok), 16:53, 11/01/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    вдруг кто не в курсе https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/issues/123
     
     
  • 3.19, Аноним (19), 17:47, 11/01/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    я для тех, кто уже в курсе, есть какая-нибудь ссылка?
     
  • 3.62, Ilya Indigo (ok), 17:41, 17/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Толи её сильно потёрли, то ли я читал что-то другое с картинками про истинное назначение сабжа.
     
  • 2.25, Аноним (25), 19:16, 11/01/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Только что пишу товарищу:

    > https://www.opennet.ru/opennews/art.shtml?num=56489 ухахах
    > /usr тоже удаляет?

    И через пару секунд, пролистав страницу до комментариев

    > Проиграл
    > Потому что это первый коммент

    Как говорится, great minds think alike.

     
     
  • 3.34, Аноним (19), 19:38, 11/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    ты такой наивный: он тебе про /usr написал уже после того, как долистал до комментов.

    на незнакомые номера не отвечай кстати, тебе кредит впарить как два пальца об асфальт.

     
     
  • 4.45, Аноним (45), 00:19, 12/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ты такой сообразительный!.. Обе цитаты мои, не товарища. Я кинул ему ссылку, сказав про /usr, даже не посетив саму страницу новости. Про great minds это обращение к анониму 1.1.
     
     
  • 5.46, Аноним (19), 01:03, 12/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    попонятнее пиши, братан. А то часто будешь так в лужу садиться.
     

  • 1.2, lockywolf (ok), 16:13, 11/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Bumblebee это же демон для автоматического выбора лучшей видеокарты для запуска 3Д программы.
     
     
  • 2.16, eganru (?), 17:18, 11/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это riscv32imac ядро для микроконтроллеров.
     
  • 2.44, Аноним (44), 00:08, 12/01/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Bumblebee это Chevrolet Camaro с сюрпризом
     
  • 2.51, Ordu (ok), 06:01, 12/01/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Делимся ассоциациями на слово bumblebee?

    https://youtu.be/XwtjKlD02es

     
  • 2.57, Смузихлёб (?), 21:56, 12/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Bumblebee это фирма выпускающая ленточные микрофоны стоимостью пару квартир в Москве.
     

  • 1.3, JL2001 (ok), 16:15, 11/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а можно серверную жава-программу скомпилить в eBPF и запустить?
     
     
  • 2.6, Аноним (6), 16:36, 11/01/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    eBPF создан для обработки сетевых пакетов, хотя умники на нем уже http сервер написали.

    А так можно переработать JVM byte-code в eBPF теоретически, вопрос же зачем…

     
     
  • 3.15, Массоны Рептилоиды (?), 17:17, 11/01/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > eBPF создан для обработки сетевых пакетов, хотя умники на нем уже http сервер написали.

    А где посмотреть можно на этот сервер?

     
  • 2.31, Аноним (31), 19:32, 11/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В принципе, можно поробовать скомпилировать программу и на Electron.
     

  • 1.4, Аноним (4), 16:20, 11/01/2022 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –2 +/
     
     
  • 2.9, Аноним (9), 16:49, 11/01/2022 Скрыто модератором
  • +/
     

  • 1.5, Аноним (5), 16:20, 11/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    можно запустить ядро в ядре?
     
     
  • 2.8, Аноним (-), 16:38, 11/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    только на go
     
  • 2.56, Аноним (31), 14:52, 12/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    User Mode Linux
     

  • 1.7, RAMbug (?), 16:36, 11/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И чего только не придумают, лишь бы микроядро не делать.
     
     
  • 2.23, Аноним (19), 18:10, 11/01/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    микроядро - это как коммунизм. Все о нем говорят, но никто не видел. И не увидит.
     
     
  • 3.27, Газпром (?), 19:23, 11/01/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >> ... The BMW ConnectedDrive System is based on the QNX Neutrino Realtime Operating System (RTOS). It also incorporates the QNX® multimedia suite, which provides
    >> ... Mercedes-Benz adds QNX infotainment system to new concept S-Class Coupé
    > микроядро - это как коммунизм. Все о нем говорят, но никто не видел. И не увидит.

    Благодарим Вас за этот мощный и объемный выброс горючего газа в эти тяжелые и холодные времена!

     
     
  • 4.33, Аноним (19), 19:36, 11/01/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > BMW
    > Mercedes-Benz

    Ты тоже ничего из этого не видел. И не увидишь, кстати. (Не переживай, я тоже не увижу: мне не нужно компенсировать длину членятины мерседесами.)

     
     
  • 5.43, Аноним (43), 00:00, 12/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Кто о чем, а аноним у которого кончились аргументы - о члене.
     
     
  • 6.47, Аноним (-), 01:09, 12/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Кто о чем, а аноним у которого кончились аргументы - о члене.

    Не совсем - были еще фантазии на тему Злобных БСДшников и Кусочков Их Манов и вообще "хоть что, лишь бы не БЗДы!", но их удалили :(


     
  • 3.28, Аноним (31), 19:25, 11/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А почему не увидят? Потому, что пастухи не хотят, чтобы увидели.
     
  • 3.36, Аноним (-), 19:54, 11/01/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > микроядро - это как коммунизм. Все о нем говорят, но никто не видел. И не увидит.

    Дивный анонимный мир!
    >> https://www.opennet.ru/opennews/art.shtml?num=47539
    >> Эндрю Таненбаум поблагодарил Intel за использование MINIX в прошивке Management Engine 11
    >> Intel ME 11 поставляется во всех современных ПК и ноутбуках с процессорами Intel, что делает MINIX наиболее широко используемой ОС в мире.
    >>

     
  • 2.61, Аноним (61), 12:20, 13/01/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    С микроядром невозможно всех загнать в mainline GPL-рабством
     

  • 1.11, Аноним (11), 16:53, 11/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    сразу иск можно подавать - BumbleBee уже есть

     
  • 1.13, freehck (ok), 17:07, 11/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    bumblebee -- это ж вроде как была софтина для управления ускорением дискретных видеокарт; не возникнет ли путаницы?
     
     
  • 2.20, Аноним (11), 17:54, 11/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.bumblebee-project.org/
     

  • 1.14, Аноним (14), 17:13, 11/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Можно но зачем?
     
  • 1.17, Аноним (17), 17:40, 11/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Майнер уже сделали?
     
  • 1.22, gogo (?), 18:08, 11/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Они делают все, чтобы человек не увидел, что именно запускается  у него в BPF.
    Они даже готовы для каждой версии  свою каку компилить, лишь бы никто не увидел, что они там компилят.
     
  • 1.24, onanim (?), 18:31, 11/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    тем временем CVE-2021-4204: Linux Kernel eBPF Improper Input Validation Vulnerability

    This vulnerability allows local attackers to escalate privileges on affected installations of Linux Kernel.

     
     
  • 2.59, Аноним (59), 22:13, 12/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, редакция уже опубликовала новость.
     

  • 1.26, Аноним (25), 19:19, 11/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А если серьёзно, можно примеры таких OCI-образов с eBPF-программами? Желательно что-то полезнее чем Hello, world.
     
     
  • 2.30, Аноним (31), 19:29, 11/01/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Hello, Major!
     

  • 1.29, Аноним (31), 19:27, 11/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >при помощи которой можно сразу загрузить интересующий eBPF-обработчик из внешнего репозитория и запустить на локальной системе

    Пропал калабуховский дом...

     
  • 1.32, pashev.me (?), 19:34, 11/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Названия кончились.
     
  • 1.35, bOOster (ok), 19:46, 11/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Изобрели NetGraph чтоли?
     
     
  • 2.50, Bocha (??), 05:28, 12/01/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    представляю себе нетграф в докере, ага.
     
     
  • 3.52, bOOster (ok), 06:47, 12/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > представляю себе нетграф в докере, ага.

    И в чем проблема? В Jail уже есть возможность виртуальные интерфейсы создавать.

     
  • 2.55, 1 (??), 14:00, 12/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В принципе к этому и шло. Единственно, чего небыло на лапчатых - это NetGraph
     

  • 1.48, псевдонимус (?), 02:29, 12/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Дыра так дыра. Перманентная.
     
  • 1.49, Bocha (??), 05:27, 12/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Может, можно начать называть программы не только Bumblebee? Это третья вроде уже, из известных.
     
  • 1.53, биполярка (?), 10:33, 12/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а есть тесты бумблеби и бцц?
     
  • 1.54, kusb (?), 13:47, 12/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Насколько удобнее с помощью этого инструментария разрабатывать трояны? Желательно кроссплатформенные.
     

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



    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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