The OpenNET Project / Index page

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

Microsoft открыл Hyperlight, гипервизор для изоляции отдельных функций в приложениях

13.11.2024 09:53

Компания Microsoft представила проект Hyperlight, развивающий гипервизор, предназначенный для встраивания в приложения с целью изолированного выполнения кода, не заслуживающего доверия или требующего особой защиты. Гипервизор оформлен в виде разделяемой библиотеки, обеспечивающей выполнение отдельных функций в легковесных виртуальных машинах (micro-VM) и организующей обмен данными с этими функциями. Код проекта написан на языке Rust и распространяется под лицензией Apache 2.0.

По сравнению с запуском традиционных виртуальных машин Hyperlight позволяет добиться низких задержек и минимальных накладных расходов. В Hyperlight задержки при создании виртуальных машин составляют 1-2 миллисекунды, что позволяет применять изоляцию на уровне запуска функций. Для сравнения запуск обычной виртуальной машины осуществляется не менее чем за 120 миллисекунд, а запуск изолированного sandbox-окружения для выполнения WebAssembly-кода при помощи Wasmtime runtime занимает 0.03 миллисекунды.

Для изоляции на платформе Linux поддерживается использование гипервизоров KVM и mshv (Microsoft Hypervisor в Azure Linux), а на платформе Windows - WHP (Windows Hypervisor Platform) и WSL2 (Windows Subsystem for Linux 2) c KVM. Платформа macOS пока не поддерживается. Отдельное ядро и операционная система в виртуальной машине не используются. Начинка для виртуальной машины формируется в форме самодостаточной загружаемой программы, включающей код запускаемой функции в обвязке из runtime и специализированного минимального ядра. В виртуальной машине используется единый линейный фрагмент памяти и назначается виртуальный CPU, без маппинга устройств и без разделения на процессы.

Процесс разработки основан на связывании основного кода приложения с библиотекой Hyperlight Host, координирующей запуск виртуальных машин, а кода запускаемых изолированном режиме функций (гостевых функций) с библиотекой Hyperlight Guest, предоставляющей API для взаимодействия с внешней частью приложения и возможности для обособленного выполнения кода без окружения операционной системы.

Предоставляемая прослойка для взаимодействия между хост-приложением и изолированными функциями позволяет не только вызывать изолированные функции из хост-приложений, но и наоборот, обращаться к функциям хост-приложений из изолированных функций. Список внешних функций, допустимых для вызова из изолированных функций, жёстко регламентируется. По умолчанию доступ из изолированных функций ограничен минимальным API, позволяющим передавать сообщения хост-приложению.

В будущем Microsoft планирует передать проект некоммерческой организации Cloud Native Computing Foundation (CNCF) для совместного развития на нейтральной площадке, не зависящей от отдельных производителей. Организация CNCF работает под крылом Linux Foundation и курирует разработку таких проектов, как Kubernetes, etcd, Cilium, Containerd, cri-o, Flux, Helm, Istio и gRPC.

  1. Главная ссылка к новости (https://opensource.microsoft.c...)
  2. OpenNews: Microsoft открыл код гипервизора OpenVMM и платформы паравиртуализации OpenHCL
  3. OpenNews: Microsoft начал продвижение в ядро Linux компонентов хост-окружения Hyper-V
  4. OpenNews: Intel развивает открытую прошивку ModernFW и гипервизор на языке Rust
  5. OpenNews: Выпуск MirageOS 4.0, платформы для запуска приложений поверх гипервизора
  6. OpenNews: Инициатива по переработке инструментария для гипервизора Xen на языке Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62226-hyperlight
Ключевые слова: hyperlight, microsoft, rust, hypervisor, virtual
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (47) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, iCat (ok), 10:34, 13/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    А что за месячник такой неслыханной щедрости?
    vmWare, MS HL...
     
     
  • 2.5, Аноним (5), 10:37, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Подгорает, сэр. Конкуренция не дремлет, клиентов надо удерживать.
     
     
  • 3.32, Аноним (32), 14:12, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Где посмотреть на ваши проекты для батиных инженеров?
     
     
  • 4.56, Аноним (56), 17:02, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Замглавы департамента информационных технологий, связи и защиты информации МВД Игорь Кашпур заявил, что серверы, оснащенные российскими микропроцессорами «Эльбрус», слишком быстро выходят из строя и при этом их нельзя оперативно заменить. Об этом пишет газета «Ведомости». - https://www.gazeta.ru/tech/news/2024/11/13/24376387.shtml ?
     
     
  • 5.63, YetAnotherOnanym (ok), 18:22, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Отсюда вывод - не заказывайте чипы на Тайване.
     
  • 5.86, Аноним (86), 08:00, 14/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    К электрической сети сегодня много вопросов. Надо защищать электрическую сеть: https://www.opennet.me/openforum/vsluhforumID13/1034.html#21
     
  • 2.29, Аноним (29), 13:25, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > А что за месячник такой неслыханной щедрости?

    Экономику поджимает -> оптимизация костов.

     
  • 2.44, Аноним (44), 15:05, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Возможно открытие таких кодовых баз требуется для обучения ИИ. Накопленный корпорациями код не представляет такой большой ценности в мире, где ИИ через несколько лет напишет лучше и на порядки быстрее.
     
     
  • 3.81, iCat (ok), 04:17, 14/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Возможно открытие таких кодовых баз требуется для обучения ИИ. Накопленный корпорациями
    > код не представляет такой большой ценности в мире, где ИИ через
    > несколько лет напишет лучше и на порядки быстрее.

    Спорное утверждение...
    В словосочетании "искусственный интеллект" ведущее слово - "искусственный", то есть "подражающий"

     

  • 1.8, Жироватт (ok), 11:13, 13/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    1. Основной поток запускает защищённую обёрточную функцию обработки в micro-VM основного потока...
    2. Обёрточная функция вызывает другую функцию файла (в отдельной или в этой же micro-VM?)...
    3. ...которая вызывает функцию из внешнего по отношению к программе заголовочного файла (в чисто отдельной третьей micro-VM?)...
    4. ...которая дёргает динамический dll'ный библиотечный код либы lib_a1.dll (тут уже точно в отдельной micro-VM?)...
    5. ...которая дёргает динамический dll'ный библиотечный код либы lib_b2.dll (тут уже точно в отдельной micro-VM или либы будут бандлится в один образ VM?)...
    6. ...которая по RPC (хотя бы тот же СОМ+) дёргает вообще другое ПО и получает какие-то данные (проприентарный патентованный сервер СОМ+ изначально требует защиты и запускается в расшифровываемой-на-лету micro-VM?), затем маршаллит результат (надеюсь не в micro-VM?) и передаёт обратно.

    Вопросы:
    1) Я правильно понял, что именно так можно будет выглядеть дерево вызовов внутри одного процесса?
    2) Какой адок начнётся в многопроцессной работе? Micro-VM же насколько понял stateless? А параллельно будет запускаться одна micro-VM или целый пул из таких виртуалок?
    3) Какие накладные расходы на это гуано будут не в бенчамарках, а при реальной работе? А для функций из 80% отношения Парето?
    4) Нахуа, а главное зачем?

     
     
  • 2.18, Аноним (18), 12:06, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Отвечу на 4-й вопрос. Чтобы показать, что на Rust таки пишут, а не только переписывают.
     
  • 2.38, freehck (ok), 14:24, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Видимо у них поинт в том, что они хотят именно в VM их гонять. Простой контейнер их не устраивает по каким-то причинам. Ну собственно, пусть допиливают: посмотрим, выстрелит ли.
     

  • 1.11, Аноним (11), 11:16, 13/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Что это вообще такое и зачем?
     
     
  • 2.24, Аноним (24), 12:44, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это желание привнести безопасность в контейнеризацию, которой там нет, вопреки з... большой текст свёрнут, показать
     
     
  • 3.55, Аноним (55), 16:48, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Это желание привнести безопасность в контейнеризацию, которой там нет, вопреки заверениям адептам культа карго.

    Безопасность контейнеризации существует только в воображении борцов с воображаемыми адептами культа. Парад соломенных чучел в комментариях поражает. Припекает у местных — моё почтение. Тут тебе и Раст, и Майкрософт, и опенсорс, и стирание границ между виртуалками и контейнерами. Огнеопасная новость как ни крути. Продолжайте паясничать. Не хватает только комментариев от поха.

     

  • 1.12, Аноним (12), 11:31, 13/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На что только люди не идут лишь бы дырявый код не переписывать...
     
     
  • 2.19, Аноним (44), 12:23, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если бы можно было просто взять дырявый код и переписать в недырявый, все бы так... большой текст свёрнут, показать
     
  • 2.25, Аноним (-), 12:46, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    От кода зависит.
    Если проблема только в отсутствии проверок или плохих структурах - то можно и переписать.
    А если там еще кривая архитектура.. то иногда проще выкинуть и написать заново.

    В итоге все равно будет экономия на ТЗ, тестпланах и прочих сопутсвующих вещах.

     
  • 2.64, КО (?), 18:49, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Кек, будто они с коммитов его побегут перезаписывать
     
  • 2.89, Аноним (89), 09:27, 14/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Твой недырявый код, размером побольше, чем хэловрот мы, конечно же, не увидим?
    Как всегда: ни в MS, ни в Google, ни среди коммитеров в линукс ядро нет умеющих писать недырявый код, а есть такие мастера только в комментариях на опеннете.
    Мы даже знаем почему именно у таких вас код недярвый - потому, что если код не писать, то и ошибок в нём не сделать. Великие мастера бесконтактного боя прошедшие этап культивации и уже достигшие этапа возвышения, проводящие всё время в медитациях, а не боях.
     

  • 1.30, Аноним (30), 13:25, 13/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Даёшь каждому процессу по собственному компьютеру! Так точно будет безопасТно.
     
     
  • 2.68, Аноним (68), 20:13, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это уже было в девяностые. Это у нас сервер бд, это веб-сервер, а это — ФТП-сервер для важных файлов. И бэкапы админ делает каждую пятницу с записью в Журнал Учёта Резервных Копий под подпись и с заверением главного.
     
     
  • 3.90, Аноним (30), 09:29, 14/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    История идёт по спирали. Только ещё нужно назначить по выделенному админу на каждый сервер, это решит проблему безработицы.
     

  • 1.31, Аноним (31), 13:58, 13/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Невооружённым взглядом видна только тенденция - как минимум МС новые проекты, которые раньше писались бы на Си, частенько выкатывает на Rust.
     
     
  • 2.48, Аноним (48), 15:24, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Всегда были мертворождённые поделки, тут ничего удивительного. На си МС не пишет уже лет 20, раньше такое на бейсике или на жс писалось.
     

  • 1.33, Аноним (33), 14:13, 13/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > гипервизор, предназначенный для встраивания в приложения с целью изолированного выполнения кода, не заслуживающего доверия или требующего особой защиты

    ОК. Но кто сказал, что гипервизор заслуживает доверия?

     
  • 1.34, Аноним (33), 14:15, 13/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > встраивания в приложения с целью изолированного выполнения кода, не заслуживающего доверия

    Серьезно? Встраивать в приложение код, не заслуживающий доверия?

     
     
  • 2.40, НяшМяш (ok), 14:25, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Любое приложение при запуске подтягивает общие библиотеки, написанные на языке, не заслуживающем доверия. И работает в операционной системе, написанной на языке, не заслуживающем доверия. И никого это не напрягает. А тут просто придумали костыль, как сделать что-то небезопасное чуть безопаснее.
     
     
  • 3.47, Аноним (47), 15:13, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    а теперь поясни, как ты заставишь очередных вирусописателей использовать эту библиотеку.
     
  • 3.58, Аноним (58), 17:33, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вы не различаете концепции "встраивать код в приложение" и "подтягивать библиотеки при запуске"? Под словом "код", тем более - встриваемым, очевидно, понимают исходные коды на языке программирования того или иного уровня, но не скопмилированные модули (библиотеки или исполняемые модули). При наличии исходных кодов необходимо контролировать его безопасность и нет необходимости в особых мерах изоляции.
     

  • 1.49, Штунц (?), 15:44, 13/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вижу пользу такую:
    Например, используешь купленную DLL для манипуляции PDF-файлами.
    И есть подозрение, что в DLL есть баги выхода за границы буфера и следовательно портится память в вызывающем коде. Теперь, видимо, можно DLL как то изолировать будет
     
     
  • 2.54, Аноним (54), 16:38, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    термин untrusted CPU еще не хайповый? Есть же red–black architecture или это не для смертных?
     
     
  • 3.57, Аноним (57), 17:27, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это не защитит от проблем с несанкционированным доступом к чужой памяти
     
     
  • 4.59, Аноним (54), 17:35, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    а ну да, я же забыл, что у нас все яйца в одной корзине :)
     

  • 1.53, Аноним (54), 16:33, 13/11/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.67, Аноним (67), 20:13, 13/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это уже паравиртуализация или ещё нет?
     
  • 1.69, Quad Romb (ok), 20:21, 13/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Этот Hyperlight, по своему описанию, очень похож на такую штуку как экзоядро.
    Для каких-то ответственных сервисов вполне может взлететь.
     
     
  • 2.79, мимопроходил (?), 23:51, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это напоминает firecracker-vm, тоже для реализации FaaS (function as a service).
    Но, порожденное Амазонон, МС использовать не может, нужно свое.
     
     
  • 3.85, Quad Romb (ok), 08:00, 14/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вполне могу согласиться.
    Тут скорее вопрос классификации - все эти гипорсветы, огнеколки и прочие униядра занимаются тем, что по месту забирают у подлежащей под ними ОС часть её основных функций.

    А это было проработано в начале 90-х в академических экзоядерных прототипах. Просто тогда это оказалось коммерчески невостребовано. В отличие от нынешних облачных дней.

     

  • 1.70, Аноним (-), 21:23, 13/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > В Hyperlight задержки при создании виртуальных машин составляют 1-2 миллисекунды
    > запуск изолированного sandbox-окружения для выполнения WebAssembly-кода [..] занимает 0.03 миллисекунды.

    Ну и смысл тогда в чём? Ихняя виртуальная машина будет быстрее, только если код в ней выполняется однократно или небольшое число раз. Если же гонять его надо сотни раз, то накладные расходы на jit поделятся на 100, и... А если код выполняется однократно, то так ли ему нужна скорость выполнения? При этом, wasm это настоящая виртуалка, а не дырявый процессор пытающийся изолировать выполнение кода.

     
  • 1.72, Аноним (72), 21:36, 13/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Посоны, не забывайте, что любая виртуализация от Microsoft делается с прицелом на SEV-виртуалки, которые являются вещью что-то вроде SGX-анклавов, но круче. Если в анклавах запускается только ring-3 код, то в SEV-виртуалках можно запустить целую ОС при желании. Но иногда ОС не нужна, а нужен аналог SGX. Вот указанная штука - это и есть аналог SGX с такой же моделью использования, чтобы код, который для SGX портировать под SEV с минимальными издержками.
     
     
  • 2.73, Аноним (72), 21:37, 13/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    P.S. AMD SEV работает на основе Microsoft Pluton.
     

  • 1.74, Аноним (74), 22:01, 13/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    м-м-м, а кто-то уже завернул это в питоновый патоз? вон азуре упомянуто же уже!
     
  • 1.78, myster (ok), 23:30, 13/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Как по мне, это очередная инициатива сделать веб более закрытым. Сегодня я в любом браузере могу нажать Ctrl+Shift+I и наглядно увидеть, что происходит в кишках сайта. Могу написать UserJS скрипт для изменения контента на странице, изменения стиля, заблокировать рекламу и т.п.

    Но WebAssembly это шаг к тому, чтобы мы это не смогли, если код выполняется к скомпилированном .wasm файле без дебага, а Hyperlight тут будет дополнительным барьером.  

    И хоть этот проект и не связан с Silverlight, на который они вместе с отменой Flash забили. Но идея такая же - превратить веб-браузеры в исполнялки закрытого кода, любой веб сайт будет "котом в мешке" и сможет делать не пойми какую хрень, блокировщики рекламы и подобные инструменты станут бесполезны.  

    Такой веб нас ждет в ~2030 году?

     
     
  • 2.80, Аноним (80), 04:11, 14/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Но идея такая же - превратить веб-браузеры в исполнялки закрытого кода

    Кто тебе мешает написать собственный браузер?

     
     
  • 3.87, Аноним (87), 08:54, 14/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А что помешало мацкрософту написать свой движок газель? Случайно не w3c и его прихвостни?
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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