Все что становится обыденным, мало ценится.

Дети милиционеров в загородных оздоровительных лагерях ...

VPN WireGuard принят в ветку net-next и намечен для включения в ядро Linux 5.6
Mon, 09 Dec 2019 18:42:28 +0300

Началось общее голосование о системах инициализации в Debian
Sat, 07 Dec 2019 13:32:21 +0300

Самый популярный пример Java-кода на StackOverflow оказался с ошибкой
Thu, 05 Dec 2019 13:48:33 +0300

Microsoft развивает новый язык программирования на основе Rust
Tue, 03 Dec 2019 08:54:04 +0300

В KDE улучшена поддержка декорирования окон в GTK-приложениях
Mon, 02 Dec 2019 22:49:28 +0300

Введён в строй Qt Marketplace, каталог-магазин модулей и дополнений для Qt
Mon, 02 Dec 2019 16:49:05 +0300

Тенденции в аппаратном обеспечении, используемом с Linux
Mon, 02 Dec 2019 09:42:10 +0300

Прогресс в использовании ОС Redox на реальном оборудовании
Sun, 01 Dec 2019 10:56:09 +0300

Вышла новая версия Open CASCADE Technology - 7.4.0
Fri, 29 Nov 2019 16:28:49 +0300

Обновлены планы по поставке 32-разрядных библиотек в Ubuntu 20.04
Fri, 29 Nov 2019 09:37:15 +0300

В ядре Linux выявлена ошибка, приводящая к нарушению работы некоторых программ, использующих AVX
Wed, 27 Nov 2019 10:32:13 +0300

Ошибка в прошивке SSD-накопителей HPE, приводящая к потере данных через 32768 часов работы
Tue, 26 Nov 2019 17:49:06 +0300

Компания Mozilla опубликовала финансовый отчёт за 2018 год
Tue, 26 Nov 2019 10:35:08 +0300

RIPE выделил последний свободный блок IPv4
Tue, 26 Nov 2019 08:54:14 +0300

В Firefox включена по умолчанию блокировка скрытых методов идентификации пользователя
Mon, 25 Nov 2019 10:36:39 +0300

Новости OPENNET
Новости

Компании Mozilla, Fastly, Intel и Red Hat объединили свои усилия в развитии технологий, способствующих превращению WebAssembly в универсальную платформу для безопасного выполнения кода в любых инфраструктурах, операционных системах и устройствах. Для совместной разработки runtime и компиляторов, позволяющих применять WebAssembly не только в web-браузерах, образовано сообщество Bytecode Alliance.

Для создания поставляемых в формате WebAssembly переносимых программ, которые можно выполнять вне браузера, предлагается использовать API WASI (WebAssembly System Interface), предоставляющий программные интерфейсы для прямого взаимодействия с операционной системой (POSIX API для работы с файлами, сокетами и т.п.). Отличительной особенностью модели выполнения приложений, использующих WASI, является запуск в sandbox-окружении для изоляции от основной системы и применение механизма безопасности на основе управления возможностями - для действий с каждым из ресурсов (файлы, каталоги, сокеты, системные вызовы и т.п.) приложению должны быть даны соответствующие полномочия (предоставляется только доступ к заявленной функциональности).

Одной из целей созданного альянса является решение проблемы распространения современных модульных приложений, имеющих большое число зависимостей. В подобных приложениях каждая зависимость может быть потенциальным источником уязвимостей или атак. Получение контроля за зависимостью позволяет получить контроль и за всеми связанными с ней приложениями. Доверие к приложению автоматически подразумевает наличие доверия и ко всем зависимостям, но зависимости зачастую разрабатываются и сопровождаются посторонними командами, деятельность которых невозможно проконтролировать. Участники Bytecode Alliance намерены подготовить целостное решение для безопасного выполнения WebAssembly-приложений, изначально не заслуживающих доверия.

Для защиты предлагается использовать концепцию нанопроцессов, в которых каждый модуль зависимости выделяется в отдельно изолированный WebAssembly-модуль, полномочия которого задаются в привязке только к этому модулю (например, библиотека для обработки строк не сможет открыть сетевой сокет или файл). В отличие от разделения на процессы, WebAssembly-обработчики являются легковесными и почти не требуют дополнительных ресурсов - взаимодействие между обработчиками не сильно медленнее вызова обычных функций. Разделение может производиться не только на уровне отдельных модулей, но и на уровне групп модулей, которым, например, необходима работа с общими областями памяти

Запрашиваемые полномочия смогут определяться как на уровне самих зависимостей, так и делегироваться зависимостям по цепочке родительскими модулями (ресурсы в WASI ассоциируются со специальным типом файловых дескрипторов - capability). Например, модулю может быть делегирована возможность обращения к определённому каталогу и системным вызовам, и в случае компрометации инфраструктуры разработки модуля или выявления уязвимости, при атаке доступ будет ограничен лишь этими ресурсами. Декларирование ресурсов создателями модулей может стать индикатором подозрительной активности, например, когда модуль для обработки текста запрашивает полномочие на открытие сетевого соединения. Изначально заданные полномочия проверяются и в случае их изменения загрузка зависимости отвергается до обновления локальной сигнатуры модуля.

Для совместной разработки под крыло Bytecode Alliance переведено несколько связанных с WebAssembly проектов, ранее обособленно развиваемых компаниями-учредителями альянса:

  • Wasmtime - runtime для выполнения WebAssembly-приложений с расширениями WASI как обычных обособленных приложений. Поддерживается как запуск байткода WebAssembly при помощи специальной утилиты командной строки, так и компоновка готовых исполняемых файлов (wasmtime встраивается в приложение как библиотека). Wasmtime имеет гибкую модульную структуру, которая позволяет масштабировать runtime для различных применений, например, можно сформировать урезанную версию для устройств с ограниченными ресурсами;
  • Lucet - компилятор и runtime для выполнения программ в формате WebAssembly. Отличительной особенностью Lucet является применение вместо JIT полноценной упреждающей компиляции (AOT, ahead-of-time) в машинный код, пригодный для прямого исполнения. Проект развивался компанией Fastly и оптимизирован для потребления минимальных ресурсов и очень быстрого запуска новых экземпляров (Fastly применяет Lucet в движке облачных edge-вычислений, использующем WebAssembly для обработчиков, запускаемых на каждый запрос). В рамках совместного проекта компилятор Lucet планируется перевести на использование Wasmtime в качестве основы;
  • WAMR (WebAssembly Micro Runtime) - ещё один runtime для выполнения WebAssembly, изначально разработанный компанией Intel для применения в устройствах интернета вещей. WAMR оптимизирован для минимального потребления ресурсов и может применяться на устройствах с небольшим объёмом оперативной памяти. Проект включает в себя интерпретатор и виртуальную машину для выполнения байткода WebAssembly, API (подмножество Libc) и инструментарий для динамического управления приложениями;
  • Cranelift - генератор кода, транслирующий независимое от аппаратных архитектур промежуточное представление в исполняемый машинный код, оптимизированный для конкретных аппаратных платформ. Cranelift поддерживает распараллеливание компиляции функций для очень быстрой генерации результата, что позволяет использовать его для создания JIT-компиляторов (JIT на базе Cranelift используется в виртуальной машине Wasmtime);
  • WASI common - обособленная реализация API WASI (WebAssembly System Interface) для организации взаимодействия с операционной системой;
  • cargo-wasi - модуль к пакетному менеджеру Cargo, реализующий команду для компиляции кода на языке Rust в байткод WebAssembly с задействованием интерфейса WASI для использования WebAssembly вне браузера;
  • wat и wasmparser - парсеры для разбора текстового (WAT, WAST) и бинарного представлений байткода WebAssembly.

Напомним, WebAssembly во многом напоминает Asm.js, но отличается тем, что является бинарным форматом, не завязанным на JavaScript и позволяющим выполнять в браузере низкоуровневый промежуточный код, скомпилированный из различных языков программирования. В WebAssembly не требуется применение сборщика мусора, так как применяется явное управление памятью. Благодаря задействованию JIT для WebAssembly можно добиться уровня производительности близкого к нативному коду. Среди основных задач WebAssembly выделяется обеспечение переносимости, предсказуемость поведения и идентичности выполнения кода на разных платформах.

9.051 70.5047 0.5871 63.7244

НОВОСТИ: VPN WireGuard принят в ветку net-next и намечен для включения в ... Mon, 09 Dec 2019 18:42:28 +0300

Дэвид Миллер (David S. Miller), отвечающий за сетевую подсистему ядра Linux, принял в состав ветки net-next патчи с реализацией VPN-интерфейса от проекта WireGuard. В начале следующего года изменения, накапливаемые в ветке net-next, лягут в основу выпуска ядра Linux 5.6.

???????@Mail.ru Opera Firefox INFOBOX - хостинг Google Chrome