6 ms·
> Once Microsoft's eBPF support for Windows becomes production-ready, Windows security software can be ported to eBPF as well. This doesn’t seem grounded in re
by mrpippy 2y ago
> Once Microsoft's eBPF support for Windows becomes production-ready, Windows security software can be ported to eBPF as well.
This doesn’t seem grounded in reality. If you follow the link to the “hooks” that Windows eBPF makes available [1], it’s just for incoming packets and socket operations. IOW, MS is expecting you to use the Berkeley Packet Filter for packet filtering. Not for filtering I/O, or object creation/use, or any of the other million places a driver like Crowdstrike’s hooks into the NT kernel.
In addition, they need to be in the kernel in order to monitor all the other 3rd party garbage running in kernel-space. ELAM (early-launch anti-malware) loads anti-malware drivers first so they can monitor everything that other drivers do. I highly doubt this is available to eBPF.
If Microsoft intends eBPF to be used to replace kernel-space anti-malware drivers, they have a long, long way to go.
[1]: https://microsoft.github.io/ebpf-for-windows/ebpf__structs_8h.html#a0f8242763b15ec665eaa47c6add861a0 https://microsoft.github.io/ebpf-for-windows/ebpf__structs_8...
- shahahqq 2y agoI hope though that Microsoft will double down on their eBPF support for Windows after this incident.
- stackskipton 2y agoDoubt it. Microsoft is clearly over Windows. They continue to produce it but every release feels like "Ugh, fine, since you are paying me a ton of money." Internally, Microsoft is running more and more workloads on Linux and externally, I've had .Net team tell me more than once that Linux is preferred environment for .Net. SQL Server team continues to push hard for Linux compatibility with every release. EDIT: Windows Desktop gets more love because they clearly see that as important market. I'm talking more Windows Server.
- WatchDog 2y agoSQL Server has supported Linux since 2017
- kevincox 2y agoThey aren't over windows. They continue to be incredibly interested in and actively developing how much money they can suck from their users. Especially via various forms of ads. But yeah, kernel features are few and far between.
- rob74 2y agoSee also: https://en.wikipedia.org/wiki/Cash_cow https://en.wikipedia.org/wiki/Cash_cow
- queuebert 2y agoI believe the term you are looking for is "rent seeking". Other than visual changes, what new functionality does Windows 11 actually have that Windows XP didn't have? (I'm being generous with XP, because actually 95 was already mostly internet ready.) Yet how many times have many of us paid for a Windows license on a new computer or because the old version stopped getting updates?
- vitus 2y ago> Other than visual changes, what new functionality does Windows 11 actually have that Windows XP didn't have? Modern crypto ciphersuites that aren't utterly broken? Your best options for symmetric crypto with XP are 3DES (officially retired by NIST as of this year) and RC4 (prohibited in TLS as of RFC 7465). (And if you think 3DES isn't totally broken by itself, you're right... except for the part where the ciphersuite in question is in CBC mode and is vulnerable to BEAST. Thanks, mandated ciphersuites.)
- wolrah 2y ago> Other than visual changes, what new functionality does Windows 11 actually have that Windows XP didn't have? XP->Vista alone brought a bunch of huge changes that massively improved security (UAC), capability (64 bit desktops), and future-proofing (UEFI) among many many other things. Some helpful Wikipedia editors have answered this question in excessive detail, so I'm just going to link those for more info. Also I'm going to start with what XP changed from 2003 both because it makes a good comparison and I'd argue 2000/NT 5.0 is the root of the modern Windows era. Your next sentence after the quote implies you probably won't have a problem with that. * XP/2003: https://en.wikipedia.org/wiki/Features_new_to_Windows_XP https://en.wikipedia.org/wiki/Features_new_to_Windows_XP * 2003R2: https://en.wikipedia.org/wiki/Windows_Server_2003#Windows_Server_2003_R2 https://en.wikipedia.org/wiki/Windows_Server_2003#Windows_Se... * Vista: https://en.wikipedia.org/wiki/Features_new_to_Windows_Vista https://en.wikipedia.org/wiki/Features_new_to_Windows_Vista * 2008: https://en.wikipedia.org/wiki/Windows_Server_2008#Features https://en.wikipedia.org/wiki/Windows_Server_2008#Features * 7: https://en.wikipedia.org/wiki/Features_new_to_Windows_7 https://en.wikipedia.org/wiki/Features_new_to_Windows_7 * 2008R2: https://en.wikipedia.org/wiki/Windows_Server_2008_R2#New_features https://en.wikipedia.org/wiki/Windows_Server_2008_R2#New_fea... * 8: https://en.wikipedia.org/wiki/Features_new_to_Windows_8 https://en.wikipedia.org/wiki/Features_new_to_Windows_8 * 2012: https://en.wikipedia.org/wiki/Windows_Server_2012#Features https://en.wikipedia.org/wiki/Windows_Server_2012#Features * 8.1: https://en.wikipedia.org/wiki/Windows_8.1#New_and_changed_features https://en.wikipedia.org/wiki/Windows_8.1#New_and_changed_fe... * 2012R2: https://en.wikipedia.org/wiki/Windows_Server_2012_R2#Features https://en.wikipedia.org/wiki/Windows_Server_2012_R2#Feature... * 10: https://en.wikipedia.org/wiki/Features_new_to_Windows_10 https://en.wikipedia.org/wiki/Features_new_to_Windows_10 * 2016: https://en.wikipedia.org/wiki/Windows_Server_2016#Features https://en.wikipedia.org/wiki/Windows_Server_2016#Features * 2019: https://en.wikipedia.org/wiki/Windows_Server_2019#Features https://en.wikipedia.org/wiki/Windows_Server_2019#Features * 2022: https://en.wikipedia.org/wiki/Windows_Server_2022#Features https://en.wikipedia.org/wiki/Windows_Server_2022#Features * 11: https://en.wikipedia.org/wiki/Features_new_to_Windows_11 https://en.wikipedia.org/wiki/Features_new_to_Windows_11 * 2025: https://learn.microsoft.com/en-us/windows-server/get-started/whats-new-windows-server-2025 https://learn.microsoft.com/en-us/windows-server/get-started... Obviously some of this will be "fluff" and that's up to your own personal definitions, but to act like there haven't been significant changes in every major revision is just nonsense.
- throwaway2037 2y agoThis claim about SQL Server: Is it due to disk access being slower from NT kernel compared to Linux kernel?
- stackskipton 2y agoIt's just easier for everyone involved (outside Windows GUI clicker admins) if it runs on Linux. Containerization is easier, configuration is easier and operating system is much more robust.
- psd1 2y agoOperating system can be more robust, depending on admin skill. Let idiots configure and operate your rhel and you may not get those five nines. There are costs to it, in the form of architectural baggage and slower iteration, but what windows brings to the table is a deck swept mostly clear of footguns. That can give you a different form of robustness.
- marcosdumay 2y agoThere's something very wrong with Windows disk access, you can see it easily by trying to run a Windows desktop with rotating disks. But SQL Server is in the unique position of being able to optimize Windows for their own needs. So they shouldn't have this kind of problem.
- devbent 2y agoThe file system is almost 30 years old. When NTFS came out it was way better than anything on Linux. Heck even in 2006 NTFS was better. But Linux keeps getting new file systems while Windows keeps NTFS.
- marcosdumay 2y agoAFAIK, NTFS is a perfectly ok design. But the Windows file system never performed well. This is probably not for architectural reasons. And no, it didn't perform better at NT4, XP, or Win7 times.
- mosburger 2y ago> SQL Server team continues to push hard for Linux compatibility with every release. It's kinda funny that the DB that was once a fork of Sybase that was ported to Windows is trying to make its way back to Unix.
- benfortuna 2y agoKeep in mind they don't just allow any old code to execute in the kernel. They do have rigorous tests (WHQL), it's just Crowdstrike decided that was too burdensome for their frequent updates, and decided to inject code from config files (thus bypassing the control). The fault here is entirely with Crowdstrike.
- capitainenemo 2y agoIs there any evidence that the config files had arbitrary code in them? The only analysis I'd seen so far indicated a parsing error loading a viral signature database that was routinely updated, but in this case was full of garbage data.
- benfortuna 2y agoPerhaps not verified, but some smart people do have convincing arguments: https://youtu.be/wAzEJxOo1ts?si=UNNxAN27VV1E6mcP&t=505 https://youtu.be/wAzEJxOo1ts?si=UNNxAN27VV1E6mcP&t=505
- capitainenemo 2y agoAny article/blog/text-that-can-be-read?
- alecco 2y agoDon't bother. He just repeats a tweet saying a null+offset dereference and also the speculation of that null picked from the sys file.
- remram 2y agoHow rigorous are the tests if faulty data can brick the machine?
- dwattttt 2y agoNot rigorous enough to have detected this flaw in the kernel sensor, although effectively any bug in this situation (an AV driver) can brick a machine. I imagine WHQL isn't able to find every possible bug in a driver you submit to them, they're not your QA team.
- brendangregg 2y agoYes, we know eBPF must attach to equivalent events to Linux, but given there are already many event sources and consumers in Windows, the work is to make eBPF another consumer -- not to invent instrumentation frameworks from scratch. Just to use an analogy: Imagine people do their banking on JavaScript websites with Google Chrome, but if they use Microsoft Edge it says "JavaScript isn't supported, please download and run this .EXE". I'm not sure we'd be asking "if" Microsoft would support JavaScript (or eBPF), but "when."
- doctorpangloss 2y agoWindows development on eBPF is slower than Linux development on eBPF, so it will never be supported. A source code user licensee could develop it faster, but who licenses Windows source and already has great eBPF experience?
- surajrmal 2y agoThis assumes eBPF becomes the standard. It's not clear Microsoft wants that. They could create something else which integrates with dot net and push for that instead. Also this problem of too much software running in the kernel in an unbounded manner has long existed. Why should Microsoft suddenly invest in solving it on Windows?
- brendangregg 2y agoMicrosoft have been driving the work to make eBPF an IETF industry standard.
- riskable 2y ago...just like they did with Kerberos! And just like with Kerberos they'll define a standard then refuse to follow it. Instead, they will implement subtle changes to the Windows implementation that make solutions that use Windows eBPF incompatible with anything else, making it much more difficult to write software that works with all platforms eBPF (or even just its output). Everything's gotta be different in Windows land. Otherwise, migrating off of Windows land would be too easy! In case you were wondering what Microsoft refused to implement with its Kerberos implementation it's the DNS records. Instead of following the standard (they wrote!) they decided that all Windows clients will use AD's Global Catalog to figure out which KDC to talk to (e.g. which one is "local" or closest to the client). Since nothing but Windows uses the Global Catalog they effectively locked out other platforms from being able to integrate with Windows Kerberos implementation as effectively (it'll still work, just extremely inefficiently as the clients won't know which KDC is local so you either have to hard-code them into the krb5.conf on every single device/server/endpoint and hope for the best or DNS-and-pray you don't get a Domain Controller/KDC that's on an ISDN line in some other country).
- nullindividual 2y agoMicrosoft already has an extensible file system filter capability in place, which is what current AV uses. Does it make sense to add eBPF on top of that and if so, are there any performance downsides, like we see with file system filters?
- mauvehaus 2y agoThey've done a technology transition once already from legacy file system filter drivers to the minifilter model. If they see enough benefit to another change, it wouldn't be unprecedented. Mind you, it looks like after 20-ish years Windows still supports loading legacy filter drivers. Given the considerable work that goes into getting even a simple filesystem minifilter driver working reliably, it's safe to assume that we'd be looking at a similarly protracted transition period. As to the performance, I don't think the raw infrastructure to support minifilters is the major performance hit. The work the drivers themselves end up doing tends to be the bigger hit in my experience. Some background for the curious: https://www.osr.com/nt-insider/2019-issue1/the-state-of-windows-file-system-filtering-in-2019/ https://www.osr.com/nt-insider/2019-issue1/the-state-of-wind...