Mozilla Π·Π°ΠΏΠΎΡ‡Π²Π° внСдряванСто Π½Π° тСхнологията Π·Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° RLBox

Π˜Π·ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΎΡ‚ Бтанфордския унивСрситСт, ΠšΠ°Π»ΠΈΡ„ΠΎΡ€Π½ΠΈΠΉΡΠΊΠΈΡ унивСрситСт Π² Π‘Π°Π½ Π”ΠΈΠ΅Π³ΠΎ ΠΈ ВСксаския унивСрситСт Π² ΠžΡΡ‚ΠΈΠ½ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈ инструмСнти RLBox, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ ΠΈΠ·ΠΎΠ»Π°Ρ†ΠΈΠΎΠ½Π΅Π½ слой Π·Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π½Π° уязвимости във Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. RLBox Π΅ насочСн към Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° със сигурността Π½Π° Π½Π΅Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΈ страни, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅, Π½ΠΎ Ρ‡ΠΈΠΈΡ‚ΠΎ уязвимости ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΠΈΡ€Π°Ρ‚ основния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Компания Mozilla ΠΏΠ»Π°Π½ΠΎΠ²Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ RLBox Π² Linux ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΈ Π½Π° Firefox 74 ΠΈ macOS ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΈ Π½Π° Firefox 75, Π·Π° Π΄Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Ρ‚Π΅ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π³Ρ€Π°Ρ„ΠΈΡ‚, отговарящ Π·Π° изобразяванСто Π½Π° ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ²Π΅. RLBox ΠΎΠ±Π°Ρ‡Π΅ Π½Π΅ Π΅ спСцифичСн Π·Π° Firefox ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° всякакви Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ RLBox разпространСниС ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· Π½Π° MIT. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° RLBox ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Linux ΠΈ macOS ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ, ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Windows сС ΠΎΡ‡Π°ΠΊΠ²Π° ΠΏΠΎ-късно.

ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° RLBox сС свСТда Π΄ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° C/C++ ΠΊΠΎΠ΄Π° Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π² ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ WebAssembly ΠΊΠΎΠ΄ ΠΎΡ‚ ниско Π½ΠΈΠ²ΠΎ, ΠΊΠΎΠΉΡ‚ΠΎ слСд Ρ‚ΠΎΠ²Π° сС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π° ΠΊΠ°Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ» WebAssembly, Ρ‡ΠΈΠΈΡ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ сС Π·Π°Π΄Π°Π²Π°Ρ‚ само ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠ΄ΡƒΠ» (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ няма Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡ‚Π²ΠΎΡ€ΠΈ ΠΌΡ€Π΅ΠΆΠΎΠ² сокСт ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»). ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° C/C++ ΠΊΠΎΠ΄ Π² WebAssembly сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° wasi-sdk.

Π—Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ изпълнСниС ΠΌΠΎΠ΄ΡƒΠ»ΡŠΡ‚ WebAssembly сС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π° Π² машинСн ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ Π›ΡƒΡ†Π΅Ρ‚ ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ "нанопроцСс", ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ ΠΎΡ‚ останалата част ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. ΠšΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Lucet сС основава Π½Π° ΡΡŠΡ‰ΠΈΡ ΠΊΠΎΠ΄ ΠΊΠ°Ρ‚ΠΎ JIT двигатСля ΠšΡ€Π°Π½Π»ΠΈΡ„Ρ‚, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ във Firefox Π·Π° изпълнСниС Π½Π° WebAssembly.

БглобСният ΠΌΠΎΠ΄ΡƒΠ» Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² ΠΎΡ‚Π΄Π΅Π»Π½Π° област Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ няма Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ останалата част ΠΎΡ‚ адрСсното пространство. Ако сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° уязвимост Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π°, нападатСлят Ρ‰Π΅ бъдС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ ΠΈ няма Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ областитС Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° основния процСс ΠΈΠ»ΠΈ Π΄Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° извън ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½Π°Ρ‚Π° срСда.

Mozilla Π·Π°ΠΏΠΎΡ‡Π²Π° внСдряванСто Π½Π° тСхнологията Π·Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° RLBox

ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Ρ сС информация Π½Π° високо Π½ΠΈΠ²ΠΎ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ API, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ Ρ€Π΅ΠΆΠΈΠΌ. ΠœΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° WebAssembly Π½Π΅ изискват ΠΏΠΎΡ‡Ρ‚ΠΈ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ рСсурси ΠΈ взаимодСйствиСто с тях Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ ΠΎΡ‚ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° собствСн ΠΊΠΎΠ΄ ΠΈ Ρ€Π΅ΠΆΠΈΠΉΠ½ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈ Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‚ само ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° взаимодСйствиС с ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½Π°Ρ‚Π° срСда). Π˜Π·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·Π²ΠΈΠΊΠ°Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΈ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Ρ‡Ρ€Π΅Π·
слой invoke_sandbox_function().

На свой Ρ€Π΅Π΄, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΠΈΠ·Π²ΠΈΠΊΠ°Ρ‚ външни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π°, Ρ‚Π΅Π·ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Ρ‡Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄Π° register_callback (ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ RLBox осигурява Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ стандартна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°). Π—Π° Π΄Π° сС Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π° бСзопасността Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, изолацията ΠΏΡ€ΠΈ изпълнСниС Π½Π° ΠΊΠΎΠ΄ Π½Π΅ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½Π° ΠΈ изисква ΡΡŠΡ‰ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π²ΡŠΡ€Π½Π°Ρ‚ΠΈΡ‚Π΅ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ.

БтойноститС, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½Π° срСда, са ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΠΈ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° ΠΎΠΏΠ΅Ρ‚Π½Π΅Π½ΠΈ Π±Π΅Π»Π΅Π·ΠΈ ΠΈ Π·Π° "почистванС" Ρ‚Π΅ изискват ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.
Π‘Π΅Π· почистванС ΠΎΠΏΠΈΡ‚ΡŠΡ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΠΎΠ²Ρ€Π΅Π΄Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² контСкст, ΠΊΠΎΠΉΡ‚ΠΎ изисква Ρ€Π΅Π΄ΠΎΠ²Π½ΠΈ Π΄Π°Π½Π½ΠΈ (ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΡ‚ΠΎ), Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅. ΠœΠ°Π»ΠΊΠΈΡ‚Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° функцията, Π²ΡŠΡ€Π½Π°Ρ‚ΠΈΡ‚Π΅ стойности ΠΈ структуритС сС ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° процСса ΠΈ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° ΠΏΡΡΡŠΡ‡Π½ΠΈΠΊΠ°. Π—Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π½Π°Π±ΠΎΡ€ΠΈ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° сС разпрСдСля Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½Π° срСда ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π΅Π½ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π΅Π½ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π» Π½Π° ΠΏΡΡΡŠΡ‡Π½ΠΈΠΊΠ° сС Π²Ρ€ΡŠΡ‰Π° към основния процСс.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€