The OpenNET Project / Index page

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

Mozilla начинает внедрение технологии изоляции библиотек RLBox

26.02.2020 14:43

Исследователи из Стендфордского университета, Калифорнийского университета в Сан-Диего и Техасского университета в Остине разработали инструментарий RLBox, который может применяться как дополнительный уровень изоляции для блокирования уязвимостей в библиотеках функций. RLBox нацелен на решение проблемы с безопасностью незаслуживающих доверия сторонних библиотек, которые не подконтрольны разработчикам, но уязвимости в которых могут скомпрометировать основной проект.

Компания Mozilla планирует задействовать RLBox в Linux-сборках Firefox 74 и macOS-сборках Firefox 75 для изоляции выполнения библиотеки Graphite, отвечающей за отрисовку шрифтов. При этом RLBox не специфичен для Firefox и может применяться для изоляции любых библиотек в произвольных проектах. Наработки RLBox распространяются под лицензией MIT. В настоящее время RLBox поддерживает работу на платформах Linux и macOS, поддержка Windows ожидается позднее.

Механизм работы RLBox сводится к компиляции C/C++ кода изолируемой библиотеки в низкоуровневый промежуточный код WebAssembly, который затем оформляется в виде WebAssembly-модуля, полномочия которого задаются в привязке только к этому модулю (например, библиотека для обработки строк не сможет открыть сетевой сокет или файл). Преобразование кода C/C++ в WebAssembly осуществляется при помощи wasi-sdk.

Для непосредственного выполнения WebAssembly-модуль компилируется в машинный код при помощи компилятора Lucet и выполняется в отдельном "нанопроцессе", изолированном от остальной памяти приложения. Компилятор Lucet основан на том же коде, что и JIT-движок Cranelift, применяемый в Firefox для выполнения WebAssembly.

Собранный модуль работает в отдельной области памяти и не имеет доступа к остальному адресному пространству. В случае эксплуатации уязвимости в библиотеке атакующий будет ограничен и не сможет обратиться к областям памяти основного процесса или передать управление вне изолированного окружения.

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

В свою очередь, если из библиотеки необходимо вызвать внешние функции, данные функции должны быть явно определены при помощи метода register_callback (по умолчанию RLBox предоставляет доступ к функциям стандартной библиотеки). Для обеспечения безопасной работы с памятью (memory safety) изоляции выполнения кода недостаточно и требуется также обеспечить проверку возвращаемых потоков данных.

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

  1. Главная ссылка к новости (https://hacks.mozilla.org/2020...)
  2. OpenNews: Mozilla, Fastly, Intel и Red Hat продвигают WebAssembly, как платформу для универсального применения
  3. OpenNews: Представлен Lucet, компилятор для WebAssembly
  4. OpenNews: Mozilla развивает WASI для использования WebAssembly вне браузера
  5. OpenNews: W3C придал WebAssembly статус рекомендованного стандарта
  6. OpenNews: Google открыл систему для создания sandbox-окружений для библиотек C/C++
Лицензия: CC-BY
Короткая ссылка: https://opennet.ru/52440-webassembly
Ключевые слова: webassembly, rlbox, sandbox, mozilla, firefox, library
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (88) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 15:28, 26/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    "не сильно медленнее" - эт насколько?
     
     
  • 2.5, заминированный тапок (ok), 15:44, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +16 +/
    боюсь настолько же, насколько "почти не требуют дополнительных ресурсов"
     
     
  • 3.9, Аноним (9), 16:03, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это значит что не надо покупать новые ресурсы мы доедим старые.
     
     
  • 4.19, Аноним (-), 17:31, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    У меня для них есть более интересная идея. Переписать все на JS. Ведь он не тормозит, и такой супербезопасный, бла-бла-бла.
     
     
  • 5.35, Аноним (35), 18:29, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На надо сразу раскрывать все карты, юнга. Побьют жэж!
    Сначала, пишем свой одновременно быстрый и безопасный язык, который не виноват в том что он тормозной. Это всё цена автоматическому управлению памятью(Огнелис - как пример). Не нравится - используй unsafe, хотя, не используй unsafe, ибо будет как с тем автором веб-фреймворка.
    А потом главное - потихоньку подсыпать всё больше безопасности и разграничений.
     
     
  • 6.37, Аноним84701 (ok), 18:34, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >  он тормозной. Это всё цена автоматическому управлению памятью
    > автоматическому управлению
    > [lifetime] analysis ...  is done at compile time

    Интересно, какова цена очередной "анонимной экспердизы"?

     
  • 6.63, Аноним (-), 04:11, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > На надо сразу раскрывать все карты, юнга. Побьют жэж!

    В смысле раскрывать? Идея то баянная, они pdf.js же запилили. Правда кондовый critical vuln они тоже в нем запилили, вот ведь незадача. Да еще кроссплатформенно так, на зависть акробату.

     
  • 5.85, Lex (??), 20:11, 01/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    По сути, "небезопасные" модули с применением описанной в статье штуковины и переписываются на "пережеванное" подобие JS, которым является WASM.
    Ну а далее, этот код исполняется на существующем и, мб, чутка допиленном, JS-движке, как сильно минифицированный JS-код( привет, Wasm. Ходят слухи, что, из-за бОльшей компактности, код на нем сильно быстрее парсится ).
     
  • 3.43, Wilem (?), 19:31, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В оригинальной статье упор на то, что такой подход требует сильно меньше памяти, чем отдельные процессы. На опеннете почему-то упор на безопасность.
     
     
  • 4.64, Аноним (-), 04:13, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > В оригинальной статье упор на то, что такой подход требует сильно меньше
    > памяти, чем отдельные процессы.

    А проца это сколько требует, интересно? Потому что столько телепанеий на каждый int...

     

  • 1.2, Аноним (2), 15:30, 26/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >для изоляции выполнения библиотеки Graphite

    Не надо было в библиотеку для рендеринга шрифтов впихивать свой ЯП, к тому же нестандартный.

    >Механизм работы RLBox сводится к компиляции C/C++ кода изолируемой библиотеки в низкоуровневый промежуточный код WebAssembly

    Видимо этот WASI никому не нужен, вот и приходится самим это говно жрать, чтобы менеджерам сказать "WASI очень нужен, теперь Firefox на него завязан". А результат один - Firefox будет ещё больше тормозить и жрать ещё больше памяти и электричества. Мне одного PDF.js вчера хватило, который систему в своп вогнал, пришлось перезагружать резетом. И на системе не 512 MiB, как некоторые тут могли бы нафантазировать.

     
     
  • 2.3, Аноним (3), 15:38, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Откройте для себя zram.
     
     
  • 3.20, Аноним (-), 17:33, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сперва создадим себе проблем, а потом будем с ними героически бороться? Нет, zram хорошая штука. А вот файрфокс таки кривое и стремное блоатваре от окончательно свихнувшейся конторы, которая, видимо, очень хочет наконец забить на кодинг браузера и продать это каким-нибудь китайцам.
     
     
  • 4.42, деанон (?), 19:27, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Сделайте одолжение - удалите firefox. Просто, чтобы не слушать бесконечное нытьё.
     
     
  • 5.45, Omnonom (?), 20:09, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Праститя, удалив фуррятину на локалхосте вы не удалите её из остальной объективной реальности.
     
     
  • 6.48, Аноним (48), 22:30, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Но у вас есть возможность удалиться из  объективной реальности самому.
     
  • 5.65, Аноним (-), 04:18, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Сделайте одолжение - удалите firefox.

    Я это уже сделал, но мне тот факт что я сдуру насоветовал лису таки до сих пор икается, недовольными хомяками, которым гамадрила.корп уже не знающая чем заняться в очередной раз все изгадила и сломала. Например в 67 версии эти п-сы что-то поломали в скроллбарах. Не, действительно, нафиг нам скроллбары, когда тут высокие концепции дуром прут?! Еще немного и они достроят коммунизм. А кормить в пути никто не обещал, так что ежели вдруг у дорогого юзера да браузер опять стал неюзабелен, потерпите немного, это для вашего светлого будущего, ога :)

     
     
  • 6.76, Аноним (2), 12:32, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Например в 67 версии эти п-сы что-то поломали в скроллбарах

    Да нормальные скроллбары, просто под цвет темы.

     
  • 2.6, ryoken (ok), 15:56, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    >>PDF.js

    Сие поделие сразу после установки браузера откручивать надо, как идеологически вредное. В любом браузере.

     
     
  • 3.23, Аноним (-), 17:36, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Сие поделие умело запускать ремотные JS с правами браузера, показав акроридеру мастеркласс на тему запиливания vuln'ов и эксплойтов к ним. Кроссплатформенный эксплойт - это было круто и инновационно, когда один и тот же код нагибает и макось, и винду, и линь, и на чем там еще вы это недоразумение смогли запустить.

    А то что эта дрянь в итоге жрет адовое количество памяти и тупит 5 минут если pdf был чуть более 2 страниц (в даташите может быть и мегов 30, более чем на 1000 страниц, но вебмакаки про это не в курсе) - и потом на раз вылетает по OOM (прожевать десятки мегов нагенеренного JS туго, сами понимаете) - пардон, мозилла, но ваши технологии КГАМ.

     
  • 3.26, Аноним (26), 17:57, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Сие поделие сразу после установки браузера откручивать надо, как идеологически вредное. В любом браузере.

    Так?
    pdfjs.disabled;true

     
     
  • 4.66, Аноним (-), 04:24, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да можно просто другую открывашку выбрать и тогда он будет открывать пдфки системным просмотрщиком или просто сохранять.
     
  • 2.7, Аноним (9), 16:02, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Своп можно просто выключить и включить и он станет чистым. Перезагружаться для этого совсем лишнее если ты конечно не до конца завис.
     
     
  • 3.25, Аноним (25), 17:52, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    1) Ребутнуть комп при активном своплении может быть быстрее, чем ждать пока это все отработает :)
    2) Чтобы выключить своп, должно быть достаточно RAM в который все это выгрузится. А если свопом уже начали тарахтеть, значит с этим как раз проблема.
    3) И даже если RAM все же найдется, то что выдавливание страниц из свопа будет быстро - ниоткуда не следует.

    Мне интересно, а аноним пробовал свой совет в ситуации с активным своплением? :)

     
     
  • 4.29, Аноним (9), 18:02, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    1) Закрыть источник свопления?
    2) Закрыть источник свопления? И место хватит во всех 640 килобайтах
    3) Возможно это SSD так избаловал, но даже с HDD бывает такая медленная загрузка что проще почистить чем перезагрузиться. Хотя вот прям с секундомером не мерил бывают разные ситуации.
     
     
  • 5.59, Аноним (-), 03:51, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >  1) Закрыть источник свопления?

    Ага, если вы его знаете и смогли до него добраться за разумное время.

    > 2) Закрыть источник свопления? И место хватит во всех 640 килобайтах

    Его идентификация и/или форсированное убиение в тупящей системе может занять изрядно времени.

    > 3) Возможно это SSD так избаловал, но даже с HDD бывает такая медленная загрузка

    У лично меня с винча секунд 30 максимум. Идентифицировать и прибить проблемный таск за это время - разве что я точно знаю кто. А современные многопроцессные браузеры делают все это не таким уж пресным.

     
  • 4.36, анонн. (?), 18:31, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Мне интересно, а аноним пробовал свой совет в ситуации с активным своплением? :)

    А мне интересно, где же обычный Пингви-Няшный пафос насчет общего технического превосходства над маздайкой в целом и как раз в отзывчивости при стрессе - в частности? :)


     
     
  • 5.61, Аноним (-), 04:08, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Маздайка вообще выгружает полбраузера в своп пока юзерь в ворд переключился А к... большой текст свёрнут, показать
     
     
  • 6.83, Джафар (?), 23:26, 28/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    На 10 увы, реализовано подобие zram, но лично вы можете верить дальше,  что в 10 эта фича не реализована, а сам линукс ос для богов.
     
  • 2.82, Джафар (?), 23:21, 28/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А сколько же у вас оперативной памяти, 1 гигабайт?
    Вы сами сидите с маленьким количеством оперативы и ноете про плохое по.
    Это так лицемерно...
    Почему я думаю, что с маленьким? Иначе вы ба написали сколько её на вашей машине и не акцентировали внимание на числе 512.
    Я пользовался Firefox, когда у меня было ещё 4 гига оперативы и все было хорошо.
    Так что ваши крики и обвинения про плохой Firefox пусты и безосновательны.
     
     
  • 3.87, работайиди (?), 10:40, 11/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Даже если и 1 гб это значит что софту можно расжиратся и оптимизировать не нужно? Ну чисто хомячье не особо умное.
     
  • 3.88, Алладин (?), 10:41, 11/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Сидел когда-то с 512 памяти, хватало на все. Firefox плохой.
     

  • 1.4, Аноним (4), 15:42, 26/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Библиотека в отдельном процессе? Отродясь такого не было.
    Зачем тогда WASM?
     
     
  • 2.14, Аноним (14), 17:07, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    чтобы потορмοзиллось немного
     
  • 2.44, Анатолий (??), 19:51, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Зачем тогда WASM?

    Чтобы эта библиотека не имела доступа к функциям ОС.

     
     
  • 3.62, Аноним (-), 04:09, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Про JS они уже так говорили, не помешало кроссплатформенному 0day отсканить винчи половине интернета.
     
  • 3.73, Аноним (73), 10:36, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так примените что-то типа опёнковского pledge(2), и всё.

    Механизм изоляции под названием «процесс» давным-давно есть. Не понятно, зачем навороты? Пытаются сделать кроссплатформенное решение, что ли? Ну так им придётся функции ядра ОС по изоляции брать на себя. А это породит море проблем.

     

  • 1.8, Аноним (-), 16:03, 26/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Спосибо за нескучные грофики. Моё вам увожение. Спосибо. Но нет.
     
     
  • 2.70, КО (?), 06:40, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    "Спосибо за нискучные грофики. Маё вям увожение. Спосибо. На нит. "
    Исправил, раз уж на то пошло
     

  • 1.10, Аноним (10), 16:05, 26/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Миллениалы изобрели pledge(2) из OpenBSD?
     
     
  • 2.11, Аноним (11), 16:10, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Миллениалам уже за 40. Хм, т.е. за опенок маразматики топят?
     
     
  • 3.13, Аноним (13), 16:30, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В чем-то ты и прав)) Но с возрастом не всегда приходит разум, иногда возраст приходит один!
     
  • 3.18, Аноним (-), 17:14, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >т.е. за опенок маразматики топят?

    с подключением

     
  • 3.72, Аноним (72), 10:33, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да, и ЕГО топят маразматики, не умеющие писать безопасный код.
     
  • 3.77, Урри (?), 18:55, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    За 30. С 1980 прошло ровно 40 лет и "за сорок" еще почти год не будет ни одного миллениала.

    Пздц опеннет, два числа отнять не могут.

     

  • 1.12, Аноним (13), 16:28, 26/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ну не, все ставят расширения! Какие хотят. А это уже навязано..
     
  • 1.15, Аноним (15), 17:10, 26/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Первые два абзаца читаются ок, и тут...

    > Механизм работы RLBox сводится к компиляции C/C++ кода изолируемой библиотеки в низкоуровневый промежуточный код WebAssembly

    facepalm.apng

    А просто изолировать не получилось? Надо было wasm'ить? (а, ну так тут же "готовый инструментарий, чего стараться-то")

     
     
  • 2.17, Аноним (14), 17:14, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    чем больше виртуализации и тормозов -  тем лучше!
     
  • 2.24, Аноним (24), 17:43, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > I think you would find that doing this with just gcc/clang (so inside of C/C++, assuming no special compiler modifications) would be rather tricky to make work. But it’d be very cool to see!
     
  • 2.27, Аноним (27), 17:58, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Они таки придумали как сделать из си и плюсов Java :D. И мне кажется, мне таки придется посоветовать поставить хром знакомым хомячкам. Не потому что это хорошо, а потому что обтекать за то что насоветовал в свое время файрфокс я таки задолбался. Могу себе представить как какой-нибудь видеокодек будет работать, если там каждый int-чототам чикерить. Ухнет разика так в три, как ява, ибо int'ов там эвона сколько и они эвона с какой скоростью ворочаются, так что если там проверки делать - все и умрет к чертям собачьим. И будет у юзера вместо fullHD какой-нибудь 360p голимый. А юзеры начнут ныть "чтозанафиг опять лиса сломалась!!!111"
     
     
  • 3.78, Урри (?), 19:03, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Истины ради asm.js вполне себе бегает почти как нативный, даром что там те же инты. Так что не все так плохо.
     
  • 2.50, Crazy Alex (ok), 00:18, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А просто не совать недоверенные библиотеки нельзя? Тем более, что раз они их могут скомпилировать во что попало - могли бы и проревьюить
     

  • 1.16, Аноним (14), 17:11, 26/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > библиотека для обработки строк не сможет открыть сетевой сокет или файл

    Это только в красочной маркетинговой презентации, а на деле, как обычно, библиотеки будут требовать права на записную книжку, доступ в сообщения, к микрофону и камере, и чтобы файлы все читались.

     
     
  • 2.21, Аноним84701 (ok), 17:33, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Это только в красочной маркетинговой презентации, а на деле, как обычно, библиотеки
    > будут требовать права на записную книжку, доступ в сообщения, к микрофону и камере, и чтобы файлы все читались.

    Можно предложить на выбор комбинации из /dev/urandom, /dev/zero, /dev/full, /dev/null,  пиши-читай-доступай сколько угодно.


     
     
  • 3.67, Аноним (-), 04:27, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Можно предложить на выбор комбинации из /dev/urandom, /dev/zero, /dev/full, /dev/null,
    >  пиши-читай-доступай сколько угодно.

    Там еще как раз в линухе модуль эмуляции камеры подогнали, вот как раз можно и затестить :).

    А если сильно настаивать, я в принципе могу и обычный драйвер звуковухи немного пропатчить. Ну будет там не честное чтение с микрофона а выхлоп PRNG, слушайте его наздоровье :)

     
  • 2.71, КО (?), 09:42, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    До тех пор, пока WASM это все (включая сеть и user interface) не не может, то могут обтребоваться. А как только по их просьбам WASM научится, то он станет ненужным звеном.
     

  • 1.22, proninyaroslav (ok), 17:34, 26/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Главное, как всегда, что написано на расте. "Об уязвимостях можно больше не думать"
     
     
  • 2.28, Аноним (27), 18:01, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    На JS они уже не думали об уязвимостях. И смогли таки в крутейший кроссплатформенный vuln.
     
  • 2.30, Аноним (9), 18:04, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    unsafe в расте как всегда к безопасности
     
     
  • 3.32, proninyaroslav (ok), 18:18, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > unsafe в расте как всегда к безопасности

    Дело даже не в unsafe, он тут будет в любом случае, так как взаимодействует с сишным abi. Дело в позиционировании языка и создания из него некоего штампа безопасности, хайпа вокруг всяких блокчейнов и секурности. Для дргугих задач его даже и не рассматривают (не считая некоторых исключений), хотя это просто язык общего назначения, такой же как и C++.

     
  • 3.68, Аноним (-), 04:28, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > unsafe в расте как всегда к безопасности

    "Ну хоть что-то у нас в безопасности" (c) анекдот.

     
  • 2.31, Ordu (ok), 18:14, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Главное, как всегда, что написано на расте.

    Что написано на расте? RLBox, насколько я понимаю, написан на C++, иначе бы tainted<int> на картинке выглядел бы как Tainted<i32>.

     
  • 2.34, Аноним (13), 18:23, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Хуясте? Тут знаешь немного не так..не йазык красит человека))
     
  • 2.38, НяшМяш (ok), 18:35, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот кстати действительно, могли бы Graphite на расте переписать и ходить гордо надутыми индюками. А не пытаться пофиксить "несекурное NIH" путём запихивания в WASM.
     
     
  • 3.47, Ordu (ok), 21:47, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Graphite -- это язык описания шрифта, он выполняет шрифт как программу. Возможно шрифт загруженный из недоверенного источника. Чем тут поможет раст?
     
     
  • 4.51, Crazy Alex (ok), 00:20, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    И много там выполнять? Глифов как-то конечное число, можно один раз проинтерпретировать и забыть. А по-хорошему - не повторять уроки постскрипта и не делать из картинки программу
     
     
  • 5.57, Ordu (ok), 02:59, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > И много там выполнять? Глифов как-то конечное число, можно один раз проинтерпретировать
    > и забыть. А по-хорошему - не повторять уроки постскрипта и не
    > делать из картинки программу

    Не, ты не понял. Graphite -- это не замена Postscript'у или METAFONT'у. Он работает со строками и рендерит строки. А это убийственная задача в общем случае. Если ограничиться каким-нибудь одним языком, типа русского, то всё не так сложно. Но если попытаться выкатить единое решение для всех языков, то без скриптов под каждый язык+шрифт, ты не добъёшься ничего.

    Загляни сюда
    https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=CmplxRndExamples

     
     
  • 6.81, Аноним (81), 23:07, 28/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, неужели нельзя написать 1 скрипт для каждого языка и не клать его в шрифты, а клать в спец. папочку, и читать оттуда?
     
     
  • 7.84, Ordu (ok), 10:56, 29/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Кстати, неужели нельзя написать 1 скрипт для каждого языка и не клать
    > его в шрифты, а клать в спец. папочку, и читать оттуда?

    Если между шрифтами стандартизовано как из шрифта достать то или иное начертание символа (зависящее от контекста появления этого символа), то можно наверное.

     
  • 4.55, НяшМяш (ok), 00:58, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Никак конечно же. Однако переписывание выглядело бы чутка полезнее (хотя бы для популяризации раста), чем wasm. Да и по своему опыту переписывания с одного япа на другой могу сказать, что в процессе можно переделать архитектуру на более оптимальную, да и баги иногда получается отловить.
     
     
  • 5.56, Ordu (ok), 02:38, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Никак конечно же. Однако переписывание выглядело бы чутка полезнее (хотя бы для
    > популяризации раста), чем wasm.

    1. У раста с популяризацией всё ок. Оставь его в покое.
    2. Популяризация языка, как повод для почёсывания NIH -- это ничего так мотивация для тех людей, кто занят разработкой этого языка или его популяризацией, для разработчиков же браузера -- это совершенно идиотская мотивация. Их задача браузер пилить, а не популяризировать язык или там памперсы рекламировать.

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

    Это да, но Graphite -- это не мозилловская разработка. И брать на себя ещё и разработку растовой реализации Graphite -- зачем? Затем ещё можно переписать libpng на rust'е. Да вообще пробежаться по депендансам к ff, и все их переписать на rust'е. Или можно научиться засовывать библиотеки в "нанопроцессы", изолировать их от внешнего мира, и меньшими усилиями достичь больших результатов в отношении безопасности.

     
     
  • 6.69, Аноним (-), 04:31, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А таки мазиле логично этим заниматься - чтобы вендорлокнуть побольше народа на себя. Вот только со стороны разработчика вляпываться в вендорлок таки заявка на залет.

    А так то круто
    - Исходники вывалены, но только вот менять их нельзя :)
    - Централизованая репка, залоченая на мозилу корп.
    - Единственная реализация, завязанная на мозиллу.

    Пардон, даже для go есть например gccgo. А у этой шляпы условия настолько конские что даже так нельзя. И это, типа, не проприетарщина?

     
     
  • 7.80, proninyaroslav (ok), 18:15, 28/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Пардон, даже для go есть например gccgo. А у этой шляпы условия настолько конские что даже так нельзя. И это, типа, не проприетарщина?

    Можно. Только назвать это Cargo или Rust нельзя, ибо торговая марка. Та же история с фаирфоксом, но, вроде, никто проприетарщиной его не называл. Только вот зачем расту ещё один компилятор? Все эвристики и оптимизации gcc и clang предназначены в первую очередь для C++/C. Раст построен вокруг одного большого, сложно и оптимизированного для раста llvm-компилятора с линтерами и прочими, всё это требует большой работы. И gcc для раста "не пришей рукав", тем более что для допиливания под gcc требуется время и ресурсы, а выхлопа скорее всего не будет.

     

  • 1.33, Аноним_t (?), 18:23, 26/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как же они достали со всякими "инновациями". В наше время всё было лучше :-)
     
  • 1.39, Корец (?), 18:37, 26/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > RLBox нацелен на решение проблемы с безопасностью незаслуживающих доверия сторонних библиотек, которые не подконтрольны разработчикам, но уязвимости в которых могут скомпрометировать основной проект.

    Не использовать такие библиотеки, не? Особенно, если в основном проекта важна секурность.

     
     
  • 2.40, Аноним (2), 18:46, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Не использовать такой браузер, ОС и компьютер, не?
     
  • 2.60, Аноним (60), 04:07, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В статье рассказано, что сделано это для типичных библиотек libjpeg, libpng, libtheora (еще специально указали, что в ней полно дыр), libvpx, libvorbis. По сути это замена NaCl с учетом, что решение уже может использоваться в apache и nodejs.

    Если честно, то ничего принципиально нового не изобрели. Все можно свести к тому, что дали решение, которое под капотом создает отдельный процесс, дает api из 5 функций и заставляет копировать данные перед тем как передать их из родительского процесса в дочерний, а потом еще раз скопировать результат из дочернего процесса обратно в родительский.

    Надо радоваться, что хоть такое решение предоставили. Хотя самому сделать нечто аналогичное никто не запрещает, тем более что такая реализация уж больно очевидна в контексте данной задачи.

     
  • 2.79, AnonPlus (?), 21:13, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не использовать никаких сторонних библиотек?
     

  • 1.41, Аноним (13), 19:13, 26/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    На самом деле не все поняли эту задумку. Кому-то даже было лень)) Ну, скучно т. е. Вот есть уБлок, все сторонние домены нах - работает! Потом можно включить парочку, если очень нужно.. пока ЭТИ еще не смогли добиться должного уровня рандомизации кода. Ну а потом вероятно будут другие блокировщики..
     
  • 1.46, Аноним (46), 20:30, 26/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Что такое "нанопроцесс"? В ядре Линукс и других юникс-подобных ОС нет таких сущностей.
     
  • 1.49, Аноним (49), 23:26, 26/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Скоро дойдем до того что отключение вебасембли в about:config приведет к не работоспособности всего браузера.
     
     
  • 2.52, Crazy Alex (ok), 00:21, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну так выкинуть такой браузер
     
     
  • 3.54, Аноним (54), 00:57, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да давно уже выкинули.
     
  • 2.53, Аноним (14), 00:22, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хехе, это как Поттеринг прибил шурупами свою системду к программам.
     

  • 1.58, Аноним (60), 03:50, 27/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Для тех кому интересно короткий пересказ на русском обычной реализации автор но... большой текст свёрнут, показать
     
  • 1.74, _kp (ok), 11:30, 27/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Стоп. Они добро на говно переводят, причём с увереным и заумным выражением лица.

    Ладно, я могу понять неспособность проанализировать бинарники, и тем более чужие. Но речь о сборке из исходников, когда на выходе есть и мап, и исчерпывающая отладочная информация.

    Например у нас контроллер проверяет собственные обновление "на вменяемость".
    Да, обновление и проверено, и подписано  и даже своё, только контроллер далеко, и необслуживаемый, вот и приходится для всякой потенциальной пооблемы соломки подстилать.

    Хотя, даже голые бинарники можно успешно проверять. Да, это сложнене, но и результат совсем другого масштаба.
    И кстати, моральное удовлетворение, выше чем от перевода быстрого кода на типа безопасные JS/Python.

     
  • 1.75, Аноним (75), 11:55, 27/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мозилла начинает и кончает. Очередное:

    Mozilla замораживает проект своего шлюза для умного дома WebThings Gateway. Такое письмо разослал Дэвид Брайант участникам проекта WebThings Gateway.

     
     
  • 2.86, Она им (?), 12:17, 09/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Она разве еще не кончила?! Пора уже!
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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