Mozilla aktiverer W ^ X i Firefox 46 for at forbedre sikkerheden

Mozilla aktiverede sikkerhedsfunktionen W ^ X i Firefox Nightly (i øjeblikket version 46) og planlægger at gøre den tilgængelig for andre versioner af sin webbrowser, når de er opgraderet til version 46.

W ^ X, talte Skriv XOR Execute, er en sikkerhedspolitik for hukommelse, der definerer hukommelsessider som enten skrivbare eller eksekverbare, men ikke begge. Funktionen er til stede i OpenBSD-operativsystemet siden 2003.

OpenBSD-basesystemet er blevet ændret for at overholde det. Dette lindrer nogle bufferoverløbsangreb, herunder det mest almindelige stakbaserede angreb: Ved at sikre, at stakken ikke er eksekverbar, vil vilkårlig kode injiceret i det ikke udføres, men i stedet få programmet til at opsige

De fleste JIT (Just in Time) -samlere bruger RWX (read-write-execute) tilladelser til hukommelsessider, som gør det muligt for kompilatoren at patch-kode uden overhead. Dette er tilfældet for Firefox's nuværende JIT compiler, men også for Chrome's eller Safari's compiler.

Selvom det er gavnligt for browserens ydeevne, mens du udfører og kører JavaScript-kode, introducerer den problemer samtidig.

RWX Security

firefox xnumx rwx

Mens de fleste moderne operativsystemer gemmer kode i eksekverbar, men ikke-skrivbar hukommelse, er RWX JIT-kode en undtagelse herfra, hvilket gør det til et mål for angreb. Hukommelseskorruption kan også være et problem.

Mozillas implementering af W ^ X gør alle JIT-kode sider ikke-skrivbare som standard. Hvis browseren skal skrive til sider, skal en funktion kaldes for at eksplicit gøre siden skrivbar og fjerne det udførte flag samtidig.

Når skriveoperationen er kørt, ændres dens tilladelser for at læse og udføre igen.

Udvikleren ansvarlig for implementeringen noter at indførelsen af ​​funktionen påvirker ydeevnen, mens du udfører JavaScript-kode.

Ifølge benchmarktests mister Firefox mindre end 1% på moderne benchmarks som Kraken eller Octane, og mindre end 4% på ældre benchmarks som SunSpider. Selvom et præstationsfald er målbart, er det ikke mærkbart for brugere af browseren, når JavaScript-kode udføres af den.

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.