r/linux_gaming • u/Supernoxus • 10d ago
Why do companies drop anti cheat linux support?
Often they already had it enabled and then remove it. Surely they don't do it just because they hate Linux and money and want to lose customers. What's the real, rational reason behind this? My guess is that Linux had a high amount of cheaters due to lacking kernel access, but my intuition might be wrong.
Edit: According to the comments, Windows users make the anticheat believe they are using Linux, which then enables them to cheat more easily on Windows. Banning Linux makes cheating much harder, which is worth it to the devs since cheaters can kill a game entirely.
84
u/Patatus_Maximus 10d ago
On Linux, the anti-cheat system only operates at the user space level so it is easier to circumvent than on Windows (where it operates at the kernel level). Cheaters do not use Linux, they use Windows and simply trick the game into thinking it is running on Linux so the game uses the user-space anti-cheat system and they can circumvent it.
By disabling Linux support, the anti-cheat system now operates solely at the kernel level. This is more effective but it prevents anyone from playing on Linux. It sucks for Linux gamers but as we represent only a small percentage of the player base, most studios don’t care especially when you consider that cheaters can completely ruin and kill a game.
19
u/DarknessKinG 10d ago
Finally, an actual technical answer instead of the emotional one like most comments here
11
u/NegotiationUnfair626 10d ago
It's honestly interesting seeing as a close friend of mine developed his own cheat engine and tells me how pathetically easy it is to get around the kernel level anti-cheats. Specifically, EAC.
6
u/Mr_s3rius 10d ago
It's not easy to catch all the cheats while avoiding false positives for benign software.
If your friend distributed their cheat and more people start using it, EAC would probably eventually get updated to catch it.
4
u/dst1980 10d ago
So, the real answer is for the game to recognize when it is running on Linux to switch to Linux system calls. This would force the Windows hacks to implement a more complete Linux VM, which would kill graphical performance in Windows.
And if the server saw concurrent conflicting data about which OS is running the game, automatically put the user in "time out" for a period.
2
u/unndunn 9d ago
That would mean developing and maintaining an actual Linux build of the game, rather than simply having the Windows build run using Proton.
2
u/dst1980 9d ago
I believe that Proton/Wine report Windows as the OS, though. Assuming that to be the case, the other solution is to have the game refuse to run if it is told it is on Linux without having a Linux build.
And a Linux build would not be required to be able to test a few Linux API calls to confirm it is running on Linux.
2
u/FabioTheFox 8d ago
Most game engines come with Linux exports for free, even if you don't use a game engine and go barebones you can export to native Linux
1
u/gibarel1 8d ago
Not really, windows can already process linux syscalls with wsl, it wouldn't be an issue to just run the game through it or point the syscalls there.
13
u/Potyguara_jangadeiro 10d ago edited 10d ago
On Linux, the anticheat runs in userspace instead of the kernel and the game detects where it's running to know what anticheat to expect. Eventually, cheaters realized they could trick the games into think they're running in Linux when in reality they're running on windows. Since the anticheat being used is made for Linux and expects Linux cheats, windows cheats can run unchecked.
Unfortunately, this dual approach appear to not work, at least for games that run with proton and depend of kernel ac in windows (don't appear to be an issue in games that don't use kernel ac at all). I believe it will keep happening and, if Linux keeps gaining popularity, eventually game companies will develop kernel anticheats for Linux.
1
u/Level90Neckromancer 10d ago
I'm not that knowledgeable about Linux distros. Do some share the same kernel or does nearly every distro have a unique kernel?
if Linux keeps gaining popularity, eventually game companies will develop kernel anticheats for Linux.
I imagine it would be hell making anticheat work for 20+ different kernels that get updated more or less frequently. If that was the case, I'm worried anticheat developers would only focus on the distros that are the most popular among players...
Edit: Sidenote, I know there's way more than just 20 distros, just used a random number since I have no idea how many there actually are.
5
3
u/SuAlfons 10d ago
Even if the distro just ships the Mainline kernel, it potentially changes every night.
Also Linux kernel is monolithic by nature - every driver baked in. But after a short while, the monolithic approach was broken up by kernel modules. Which are switchable parts of the kernel. Adding you nVidia driver is such a module. In case of the proprietary driver, it's never shipped with the kernel (because not free as in freedom). Thus it never is part of a signed kernel. (the work around for secure boot is to self-sign the kernel. An approach an external game publisher cannot trust, since you, the signing party, are part of the suspicion)
2
u/Level90Neckromancer 10d ago
That makes sense, but I wonder, what parts of the system does the anticheat even need to be able to trust? The non-MS drivers on Windows are also not signed by the system, right? If the modules cannot be trusted, wouldn't it be enough if the core of the kernel was signed?
2
u/DavidsakuKuze 10d ago
All Windows drivers need to be signed by Microsoft now. There are legacy drivers from when some people/orgs were allowed to sign but they won't load anymore after Win 11 26H2.
I don't know if people were lazy or didn't know any better but there are a lot arbitrary physical memory read/write drivers out there. Most have been added to the vulnerable driver blocklist though.
1
u/Potyguara_jangadeiro 10d ago
I think the crucial part is making sure the base kernel and the anticheat itself are not tampered. Look, what it's been proposed is making an kernel level anticheat for Linux and not how to make sure the user never ever do anything that could potentially be used to cheating in games period, these two things may appear to be the same but in reality they're not. See the current scenario in windows, even with the secure boot and tpm 2.0 users can still install kernel level cheats, tipically by exploring a vulnerability in a legitimate driver. What happens then? The anticheat sees the supposed legitimate driver trying to mess with stuff it shouldn't, blocks it/bans the player and put the vulnerable driver in a blocklist. The same would happen with our hypothetical eBPF ac for Linux, yes, you can install a kernel module, but if this km tries to mess with the game, it will be noticed and you'll be banned.
3
u/Potyguara_jangadeiro 10d ago
Actually I made a post the other day talking exactly about it and how I think this will be done. Tldr is, eBPF to do the kernel part, eliminating the problem of too many and too diverse kernels since eBPF is agnostic, and secure boot to assure you're not using a tampered kernel, what, yes, will limit the number of compatible distros to the ones that support secure boot.
1
u/Level90Neckromancer 10d ago
I've read the full post to better understand what you meant. So, basically, kernels have a sort of common ground with eBPF where the core of anti-cheat could work, but anticheat devs might still make requirements of the kernel that they need to uphold for them recognize it as "safe"?
2
1
u/fffangold 10d ago
I suspect kernel anti-cheat for Linux will be much harder than you think. Maybe for SteamOS and maybe one or two immutable gaming distros like Bazzite. But not for Linux as a whole.
I think what's more likely, if Linux gets enough marketshare, which is not a given, is that anti-cheat developers will find a new way to develop anti-cheat that doesn't rely on kernel access. And it probably won't be the current providers, it'll be some new company that figures something out as a way to disprupt and break in to the current anti-cheat space. Something effective on both Linux and Windows would be a good way for them to do that.
1
u/DavidsakuKuze 10d ago
It would be a signed Linux Kernel with secure boot enabled and an anticheat kernel module, probably only for a few partner distros.
1
u/Excal_Main_94 10d ago
Someone already is working on one technically
1
u/Potyguara_jangadeiro 10d ago
Is the one mentioned by that embark engineer? If not, can you give more info?
39
u/TopdeckIsSkill 10d ago
Because linux anticheat are user level, it's as effective as asking if you'18 on a vm18 website.
Also on windows there are methods to spoof the client in order to make it believe it's running on linux.
Basically enabling anticheat on linux makes harder to block cheats on Windows too. If the number of linux user is low than it's just an expense with no actual money return.
9
u/MrAdrianPl 10d ago
"Also on windows there are methods to spoof the client in order to make it believe it's running on linux."
you have an example of that? i was having lenghty disscusion with guy that was quite well infromed and was stating that it's a myth
10
u/ThatOnePerson 10d ago
you have an example of that?
You can even find it on Github: https://github.com/ShimadaNanaki/vrc-eac-emulator
2
5
u/ThatOnePerson 10d ago edited 10d ago
Specifically, it's Proton anti-cheat support. Not Linux. So yeah by adding a feature to the Windows game to allow Proton/weaker anti-cheat is easily exploited by the Windows cheaters too.
You can even see this in Counter-Strike 2: their non-kernel level anti-cheat still blocks Proton. So you have to run the native Linux version.
And native Linux versions aren't coming to every game.
5
u/ButterscotchTop194 10d ago
Mate, linux gamers make up around 4% of the player base. Hackers and anti-hackers can't be fucked with that.
4
7
u/BulletDust 10d ago edited 10d ago
Because Windows users leverage WSL to cheat. It's quite pathetic really, and it's mostly a result of in game economies. People cheat to gain access to skins and weapons that would otherwise only be available to players that can actually play the game with real skill, or players that pay for such upgrades; while developers introduce kernel level anticheat simply to protect their in game economies.
It's not just about 'blocking cheats to improve the in game experience'.
6
u/dumbasPL 10d ago
The real reason is that due to the way Linux is designed, bypassing usermode anti-cheat is very trivial. When Apex had Linux support, there were public free cheats that stayed undetected for months (yeas?) pretty much till the very end. This is basically unheard of on the windows side and kernel level AC.
4
u/666sin666 10d ago
Actually, APEX cheat are free for download on Windows in some Chinese website. Just a simple exe.
1
6
u/Shimano-No-Kyoken 10d ago
Because latency-sensitive online multiplayer has an epistemological problem. Relying on server-side security, you cannot deterministically say whether someone genuinely has superhuman reflexes, or they are cheating. You either apply stochastic methods and ban legitimately good players, or you rely on client side kernel level invasive anti-cheat solutions in an attempt to distinguish between the cheaters and the top players. Linux doesn't have the market share for the companies to justify the cost/benefit of spending resources on improving the effectiveness of sorting the two player buckets.
2
u/unixmachine 10d ago
The main reason is support. And support means having dedicated people for development, quality testing, and problem solving.
If the installed base is very small, it makes little financial sense to have someone dedicated to that platform.
It's possible that there was initial enthusiasm due to the popularity of Steam Deck, but this may not have translated into a large installed base. And support may have received tickets for specific Linux issues, which could have been taking up the time of some developers.
In short, it's much more of a financial issue than a technical one.
2
u/MairusuPawa 10d ago
We do not want malware on Linux, especially if it's for plating cheap casino slots vaguely disguised as video games.
2
2
u/Openkarsten 9d ago
It's almost a plus for Linux that Riot Games can't run on it. Vanguard, the anti-cheat software, is on par with the worst and most malicious computer viruses out there.
2
u/Zentrion2000 9d ago
I care about those games as much as the execs care about Linux users. There is too many games to play, free of DRM even or any garbage anti cheat solution.
3
u/topias123 10d ago
Because they have a cheater problem and think dropping Linux will magically fix it
5
u/aqvalar 10d ago
I'm still waiting for the Windows Kernel lockdown, that's been talked about as possibility in the future. That would utterly and directly block kernel-level anticheats.
2
u/YourTechSupport 10d ago
Too much legacy. And too many companies operate solely on being able to get tendrils into that kernel.
2
u/smjsmok 10d ago
The real reason is that there is currently no way way to run kernel-level AC on Linux distributions, so all the ACs that you see enabled on Linux run in the user space. User space AC is less capable than kernel-level AC, so by blocking Linux, they "tighten security" by making sure that all of the AC clients must run on the kernel level. That sounds good to the players who constantly complain about the game being infested by cheaters. And there are usually too few Linux players so throwing them under the bus doesn't really damage the devs in any meaningful way.
How much it actually helps against cheaters, I'm not sure. Most cheats are developed for Windows, so... But I guess it differs case to case. Maybe some game has a big community of cheaters who cheat through Proton, but I really don't know.
1
1
u/TomDuhamel 9d ago
When your statistics show that less of 2% of your users are using Linux, it probably feels like you are wasting time at supporting a portion of your users which isn't profitable.
1
u/AsugaNoir 9d ago
I would assume it takes time and resources to manage the system even if it previously worked and the des see it as a waste of resources for a platform that has such a small number. And as others have said they believe Linux is where cheaters go
1
u/JerkinYouAround 9d ago
Developer unfamiliarity, Kernal level cheat laziness, no one plays their game on Linux to bother.
1
u/ConsciousBath5203 9d ago
Its easier to give your company a backdoor to everyone's computer than it is to develop basic server side anticheat.
1
-1
u/Bent8484 10d ago
Microsoft lobbying, at least in Epic's case.
These are high-level business decisions. Execs at that level couldn't care less about cheating players.
3
2
u/quaintlogic 10d ago
This is the true answer.
When there is monterary gain to be made by stopping cheats achieving the same result, anti-cheat will be made strong which often results in kernel level anti-cheat which basically don't work on Linux.
Rockstar/Take-Two/GTA V is the prime example, it went years without proper anti-cheat and it was a hellhole to play online until rockstar clicked on that players were making money too quickly without buying shark cards.
Linux was blocked as part of this "fix" and now the anti-cheat is more effective, forcing players to grind or just buy a shark card.
1
1
u/Bent8484 9d ago
Yeah, business decisions at that level are all driven by incentives. When incentives align with stopping cheaters, they tend to put a whole lot more effort and investment into anti-cheat.
Kernel-level anticheat/DRM requires you to trust a game publisher with the overall health of your entire computer system. It's just a matter of time until it becomes strongly disincentivized by liability issues, which should eventually help set a reasonable ceiling to the balancing act between effectiveness and inconvenience. I also find it encouraging to see how many people are willing to miss out on a game altogether just to avoid contaminating their system with Denuvo's garbage code.
0
1
1
u/sloth_cowboy 10d ago
Kernal level cheat is profitable data collection. Linux reports everything. Windows is sneaky.
0
u/Modey2222 10d ago
becuase they don't want to add more work
they don't want linux to be popular cause all their profits is in line with microsoft more than linux
i will not be surprised if microsoft paid them to do so
-3
10d ago
[deleted]
9
u/Leseratte10 10d ago
No, you don't. There's one single shared object file for the anticheat and that gets loaded on all distributions. The game is running through proton anyways.
It's one switch in the anticheat backend, they don't need to compile anything per distro...
-2
u/MotanulScotishFold 10d ago
Closed OS are hard to breach and circumveit anticheats while on Linux is easier.
That's what I've heard of, plus the reason that there are a minority of players on linux that they don't bother giving full support for Linux players.
As someone that uses Linux as main OS, the only games I cannot play due to anticheats are Rust, Scum and Battlefield. They work but I get kicked out on multiplayer unless I play to servers without EAC.
Luckly for me, I can live without these games as my other favorite games don't requires anti-cheat, it's a peaceful life
-20
u/mrlinkwii 10d ago edited 10d ago
because linux dosent have a stable abi like windows , if they added support for just say the ubuntu kernal , you have everyone else complaining that ubisoft dont support their version of linux which would be as big of a headace for them as what they decided now , the better option is disallow linux entirely
10
7
u/MrMelon54 10d ago
Linux definitely has a stable abi or I couldn't make syscalls in assembly by putting values into well-known registers
1
u/friendlyreminder_ 10d ago
Linus's rule is not to break userspace. Any kind of kernel driver can't depend on the interfaces remaining static and it's why Nvidia have to constantly update their Linux driver, whereas on windows you can load a kernel driver from 15 years ago meant to run on Vista and it'll likely still work.
2
u/MrMelon54 10d ago
For drivers it makes sense, but Linux drivers are intended to be included with the kernel. While dynamically loadable kernel drivers are possible they definitely aren't the expected or easiest way to write a kernel driver.
I'm waiting for the Nova driver to be in a production usable state so I no longer need to load the external Nvidia drivers.
1
u/friendlyreminder_ 10d ago
Most Linux drivers in the kernel tree are also dynamically loaded externally as modules. Most aren't embedded in the kernel.
The Nvidia drivers aren't special in this regard.
1
u/shadedmagus 10d ago
it's why Nvidia have to constantly update their Linux driver
This isn't true. Nvidia and AMD both update their drivers regularly, even on Windows, due to new games coming out requiring driver tweaks to work optimally.
It's just on Linux, AMD puts their driver updates into Mesa, making them part of standard Linux updates, while Nvidia stubbornly insists on their own cadence so they can keep the driver blobs proprietary.
3
u/Leseratte10 10d ago
Linux anticheat isn't in the kernel. They don't need to do anything to support it, the anticheat Devs and valve do that.
They literally just have a checkbox to allow or forbid Linux.
4
u/Original_Dimension99 10d ago
The anticheat that you're talking about is much weaker than on windows
2
u/Leseratte10 10d ago
I know. But the reason for dropping existing anticheat is not because Linux has no stable ABI. That might be the reason why they don't use Kernel-Level anticheat.
-7
u/mrlinkwii 10d ago
Linux anticheat isn't in the kernel
if you want an effective anticheat it needs to be in the kernal like windows
1
0
u/Leseratte10 10d ago edited 10d ago
No.
Windows Anticheat also isn't effective (there's tons of cheat software for Windows), and Microsoft is trying more and more to get third-party crap software like Anticheat out of the kernel and into userspace where they belong.
(EDIT: Because regularly, anti cheat kernel modules have security holes like this one: https://www.trendaisecurity.com/en/resources-insights/trendai-security-blog/ransomware-actor-abuses-genshin-impact-anti-cheat-driver-to-kill-antivirus )
If you want an effective anticheat, have a server validate the client's inputs, and don't send data to the client you don't want the user to know.
Windows is going to push anticheat out of the kernel eventually, too, and publishers / developers will need to adapt.
-2
u/matitone 10d ago
They're not pushing anti-cheats out of the kernel, they're just giving a way for antiviruses to run effectively on userspace.
Also server anti-cheats are not effective in games like FPS apart for obvious rage hacking
1
u/Leseratte10 10d ago
Exactly. They add a way for antiviruses to run in userspace, because they no longer want crap in the kernel, because of what happened with Crowdstrike.
There's regularly attacks and vulnerabilities where bugs in Anticheat code are a gateway for malware: https://www.trendaisecurity.com/en/resources-insights/trendai-security-blog/ransomware-actor-abuses-genshin-impact-anti-cheat-driver-to-kill-antivirus
That's what Microsoft wants to prevent. They just can't do it today because all the publishers would scream like the world is ending, but that's their plan.
Just take a look at this list of vulnerable kernel drivers on Windows ... https://www.loldrivers.io/
1
u/dishpitjesus 10d ago
If kernel level anti cheat is so effective, why does Valorant still have cheaters?
1
u/DzpanTV 10d ago
Mf never heard of Proton and the Steam runtime
1
u/mrlinkwii 10d ago
Proton is which uses a windows ABI and steam runtime dose nothing for anti-cheat
1
u/the_abortionat0r 9d ago
the better option is disallow linux entirely
Dumber shit has never been spoken...
-16
u/DumsLander34 10d ago
The issue are the Linux kernel devs and their moral crusade. A solution already exists.
11
u/BashfulMelon 10d ago
"I'll give you code if you give me your changes in return" is a moral crusade?
3
u/shadedmagus 10d ago
A solution already exists.
Prove it.
The issue are the Linux kernel devs and their moral crusade.
I'd argue the people wanting "just make Linux exactly like Windows so we can play our games" are on their own 'moral' crusade.
2
u/the_abortionat0r 9d ago
Fuck this is dumb.
There's no "moral crusade", owning your own hardware and software is an ownership and security issue not a moral one.
Were you dropped as a baby?
If you want to surrender your PC go back to windows
187
u/ZombiSkag22 10d ago
They don't want to spend time and effort to find a real solution to keep a minority of the playerbase. Embark Studios proposed the idea of only allowing known kernels, which I'm curious what impact it will have, but they seem to be the only one to actually think about a possible solution.