Strengthening the Microsoft Edge Sandbox
blogs.windows.com
blogs.windows.com
This blog post looks more like a damage control measure.
[1] http://www.tomshardware.com/news/pwn2own-2017-microsoft-edge...
One UNsuccessful attempt? Does that mean only one attempt on chrome was made?
https://www.zerodayinitiative.com/blog/2017/3/15/the-results...
One interesting thing is that Edge feels more sluggish compared to other browsers on a fast system, but performs well on a slow system compared to other browsers.
One huge annoyance with Edge is that it's spelling tool follows the OS language, hard to switch between languages. It is also not that good to give suggestions on mispelled words.
I use it on a slow netbook only because Opera has introduced a memory leak in the last few releases.
Unfortunately the browser experience is constantly degrading cross browsers, in lockstep with bloated single page apps.
What I want is IE's rendering speed with Chrome's UI and Firefox's extensibility (the good old system, not the new one).
Try killing explorer.exe and resizing a UWP app; Something that should have nothing to do with app windows is fiddling with app frames.
General nonsense in how the UWP system works is responsible for a lot of lagginess and the generally immature feel of the system.
I would love to love Edge, but it really is crippled by the artifacts of its UWP implementation.
I'll also take Opera's built in vpn, iridium's privacy measures, vivaldi's dev tools, and blisk's mobile preview feature.
Same goes for the file menu in Windows Explorer.
https://blogs.windows.com/msedgedev/2017/02/23/mitigating-ar...
Microsoft should apply these same restrictions to all UWP apps. Yes, that means banning JIT compilation, as Apple does on iOS. And desktop applications shouldn't be able to inject DLLs into UWP applications and system components.
On any platform, it makes sense to enforce code signing by default as a hardening measure, but some apps like browsers cannot operate without a JIT. So there needs to be some exception process - possibly requiring the use of a separate process for JIT compilation, as Edge now does. You don't want to end up like iOS where Safari is the only browser permitted on the platform.
I really wish they didn't. Banning JIT means banning alternative web browsers (with alternative JavaScript engines,) banning other languages that use a runtime with a JIT, and making it very difficult to write programs that need a JIT for performance, like video game emulators. Banning JIT outright like Apple does makes for a less useful computing platform. What's worse is that if certain operating-system components are allowed to break the rules (like the built-in JavaScript engine,) it locks you in to the vendor's implementation of these components. Imagine if you could only use the CLR and not the JVM on Windows. Mitigating RCEs is important, but it's not that important.
Making it a policy that can be enabled per-app (like Windows 10, according to a sibling comment) is fine though.
When .NET UWP applications are uploaded the store pre-compiles them on the server with .NET Native. The user only downloads and executes native code.
https://blogs.windows.com/buildingapps/2015/08/20/net-native...
One great feature of .NET Native is that the compiler is capable of being hosted in the cloud. When you build your Store package in Visual Studio, two packages are created – one .appxupload and one “test” .appx for sideloading. The .appxupload contains the MSIL binaries as well as an explicit reference to the version of the .NET Native toolchain your app consumes (referenced in the AppxManifest.xml). This package then goes to the Store and is compiled using the exact same version of the .NET Native toolchain. Since the compiler is cloud hosted, it can be iterated to fix bugs without you having to recompile your app locally.
The EMET mitigations which are no longer supported have either been depreciated because of better ones (control flow guard) or are not terribly effective (EAF/EAF+, use of debug registers).
[1] https://theryuu.github.io/ifeo-mitigationoptions.txt
[2] https://msdn.microsoft.com/en-us/library/windows/desktop/ms6...
[3] https://msdn.microsoft.com/en-us/library/windows/desktop/hh7...
It seems the signature is checked before allowing this mitigation so only Microsoft signed applications can currently use this mitigation[1].
[1] https://googleprojectzero.blogspot.com/2016/11/breaking-chai... (see Wrap Up section near the end)
The difference with Edge and IE is that they run their UI and graphics stack in their content processes, which are an analog to Chrome's renderer processes. However, any UI on Windows requires win32k kernel support, so they can't disable it like Chrome does. Instead, Edge uses its win32k filter to limit the attack surface to only the calls that they need. So, where Chrome's architecture allowed us to make an aggressive cut, Microsoft is instead working to iteratively shut off the same attack surface in Edge.
And yes, the win32k whitelist is currently restricted to EdgeHTML processes by the kernel and signature enforcement. I know this because we currently sandbox our GPU process at about the same level as an IE content process, and we wanted to use the win32k whitelist get the same improvements as Edge. Unfortunately, Microsoft is still working on the capability, and is not ready to expose it to third-parties yet (but has given signs they may be willing to do so in the future).
Source: I lead engineering on Chrome security and am the original architect of Chrome's win32k lockdown.
MS made it very painful for website developers to support Internet Explorer, and having to support IE crippled the web for years.
Today there is not a single developer that likes Internet Explorer or its successor Edge. You will not see a single human being on planet Earth with an Edge t-shirt, and if you see one, it's probably that person's laundry day.
The e logo only brings memories of your computer freezing or getting millions of stupid popups or a browser window with hundreds of toolbars (when you used someone else's computer), and conversations asking people to try another browser, or having to switch my user-agent string or create a VM with the sole purpose of running an IE only website, or having to stay late at work because some user with IE experienced problems.
Plus, Microsoft is dishonest and used their browser to mine Google Search activity and send it to their servers to improve Bing. And god knows what else.
Microsoft is selfish, plays dirty and does not deserve a seat at the table of people deciding web standards. They can make Chakra 100x faster, make you a sandwich and jump through hoops but nobody trusts them anymore so it doesn't matter.
We all lived a decade under the tyranny of Internet Explorer and we had enough. If there is a product that deserves to go away, it's Microsoft's web browser. The day it does I am going to throw away a party, and I am sure many others will as well. Please give up, use your time on something else.
I understand it was added specifically for Edge sandboxing, but it sounds like useful functionality (albeit niche) for other apps that deal with untrusted data routinely.
PS - In terms of technology and standards Edge is a pretty solid browser. I love the Dark theme.
Essentially the thing they added in the Creators Update and are discussing here.
"I want to support MS, I’m a development partner. But I feel like you guys spend way too much time thinking about how to push intrusive ad’s into the OS and trying to get easy ad-based revenue from your browser: Talking very good security talk but not walking a very good security walk."
The commenter also makes a comment about how Chrome the older browser was found to be much more secure than Edge the newer one. And then a bunch of technical stuff from someone responding to it (the respondent is not the person writing the article).
Am I the only one who feels MSFT would simply be better off not writing these articles at all if they don't particularly care for engaging with their audience?
Oh, and you can't leave a comment without signing in with a Microsoft account. :-)
The best way to secure a browser is just like what chrome and firefox do: open source it.
Chrome adds a lot of proprietary bits including (but not limited to): Audio & Video Codecs, Flash Plugin, Crash Reporting, Metrics, et al.
These are not proprietary, actually.
" Audio & Video Codecs,"
Neither is this, last i looked (but i haven't looked in a while).
You can use Chromium directly if you want to.
Many important projects exist because Chromium and v8 are open source.
The IE/Edge layout engine has always been a source of infamous trickery. It would be good that they finally open source it.
The chakra.dll that comes as part of Windows/Edge includes the additional parts not included with ChakraCore (at least that is how it reads to me).
No thanks.
Chrome - 57.54%
IE - 14.12%
Edge - 12.88%
Firefox - 9.30%
Safari - 4.13%
Other browsers make up the remainder