Tuesday, November 29, 2016

Breaking cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Chain

Posted by James Forshaw, Wielder of Bolt Cutters.

Much as we’d like it to be true, it seems undeniable that we’ll never fix all security bugs just by looking for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. One of most productive ways to dealing with this fact is to implement exploit mitigations. Project Zero considers mitigation work just as important as finding vulnerabilities. Sometimes we can get our hands dirty, such as helping out Adobe and Microsoft in Flash mitigations. Sometimes we can only help indirectly via publishing our research and giving vendors an incentive to add cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir own mitigations.

This blog post is about an important exploit mitigation I developed for Chrome on Windows. It will detail many of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 challenges I faced when trying to get this mitigation released to protect end-users of Chrome. It’s recently shipped to users of Chrome on Windows 10 (in M54), and ended up blocking cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sandbox escape of an exploit chain being used in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 wild.

For information on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Chromium bug that contains cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 list of things we implemented in order to get this mitigation working, look here.

The Problem with Win32k

It’s possible to lockdown a sandbox such as Chrome’s pretty comprehensively using Restricted Tokens. However one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 big problems on Windows is locking down access to system calls. On Windows you have both cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 normal NT system calls and Win32k system calls for accessing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 GUI which combined represents a significant attack surface.

System Calls (1).png
While cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NT system calls do have exploitable vulnerabilities now and again (for example issue 865) it’s nothing compared to Win32k. From just one research project alone 31 issues were discovered, and this isn’t counting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 many font issues Mateusz has found and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hundreds of ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r issues found by ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r researchers.

Much of Win32k’s problems come from history. In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first versions of Windows NT almost all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code responsible for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 windowing system existed in user-mode. Unfortunately for 90’s era computers this wasn’t exactly good for performance so for NT 4 Microsoft moved a significant portion of what was user-mode code into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 kernel (becoming cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 driver, win32k.sys). This was a time before Slammer, before Blaster, before cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 infamous Trustworthy Computing Memo which focussed Microsoft to think about security first. Perhaps some lone voice spoke for security that day, but was overwhelmed by performance considerations. We’ll never know for sure, however what it did do was make Win32k a large fragile mess which seems to have persisted to this day. And cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack surface this large fragile mess exposed could not be removed from any sandboxed process.

That all changed with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 release of Windows 8. Microsoft introduced cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 System Call Disable Policy, which allows a developer to completely block access to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Win32k system call table. While it doesn’t do anything for normal system calls cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fact that you could eliminate over a thousand win32k system calls, many of which have had serious security issues, would be a crucial reduction in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack surface.

However no application in a default Windows installation used this policy (it’s said to have been introduced for non-GUI applications such as on Azure) and using it for something as complex as Chrome wasn’t going to be easy. The process of shipping Win32k lockdown required a number of architectural changes to be made to Chrome. This included replacing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 GDI-based font code with Microsoft’s DirectWrite library. After around two years of effort Win32k lockdown was shipping by default.

The Problems with Flash in Chrome

Chrome uses a multi-process model, in which web page content is parsed inside Renderer processes, which are covered by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Win32k Lockdown policy for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Chrome sandbox. Plugins such as Flash and PDFium load into a different type of process, a PPAPI process, and due to circumstance cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se could not have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 lockdown policy enabled. This would seem a pretty large weak point. Flash has not had cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best security track record (relevant), making cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 likelihood of Flash being an RCE vector very high. Combine that with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 relative ease of finding and exploiting Win32k vulnerabilities and you’ve got a perfect storm.

It would seem reasonable to assume that real attackers are finding Win32k vulnerabilities and using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to break out of restrictive sandboxes including Chrome’s using Flash as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 RCE vector. The question was whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r that was true. The first real confirmation that this was true came from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Hacking Team breach, which occurred in July 2015. In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 dumped files was an unfixed Chrome exploit which used Flash as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 RCE vector and a Win32k exploit to escape cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sandbox. While both vulnerabilities were quickly fixed I came upon cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 idea that perhaps I could spend some time to implement cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 lockdown policy for PPAPI and eliminate this entire attack chain.

Analysing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Problem

The first thing I needed to do was to determine what Win32k APIs were used by a plugin such as Flash. There are actually 3 main system DLLs that can be called by an application which end up issuing system calls to Win32k: USER32, GDI32 and IMM32. Each has slightly different responsibilities. The aim would be to enumerate all calls to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se DLLs and replace cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m with APIs which didn’t rely on Win32k. Still it wasn’t just Flash that might call Win32k API but also cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Pepper APIs implemented in Chrome.

Win32k Dependencies.png

I decided to take two approaches to finding out what code I needed to remove, import inspection and dynamic analysis. Import inspection is fairly simple, I just dumped any imports for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 plugins such as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Pepper Flash plugin DLL and identified anything which came from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 core windowing DLLs.

I cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n ran Flash and PDFium with a number of different files to try and exercise cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code paths which used Win32k system calls. I attached WinDBG to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 process and set breakpoints on all functions starting with NtUser and NtGdi which I could find. These are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system call stubs used to call Win32k from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 various DLLs. This allowed me to catch functions which were in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PPAPI layer or not directly imported.

Win32k system call using code in Flash and PDFium was almost entirely to enumerate font information, eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r directly or via cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PPAPI. There was some OpenSSL code in Flash which uses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 desktop window as a source of entropy, but as this could never work in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Chrome sandbox it’s clear that this was vestigial (or Flash’s SSL random number generator is broken, chose one or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r).

Getting rid of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 font enumeration code used through PPAPI was easy. Chrome already supported replacing GDI based font rendering and enumeration with DirectWrite which does all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 rendering in User Mode.  Most of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual rendering in Flash and PDFium is done using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir own TrueType font implementations (such as FreeType). Enabling DirectWrite for PPAPI processes was implemented in a number of stages, with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 final enabling of DirectWrite in this commit.

Now I just needed to get rid of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 GDI font code in Flash and PDFium itself. For PDFium I was able to repurpose existing font code used for Linux and macOS. After much testing to ensure cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 font rendering didn’t regress from GDI I was able to put cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 patch into PDFium. Now cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only problem was Flash. As a prototype I implemented shims for all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 font APIs used by Flash and emulated cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m using DirectWrite.

For a better, more robust solution I needed to get changes made to Flash. I don’t have access to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Flash source code, however Google does have a good working relationship with Adobe and I used this to get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 necessary changes implemented. It turned out that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was a Pepper API which did all that was needed to replace cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 GDI font handling, pp::flash::FontFile. Unfortunately that was only implemented on Linux, however I was able to put togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r a proof-of-concept Windows implementation of pp::flash::FontFile and through Xing Zhang of Adobe we got a full implementation in Chrome and Flash.

Doomed Rights Management

From this point I could enable Win32k lockdown for plugins and after much testing everything seemed to be working, until I tried to test some DRM protected video. While encrypted video worked, any Flash video file which required output protection (such as High-bandwidth Digital Content Protection (HDCP)) would not. HDCP works by encrypting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 video data between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 graphics output and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 display, designed to prevent people capturing a digital video.

Still this presents a problem, as video along with games are some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only residual uses of Flash. In testing, this also affected cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Widevine plugin that implements cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Encrypted Media Extensions for Chrome. Widevine uses PPAPI under cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hood; not fixing this issue would break all HD content playback.

Enabling HDCP on Windows requires cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 use of a small number of Win32k APIs. I’d not discovered this during my initial analysis because, a) I didn’t run any protected content through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Flash player and b) all functions were imported at runtime using LoadLibrary and GetProcAddress only when needed. The function Flash was accessing was OPMGetVideoOutputsFromHMONITOR which is exposed by dxva2.dll. This function in turn maps down to multiple Win32k calls such as NtGdiCreateOPMProtectedOutputs.

The ideal way of fixing this would be to implement a new API in Chrome which exposed enabling HDCP cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n get Adobe and Widevine to use that implementation. It turns out that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Adobe DRM and Widevine teams are under greater constraints than normal development teams. After discussion with my original contact at Adobe cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y didn’t have access to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DRM code for Flash. I was able to have meetings with Widevine (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y’re part of Google) and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Adobe DRM team but in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end I decided to go it alone and implement redirection of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se APIs as part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sandbox code.

Fortunately this doesn’t compromise cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security guarantees of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 original API because of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way Microsoft designed it. To prevent a MitM attack against cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 API calls (i.e. you hook cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 API and return cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 answer cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 caller expects, such as HDCP is enabled) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 call is secured between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 caller and graphics driver using a X.509 certificate chain returned during initialization.

drive_certs.PNG

Once cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 application such as Flash verifies this certificate chain is valid it will send back a session key to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 graphics driver encrypted using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end certificate’s public key. The driver cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n decrypts cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 session key and all communication from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n on is encrypted and hashed using variants of this key. Of course this means that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 driver must contain cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 private key corresponding to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 public key in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end certificate, though at least in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 case on my workstation that shouldn’t be a major issue as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end certificate has a special Key Usage OID (1.3.6.1.4.1.311.10.5.8) and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 root “Microsoft Digital Media Authority” certificate isn’t in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 trusted certificate store so cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chain wouldn’t be trusted anyway. Users of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 API can embed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 root certificate directly in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir code and verify its trust before continuing.

root_cert.PNG

As cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 APIs assume that it’s already been brokered (at minimum via Win32k.sys) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n adding anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r broker, in this case one which brokers from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PPAPI process to anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r process in Chrome without cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Win32k lockdown policy in place, doesn’t affect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security guarantees of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 API. Of course I made best efforts to verify cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data being brokered to limit cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 potential attack surface, though I’ll admit something about sending binary blobs to a graphics driver gives me cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chills.
OPM Apis (1).png

This solved cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 issue with enabling output protection for DRM’ed content and finally cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mitigation could be enabled by default. The commit for this code can be found here.

Avoiding #yolosec

Implementation wise it turned out to be not too complex once I’d found all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 different possible places that Win32k functions could be called. Much of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 groundwork was already in place with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 original Win32k Renderer lockdown, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 implementation of DirectWrite and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Pepper APIs were structured. So ship it already!

Well not so fast, this is where reality kicks in. Chrome on Windows is relied upon by millions upon millions of users worldwide and Win32k lockdown for PPAPI would affect not only Flash, but PDFium (which is used in things like cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Print Preview window) and Widevine. It’s imperative that this code is tested in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 real world but in such a way that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 impact on stability and functionality can be measured.

Chrome supports something called Variations which allow developers to selectively enable experimental features remotely and deploy cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to a randomly selected group of users who’ve opted into returning usage and crash statistics to Google. For example you can do a simple A/B test with one proportion of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Chrome users left as a Control and anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r with Win32k lockdown enabled. Statistical analysis can be performed on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results of that test based on various metrics, such as number of crashes, hanging processes and startup performance to detect anomalous behaviour which is due to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 experimental code. To avoid impacting users of Stable this is typically only done on Beta, Dev and Canary users. Having cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se early release versions of Chrome are really important for ensuring features work as expected and we appreciate anyone who takes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time to run cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m.

In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end this process of testing took longer than cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 implementation. Issues were discovered and fixed, stability measured until finally we were ready to ship. Unfortunately in that process cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was a noticeable stability issue on Windows 8.1 and below which we couldn’t track down. The stability issues are likely down to interactions with third party code (such as AV) which inject cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir own code into Chrome processes. If this injected code relies on calling Win32k APIs for anything cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re’s a high chance of this causing a crash.

This stability issue led to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hard decision to initially only allow cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PPAPI Win32k lockdown to run on Windows 10 (where if anything stability improved). I hope to revisit this decision in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 future. As third party code is likely to be updated to support cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 now shipping Windows 10 lockdown it might improve stability on Windows 8/8.1.

As of M54 of Chrome, Win32k lockdown is enabled by default for users on Windows 10 (with an option to disable it remotely in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 unlikely event a problem surfaces). As of M56 (set for release approximately cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end of January 2017) it can only be disabled with a command line switch to disable all Win32k lockdown including Renderer processes.

Wrap Up

From cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first patch submitted in September 2015 to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 final patch in June it took almost 10 months of effort to come up with a shipping mitigation. The fact that it’s had its first public success (and who knows how many non-public ones) shows that it was worth implementing this mitigation.

In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 latest version of Windows 10, Anniversary Edition, Microsoft have implemented a Win32k filter which makes it easier to reduce cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack surface without completely disabling all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system calls which might have sped up development. Microsoft are also taking pro-active effort to improve cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Win32k code base.

The Win32k filter is already used in Edge, however at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 moment only Microsoft can use it as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 executable signature is checked before allowing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 filter to be enabled. Also it’s not clear that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 filter even completely blocked cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vulnerability in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 recent in-cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365-wild exploit chain. Microsoft would only state it would “stop all observed in-cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365-wild instances of this exploit”. Nuking cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Win32k system calls from orbit is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only way to be sure that an attacker can’t find a bug which passes through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 filter.

Hopefully this blog post demonstrates cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time and effort required to implement what seems on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 face of it a fairly simple and clear mitigation policy for an application as complex as Chrome. We’ll continue to try and use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 operating system provided sandboxing mechanisms to make all users on Chrome more secure.

Thanks

While I took on a large proportion of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 technical work it’s clear this mitigation could not have shipped without cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 help of ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs in Chrome and outside. I’d like to especially mention cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following:

  • Anantanarayanan Lyengar, for landing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 original Win32k mitigations for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Renderer processes on which all this is based.
  • Will Harris, for dealing with variations and crash reporting to ensure everything was stable.
  • Adobe Security Team and Xing Zhang for helping to remove GDI font code from Flash.
  • The Widevine team for advice on DRM issues.

4 comments:

  1. Excellent write-up, thank you! With Microsoft's push to move from Win32 to WinRT, where does Chrome development stand and does this work help Chrome move in that direction?

    ReplyDelete
  2. So, James, you are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 one of those guys who are responsible for this inescapable blurry fonts in Chrome 52+?
    Oh, I know... The security concerns...
    What about our eyes's health, huh? Did you try to read that bloody "smoocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365d" Directdraw fonts on an ordinary 23" 1080p display wich has about 90 dpi or do you need some screenshots? After pixelated GDI fonts it is almost painful! Yes, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 GDI fonts are pixelated, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are angular and aliased. But cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are sharp to every pixel!

    What would I do now? Drop using Chrome? Don't update Chrome over 51st? Buy a brand new 4K display? Endure eye discomfort and lay in money for an ophthalmologist?
    Any thoughts?

    ReplyDelete
  3. Great writeup. This work was a big lift and it is appreciated.

    ReplyDelete