Author Topic: Is there something to learn for embedded/IOT from the Crowdstrike disaster?  (Read 11469 times)

0 Members and 2 Guests are viewing this topic.

Offline zilp

  • Frequent Contributor
  • **
  • Posts: 329
  • Country: de
Microsoft has the copyright. That's it.

No, that's wrong. Yes, Microsoft has the copyright, but it's more than that. Microsoft sells you a license to use their OS, and that license contains various terms and conditions which you agree to when you install the OS, or use it for the first time. If you then fail to observe those terms, Microsoft is legally allowed to prevent you using their software. None of this is controversial - pretty much all commercial software has similar terms and conditions.

That's mostly incorrect in the EU. If you buy a computer with Windows pre-installed, for example, then whatever "license" that is displayed on first use is just irrelevant. You gained certain rights to use the software as part of the purchase contract, and one party can't just impose additional contract terms after the fact.

And having copyright of a particular piece of software does not mean that you have a right to do with the data that is being processed by that software whatever you want, nor that you are allowed to prevent people from interoperating with it, nor that anti-trust laws don't apply to you, nor anything much, really. It first and foremost means that other people aren't allowed to create and distribute copies of it, that's it.

We agree on all of that except for the last sentence. That isn't "it". Microsoft owns the copyright AND you buy a license to use it from them, which means you agree to various legally enforceable terms and conditions. (Legal in the sense that MS can withdraw your right to use their OS).

Well, for one, that's not necessarily true, see above. But also, there are quite a lot of laws that limit what kinds of terms are enforceable in license agreements.
 
The following users thanked this post: Siwastaja

Offline SteveThackery

  • Frequent Contributor
  • **
  • Posts: 403
  • Country: gb
I wouldn't argue with you about the complicated legalities of software licenses!

My only interest was to explain that no, you don't own the OS. You buy a license to use it (which comes with certain terms and conditions). In fact, you don't own any of the software on your PC unless you wrote it yourself. All software is licensed.

I do feel we have overworked this aspect of the discussion, because it isn't really on topic. The OP was wanting to discuss the lessons that could be applied in the domain of microcontrollers. See my extraordinarily insightful and erudite essay in reply #82.  ;D

https://www.eevblog.com/forum/microcontrollers/is-there-something-to-learn-for-embeddediot-from-the-crowdstrike-disaster/msg5602391/#msg5602391
« Last Edit: August 15, 2024, 10:55:04 pm by SteveThackery »
 

Offline zilp

  • Frequent Contributor
  • **
  • Posts: 329
  • Country: de
I mean, I assumed that you meant some form of security that is in the interest of the customer, because "security" that prevents customers from doing what they want to do with their property in order to serve the interests of the manufacturer obviously is not in any sensible meaning of the word "security" as used in this thread.

Restricting access to kernel mode is in the interest of the user, because code running in kernel mode can corrupt or even steal the user's data. That is why the OS blue-screens: it is to protect the users data by halting execution.


That's still incoherent nonsense.

Code running in user space can also corrupt or steal the user's data, so that doesn't have anything to do with kernel mode or not.

That kernel-mode code can blue-screen Windows is true, but it doesn't follow that therefore, it is in the interest of the user to prevent the user from running kernel-mode code that does not cause Windows to blue-screen, which is what you are proposing. You constantly avoid justitfying the thing that you actually are proposing.

OK, maybe? But you haven't explained why Microsoft should be the vendor that gets given the privilege of building this one solution that everyone else has to use. Why shouldn't some other company that is better at it get the chance to build it?

Because the function of an OS is to provide a range of services to applications in order that they can do their job, whilst at the same time taking all possible precautions to protect the user's data. The OS belongs to Microsoft, so it is their job to deliver that.


So, only Microsoft should be allowed to provide application software for Windows?

I mean, this is so incredibly vague that I don't see how that even allows to distinguish between what would fall under this and what wouldn't. Nothing of this explains why this should only apply to kernel mode code.

The model is the same across all operating systems: all operating systems provide a suite of APIs. The OS vendor owns the APIs and everything behind them; the application writers write their code to interact with those APIs. This model is universal and has been for decades.


Now, this is just complete and utter bullshit.

On all of the operating systems that I use, no vendor "owns" any API. I have all the source code to all of it and am legally explicitly allowed to modify all of it. So, it is obviously explicitly intended that I can add, remove, or change kernel mode code how ever I like it, be it with my own code, or code from any third party. So it is just obvious nonsense that it is somehow the universal model that some "vendor" controls what code I run on my operating systems in kernel mode.

If "some other company" thinks they can do a better job, they are welcome to write their own OS. As it happens, for reasons of expedience, Microsoft does allow breaches in their APIs, and the CodeStrike disaster is a perfect illustration of why it's a bad idea. I repeat: it is obviously easier to nail down the OS - once and properly - than to rely on every application vendor being sufficiently honest and competent to nail down their own apps. There are hundreds of them, and new ones come along all the time.


Well, I have explained at length why this is nonsense, so I won't repeat myself here.

Whenever Windows blue-screens Microsoft is blamed, and rightly so. It is Microsoft's responsibility to protect their OS from damage, not some other vendor. In the recent case, it appears that Microsoft's effort to improve the protection never got implemented due to some regulatory issue.


If you blame the manufacturer for not preventing their customer from doing whatever their customer wants to do, that simply is an expression of your authoritarianism, not some universally agreed view. It's a pretty insane view, really.

I get the impression you aren't aware of the architecture of modern operating systems, and especially the concept of the API: I will repeat: the OS presents the APIs to the applications, and the applications make calls to the APIs to make stuff happen.  The APIs act as the boundary between the OS and the applications.  The APIs and the code behind them belong to the OS vendor. The OS vendor is responsible for making those APIs and the OS behind them secure against damage by the applications. The application writers are responsible for ensuring their code is bug-free and, in particular, never damages the user's data. The recent disaster shows the risks involved in not strictly observing that model.

That's pretty much just wrong.

For one, an "API" is just any interface between software components and has nothing to do with privilege boundaries per se. You average library also has an API, but it's mapped into your process address space, so there obviously is no privilege boundary, and no expectation that anything prevents corruption of the library or its data structures if other code with in the process decides to do so.

Now, the kernel API in particular is usually a privilege boundary. But it generally is not a privilege boundary between the owner of the machine and the kernel. It is a privilege boundary between users. The point is to isolate processes that run under different user ids, so that a process running under one user can not randomly read or modify data of some other user.

Protecting "the OS" is not something that has any inherent value, because "the OS" is not something the user cares about on its own. Protecting "the OS" only makes sense as a means to an end, i.e., of protecting user data against abuse or corruption. Preventing the user to do with their data what they want to do with their data is not something that helps with that.

And also, you are still confusing reliability features with anti-user enforcement. I can add any kernel mode code I want to my Linux kernel, for example. That doesn't mean that root processes don't segfault when they access an unmapped page or whatever. It isn't required for Linux to be able to have these features that I am prevented from changing the kernel code.

You know, that sort of stuff is what I do for a living, and I can assure you that I understand how privilege boundaries on operating systems work. And I can also tell you that the way that you think about IT security is pretty confused.
 

Offline zilp

  • Frequent Contributor
  • **
  • Posts: 329
  • Country: de
I wouldn't argue with you about the complicated legalities of software licenses!

My only interest was to explain that no, you don't own the OS. You buy a license to use it (which comes with certain terms and conditions). In fact, you don't own any of the software on your PC unless you wrote it yourself. All software is licensed.

No, that is simply false. That is not how it works.

And also, you are still using "own" as if that were one coherent concept. It isn't. In the legal space, there are all kinds of distinct legal rights that are colloquially called some form of "ownership", from physical property to financial debt to copy rights, trademarks, and patents.

So, you can in fact own and not own software at the same time. You can purchase a physical copy of software, so you have physical property rights on that physical copy, so you own it. Which under the legal framework of the EU automatically also includes the right to use that software. But at the same time, you possibly don't have the copyright on that software, so you don't own it in that regard.

But then, also, almost all of the software on my PC is software that I don't have the copyright for, but that I still am allowed to use and modify and copy and distribute as much as I like, as a result of the licenses. So, in some way, I don't own it, in that I don't have the copyright. But then again, there is pretty much no restriction on what I can do with it, so in practical terms, it is pretty close to some sort of ownership anyway.

So, really, talking about "ownership" of software without being specific is pretty useless and only will lead to confusion.
« Last Edit: August 15, 2024, 11:44:14 pm by zilp »
 
The following users thanked this post: Siwastaja

Online Marco

  • Super Contributor
  • ***
  • Posts: 6907
  • Country: nl
Interoperability exemption means you can even bypass integrity mechanisms to distribute kernel level code if you want ...
 

Offline SteveThackery

  • Frequent Contributor
  • **
  • Posts: 403
  • Country: gb
That kernel-mode code can blue-screen Windows is true, but it doesn't follow that therefore, it is in the interest of the user to prevent the user from running kernel-mode code that does not cause Windows to blue-screen, which is what you are proposing. You constantly avoid justitfying the thing that you actually are proposing.

It's about risk. Code running in kernel mode can tramp over memory in use by other applications. This is a bad thing. User mode code cannot. This is a good thing.  Microsoft is responsible for providing an OS that is secure and reliable, and preventing applications from running in kernel mode reduces the risk of inept or hostile code trampling over memory allocated to other applications. It also reduces the ability of an application to crash the OS itself - this, too, is a good thing.

If you don’t think this is a good thing, ask yourself why all the big OSs work in this way: the OS runs (largely) in kernel mode, the applications run in user mode. Windows, Linux, MacOS all work like this. I'm not as familiar with Linux as you are, but I don't think Linux apps routinely run in kernel mode.

Re. your last sentence, I think I have done nothing but justify why apps are best kept away from kernel mode.

So, only Microsoft should be allowed to provide application software for Windows?

Eh? I said only Microsoft should be allowed to provide OS services and APIs. The application software - running in user mode - is open to any provider.

On all of the operating systems that I use, no vendor "owns" any API. I have all the source code to all of it and am legally explicitly allowed to modify all of it. So, it is obviously explicitly intended that I can add, remove, or change kernel mode code how ever I like it, be it with my own code, or code from any third party. So it is just obvious nonsense that it is somehow the universal model that some "vendor" controls what code I run on my operating systems in kernel mode.

That's because you are running Linux! The license is completely different. You are free to do whatever you like to any part of it. This is not true for Windows and MacOS. You don't have any of the source code for those OSs, and their license does not allow you to modify their operating systems.

If you blame the manufacturer for not preventing their customer from doing whatever their customer wants to do, that simply is an expression of your authoritarianism, not some universally agreed view.

As I said, Windows does NOT let applications do "whatever their customers want to do". If you don't think that is fair or acceptable, then use a different OS (but not MacOS, because that doesn't, either). I can't comment on whether that counts as authoritarian or not, but it certainly isn't my authoritarianism.

Now, the kernel API in particular is usually a privilege boundary. But it generally is not a privilege boundary between the owner of the machine and the kernel. It is a privilege boundary between users. The point is to isolate processes that run under different user ids, so that a process running under one user can not randomly read or modify data of some other user.

It IS a privilege boundary between the applications and the kernel (the owner only owns the hardware, remember). When that boundary is breached, disasters like CrowdStrike become more likely. CrowdStrike was not trying to stomp over processes running under different user IDs. It tried to access memory (apparently off a null pointer) that was not allocated to it.

Protecting "the OS" is not something that has any inherent value, because "the OS" is not something the user cares about on its own. Protecting "the OS" only makes sense as a means to an end, i.e., of protecting user data against abuse or corruption. Preventing the user to do with their data what they want to do with their data is not something that helps with that.

You say the user doesn't care about the OS on its own. Probably true, but only because most users only have a vague understanding of how their PC works. The reason why the OS should protect itself from damage is because, whether they know it or not, the integrity of the OS is crucial to protecting the user's data and letting them get on with their work.

And also, you are still confusing reliability features with anti-user enforcement. I can add any kernel mode code I want to my Linux kernel, for example. That doesn't mean that root processes don't segfault when they access an unmapped page or whatever. It isn't required for Linux to be able to have these features that I am prevented from changing the kernel code.

Reliability and user access enforcement are both important and enhanced by keeping apps away from kernel mode as far as possible. You certainly cannot add kernel mode code to the Windows kernel unless you jump through the hoops mentioned earlier. And, I'm sure you will admit that your code - running in kernel mode - has the ability to wreak far more havoc than your code running in user mode.

I think you are stuck in the Linux mindset, where everything is open and transparent. Windows isn't like that: Windows is a black box with published APIs. You can't mess with the OS because you can't get the source code.

I think the CrowdStrike disaster proves my point beyond doubt: an inept application was able to bluescreen Windows machines all over the world and caused absolute chaos to countless businesses because it was running in kernel mode. If it was running in user mode it couldn't have done that. That's why Microsoft is right in trying to reduce the amount of application code running in kernel mode.

You know, that sort of stuff is what I do for a living, and I can assure you that I understand how privilege boundaries on operating systems work. And I can also tell you that the way that you think about IT security is pretty confused.

Your ad hominem seems like a good place to stop. We've both got our heels dug in - I doubt there is any value in continuing. Also, we really should get back to talking about microcontrollers. Your professional experience with Linux surely means you can suggest some lessons that are relevant to microcontrollers.
 

Online Marco

  • Super Contributor
  • ***
  • Posts: 6907
  • Country: nl
I'm fairly sure Apple's GPU and nvme drivers run in kernel mode.
 

Offline SteveThackery

  • Frequent Contributor
  • **
  • Posts: 403
  • Country: gb
I'm fairly sure Apple's GPU and nvme drivers run in kernel mode.

They do indeed, as do Windows video/graphics drivers.

But these are drivers, not applications, and Microsoft and Apple both employ rigorous testing, certifying and signing regimes to these drivers before they can be installed.  That's because Apple and Microsoft know that code running in kernel mode has vastly more ability to destroy data and crash the OS.
 

Online Marco

  • Super Contributor
  • ***
  • Posts: 6907
  • Country: nl
There's WHQL, but both Microsoft and Apple (before they just first partied all important hardware) let developers sign their own drivers.
 

Offline zilp

  • Frequent Contributor
  • **
  • Posts: 329
  • Country: de
That kernel-mode code can blue-screen Windows is true, but it doesn't follow that therefore, it is in the interest of the user to prevent the user from running kernel-mode code that does not cause Windows to blue-screen, which is what you are proposing. You constantly avoid justitfying the thing that you actually are proposing.

It's about risk. Code running in kernel mode can tramp over memory in use by other applications. This is a bad thing. User mode code cannot. This is a good thing.  Microsoft is responsible for providing an OS that is secure and reliable, and preventing applications from running in kernel mode reduces the risk of inept or hostile code trampling over memory allocated to other applications. It also reduces the ability of an application to crash the OS itself - this, too, is a good thing.

If you don’t think this is a good thing, ask yourself why all the big OSs work in this way: the OS runs (largely) in kernel mode, the applications run in user mode. Windows, Linux, MacOS all work like this. I'm not as familiar with Linux as you are, but I don't think Linux apps routinely run in kernel mode.


What you are saying here is mostly correct.

But in so far as it is correct, it is completely besides the point.

Now, for one, no, "apps" on Linux don't "routinely run in kernel mode". But that's pretty much a vacuous statement, given that the definition of "application" is essentially "code running in userspace", so code running in kernel space would, by definition, not be an application.

However, I would agree than OS "vendors" are responsible for providing an OS that is secure and reliable.

In the case of Linux, the kernel developers do that in the form that they provide a ton of features that allow me, the owner and admin of the machine, and the software that I, the owner and admin install on it, to restrict the privileges of code running on the system, and to limit the impact of bugs in code running on the system, from virtual memory process isolation to user account isolation to seccomp and namespaces/containers, mandatory access control hooks, packet filters, what have you. Microsoft at least to some degree does the same on Windows. All of that is a good thing, no disagreement on that from me.

Now, you are further suggesting that the kernel developers should prevent me, the owner and admin, from changing the kernel code. What you have failed to provide so far is a justification for why that would be a good idea/why that would be in my interest.

The fact that running code in kernel space is risky is irrelevant for that. That's a justification for why I, the owner/admin should maybe generally avoid unnecessarily running code in kernel space, which is something that I do absolutely agree with. What needs justification is that the kernel developers (or Microsoft) should prevent me, the owner/admin, from running code in kernel space. And that justification needs to consider that (a) I, as the owner/admin already do have the option to not run code in kernel space unnecessarily in order to avoid that risk, so it doesn't need the kernel developers(/Microsoft) forcing me to not do that in order for me to be able to avoid that risk, (b) that there might be good reasons to run code in kernel space that are worth the risk and where I as a competent owner/admin am willing to take those risks for the advantage that it gives me, in which case it is obviously not in my interest that the kernel developers prevent me from doing the thing that would be to my advantage, and (c) that one reason in particular for why I might want to add kernel code could be that I want to add features that allow me to further restrict privileges of code running in userspace, in order to improve the security of the system, in the sense that I can prevent leaking or corruption of valuable data in ways that existing kernel features don't allow.

Also, just pointing out that in the case of Crowdstrike, the damage might have been prevented if Microsoft had prevented Crowdstrike users from installing the Crowdstrike kernel driver, is insufficient to justify such a restriction, because it neither addresses all the other effects of such a restriction (i.e. potential benefits that would be erased by such a restriction, see above) nor does it even establish that things would actually have been better for Crowdstrike users because you would also have to substantiate that the hypothetical kernel driver provided by Microsoft ("the API") instead of Crowdstrike's driver would not have suffered a similar or worse failure mode, which you haven't done. And all of this in particular, given that people who do use Windows already did have the option to not install Crowdstrike and thus also to not install the Crowdstrike kernel driver in order to avoid the damage that they suffered, so the restriction that you are suggesting is not actually necessary to that end.

Re. your last sentence, I think I have done nothing but justify why apps are best kept away from kernel mode.


Yes, you have. And that is the problem that I have been pointing out over and over, with you just ignoring it.

You are suggesting that Microsoft should prevent owners/admins from installing (certain) kernel mode drivers on their own systems.

But the justification you give is, at best, for why owners/admins should not (unnecessarily) install kernel mode drivers on their own systems.

That part I don't even necessarily disagree on.

The part that I disagree on is that Microsoft should prevent owners/admins from installing kernel mode drivers. And that is the part that you keep dodging. You keep explaining why people should avoid installing kernel mode drivers, but not why Microsoft should prevent people from installing kernel mode drivers.

The fact that it is risky is not sufficient reason why people should be prevented from taking the risk, if they think that that risk is worth it. But you are saying that it shouldn't matter what the owner/admin of a system thinks, and that Microsoft should decide for them that they are not allowed to take risks. That is the part that you need to justify.

All of this in particular given that the choices aren't actually what you present them to be. The option to "keep the app away from kernel mode" doesn't exist, except in so far as you can just not install "the app" (i.e. Crowdstrike or similar products) at all. Or rather, strictly speaking, there is no app in kernel mode at all, because the component of Crowdstrike that runs in kernel mode, by definition, is not part of the application, but part of the kernel. And there is no way to avoid that some portion of a system like Crowdstrike is implemented as a kernel driver, so it isn't actually an option to have "no kernel driver". The actual choice, besides not installing such software at all, is to either have a kernel driver from Crowdstrike, or a kernel driver from Microsoft. Therefore, no matter which option you choose, you do have code running in kernel mode, with the risks that are associated with running code in kernel mode. The only question is who that code is written by. And you are saying that Microsoft should be allowed to force its customers to only use a driver written by Microsoft. Again, that is the part that you haven't justified. The fact that you would prefer to use a driver from Microsoft is irrelevant. Other people being able to use drivers from other vendors does not in any way prevent you from using a driver from Microsoft, so it is not necessary to prevent other people from using drivers from other vendors in order to enable you to use a driver from Microsoft. If everyone wants to use a Microsoft driver, that is also possible without Microsoft preventing the use of other drivers. And iff there is anyone who wants to use a driver from a different vendor, then it is obviously not in their interest to force them to use a different driver than the one that they want to use.

So, only Microsoft should be allowed to provide application software for Windows?

Eh? I said only Microsoft should be allowed to provide OS services and APIs. The application software - running in user mode - is open to any provider.


Yeah, I know. But I asked you to justify this position. And the reasons that you gave as justification are not specific to "OS services and APIs", but rather would apply equally to application software.

I asked you to justify why the owner/admin of a machine should be prevented from running code of their choice in kernel mode, but should not be prevented from running code of their choice in userspace.

You said that the reason is because running code of their choice in kernel mode would be a risk to their data.

Now, I will ignore the logical non-sequitur in this, and will just assume that this is in fact a valid reason to prevent them from running code of their choice in kernel mode.

The problem is that running code of your choice in userspace also is a risk to their data.

So, if "being able to run code of your choice is a risk to their data" is a valid justification for preventing people from running code of their choice, then that justification applies to userspace just as much as it does do kernel mode, so it isn't actually a justification for your position that owners/admins should be prevented from running code of their choice in kernel mode, but not in userspace. If you indeed think that this is a valid reason, then it would follow that they should also be prevented from running code of their choice in user space, and if you think that people should be allowed to run code of their choice in user space, then your justification doesn't hold, and you will have to find a different one.

On all of the operating systems that I use, no vendor "owns" any API. I have all the source code to all of it and am legally explicitly allowed to modify all of it. So, it is obviously explicitly intended that I can add, remove, or change kernel mode code how ever I like it, be it with my own code, or code from any third party. So it is just obvious nonsense that it is somehow the universal model that some "vendor" controls what code I run on my operating systems in kernel mode.

That's because you are running Linux! The license is completely different. You are free to do whatever you like to any part of it. This is not true for Windows and MacOS. You don't have any of the source code for those OSs, and their license does not allow you to modify their operating systems.


Well, yeah? But for one, that doesn't change that your statement that this was somehow a universal thing with operating systems was bullshit. It was bullshit precisely because operating systems like Linux, OpenBSD, FreeBSD, NetBSD, Illumos, and who knows what, do have licenses that follow a very different model to the one that you claimed was universal.

But also, and maybe more importantly, it is mostly besides the point. The license maybe doesn't allow you to modify those operating systems. But the law does, within certain limits, and the law trumps license agreements. And you are suggesting that the law should also not allow it, i.e., the law, or the authorities enforcing the law, should allow Microsoft to prevent their customers from doing things with Microsoft's operating system that Microsoft's customers are allowed to do by law. So, it is a completel non-sequitur to say what amounts to "but it isn't legal for people to do these things with Windows" (i.e., "they 'own' the OS") as justification for why the law should be changed such that it would become illegal for people to do these things where they currently are legal. In this case, anti-trust law trumps copyright. You are just pointing to copyright law to support your position that anti-trust law should not apply ... that's just logical nonsense.

If you blame the manufacturer for not preventing their customer from doing whatever their customer wants to do, that simply is an expression of your authoritarianism, not some universally agreed view.

As I said, Windows does NOT let applications do "whatever their customers want to do". If you don't think that is fair or acceptable, then use a different OS (but not MacOS, because that doesn't, either). I can't comment on whether that counts as authoritarian or not, but it certainly isn't my authoritarianism.


That's just missing the point, though? Customers are doing a thing that they want to do, i.e., they are installing Crowdstrike kernel drivers. And they are in fact allowed to do that, because the law, as enforced by competition authorities, says that they are allowed to do it. And you somehow conclude that it is therefore appropriate to blame Microsoft for the consequences of what their customers have done, because you think that Microsoft should prevent their customers from doing the thing that those customers are doing voluntarily, and them failing to do so somehow makes them responsible for those voluntary actions of their customers.

That is just plain authoritarianism: You want the strong man (Microsoft) to override the whishes of other people and you want to blame the strong man for not  overriding the choices of those other people when those choices have negative consequences for those other people.

Now, the kernel API in particular is usually a privilege boundary. But it generally is not a privilege boundary between the owner of the machine and the kernel. It is a privilege boundary between users. The point is to isolate processes that run under different user ids, so that a process running under one user can not randomly read or modify data of some other user.

It IS a privilege boundary between the applications and the kernel (the owner only owns the hardware, remember).


No, I don't remember, because I never thought that in the first place, because it is nonsense, as I have explained at length.

When that boundary is breached, disasters like CrowdStrike become more likely.

Which isn't solved by forcing people to use kernel mode code from only one vendor. The kernel mode code runs in kernel mode in any case.

CrowdStrike was not trying to stomp over processes running under different user IDs. It tried to access memory (apparently off a null pointer) that was not allocated to it.

Your point being?

Protecting "the OS" is not something that has any inherent value, because "the OS" is not something the user cares about on its own. Protecting "the OS" only makes sense as a means to an end, i.e., of protecting user data against abuse or corruption. Preventing the user to do with their data what they want to do with their data is not something that helps with that.

You say the user doesn't care about the OS on its own. Probably true, but only because most users only have a vague understanding of how their PC works. The reason why the OS should protect itself from damage is because, whether they know it or not, the integrity of the OS is crucial to protecting the user's data and letting them get on with their work.


No, by "they don't care" I don't mean that they aren't hinking about it, or that they don't understand it, I mean that it makes no difference to them, i.e. that they still wouldn't care if you explained it to them sufficiently for them to understand the implications.

Also, your claim that the integrity of the OS is crucial to protecting the user's data is not really universally true. That very much depends on the usage scenario. The integrity of the OS is only crucial in so far as it does in fact prevent unauthorized access to relevant data. It isn't all that unusual to have servers, for example, where all the userspace software is running in one user account, with all of it having read and write access to all of the business critical data on the system. On such a system, the integrity of the OS often is almost completely irrelevant as far as the interests of the owner of the system is concerned, because every vulnerability in the system gives an attacker access to all the critical data anyway. If an attacker that compromises some service that is running in that one user account can access all of the critical data anyway (so they can exfiltrate or destroy it), it makes no material difference to the owner of that system whether the attacker can also compromise the kernel, because there is no damage that that allows the attacker to do that the attacker couldn't do without compromising the kernel.

And all of this is relevant here because, as I have already explained before, the nature of "security" solutions like Crowdstrike is that they do have access to anything of value by design. Even if that access were to be mediated by a kernel driver written by Microsoft ("the API") and even if we assume that that kernel driver would be free of bugs, Crowdstrike would still be able to see all of the data that's valuable to the user/the business, would still be able to make the system unusable, would still probably be able to corrupt data. As such, bugs or vulnerabilities in such software could still completely wreck anything that is valuable to the business using it. Which is why I said that protecting "the OS" in itself is not something that the user cares about. What the user cares about is their data. The integrity of "the OS" can be crucial to protect their data. But just protecting "the OS" is useless.

And also, you are still confusing reliability features with anti-user enforcement. I can add any kernel mode code I want to my Linux kernel, for example. That doesn't mean that root processes don't segfault when they access an unmapped page or whatever. It isn't required for Linux to be able to have these features that I am prevented from changing the kernel code.

Reliability and user access enforcement are both important and enhanced by keeping apps away from kernel mode as far as possible.

Generally, yes. But that is irrelevant for justifying your position that only Microsoft should be allowed to provide the kernel component of a system like Crowdstrike. What follows from this is that owners/admins and the vendors who produce the software that those owners/admins install on their systems should keep as much of the code that is necessary to implement the functionality of such a system in user space. It says nothing about whether Microsoft should (be allowed to) prevent their customers from using an implementation of the kernel component from a vendor other than Microsoft, which is what you are suggesting.

You certainly cannot add kernel mode code to the Windows kernel unless you jump through the hoops mentioned earlier.

Well, that is true. But for one, that does not justify that this is a good thing. And even less that Microsoft is allowed or should be allowed to arbitrarily reject kernel drivers. And my understanding of those hoops is that their only goal is to find and fix obvious show-stopper bugs before the code is deployed to tons of systems. It's not about security, nor about any particularly stringent reliability requirements, other than "doesn't just crash if you look at it wrong". The primary purpose, really, is to provide attribution, in that you as the user can be sure who the vendor of the driver is, so that you can avoid fake drivers.

And, I'm sure you will admit that your code - running in kernel mode - has the ability to wreak far more havoc than your code running in user mode.

Yeah, of course, obviously. But that never was the contention. The contention was that there is no good reason why the operating system vendor should force its customers to not run code of their choice in kernel mode. After all, there are good reasons to run code in kernel mode, or we wouldn't have any code running in kernel mode. And it should not be up to the operating system vendor to make that decision for their customer.

I think you are stuck in the Linux mindset, where everything is open and transparent. Windows isn't like that: Windows is a black box with published APIs. You can't mess with the OS because you can't get the source code.

No, i am not stuck in a Linux mindset, I am stuck in a liberal, democracy, open market competition, non-monopoly, mindset. And I think that that is a good thing. That Windows isn't like that might well be the case. But the discussion here is not about what Windows is like, but about what anti-trust law and enforcement is like or what it should be like. And in my view, if any product from any vendor is built in such a way that it prevents open market competition and creates monopolistic powers, then anti-trust law and its enforcement should stop that, because that sort of thin generally is to the detriment of the public at large. You are saying that Microsoft should have more monopoly power than they already have. And you are so far failing to justify why that would be a good idea.

I think the CrowdStrike disaster proves my point beyond doubt: an inept application was able to bluescreen Windows machines all over the world and caused absolute chaos to countless businesses because it was running in kernel mode. If it was running in user mode it couldn't have done that. That's why Microsoft is right in trying to reduce the amount of application code running in kernel mode.

No, it doesn't prove your point in any way, as that is just a serious of non-sequiturs. It doesn't follow that because Crowdstrike caused a ton of systems to bluescreen, therefore, Microsoft should be given the monopoly power to provide the only kernel driver for such applications. That is just pure logical nonsense. You have neither demonstrated that that would in fact solve the problem, nor that it would be the best solution to the problem, given that there are numerous other options to approach a solution to the problem, starting from the obvious option that customers could just voluntarily only use a kernel driver from Microsoft if they think that that would solve their problems.

You know, that sort of stuff is what I do for a living, and I can assure you that I understand how privilege boundaries on operating systems work. And I can also tell you that the way that you think about IT security is pretty confused.

Your ad hominem seems like a good place to stop. We've both got our heels dug in - I doubt there is any value in continuing. Also, we really should get back to talking about microcontrollers. Your professional experience with Linux surely means you can suggest some lessons that are relevant to microcontrollers.

It's weird that you write "I get the impression you aren't aware of the architecture of modern operating systems, and especially the concept of the API", but when I write the equivalent in the other direction, that's a problem, isn't it?

But also, neither of those are ad hominems. An ad hominem is a fallacy of the form "person X has character flaw Y, therefore, the claims that they make are false". That is obviously logical nonsense, as you just would have to find a person with a character flaw and have them say '1 + 1 does not equal 3' in order to prove that 1 + 1 equals 3, if that form of an argument were valid, which is why it is a fallacy. Neither "person X is not qualified on topic Y, therefore you shouldn't trust their claims on topic Y" nor the mere statement of "person X is not qualified on topic Y" are ad hominems, and they obviously are not fallacious.

And no, I don't have my heels dug in. I am just pointing out the logical flaws in your arguments, and asking you to make arguments that don't have logical reasoning errors, while you keep making the same errors over and over.
 

Offline SteveThackery

  • Frequent Contributor
  • **
  • Posts: 403
  • Country: gb
Excellent and interesting reply - thanks, @zilp.
 

Offline SteveThackery

  • Frequent Contributor
  • **
  • Posts: 403
  • Country: gb
As I work through it, I am struck by how we seem to be talking past each other. You keep saying my arguments are irrelevant or non sequiteurs. But when I read your own posts I am struck by what seems like a "stuck" mindset that can only think in one way ("This is how I do it in Linux, so that's how it should be for everyone and all OSs").

We both think our arguments are simple, clear and valid, and yet we shout straight past one another.

Before doing a proper reply, I'm going to pause and spend some time trying to understand why we have so far failed to communicate.

Once again, thanks for taking the time to write such a comprehensive post.
 

Offline zilp

  • Frequent Contributor
  • **
  • Posts: 329
  • Country: de
As I work through it, I am struck by how we seem to be talking past each other. You keep saying my arguments are irrelevant or non sequiteurs. But when I read your own posts I am struck by what seems like a "stuck" mindset that can only think in one way ("This is how I do it in Linux, so that's how it should be for everyone and all OSs").

Irrelevant arguments or non-sequiturs are fallacies. "Being stuck" is not. I would assume that you are stuck on the position that 1 + 1 equals 2? Does that mean that there is some problem with that position?

Also, what I think how things should be done is irrelevant for whether your arguments contain logical flaws. The point of explaining how things work with Free Software is to demonstrate how one can achieve the goal that you supposedly want to reach without the measures that you claim are necessary to reach them, and how what you claim to be universal views are obviously not actually universal views, because it would follow from those that users of Free Software consider their systems to be insecure ... which they usually, rather unsurprisingly, don't.

We both think our arguments are simple, clear and valid, and yet we shout straight past one another.

Before doing a proper reply, I'm going to pause and spend some time trying to understand why we have so far failed to communicate.

Once again, thanks for taking the time to write such a comprehensive post.

You are welcome--and I am curious what conclusions you are going to come to :-)
 

Offline SteveThackery

  • Frequent Contributor
  • **
  • Posts: 403
  • Country: gb
Irrelevant arguments or non-sequiturs are fallacies. "Being stuck" is not.

Well obviously I don't think my arguments are irrelevant or non-sequiteurs!  :)  I think they are clear, simple and incisive. For my part I think you are too stuck in your ways to properly embrace an alternative point of view.  I strongly suspect you have just skim-read my posts without really thinking about what I'm actually saying.

But let's not do this - criticising each other is not at all helpful and it just leads to unpleasantness and upset feelings. Feel free to take another pop at me (I know you want to), but after that we should stop.

Right now I'm trying really hard to understand your arguments, including doing some background reading on Linux (I only write Windows applications). There'll be a slight pause, but I will get back to you.
 

Offline SteveThackery

  • Frequent Contributor
  • **
  • Posts: 403
  • Country: gb
One point that we could clarify is this:

The part that I disagree on is that Microsoft should prevent owners/admins from installing kernel mode drivers. And that is the part that you keep dodging. You keep explaining why people should avoid installing kernel mode drivers, but not why Microsoft should prevent people from installing kernel mode drivers.

The fact that it is risky is not sufficient reason why people should be prevented from taking the risk, if they think that that risk is worth it. But you are saying that it shouldn't matter what the owner/admin of a system thinks, and that Microsoft should decide for them that they are not allowed to take risks. That is the part that you need to justify.


You frequently refer to owners/admins, and I'm not totally sure what that means. To you, it seems to mean an individual with complete access to all aspects of the OS, a deep understanding of how it works, who can write and run code that operates in user space or kernel space, and, crucially, is willing to take responsibility for all consequences of their actions. It is an intimate relationship between the owner/admin and the OS, with no secrets between them.

Now, this isn't remotely like 99% of the Windows users that I have ever known. Most Windows users have only the vaguest awareness of what Windows is and does. They don't know what an API is, they've never written a line of code, and they have no knowledge of user space and kernel space. What they see is the email app they use every day, the social media apps they use every hour, and some of them know how to use powerful applications like Microsoft Office. Some of them understand the hierarchical nature of the filing system; others don't and just save files to wherever is the default for the application (usually just piling files up in 'Documents').

So one thing I'm hoping you will recognise is that the great majority of these people are not remotely like the "owners /admins" you describe in the world of Linux. They are just users who really only care about the applications. To them, the OS is what provides the Start menu, the File Manager, and a nice picture on the desktop.

These are the people who form the great majority of Microsoft's customers. Obviously there are others: admins who are responsible for supporting dozens or hundreds of PCs in an organisation; programmers, who write applications that PC users will hopefully buy; and "power users" who like and understand computers and enjoy trying out different apps and spend ages in the "Settings" app, fine-tuning the transparency of the Taskbar.

Can you at least acknowledge that the 99%* of Windows PC users are very different from the owners/admins you describe in the Linux world? I hope so - you only have to walk into any busy office and you will see a room full of them.

A simple yes or no would suffice at this stage.

*Let's not quibble about whether it is 99% or 95% - I'm sure you get my point.
« Last Edit: August 16, 2024, 11:49:01 pm by SteveThackery »
 

Offline IanB

  • Super Contributor
  • ***
  • Posts: 12291
  • Country: us
I think the CrowdStrike disaster proves my point beyond doubt: an inept application was able to bluescreen Windows machines all over the world and caused absolute chaos to countless businesses because it was running in kernel mode. If it was running in user mode it couldn't have done that. That's why Microsoft is right in trying to reduce the amount of application code running in kernel mode.

I really don't agree with the point you keep trying to make at all.

The CrowdStrike disaster occurred because professional system administrators installed software on critical machines across organizations, without doing sufficient due diligence, and without establishing the required level of trust in the software. They did not (apparently) demand to see the test, verification and quality assurance procedures employed by the vendor, and they did not (apparently) verify for themselves that such procedures were satisfactory before purchase. They paid the price as a result.

Nobody was forced to deploy the faulty software, and it was not installed silently, or by any surreptitious means. The organizations affected voluntarily shot themselves in the foot.

Bear in mind that the software was deployed by corporate IT departments, people who are supposed to be informed and knowledgeable professionals, people who are supposed to know what they are doing.
 
The following users thanked this post: Siwastaja

Offline radiolistener

  • Super Contributor
  • ***
  • Posts: 3925
  • Country: ua
What you are arguing about here is whether Microsoft should force other people to not run code in kernel mode, because you somehow think that your system is vulnerable due to the fact that other people might run code that you consider too risky to run on your own machine. For you to not run that code on your machine, you don't need MS to force you, you can simply not do it.

Windows become a system for not smart peoples who don't understand and don't want to understand what they want. They just want to provide  their machine to be used by MS software and will be happy with all crap that they receive. 

If you want to control your system, you definitely needs to use different OS which is designed for peoples who understand what they want and don't need MS control on all what they doing on computer.

If you use Windows, don't surprise that your computer doing things that you didn't asked and be ready to allow that MS dictates the rules of what and how you should do on your PC... :)

Just look, first you selected OS which is designed to use your PC without your consent and enforce you to do things that you don't want. And then you complain that it works not as you want. This is strange, if you don't want it and don't like it then why you choose it?  :)

The same thing with Android. Such kind of software is designed for not smart peoples who don't want to learn or understand something. They just want to give full control on their PC/smartphone to MS or G, and allow them to use it as MS/G wish. All what they expect in response is just to get some service from these companies and even ready to pay for that.
« Last Edit: August 17, 2024, 06:28:26 am by radiolistener »
 

Online Siwastaja

  • Super Contributor
  • ***
  • Posts: 8658
  • Country: fi
Windows become a system for not smart peoples who don't understand and don't want to understand what they want. They just want to provide  their machine to be used by MS software and will be happy with all crap that they receive.

While this is probably... kinda-sorta... true-ish, remember now we are talking about IT administration departments of some massive mega corporations - banks, airlines, and so on, who use Windows on their critical server infrastructure, not end users of consumer PCs. That is - if you are right in what you say, it's actually quite sad, and very alarming.
 

Offline madires

  • Super Contributor
  • ***
  • Posts: 8100
  • Country: de
  • A qualified hobbyist ;)
Absolutely! When you're forced to be a Microsoft junkie you pray that the next monthly update won't cause too much trauble, and that nobody clicks on something malicious.
 

Offline SteveThackery

  • Frequent Contributor
  • **
  • Posts: 403
  • Country: gb
Can you at least acknowledge that the 99%* of Windows PC users are very different from the owners/admins you describe in the Linux world? I hope so - you only have to walk into any busy office and you will see a room full of them.
(...)
*Let's not quibble about whether it is 99% or 95% - I'm sure you get my point.

@zilp: although I have had a bit of fun describing the types of Windows users, I hope you will agree that my descriptions are broadly valid, and in particular nothing like the Linux "owner/admin" you frequently refer to.

My next question is another yes/no question. Do you agree that a BSOD is a pretty serious inconvenience for these users? That when a BSOD happens, most of these users would have no idea how to fix it? Even for system admins, it's a major ballache?

And in addition, do you agree that BSODs, especially widespread ones like CrowdStrike, reflect very badly on Microsoft (whether fairly or not)?

You will obviously see where I am going with this.....
 

Offline SteveThackery

  • Frequent Contributor
  • **
  • Posts: 403
  • Country: gb
And now my third question for @zilp: do you agree that Microsoft would be wise to make Windows as crash-proof as possible? That BSODs should, ideally, never happen? That is in the interests of both the user and Microsoft that BSODs don't happen?

I'm not going for the big reveal, here: I'm just setting out a very simple and transparent principle which I hope is obvious, and obviously desirable.
 

Offline zilp

  • Frequent Contributor
  • **
  • Posts: 329
  • Country: de
Irrelevant arguments or non-sequiturs are fallacies. "Being stuck" is not.

Well obviously I don't think my arguments are irrelevant or non-sequiteurs!  :)

Well, I guess so? But they still are!

I think they are clear, simple and incisive. For my part I think you are too stuck in your ways to properly embrace an alternative point of view.  I strongly suspect you have just skim-read my posts without really thinking about what I'm actually saying.

No, I fully understand what you are saying. But your conclusion does not follow.

But let's not do this - criticising each other is not at all helpful and it just leads to unpleasantness and upset feelings. Feel free to take another pop at me (I know you want to), but after that we should stop.

Right now I'm trying really hard to understand your arguments, including doing some background reading on Linux (I only write Windows applications). There'll be a slight pause, but I will get back to you.

I mean, feel free to read up on Linux, I guess, or even on Free Software in general, but really, the relevant points to this discussion are that Free Software comes with all the source code and a license that allows you to read, modify, and redistribute it all, which obviously flies in the face of any idea of "the vendor" preventing you from running kernel mode drivers, because it obviously is impossible for "the vendor" to prevent you from doing so if you can just edit and recompile the kernel, and if anyone is allowed to redistribute modified versions, and the fact that, obviously, people running Linux, FreeBSD, or OpenBSD servers, do not consider their systems to be insecure, even though nothing prevents them from running any kernel-mode code whatsoever if they wanted to.
 

Offline zilp

  • Frequent Contributor
  • **
  • Posts: 329
  • Country: de
One point that we could clarify is this:

The part that I disagree on is that Microsoft should prevent owners/admins from installing kernel mode drivers. And that is the part that you keep dodging. You keep explaining why people should avoid installing kernel mode drivers, but not why Microsoft should prevent people from installing kernel mode drivers.

The fact that it is risky is not sufficient reason why people should be prevented from taking the risk, if they think that that risk is worth it. But you are saying that it shouldn't matter what the owner/admin of a system thinks, and that Microsoft should decide for them that they are not allowed to take risks. That is the part that you need to justify.


You frequently refer to owners/admins, and I'm not totally sure what that means. To you, it seems to mean an individual with complete access to all aspects of the OS, a deep understanding of how it works, who can write and run code that operates in user space or kernel space, and, crucially, is willing to take responsibility for all consequences of their actions. It is an intimate relationship between the owner/admin and the OS, with no secrets between them.


No, I just mean the person who has the property rights to the machine. Their qualifications are not relevant. I just write owner/admin because in practice, often, the owner is a corporation, which obviously can't act unless a human acts for it, which usually would be the responsibility of an IT administrator.

Now, this isn't remotely like 99% of the Windows users that I have ever known. Most Windows users have only the vaguest awareness of what Windows is and does. They don't know what an API is, they've never written a line of code, and they have no knowledge of user space and kernel space. What they see is the email app they use every day, the social media apps they use every hour, and some of them know how to use powerful applications like Microsoft Office. Some of them understand the hierarchical nature of the filing system; others don't and just save files to wherever is the default for the application (usually just piling files up in 'Documents').

So one thing I'm hoping you will recognise is that the great majority of these people are not remotely like the "owners /admins" you describe in the world of Linux. They are just users who really only care about the applications. To them, the OS is what provides the Start menu, the File Manager, and a nice picture on the desktop.


While that is all true, mind you that the context that this thread is about is software bought by corporations and installed by IT administrators, who should be expected to have a deeper understanding of how their IT systems work than your average end user.

These are the people who form the great majority of Microsoft's customers. Obviously there are others: admins who are responsible for supporting dozens or hundreds of PCs in an organisation; programmers, who write applications that PC users will hopefully buy; and "power users" who like and understand computers and enjoy trying out different apps and spend ages in the "Settings" app, fine-tuning the transparency of the Taskbar.

Can you at least acknowledge that the 99%* of Windows PC users are very different from the owners/admins you describe in the Linux world? I hope so - you only have to walk into any busy office and you will see a room full of them.

A simple yes or no would suffice at this stage.

*Let's not quibble about whether it is 99% or 95% - I'm sure you get my point.

Yeah, that's all true--and irrelevant.

Let's do a car analogy: 99% of car users have no idea how a car works in detail or would be able to repair one if it breaks down. Also, working on a car can be dangerous if you don't know what you are doing.

Your suggested solution: Have car manufacturers put a lock on the engine hood that only they have the key to and force car owners to buy all repairs from the manufacturer, because that's the only way to keep people safe. And your "proof" is that you point to one independent repair shop that screwed up a bunch of cars.

And that's a non-sequitur. People can refrain from repairing their own car without being locked out of it, so it doesn't follow that you have to lock them out to keep them safe. And it doesn't follow that because some people are incompetent at repairing cars, that therefore, the manufacturer is best at it. It also doesn't follow that because you can show someone who repaired cars incompetently, that therefore, the manufacturer is best at it. As can be seen with the large number of independent repair shops who do employ competent people and often offer better service than the manufacturer. And it follows even less that the manufacturer would be best under monopoly conditions, given that they aren't even necessarily the best when confronted with competition ... what motivation would they have to offer the best possible service when you have no other option anyway? And not to forget the effect on prices when there is no competition.

And, not to forget: If people feel safest to have their car repaired only by the manufacturer, that still does not require that the manufacturer puts a lock on the hood. The existence of competing independent repair shops does not prevent anyone from only having their car repaired by the manufacturer.

There simply is no logical connection between "crashing cars can be dangerous" and "therefore, the manufacturer should be allowed to force their customers to buy all repairs from them". And equally, there is no logical connection between "crashing operating systems can be dangerous" and "therefore, the manufacturer should be allowed to force their customers to buy all kernel drivers from them".

This has nothing to do with the competence of the users. It doesn't follow that, because a user is incompetent, therefore, the product from Microsoft is the best. And it also doesn't follow that, because some user feels safest with only products from Microsoft, therefore, other people need to be forced to only buy from Microsoft, too. Those are plain and simple non-sequiturs. If a customer only wants to run Microsoft software, they can do so, it is not necessary to allow Microsoft to force their customers to use only Microsoft software in order to allow them to do that.
 

Offline SteveThackery

  • Frequent Contributor
  • **
  • Posts: 403
  • Country: gb
.... the relevant points to this discussion are that Free Software comes with all the source code and a license that allows you to read, modify, and redistribute it all, which obviously flies in the face of any idea of "the vendor" preventing you from running kernel mode drivers, because it obviously is impossible for "the vendor" to prevent you from doing so if you can just edit and recompile the kernel, and if anyone is allowed to redistribute modified versions, and the fact that, obviously, people running Linux, FreeBSD, or OpenBSD servers, do not consider their systems to be insecure, even though nothing prevents them from running any kernel-mode code whatsoever if they wanted to.

Right! And this is absolutely nothing like Windows works!!

This, I am certain, is why you can't see my point of view - we are coming from such different places that we have almost no common ground to stand on for our discussion.  With Linux, every app and the entire operating system is wide open and transparent, and literally anyone can do literally anything they like to any part of it. And obviously these individuals take full responsibility for their own actions.  The people you describe can write and run any kernel mode software they like, in the full knowledge that their code can crash the OS if they make a mistake, or even deliberately crash it. So most of the time these owner/admins write the best quality code they can, and that means of course they don't consider their systems to be insecure! They trust their own code!

But I repeat - nothing whatsoever in the paragraph above applies to Windows.
 

Offline zilp

  • Frequent Contributor
  • **
  • Posts: 329
  • Country: de
Can you at least acknowledge that the 99%* of Windows PC users are very different from the owners/admins you describe in the Linux world? I hope so - you only have to walk into any busy office and you will see a room full of them.
(...)
*Let's not quibble about whether it is 99% or 95% - I'm sure you get my point.
My next question is another yes/no question. Do you agree that a BSOD is a pretty serious inconvenience for these users? That when a BSOD happens, most of these users would have no idea how to fix it? Even for system admins, it's a major ballache?

Yeah, sure.

And in addition, do you agree that BSODs, especially widespread ones like CrowdStrike, reflect very badly on Microsoft (whether fairly or not)?

I guess so? But the "fairly or not" is actually the critical part. Because PR interests of a corporation don't (and shouldn't) trump property and similar rights.

To continue the car analogy from above: Imagine people started modding their cars of a certain model. Imagine further that somehow those mods caused accidents. Imagine further that many people would put the blame on the manufacturer of those cars, completely unfairly, because the accidents were unambiguously caused by the modifications. Do you think that it would therefore be acceptable or even desirable for the car manufacturer to put locks on the engine hood that prevent all independent modification of repair?

You will obviously see where I am going with this.....

I mean, I can guess, and so, maybe I have already answered the next step?

And now my third question for @zilp: do you agree that Microsoft would be wise to make Windows as crash-proof as possible? That BSODs should, ideally, never happen? That is in the interests of both the user and Microsoft that BSODs don't happen?

BSODs should, ideally, never happen, unless the owner of the machine wants them to happen, in which case there is nothing wrong with them happening.

Mind you, my disagreement is with forcing things on owners/admins, not with helping them prevent BSODs. Your position is that people should be prevented from causing a BSOD on their own machine even if that is what they want to do.

Then, I'm not sure whether Microsoft would be wise to make Windows as crash-proof as possible, and I mostly don't care, because whether something is wise for Microsoft to do tells us nothing useful about whether we, as society, should allow them to do it. It is generally wise for corporations to establish as many monopolies as they possibly can. But it is rarely beneficial for anyone but that corporation and its shareholders. Mind you, we are talking about forcing owners/admins to do things a certain way, not about providing them with options.

But also, and maybe more importantly, you would have to demonstrate that your proposed measure would in fact reduce the expected rate of BSODs. You have not even demonstrated that Microsoft's code for the same purpose ("the API") could not possibly have had the same bug. It doesn't automatically follow that because the code that was written by Crowdstrike was bad, that therefore, the code written by Microsoft would be better. And if the code isn't better, then your argument doesn't work.

I'm not going for the big reveal, here: I'm just setting out a very simple and transparent principle which I hope is obvious, and obviously desirable.

But it isn't desirable to have authoritarian control of your IT systems by a global monopoly.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf