Edge krijgt modus die JIT-engine uitschakelt voor betere beveiliging

Microsoft geeft Edge een zogeheten 'Super Duper Secure'-modus waarmee bepaalde onderdelen van de JavaScript-engine kunnen worden uitgeschakeld om de browser veiliger te maken. De ontwikkelaars zeggen dat het een experiment is om te kijken of ze daar de browser beter mee kunnen beveiligen.

De nieuwe modus is bedacht door het Vulnerability Research-team van Microsoft. Gebruikers die de Super Duper Secure-modus aanzetten, schakelen daarmee de Just-In-Time-compilatie of JIT uit in de V8-JavaScript-engine. Volgens de onderzoekers wordt bijna de helft van de browserkwetsbaarheden in V8-JavaScript en WebAssembly misbruikt via de JIT-engine. Met de nieuwe modus moet de browser daarom naar verwachting veel minder kwetsbaar worden.

De makers vragen zich af of de extra snelheid die JIT creëert het waard is om de browser zo kwetsbaar te houden. "Voor gebruikers betekent het uitschakelen minder frequente securityupdates en minder noodpatches", zeggen de makers. Die noemen noodpatches 'een veelvoorkomende frustratie voor gebruikers'. Bovendien zouden er andere voordelen zitten aan het uitschakelen van de JIT-engine. Zo zouden technologieën zoals Intels Controlflow-Enforcement Technology kunnen worden ingeschakeld. Die hardwarematige exploitmitigatietechniek werkt namelijk niet goed samen met JIT, zeggen de ontwikkelaars.

De ontwikkelaars willen kijken naar de mogelijkheid om JIT uit te schakelen zonder daarbij de prestaties veel slechter te maken. In de praktijk lijkt dat prestatieverlies mee te vallen. In een laboratoriumomgeving zou het uitschakelen 'lang niet altijd een negatieve impact hebben'. De ontwikkelaars benadrukken dat het voorlopig om een test gaat, en dat ze graag de ervaring van gebruikers willen horen. Gebruikers kunnen de flag handmatig aanzetten in de browser via edge://flags/#edge-enable-super-duper-secure-mode.

Edge Super Duper Modus

Door Tijs Hofmans

Nieuwscoördinator

05-08-2021 • 13:33

62 Linkedin

Reacties (62)

62
60
26
4
0
28
Wijzig sortering
"super duper secure" klinkt niet echt professioneel. Rare keus voor een browser die zich zeer voor zakelijk gebruik profileert (vanwege de integratie met O365 en beheer). Geef een serieuze beveiligingsfunctie liever een serieuze naam.

Wel goed om deze optie te hebben, al zou ik het liever per groep sites in willen kunnen stellen: Bijvoorbeeld wel JIT voor alle interne bedrijfssites maar niet voor externe. Immers beheer je die zelf dus je hebt zelf de controle over wat er vanuit uitgevoerd wordt. En dit zijn vaak de echt zware JS applicaties zoals SalesForce waar je JIT gewoon hard nodig hebt. We hebben zelfs onze laptops naar minimaal 16GB moeten doen omdat SalesForce Lightning zo ontzettend zwaar is :')

Als IT architect zou ik dan eigenlijk willen dat die applicaties de JIT wel kunnen gebruiken maar als de gebruiker voor zichzelf wat loopt te googelen niet.

[Reactie gewijzigd door GekkePrutser op 5 augustus 2021 14:01]

"super duper secure" klinkt niet echt professioneel. Rare keus voor een browser die zich zeer voor zakelijk gebruik profileert (vanwege de integratie met O365 en beheer). Geef een serieuze beveiligingsfunctie liever een serieuze naam.
Als je het bronartikel leest, dan zie je het volgende staan:
Most importantly we plan to have fun with this project. This includes giving the experiment a slightly provocative name because we think it is funny, and it is a bit too early for something official. [...] Also, our tongue-in-cheek name will likely need to change to something more professional when we launch as a feature. For now, we are going to continue having fun with it.
Dit artikel is een blog van een research team. Dit gaat op een later moment door het browser team overgenomen worden, maar dan met een degelijkere naam.

[Reactie gewijzigd door the_shadow op 5 augustus 2021 15:18]

Ah inderdaad, dat had ik niet gezien.

Het verbaast me dan wel dat het zijn weg heeft gevonden in de produktieversie en niet in een beta ofzo.
Er worden wel vaker aan stable / production versies van de browser experimental functies toegevoegd.

Deze zijn meestel alleen in te schakelen door naar de “flags” pagina te gaan van de browser.
vindt wel grappig. Is een test instelling en geeft wel een beetje humor weer.
Als het in productie komt. En je het met GPO's e.d. kunt beheren. Zal het vast wel anders heten

SJIT bv ;-) (secure JIT).
Ja dat is waar, het is nog een experiment. Zal inderdaad wel nog veranderd kunnen worden.

Het idee achter mijn opmerking is meer dat dit zich uiteindelijk ook in serieuze cybersecurity policies terecht zal komen. En dat zijn vaak nogal serieuze mensen omdat er zo veel geld op het spel staat.
als de naam zo blijft als die is, zal het waarschijnlijk binnen heel korte tijd SDS-mode genoemd worden onder professionals.
Je hebt wel een beetje gelijk maar tegenwoordig begint men zich grotendeels te realiseren dat je voordoen als puur zakelijk bedrijf ervoor zorgt dat klanten zich minder kunnen identificeren met je merk. Af en toe wat lol tussendoor is helemaal niet slecht voor branding als je producten maar degelijk zijn.
Dat is waar, maar een gewone gebruiker gaat deze optie echt never nooit tegenkomen omdat hij zo verstopt is :) Dit is ook niet iets dat het nieuws voor gewone consumenten haalt.

[Reactie gewijzigd door GekkePrutser op 5 augustus 2021 13:58]

Tweakers zijn anders ook consumenten, die weer andere consumenten beïnvloeden en adviseren (familie/vrienden).
Inderdaad. Super duper secure, één kwetsbaarheid en Microsoft is weer de risee.
Anoniem: 1532362
5 augustus 2021 13:41
1 goede zaak mannen. Maar kun je JIT zelf niet wat 'hardenen' en veiliger maken? Een soort middenweg.

[Reactie gewijzigd door Anoniem: 1532362 op 5 augustus 2021 13:42]

Makkelijker gezegd dan gedaan. JIT is nou eenmaal een enorm complex beest, en er zijn enorm veel dingen mee mogelijk. Het wordt natuurlijk constant verbeterd, maar zolang er nog dit aantal exploits mee gedaan kunnen worden, is het beter om de gebruiker een optie te geven het uit te zetten.
En toch heeft Mozilla meerdere keren hun JavaScript JIT onderhanden genomen. Ook in de Java wereld heeft men meer dan eens HotSpot overhoop gehaald, en is met met GraalVM zelfs from scratch begonnen. Ook Microsoft heeft de JIT van .NET al 2 keer vervangen.
Maar het aanpakken van je JIT betekent niet dat het direct veilig is. Om je voorbeeld van Mozilla maar te pakken, het onderzoek van Mozilla dat Microsoft citeert pakt natuurlijk ook haar eigen exploits erbij, en ook daar werden in 2020 50% van de exploits veroorzaakt door JIT bugs (dit was overigens een verbetering ten opzichte van 2019, waar 100% van de exploits in Firefox werden veroorzaakt door JIT bugs).
huh, dat is toch geen verbetering?

als 100% werd veroorzaakt door JIT Bugs, betekend dit dat er geen andere exploits mogelijk waren.

oftewel, er moeten non-JIT exploits bijgekomen zijn om op 50% uit te komen.
Veel success: https://chromium.googlesource.com/v8/v8

Het is een beetje zoals zeggen, kan je de GNU Compiler niet aanpassen zodat er geen virus meer mee kunnen worden ontwikkeld.
Snap de keus niet om de oude edge af te danken. Ik vond t een prima browser.
Ik had dat ook liever gezien als tegenhanger van het monopolie van Chrome. Ondanks dat het verpakt wordt door meerdere browsers is een gezonde competitie belangrijk voor het web ecosysteem.

Er was ook niks mis met de engine van de oude Edge. Ik denk dat het vooral een stuk populairder is geworden doordat Microsoft enorm hard in het bedrijfsleven is gaan pushen, niet zozeer door de Chromium engine.

Er was echt een tijd dat je geen call kon hebben met iemand van MS (in welke functie dan ook) of ze moesten weer vragen waarom je geen Edge gebruikte. En ook veel druk van ze om het de standaard bedrijfsbrowser te maken. Ze hebben ook wel wat handige tools ingevoerd zoals wat integraties met Azure AD en Office 365 (zoekfunctie) maar ik heb toch het gevoel dat het vooral de politieke druk is geweest die het ons de standaard browser heeft doen maken.

PS: Persoonlijk gebruik ik altijd alleen maar Firefox en op het werk ook voornamelijk :)

[Reactie gewijzigd door GekkePrutser op 5 augustus 2021 14:42]

Gebruik oude edge alleen voor netflix stiekem. Werkt niet in firefox. Iig bij mij niet. Maar t voelt altijd vlot. Kun je over ff niet altijd zeggen haha
Waarom de oude Edge als ik vragen mag? Ik dacht dat de hogere resoluties ook in de nieuwe Edge worden ondersteund.
Tja die kwam mee met mn windows 10 installatie
Als je die om die reden nog steeds de oude Edge gebruikt, dan loop je ook een paar W10 updates achter.
Ja klopt. Ooit windows update eruit gesloopt
Ja klopt Firefox is niet de vlotste maar dat maakt me niet zo uit. Ik vind het vooral belangrijk dat de sync end to end encrypted is. En dat er geen Google tracking in zit.

En dat ik daarmee een engine in stand hou die tegenwicht geeft tegen die van Chromium is mooi meegenomen.

[Reactie gewijzigd door GekkePrutser op 5 augustus 2021 14:50]

Ben wel overgestapt op waterfox want sommige extensies die ik had werken niet meer en tja kan simpelweg niet zonder.
Vandaar dat Firefox voor jou niet altijd vlot voelt en Edge wel...
En niet te vergeten dat je een eigen Firefox sync server kunt draaien, dan staan al je passwords alleen bij jezelf. :D Je moet nog wel authenticeren via Mozilla maar ze zijn ook bezig met een self-hosted identity server.
Ja ik zag het, maar gezien dat het toch al E2E encrypted is, heb ik die moeite niet genomen. Het gaat me er vooral om dat mijn data prive blijft (en zelf als ik het zelf ga hosten dan zal het alsnog op een serrver van Scaleway draaien, niet van mezelf :) )
Nou ja, het is wel E2EE maar Mozilla beheert hier 1 "end" van dus theoretisch zouden ze bij je data kunnen. ;]
Hmm dat is waar en ze hebben mijn wachtwoord ook. Misschien doe ik dat dan toch wel. Goed punt!
Mocht je nog willen weten of authenticeren via Mozilla veilig is, hun docs zeggen:
You can safely use the Mozilla-hosted Firefox Accounts server in combination with a self-hosted sync storage server. The authentication and encryption protocols are designed so that the account server does not know the user’s plaintext password, and therefore cannot access their stored sync data.
De code is gewoon open saus dus als wat ze hier zeggen niet klopt dan had je er al lang iets over gehoord. Ze hebben wel een self-hosted account service maar die is nog (zeer) experimenteel. :D
Dat is ook mooi. Overal de blits maken dat je browser zo snel is en dan vervolgens de JIT JS engine uitzetten omdat het niet veilig is. Ik stel voor dat je de JIT dan maar verbetert
Het gebruikt gewoon letterlijk dezelfde engine (en code daarvan) als Chromium en daarmee Chrome. De kwetsbaarheid en snelheid van dat gedeelte is tussen die browsers dus gewoon identiek. Als het in Chrome verbetert, dan in Edge ook.

Microsoft biedt een extra optie bovenop de concurrentie om een beetje van deze snelheid in te ruilen voor veiligheid. Dan heb je toch de keuze? Anders kan je evengoed bij Chrome ranten dat het een onveilige rommelboel is.
De reden waarom chromium snel is, is de JIT ;) Dat scheelt echt factor 10 ofzo ten opzichte van zonder JIT. Zeker als je applicaties als office gaat draaien, snap ik de keuze niet zo.

@Cerberus_tm yes, spidermonkey (de engine van firefox) draait al jaren op JIT

[Reactie gewijzigd door jaenster op 5 augustus 2021 14:39]

Ik heb een beetje gezocht en kwam erbij uit dat het V8-team in 2019 deze optie eigenlijk al geïmplementeerd had, om te kunnen draaien op sommige systemen en.. verbeterde veiligheid mogelijk te maken. En ze hebben benchmarks gedaan!

https://v8.dev/blog/jitless

En ja, in pure benchmarks is er een goed verschil van 40-80%. Ze zeggen echter óók:
Finally, we measured a simulated browsing session on the Living Room YouTube app which includes both video playback and menu navigation. Here, JIT-less mode is roughly on-par and only shows a 6% slowdown in JS execution compared to a standard V8 configuration. This benchmark demonstrates how peak optimized code performance is not always correlated to real-world performance, and in many situations embedders can maintain reasonable performance even in JIT-less mode.
Exact waar ik aan dacht. Lang niet alles is super-javascript-heavy zoals die benchmarks. Als je pagina normaal 120ms aan javascript per pageload nodig heeft (en nog meer tijd elders) maar met deze toggle er 60ms bij krijgt.. Veel gebruikers gaan dat niet merken.

Misschien zal het uiteindelijk ook wel met een whitelist werken. Resources van Google Docs en/of Office365 mogen JIT gebruiken, de rest niet. Ik zeg maar wat.
Whitelist zou me een goede idee lijken!
Heeft Firefox dit ook?
Elke grote browser heeft een JIT. Chromium, Firefox en WebKit bieden elk hun eigen JIT aan.
Dan vraag ik me af in hoeverre JIT in Firefox ook extra kwetsbaar is. En of het ook weinig snelheidswinst oplevert.
Dan vraag ik me af in hoeverre JIT in Firefox ook extra kwetsbaar is. En of het ook weinig snelheidswinst oplevert.
De schrijvers geven aan dat alle JIT implementaties een makkelijk doelwit zijn. Zie ook de grafieken met bekende JIT-bugs.
Hmm dan hoop ik dat je het in Firefox ook uit kunt zetten...
Dat zal aan de ontwikkelaars van Firefox liggen.
De reden waarom chromium snel is, is de JIT ;) Dat scheelt echt factor 10 ofzo ten opzichte van zonder JIT. Zeker als je applicaties als office gaat draaien, snap ik de keuze niet zo.

@Cerberus_tm yes, spidermonkey (de engine van firefox) draait al jaren op JIT
Ze geven woordelijk aan in hun artikel dat "We see that most tests see no changes with JIT disabled. There are a few improvements and regressions, but most tests remain unchanged. Anecdotally, we find that users with JIT disabled rarely notice a difference in their daily browsing. [...] We find that disabling the JIT does not always have negative impacts." Dit is van het Edge dev team, dus een chromium browser. Uiteraard zijn er webapplicaties die gebaat zijn bij JIT, maar het overgrote deel van de sites compileert dus kennelijk hoe dan ook alle code, waardoor JIT onzin is. Wederom, grote applicaties als Office zijn er wel bij gebaat, omdat niet alle code direct beschikbaar hoeft te zijn, maar overige sites maakt het dus niet voor uit.
In de praktijk lijkt het prestatieverlies mee te vallen, staat in het artikel. Verder kijken ze naar mogelijkheden om zonder JIT de snelheid te verbeteren. Daarnaast is het voorlopig een test, dus je hoeft niet JIT uit te schakelen in je browser.
Vent, waar heb je het over. JIT is niet bedacht door Microsoft, dat zit al tijden in o.a. de Chromium engine. Als nu jaren later blijkt dat het beveiligingsproblemen oplevert, en dat het zonder al teveel snelheidsverlies kan worden uitgezet in Edge, is dat toch alleen maar mooi?
Misschien grappig maar de Java VM (in deze context bekend van de Applets) had altijd al de mogelijkheid om in fully interpreted mode (dus zonder JIT) te draaien.
Dit is eigenlijk zo'n beetje waar de critici met WebAssembly voor gewaarschuwd hebben, onveilige machine code; ik begrijp het ook niet echt, de JS engine is bloedsnel.
WebAssembly kan je ook uitvoeren zonder JIT hoor, lijkt me?
Sterker nog, WASM is meestal AOT, geen JIT. Als je op het moment van draaien nog je programma moet gaan zitten compileren naar WASM doe je toch echt iets verkeerd. De JIT is hier puur en alleen de javascript die tijdens runtime wordt gecompileerd om nog wat extra snelheid te krijgen.
Ik denk dat je het concept van Web asm niet zo goed snapt, er is geen enkele pc die op WASM draait.

WASM is wel snel om te zetten (lees basaal) naar de lokale machine code, of dat nu ARM of X86 is. Het is dus een tussen taal (zo als de IL in dotnet, en bytecode in Java). Iets kan compileren naar webasm, wat jij waarschijnlijk bedoelt met AOT. Maar, op het moment dat er iets mee gebeuren moet in de browser/node word het vertaald naar de lokale machine code die die machine draait. (en is een vorm van JIT)
Je hebt gelijk dat er nog een stap tussen zit, en je dat als JIT kan zien. Het omzetten hiervan is echter dan wel weer een stuk makkelijker te checken dan de JS V8 JIT, en is ook zeker niet de JIT waar het in dit artikel over gaat. De stap van WASM naar ASM is dusdanig veel kleiner dan van JS naar ASM, dat het een stuk makkelijke te controleren is, en dat exploits minder zullen voorkomen.
Ben ik het niet mee eens, de JIT vertaalt de opcodes naar machinecode buiten de javascript virtual machine en dat is denk ik de reden voor het uitschakelen van de JIT, de runtime bescherming is een stuk minder waardoor bugs in de compiler security problemen leveren.
Zoals @jaenster toelicht is er een stap waar WASM naar machine code wordt omgezet.
Die machine code kan code voor de javascript virtual machine zijn of native code.

De doelstelling van WASM is code op native speed en gebruik van hardware capabilities ter plaatse, ik ga er dus vanuit dat hier met JIT de compiler bedoeld wordt die direct machine code genereert i.p.v. javascript instructies.
Detail: Dit werkt/bestaat alleen onder Windows.

Verder gaat de Speedometer 2.0 performance van 120±1.5 -> 81±1 op een koude i5-8265U (HP 450 G6 uit 2018) met Windows 11. Interessant dat Javascript optimalisaties maar zo weinig uitmaken. +48% is natuurlijk niet niks. Maar ik had meer verwacht van een geïnterpreteerde versus geJITte taal.

Het zou wel cool zijn als ze dit op basis van exploitatie meldingen per domein of URL kunnen inschakelen.

Hardware versnelling voor het genoemde Controlflow-Enforcement Technology (CET) zit pas in 11de generatie Intel processoren (die van dit jaar). Maar de techniek bestaat in software onder Windows al sinds 2015 als Control Flow Guard (CFG).

[Reactie gewijzigd door Henk Poley op 5 augustus 2021 18:08]

edge bestaat toch ook alleen voor windows?
Je hebt Edge ook voor Linux, Mac en iOS.
Gek. Hier een i7 8700k (desktop dus).

Daar slechts 86 runs/min met JIT aan. 64 runs/min met JIT uit... Hoe kan jij met een mobile cpu zo significant meer performance hebben? :D

Edit: incognito doet 'ie met JIT aan 149 runs/min :+ Blijkt dat Lastpass nogal wat impact heeft. Komt waarschijnlijk door al die inputfields die steeds gegenereerd worden en Lastpass probeert aan te vullen met een Lastpass-icoontje.

[Reactie gewijzigd door Saven op 6 augustus 2021 11:50]

Windows / Intel CPUs zijn ontzettend gevoelig voor wat er nog meer draait. Sluit eens echt alles af, ook OneDrive, Teams, Skype en dat soort "achtergrond" taken. En draai het ook in incognito zonder extensions. Bijvoorbeeld adblockers moeten overal een mening over hebben, dus die trekken de boel enigszins omlaag.

Meestal scoort dat systeem ook niet zo hoog, nee.

[Reactie gewijzigd door Henk Poley op 6 augustus 2021 11:53]

Het was idd een plugin: Lastpass, zie (tweede) edit :)

Op dit item kan niet meer gereageerd worden.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee