РЛБок, нова технологија изолације библиотеке коју користи Мозилла

Фирефок Лого

Истраживачи Универзитета Станфорду Универзитет у Калифорнији у Сан Диегу y la Универзитет у Тексасу у Аустину Развили су се сет алата којима су дали име «РЛБок», да може се користити као додатни ниво изолације за блокирање рањивости у библиотекама функција.

РЛБок има за циљ да реши безбедносни проблем независних библиотека неповерене које програмери не контролишу, већ рањивости у којима би главни пројекат могао да угрози.

Мозилла планира да користи РЛБок у Фирефок 74 верзијама за Линук и компилације од мацОС у Фирефоку 75 да изолује извршење библиотеке Грапхите, која је одговорна за представљање извора.

Истовремено, РЛБок није специфичан за Фирефок и може се користити за изоловање било које библиотеке у произвољним пројектима.

О РЛБок-у

Механизам рада РЛБок се своди на компајлирање Ц / Ц ++ кода из изоловане библиотеке у средњи ВебАссембли код ниског нивоа, који се затим издаје као ВебАссембли модул, чије је овлашћење постављено да се веже само за овај модул (нпр. библиотека за обраду низова не може отворити мрежну утичницу или датотеку) Ц / Ц ++ конверзија кода ВебАссембли се врши помоћу васи-сдк.

За директно извршење, модул ВебАссембли компајлира се у машински код помоћу Луцет компајлера и ради у „нанопроцесу“ одвојеном од остатка меморије апликације. Компајлер Луцет заснован је на истом коду као и мотор Цранелифт ЈИТ који се користи у Фирефок-у за покретање ВебАссембли-а.

Састављени модул ради у одвојеном меморијском подручју и нема приступ остатку адресног простора. У случају искоришћавања рањивости у библиотеци, нападач ће бити ограничен и неће моћи да приступи меморијским областима главног процеса или контроли преноса изван песковника.

За програмере је обезбеђен АПИ на високом нивоу, који вам омогућава позивање функција библиотеке у режиму изолације.

Л Контролори ВебАссембли не захтевају готово никакве додатне ресурсе а интеракција с њима није много спорија од позивања уобичајених функција (функције библиотеке се изводе у облику изворног кода, а преоптерећење се јавља само приликом копирања и верификације података у процесу интеракције са окружењем у песку).

Функције изоловане библиотеке не могу се директно позвати и да бисте им приступили, морате користити слој инвоке_сандбок_фунцтион ().

Заузврат, ако треба да позивају спољне функције из библиотеке, те функције морају бити експлицитно дефинисане методом регистер_цаллбацк (по дефаулту РЛБок омогућава приступ стандардним функцијама библиотеке).

Да бисте осигурали сигуран рад меморије, изоловање извршења кода није довољно и такође треба да обезбедите верификацију враћених токова података.

Вредности генерисане у изолованом окружењу су означене као непоуздане, ограничене загађеним ознакама и захтевају верификацију и копирање у меморију апликације ради „чишћења“.

Без чишћења, покушај употребе загађених података у контексту који захтева редовне податке (и обрнуто) доводи до стварања грешака у фази компајлирања.

Аргументи мале функције, повратне вредности и структуре прослеђују се копирањем између процесне меморије и меморије песковника. За велике скупове података меморија се додељује у изолованом окружењу, а директни показивач „референца песковника“ враћа се главном процесу.

РЛБок програми се дистрибуирају под МИТ лиценцом. РЛБок тренутно подржава Линук и мацОС и очекује се да ће касније бити компатибилан са Виндовсом.

Ако желите да сазнате више о овој новој технологији коју Мозилла планира да примени у Фирефоку, можете консултовати њен развој као и тестирати АПИ У следећем линку.


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.