Valve announced a change for Steam today that will make things a lot clearer for everyone, as developers will now need to clearly list the kernel-level anti-cheat used on Steam store pages.
Now if only they could more clearly communicate when games are playable offline.
Oh it was initially classed as insanely intrusive malware when kernel level AC was introduced about a decade ago, by anyone with a modicum of actual technical knowledge about computers.
Unfortunately, a whole lot of corpo shills ran propaganda explaining how actually its fine, don't worry, its actually the best way to stop cheaters!
Then the vast, vast majority of idiot gamers believed that, or threw their hands up and went oh well its the new norm, trying to fight it is futile and actually if you are against this that means you are some kind of paranoid privacy freak who hates other people having fun.
Do you remember when Sony released cds that when inserted into Windows computer auto ran an installer that installed a rootkit that made it impossible for Windows to see any processes or files that started with a certain sequence of characters instantly turning any malware that named its files or processes similarly powerful rootkit. Oh and it installed a cd driver that made it impossible to copy their music.
Suggested removal was a full reinstall of windows.
I kind of assumed it would be packaged with each game, a waste of space (but how big could it be?) but leaving a game with anti cheat a global dependency seems like a bad idea.
any software intentionally designed to cause disruption to a computer, server, client, or computer network, leak private information, gain unauthorized access to information or systems, deprive access to information, or which unknowingly interferes with the user's computer security and privacy
It does not do any of these things. Like any software, it may have vulnerabilities, and being a kernel module it can be high risk. But that's no different from any kernel module, like your graphics driver.
It unknowingly interferes with my security or privacy, 100%. It has root access. What's it doing in there? Nowadays you're naive to think it's just to prevent game cheating. I guarantee they're collecting all kinds of information.
It's a much higher risk than average because games are often abandoned within one year of release and still run as long as 10-15 years later and connects to the internet and other randos on the internet. See the Call of Duty games that allow you to take over the computer of anyone who connects to your online match. It greatly degrades the security of its users.
Technically lots of things people call "malware" don't actually do any of those things. For instance they may hijack your default search engine, pop up ads, or otherwise monetize your computer at your expense. The category that was invented by ass coverers is "possibly unwanted program" but outside of those who worry about being sued by scumbags people colloquially refer to both what you call malware AND PUPs as "malware the root of which is "bad" after all. Language being descriptive not prescriptive I think this broader definition of malware is fine.
EAC installation process includes "registration" of a game, and the uninstall process "unregisters" the game. If all games using EAC are uninstalled, EAC itself also should be uninstalled.
I suppose they do suffer from the "Known in the state of Cancer to cause California" problem. A bubble level app wants in-app purchases and GPS access.
However, it's only being forced for kernel-level anti-cheat. If it's only client-side or server-side, it's optional, but Valve say "we generally think that any game that makes use of anti-cheat technology would benefit from letting players know".
I will always love Valve for their ability to use corpospeak against corpos.
Your game has anti-cheat?
Wonderful!
I'm sure that always only results in an improved experience for all gamers, lets let them all know!
Edit: I was talking about them labeling vac games as being anti cheat... And wondering if they were going to pull some double standard... I didn't know they label them already and still don't know if they do...
Full agree. I do want some kind of policy for games that introduce anti-cheat both during early access and after release. Bricking a game you paid for should offer some sort of recourse.
I'd really like Valve to take an official policy on post-release changes that break games, but for what it's worth they have not given me any hassle with refunds in these scenarios.
That’s exactly what Valve did. The automated refund system wasn’t available, but you could request a manual review and cite the added anti cheat; Valve was refunding those who did so.
I don't think that's fair. I "own" GTA5 and don't really care for the last... 8 years? what they add. I had the full content of my purchase. Why should I be able to gain money for this?
This will be helpful for discerning if a game can run on the Steam Deck. There's not many games that don't have verification (Either by Valve or ProtonDB) but for newer games with anticheat it will serve as a good rule of thumb i imagine
Lots of games with anti cheat auto work under wine/proton. The most on top of my head example is Elden ring. Runs fine on my desktop with arch, as well as my steam deck.
The steam deck is also amazing, such a nice piece of hardware. I've been gaming on Linux for years and I'm surprised how well it works. Feels like a console.
I bought Sea of Thieves about 5 years ago. Recently, they added kernal-level anticheat (which does precisely fuck-all to actually stop cheating). While that is annoying, I'm not particularly worried because the studio that makes that game is owned by Microsoft, and like all Microsoft products, it was banished to my windows partition with the rest of the spyware.
Only if those other partitions are not encrypted. Sure, it could still wipe them - but that's something that backups are good for, and something you would certainly notice immediately :)
To put it very simply, the 'kernel' has significant control over your OS as it essentially runs above everything else in terms of system privileges.
It can (but not always) run at startup, so this means if you install a game with kernel-level anticheat, the moment your system turns on, the game's publisher can have software running on your system that can restrict the installation of a particular driver, stop certain software from running, or, even insidiously spy on your system's activity if they wished to. (and reverse-engineering the code to figure out if they are spying on you is a felony because of DRM-related laws)
It basically means trusting every single game publisher with kernel-level anticheat in their games to have a full view into your system, and the ability to effectively control it, without any legal recourse or transparency, all to try (and usually fail) to stop cheating in games.
And it's worth noting that trusting the game developer isn't really enough. Far too many of them have been hacked, so who's to say it's always your favorite game developer behind the wheel?
More importantly, if traditional anticheat has a bug, your game dies. Oh no.
If kernel level anticheat has a bug, your computer blue screens (that's specifically what the blue screen is: a bug in the kernel, not just an ordinary bug that the system can recover from). Much worse. Sure hope that bug only crashes your computer when the game is running and not just whenever, because remember a kernel-level program can be running the moment your computer boots as above poster said
Not all anti cheats run at startup. Some only run when you play a game. I think vanguard for valorant ran all the time at first and people were pissed. Meanwhile easy anti cheat runs only with a game. So it depends. It all sucks though.
It's not just trust of the game developer. I honestly believe most of them just want to put out profitable games. It's trust that a hacker won't ever learn how to sign their code in a way that causes it to be respected as part of the game's code instructions.
There was some old article about how a black hat found a vulnerability in a signed virtual driver used by Genshin Impact. So, they deployed their whole infection package together with that plain driver to computers that had never been used for video games at all; and because Microsoft chose to trust that driver, it worked.
I wish I could find an article on it, since a paraphrased summary isn't a great source. This is coming from memory.
Making it super simple, it runs with full access on your machine, always. It can fuck anything up, and see everything. It can get your browser history, banking details or private messages you enter, activate your webcam or mic without you knowing, or brick your computer even.
And you can't even check what it's really doing on your computer because it's a crime under US law.
Finally, it can get hacked and other people than the creator can do all these to your computer as well,as it already happened once.
If I was trying to prevent cheating, I'd hash the relevant game files, encrypt the values, and hard-code them into the executable. Then when the game is launched, calculated the hash of the existing files and compare to the saved values.
What is gained by running anti-cheat in kernel mode? I only play single-player games, so I assume I'm missing something.
What you proposed can very easily be bypassed without even needing kernel access by just editing the executable code that checks hashes to always return true
It's not like there are so many other ways to cheat, actually used in many games with anticheats.
We should all stop pretending it's necessary to put malware into your computer just so some company can claim they have no cheaters, which is never even true.
Which means that you still have to end up relying on reviewing a player's performance and actions as recorded by the game servers statistically via complex statistical algorithms or machine learning to detect impossibly abnormal activity.
... Which is what VAC has been doing, without kernel level, for over a decade.
All that is gained from pushing AC to the kernel level is you ruin the privacy and system stability of everyone using it.
You don't actually stop cheating.
It is not possible to have a 100% full proof anti cheat system.
There will always be new, cleverer exploitation methods, just as there are with literally all other kinds of computer software, which all have new exploits that are detected and triaged basically every day.
But you do have a choice between using an anti cheat method that is insanely invasive and potentially dangerous to all your users, and one that is not.
Modern cheats for multiplayer games don't modify local files (or attribute values in memory), since the server validates everything anyway. They're about giving you information that's available but not shown in the game (like see-through walls, or exact skill ranges), or manipulate input (dodge enemy damage, easy combos). Those cheat can run in kernel mode (or at least evade detection from user mode), so the anti-cheat needs kernel mode to be more effective.
The server doesn't validate shit, because that takes up CPU cycles on THEIR hardware, which costs them money. A huge part of kernel level anticheat is forcing YOU to pay the cost for anticheat, so they can squeeze a few more pennies out of it. And if your computer gets owned because they installed insecure, buggy malware on your system...? Well, they'll just deny. After all, it's kernel-level, how are YOU going to prove anything?
If server validation was still a common practice (as it should be) then cheats wouldn't come in the form of speed hacks, teleportation hacks, or invincibility. The traditional thing in CS that was hard to prevent is aimhacks and wallhacks. I respect that those are hard to prevent, but they can be much less impactful in modern hero shooters.
They can prevent you from running cheats that other anti-cheats can't detect. For instance, they could modify the value in memory so that your calculated hash always succeeds even when it's modified. This doesn't stop cheating though; it just means cheaters have to use cheat hardware that exists at a layer that even kernel anti-cheat can't detect.
And then a game gets updated so the hashes don't match and uh oh, everything is fucked. Oh, but we can change the hashes of the files in the executable! Yeah, so can they. People modding shit into the executable is basically a given. Let alone the fact that you'd need to sit through a steam "validation of files" length of time every time you'd need to launch a game (because validation works exactly as you have described).
What is gained is that it has access to more information. Some cheats use an entirely different program / process that reads memory and outputs info that is available to the game but hidden from the player. Like a client needs to know where a person on the other team is to be able to draw their model. So you read that, you put a little box over where they are, and bang you have wallhacks.
I do everything important like banking etc on a separate device that isn't my gaming PC. This has been quite liberating since I worry less about invasive anti-cheat, drm etc. I realize not everyone wants to do this but it's been a nice compromise.
Probably a pessimistic take, but I don't expect this to have any discernable impact on sales, or any other effects that would discourage publishers from these practices. The average user doesn't care about or understand how these things work; they'll see an anti-cheat warning on the store page and think "Okay, tell the colonel I'll be on my best behavior then" and continue to buy the game.
Eli5: your PC has different access levels a program can run at. This prevents a malicious or badly coded program from completely fucking your computer. Kernel level anti cheat runs at the lowest level access that exists under windows. It can do basically whatever it wants to your PC, and if a backdoor is coded in (happens way more than you'd think), it gives malware basically total access to your PC.
Luckily Valve seems to believe in freedom of decision for their users so they won't do this. There are kernel level cheats so there are kernel level anticheats. Obviously anticheats are mostly lame in what they do so it would probably be better for them to not be kernel level. Still there are "pure malware" anticheats and Valve thinks it's up to the user to decide if they want one, their job is to inform the user. And that's the best approach here in my opinion.
They will be gone with time, but not because anything that Valve does. Microsoft is locking down the kernel after the CrowdStrike debacle. In a few years it will be impossible to run any custom kernel code.
It does prevent Linux compatibility, but even if it didn't, it's a computer security problem, for those who care. You're essentially allowing different game companies to install a rootkit on your computer so you can play a video game.
Mostly, and even some Windows users don't want to install software that has such a great amount of permission over the entire system just for a game's anti-cheat.
It's nice that users can now know beforehand if a game uses such software. Avoids refunds.
No its common for anti-cheat on Windows to have full root permission to your entire system Windows users are just on average less intelligent, less concerned about privacy, and, more ignorant about technology. This doesn't mean using Windows makes you stupid its just the OS of choice for the stupid and ignorant.
I imagine the alternative way to combat kernel-level cheats would be asking player for all his game state data, validating it on a server?
Wouldn't work on peer-to-peer and you'd have to do a bunch of unnecessary compute(recalculating every tick if player-generated data is possible according to game rules) but its the only way I can think of.
Don't tell the client what's going on outside its vision, I suppose? Add a small buffer to compensate for latency, so wall hack would be more of a "corner hack".