Hacker News new | past | comments | ask | show | jobs | submit

Steam games will need to disclose kernel-level anti-cheat on store pages

https://www.gamingonlinux.com/2024/10/steam-games-will-now-need-to-fully-disclose-kernel-level-anti-cheat-on-store-pages/
I've just reinstalled GTA V last week and I was very surprised to find out that I now have to install a rootkit to run it.

They had the balls to add a mandatory kernel extension into a game that I've bought 10 years ago and that I wish to play in single player only.

I find it utterly ridiculous. As usual, piracy would have been the superior experience.

loading story #42003644
loading story #42005774
loading story #42006011
loading story #42004154
loading story #42006298
One of the reasons I run a PS5 instead.

AFAIK, there's fewer cheaters on PlayStation current-gen than on PC, and I don't have to worry about anti-cheat kludges corrupting my "rig".

You mean all the anti-cheat options are pre-built into your rig?
Yes, so you don’t have to run a rootkit on a machine that you might file your taxes on.
I would bet 90% of people here have at least another laptop if they have a gaming PC, if you’re concerned about being compromised by rootkits, just do your taxes on that.
So you own one machine and Rockstar owns the other?
Well that was supposed to be the deal with the PlayStation, too.
"Your computer calls me root too"
There's nothing "just" about compromising one of my machines so badly that I don't trust it to file my taxes on any more.
Yes. It's kind of an odd situation, because it's one where it's a benefit to me if other people are running anti-cheat. A limited sort of remote attestation that the people you're playing with aren't running certain kinds of software that peeks into or alters the memory image of the game or its graphics drivers.
Which is fine on a device that you only use for gaming, or am I missing something?
loading story #42003997
loading story #42006623
loading story #42004183
loading story #42005541
loading story #42005017
loading story #42006568
loading story #42004417
loading story #42001868
loading story #42003198
loading story #42004759
loading story #42008900
loading story #42002089
loading story #42002621
loading story #42004802
loading story #42000197
loading story #42006576
Good, the sooner devs realize they need to do server side properly, the better
It's impossible to prevent cheating from the server-side only. Something like an aimbot can operate purely on information you need to have as a client (to render the other players on the screen), and still be a huge advantage because it can respond faster than any human can.
I think server side statistical analysis can go a long way to detect stuff like that. Obviously its always a cat and mouse game between devs and cheaters, and there are always workarounds, but theres a lot more the devs could be doing without relying on invasive client side detection.
You can tune the aimbot to be as good as the server allows, maybe with a bit of variation to throw it off.

And realistically, some real non-cheating players will by chance just have similar statistics to bots, especially since the bots will start doing their best to mimic real players.

Also many players don't need to cheat all the time; just in that critical moment when it really matters. Didn't Magnus Carlsen say he only needs a single move from a chess computer in the right moment to be virtually guaranteed win? Something like that probably applies to a many people and fields. This is even harder to detect with just statistics.

Also also reminds me of the "you can't respond in less than 100ms, and if start the sprint faster than that after the starting pistol then you're disqualified"-type stuff they have in the Olympics – some people can consistently respond faster and there's a bunch of false positives. Not great.

Is the main problem with cheaters that it's unfair, or that it feels unfair/ruins the experience?

Because if you force all the cheaters to hide well enough to look like "normal" players, no one will know, and the game feel will not be negatively impacted. Outside of the tippy top of competition where money becomes involved, it's kind of irrelevant if the game is technically fair, as long as it feels fair to everyone.

> Also many players don't need to cheat all the time; just in that critical moment when it really matters. Didn't Magnus Carlsen say he only needs a single move from a chess computer in the right moment to be virtually guaranteed win? Something like that probably applies to a many people and fields. This is even harder to detect with just statistics.

The difference is that IRL chess and a typical FPS game have very different availability of datasets. IRL chess has both fewer moves per game, and fewer games played in short succession than typical FPS games. Also, with FPS games there is a single metric to evaluate -- the shot landed or missed -- compared with chess where moves are ranked on a scale.

So I'd argue that it would be much easier to do a statistical model to predict a cheating aimbot than it would a cheating IRL chess player. I don't believe Magnus's proposition holds for prolific online chess players when they do dozens or more blitz/bullet games in a single day.

  Didn't Magnus Carlsen say he only needs a single move from a chess computer in the right moment to be virtually guaranteed win
If we are thinking of the same quote, iirc he said all he needs is a prompt from computer "there is a winning move here"
Yeah, maybe – don't recall the precise quote off-hand. But the gist of it was "I need very little help from a chess computer to have a huge advantage".
> Didn't Magnus Carlsen say he only needs a single move from a chess computer in the right moment to be virtually guaranteed win?

That's because he's an elite chess player. Him cheating once per game could make the difference between being number 1 or number 10 but either way he's up there.

But for you or me, cheating once per game wouldn't make a difference. We'd still be ranked as nobody plebs. To get ranked high enough for people to know our names we would have to cheat dozens of times a game, and experienced players would easily peg us as cheaters.

Try cheating on chess.com, if you cheat enough to make a meaningful difference their servers will automatically nail you with statistics.

I've always wondered about this too. It should be pretty easy to recognize statistical outliers. I'm sure cheaters would start to adapt but that adaptation might start to look more in-line with normal skill levels so at least the game wouldn't be utterly ruined
The problem is that most cheaters don't just go full aimbot and track people through walls. That is a surefire way to make sure your account gets reported, reviewed, and banned regardless of what anti-cheat is in place.

Serial cheaters cheat just enough to give themselves an edge without making it obvious to the people watching them. By just looking at their stats, it can become very difficult (though not impossible) to differentiate a cheater from a pro player. This difficulty increases the odds of getting a false positive, necessitating a higher detection threshhold to avoid banning innocent players.

Valve has adapted this kind of thing in Counter Strike for almost a decade.

They try to make own matchmaking for possible statistical outliers so cheaters end up playing against each other. Of course, real good players can still get there and there are (at least used to) real humans on reviewing on those games to see if someone is actually a cheater. It is not a simple task, since you can cheat to be just slightly better than others and that is enough to be good.

This post is so interesting because it highlights the people that don't know anything about the requirements or state of cheats/anticheat. What you're describing is 10 years out of date. Every modern cheat has a toggle, and (almost) every modern cheater masks augmented behavior with misses/native behavior.
This thread is full of armchair developers who see a problem and immediately think, "Oh, it's easy, just do this simple thing I just thought of," as is there haven't been billions of dollars and decades of research spent on this problem.
According to the latest study [1] estimating how much money cheat developers make annually it is an upper limit of ~ $75M. I would say that the very liberal estimation of anti cheating efforts will cost maybe $100M annually. That does not include only research efforts but actual cost of tackle them (extra compute, reviewers...etc). This is unrealistic but even through to reach the point of billions (2-3 billions) you would say that Gaming companies were spending on average $100M since the beginning of personal computers era (on research only). This is not something that is hard to believe even with the most liberal interpretation.

So I think it is fair to say the there haven't been billions of dollars of research spent on this problem.

[1] https://www.dexerto.com/gaming/anti-cheat-study-reveals-chea...

loading story #42004341
Good players are statistical outliers. False positives are hard to avoid with this kind of approach.
I think the problem is that that kind of work requires a good deal of developer resources for a long time. What company wants to pay upkeep on a shipped product? You could save hundreds of thousands of dollars a year by shipping a rootkit to players and not worrying about server security.
I suppose Valve, who trained a neural network to detect/ban cheaters exhibiting unnatural behavior.
It hasn't paid off very much, CS2 still has a rampant cheating problem. VAC has been a joke for years at this point.
loading story #42001236
loading story #42001191
Any company that makes big money on long-living multiplayer games?
It would not only take a lot of developer resources, but also computing power.
BasicallyHomeless did a recent YouTube video on this.
Client <-> Server architecture can still take you a long way. Culling what you send to the client and relying less on client-side "hiding" of state, server authoritative actions with client-side prediction, etc.

At the end of the day someone could be using hardware "cheats" but you can get down to a pretty good spot to stop or disincentivize cheaters without running rootkits on their devices.

You don't need a "hardware cheat"; just a program that reads the memory representation of stuff. This is nothing new and already how many cheating tools work, and is exactly what all these anti-cheating things are designed to prevent.
loading story #42001253
Latency significantly reduces the effectiveness of culling via the server. There will always be a place for client side anti-cheat if games are running on players' computers.
loading story #42001227
On the other hand an aimbot can operate purely on informations you /need/ to send in and out to the physical machine (input peripherals and the screen), so there's that...
There is a startup attempting to use ML to find cheaters: https://www.youtube.com/watch?v=LkmIItTrQP4 (this video might be overly optimistic) - https://anybrain.gg

They even claim to be able to fingerprint players according their playstyle, thwarting all methods of ban evasion. Skepticism should be abundant here, but this one of the oldest tricks in ML: categorization/clustering. I'm cautiously hopeful.

This would be server-side by nature.

It makes it way easier to detect it. If a player can pre move their aim to be at the point near where the aimbot would take it by using a wallhack they can hide the action much more clearly. If they're constantly doing 180 no scopes you've got a pretty good indication something is wrong.

Also if your guns aren't _perfectly_ accurate then the aimbot can't actually predict much of anything.

Shouldn't that be detectable?
It should be - if a server firehose streams all players' network data to an analysis thing, it should be able to detect patterns of impossible accuracy and response time, even though there is some margin for error due to e.g. lag and packet loss (iirc intentional lag / packet loss are some strategies cheaters use to obfuscate things like aimbots, e.g. generating movements that shoot someone in the head but holding them back for a second or so so that in theory a competent player could have done the required motions within a second instead of 1/100th thereof)
Without kernel level anti cheat you can detect (some) other usermode cheats, but not kernel level cheats. With kernel level anticheat, you can detect the vast majority of other kernel level cheats. Vanguard is effective enough that most successful cheaters are using external devices and DMA to bypass the kernel altogether (or they just use Macs because Apple doesn't allow Vanguard). And despite Riot's insistence to the contrary, they have not "detected" DMA cheats.
loading story #42002146
Nope.

Evolutionary pressures on cheaters drives them to get better.

Eventually someone finds a stable chink in the server armor and it is exploited en masse.

The goal is to make it inconvenient to cheat on average.

There’s probably some ratio of games with cheaters to games without cheaters that players can tolerate that governs this.

if you have a large enough player base to sample, you can determine who is cheating with math. EA Fairplay is pretty good.. Steam's VAC is good, and not some kernel level nonsense..
VAC is so not-good that there are not one but two popular third-party matchmaking services for Valves games whose main selling point is much stronger (read: more invasive) anti-cheat than VAC, and one of them even charges a subscription to play, which highly skilled players gladly pay to get away from the cheaters in high-rank VAC servers.

https://play.esea.net / https://www.faceit.com

VAC is absolutely terrible, are you kidding? You have to rage to get VAC banned.
loading story #42002035
To some degree, yes. But there are actually many cheaters that intentionally don't play perfectly to avoid detection. That way they appear higher skilled but still within human range.
I think most of these companies do do the server side properly. There are plenty of hacks that just make a client play ungodly well. Like macros, aimbots, cooldown tracking, auto-hex
loading story #42000172
It could eliminate a lot of these issues theoretically
What? The current PC gaming model where things run on a machine controlled by the user is fundamentally against solving the issue of cheats. You can't prevent everything server-side.
Not our problem.

The problem of cheating in games does not weigh more than the users ultimate ownership of and control over their own property.

No one has a right to a business model.

They can do plenty enough server-side. It's not a blocking problem at all, it's just easier to take over all control of the users pc for your own convenience.

Everything, including all valid goals, is easier if you could just have the power to control whatever you want instead of having to cooperate and respect others and respect boundaries. It's no more valid than saying "Everything would be so much better if everyone would just do what I say.". Using that argument is invalid even if supposedly applied in service to some otherwise valid goal.

loading story #42001489
loading story #42001469
loading story #42003818
loading story #42001272
loading story #42001027
loading story #42001596
It's not about prevention, but detection.
I'm not sure what point you're trying to make but in this context there is no difference. If you know someone is cheating, you prevent further cheating by banning them.

Now I'll ask: how do you detect someone wall hacking automatically? No human review and no false flags. Go!

> If you know someone is cheating, you prevent further cheating by banning them.

If you think it's statistically likely that someone might be cheating, but you're not sure, you can matchmake them with other people who might be cheating.

That seems flawed as you would punish people who are playing well. Statistics are great, but you'd inevitably match legitimate players with misfits, ruining their experience.
A prevention model would be like the xbox where technical measures are used to prevent user code. A detection model is server side and detects anomalies for bans.
> how do you detect someone wall hacking automatically?

You don't tell the client the location of anything they can't see.

This doesn't work well in real time games. The client needs to know another player is on the other side of that wall so it can

* Play sounds from their actions * Actually be able to render them when either player comes around the corner without them obviously materializing out of thin air.

Far easier said than done
and it is a cat and mouse game between cheat and game devs
loading story #42001403
loading story #42004411
loading story #42008407
loading story #42003556
loading story #42001885
loading story #42000912
loading story #42004319
loading story #42003417
loading story #42000007
loading story #42001449
loading story #42001167
loading story #42008716
loading story #41999970
loading story #42001645
loading story #42000117
Does anyone know whether disclosure of Denuvo and similarly controversial "add-ons" does negatively affect sales? Maybe I am cynical, but I have come to the conclusion that whether it is always online DRM, rootkit-level anti-cheat or the need to have an account for offline play, community anger is often only maintained when a game had other things going against it from the get-go. Not against disclosing this of course, that is a great move for those who actually are willing to walk-the-walk, just asking whether we should perhaps temper our expectations on the impact of such a measure.
The most recent study I saw showed that Denuvo significantly helps revenue capture within the first few months of a game's release

https://www.sciencedirect.com/science/article/abs/pii/S18759...

I can't figure out what that article is trying to prove. "When DRM remains uncracked, we can't detect any losses due to piracy." well duh. Does it otherwise effect sales? Do any small games use it, or just large studios?
FYI - Denuvo paid for that study.
[flagged]
loading story #42001309
loading story #42002037
loading story #42001601
loading story #42000083
loading story #42006004
loading story #42012075
loading story #42000885
loading story #42000176
loading story #42008265
loading story #42008542
loading story #42002128
loading story #42001530
loading story #42003346
loading story #42002869
loading story #42000589
loading story #42008135
loading story #42001085
After the crowdstrike disaster 3rd party kernel drivers need to be shunned for non critical applications.

Games publishers have been bad actors in this space for a long time now. The genshin impact anticheat was used in a malware campaign. Rockstar was very misleading trying to imply their kernel driver not being compatible with the steam deck was valves fault.

Lets call them what they really are, rootkits.
That's exactly what I tell my friends.

I can't play certain games, because they don't run on Linux and even if they did, I am not gonna install a rootkit to run them.

Getting a Steam Deck has done wonders for my piece of mind. I don't need to worry if whatever games I'm installing are malicious, because the machine is airgapped from anything critical.
Same, but I am only using it for couch gaming
piece of mind? or peace of mind?

/nitpick ;-)

loading story #42002080
Ultimately, this is why we have consoles. We can have rootkits, or we can have cheating. Nobody has solved cheat prevention without rootkits. If you can, you’d make millions, if not billions. It’s not like the game creators want to have software on your system that has the potential to brick your system.
The real solution is games designed for playing with friends and treat all non-friend players as potentially malicious.

Early first-person shooter games had this figured out (small servers with 20-30 regular players, the server admin could choose to ban you), RTS games have this figured out, many MMOs have this figured out (interact with non-friends sometimes, but they have to 'join your party', etc.)

Playing with random strangers on the internet who may want to grief/destroy your game, be incredibly toxic, or cheat against you in general.. that's the cost of playing with random people in a completely public forum.

loading story #42003056
> Ultimately, this is why we have consoles.

Nah. Consoles were a decade late to the online gaming party, and online gaming on consoles (counting Xbox Live as the first concerted attempt) has only been around half as long as consoles as a product segment have existed.

Running games in a VM appliance or an immutable container type of environment could be neat. Or some kind of hardware device. Like a console on an expansion card that could enable a secure environment while still letting you use your hardware.
This is a false dichotomy. Genshin is single player. Some people play multiplayer only with friends. The only legit use for anti-cheat is competitive multiplayer with strangers.
By this logic wouldn't chess and go need to be played after cavity searches? Cheating is enabled by tech but based on what people decide to do.
loading story #42003827
loading story #42002855
Hmm, here’s a thought I’ve never had (but might be obvious to others).

Could I run windows as a VM guest under Linux and play Fortnite in that (with good GPU performance)? I don’t mind their rootkit running on some dedicated VM - I’ll just consider it my Fortnite unikernel.

(I’m also ok with the host OS being Windows or MacOS).

The anti-cheat will be very unhappy when it performs a bunch of arcane heuristics and determines it’s running in a VM.
Why would that matter? Pretty sure running in a VM doesn't facilitate cheating.
Running a VM gives the parent the ability to read/write arbitrary memory without [even rootkit] anticheat being able to detect, which can facilitate cheating, and therefore can earn you bans. The whole point of the rootkit is that the game can confirm that you don’t have any way to read/write arbitrary memory.
Isn't Windows running under a hyper-v hypervisor these days anyway?

In practice, I'd settle for a peer Windows OS, like the WSL2 kernel, with the rootkit seperate from my main work one. Can I run two copies of Windows simultaneously as peers?

{"deleted":true,"id":42002843,"parent":42002772,"time":1730341665,"type":"comment"}
Yes. https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF

You basically let your guest OS use your GPU instead of the host.

And yet you install driver on Linux without knowing it, I mean Linux has 0 security for drivers.
When was the last time you had to install a Linux driver from out of tree?
Most people do install Nvidia’s out‐of‐tree graphics driver. It is definitely a risk.
If you've already put a piece of hardware into your computer made by nvidia, installing a kernel driver also made by nvidia does not increase your risk at all.

Installing some random anti-cheat kernel driver is not the same thing, at all.

But you are not installing a random anti-cheat kernel driver, you're installing anti-cheat kernel driver provided by a game you've already put on your computer. It's very much the same thing.
User space is not the same as kernel space.

User space applications can't access hardware or physical memory. They can't bypass permissions enforced by the OS. None of that applies to hardware or kernel drivers.

loading story #42002823
loading story #42002046
> Most people do install Nvidia’s out‐of‐tree graphics driver

Most people that use Nvidia. I specifically don't buy Nvidia graphics cards or laptops that use them in my Linux computers because they're not in-tree.

I am not using Nvidia since 2011. Last nvidia device was bought in 2007.

Back then I migrated to Archlinux and in all these years I only had problems with nvidia. Since then they are dead to me :)

A few things to consider here:

- This is an abnormal case. Most hardware will work with in-tree drivers. Indeed, few vendors provide out-of-tree drivers for Linux.

- Nvidia is an established and reputable source. We aren't talking about some small hardware developer who doesn't have the resources to create secure drivers.

- Most Nvidia cards have in-tree drivers. There is a loss in performance, but the option usually exists.

Those who do, choose to do so and generally take responsibility for their actions. It's not the same as tainting a kernel and just winging it.
It's a risk, but a very minor additional one - if you trust their hardware with direct access to your PCIe bus, you have already given them the metaphorical keys to the vault.
Approximately no one with a Steam Deck installs Nvidia's out of tree graphics driver (because the Steam Deck is built on AMD).
You gotta think about surface area and risk when comparing apples to oranges here.
This, so much this. Also often spyware.
And in the case of Vanguard, a bootkit.
Can't wait to find out what China hid in Riot's Vanguard rootkit for all their games. It's 100% a conspiracy theory, but nobody can convince me it's perfectly clean, or if it is, that there isn't an easy way to add some power to it quietly.
loading story #42000292
loading story #42000533
loading story #42002048
loading story #42000400
loading story #42000064
I mean, they're not rootkits. Rootkits are either to gain root access (thus the name) or to hide something from a user. Anticheats don't do either of these.

They expose a kernel API to allow games to verify the state of the system, and they're knowingly installed by the user.

loading story #42000540
loading story #42001031
loading story #42000323
loading story #42001422
loading story #42002250
loading story #42002626
loading story #42003098
Cheats and bots are ruining online games though.
loading story #42000700
loading story #42000612
Perhaps, but it's far better to have cheaters and bots than to have games require a rootkit to play them.
I think that's a matter of opinion.

Personally I find both unacceptable: I won't play a game that requires me to install a rootkit, and I won't play a game where cheaters and bots run rampant, ruining the fun for everyone.

So hopefully there's a solution to this that doesn't require a rootkit.

You definitely don't play games, this is one of the reasons why people stop playing games.
loading story #42001980
Well no, because they ruin the online experience making people not play the game.

(in theory, GTA online has had / still has huge problems with bots and cheats but still earns the publisher hundreds of millions a year)

loading story #42000790
loading story #42002005
loading story #42002347
loading story #42000453
What decides critical or non-critical.

One could argue that a game isn't critical but one could say it's critical to stop hackers.

If you were to take the stance that gaming isn't critical than with that logic you're then claiming multiplayer hacking is a feature of the game.

Doesn't do well for the community or the company. But nor do the rootkits do good for the consumer.

If they worked to any acceptable level of efficacy then they could be tolerated. They're only tolerated by people who think they work as well as they claim to work (security theater) but anyone who knows about the performance impacts and/or are tech-savvy enough to understand it is a rootkit and potential exploit (that would fully pwn your device) hates them.

Some cheats are getting rather sophisticated now. There's an ever-increasing number of Pi-devices where the cheating is done externally.

https://www.youtube.com/watch?v=QpvwjC1_Luo

https://www.youtube.com/watch?v=revk5r5vqxA

loading story #42000580
loading story #42000320
loading story #42001765
loading story #42002652
It hasn't stopped hackers though.
loading story #42001108
loading story #41999948
Critical as in "my gpu is a paperweight without a driver".
loading story #42000024
> one could say it's critical to stop hackers.

It's never critical to stop hackers in a videogame IMO. We need to stop being so damn serious about gaming.

loading story #42001303
loading story #42000472
loading story #42111555
loading story #42027229
loading story #42027230
loading story #42000672