|
|
|
|
|
by MichaelGG
3919 days ago
|
|
Can you point to remote execution issues in the CLR? I'm having a rather hard time thinking of any that'd impact an organization. The CLR issues with unsafe code has almost entirely been related to trying sandbox binaries (via CAS or loading .NET apps via browser plugins (same as Java)). I'm unaware of any time the CLR would provide any useful attack surface. The only ones that come to mind are GDI+ issues that .NET inherits via passthrough. So, citation needed, I guess? Agreed that use of C/++ code in general is bad and for all the effort spent on mitigation, we'd be better off moving to a proper language, but ... doesn't seem like that's happening. A rewrite is rather silly; the NT kernel is well respected and capable. You're basically suggesting "throw away everything and start a new company" which certainly doesn't seem like a winning strategy. |
|
Have you ever done any Windows NT kernel driver development? Compared to OS X (xnu) kexts or Linux, it's a disaster. XNU and Linux extensions are also not that great because it follows the same, flawed insecure methodology of allowing kernel extensions to modify the kernel, which OpenBSD wisely eliminated.
The other strawman you raise, trying put the wrong words in my mouth, rewriting a massive legacy codebase does not throw everything away. The lessons learned are the most important. Instead, OS and app virtualization can be used to run prior OS/apps while new apps can run in a new environment, sharing a filesystem as needed. That doesn't start over "from scratch, with inexperienced people", which is your incorrect presumption because that would be foolish. Otherwise, the Microsoft ecosystem will continue to accrue technical debt and job security which can never be paid off, because it's stuck in 1993.
The kernel should be the kernel.. a tiny, mostly immutable thing which does just enough to provide process/thread isolation, IPC and such. Even better is capabilities-granted privilege requests to perform unsafe operations, so that drivers are demoted to least-privilege processes. QNX and MINIX loosely follow this, and it's a far more secure and robust benefits of reasonable microkernel architecture approaches.