Live data from Hacker News

/dev/null: Anti-Cheat Kernel Driver (2020)

leagueoflegends.com

111–120 of 142 posts

Re: /dev/null: Anti-Cheat Kernel Driver (2020)

#111
post #102

Earlier quoted context omitted.

> However, popular cheats aren’t malware, so they can’t do that It is a rather popular practice to bundle things like discord token stealers amongst cheat developers to find people acting against them. While more uncommon, it isn't unheard of shipping a whole RAT alongside with the cheat. > It’s a lost battle anyway, DMA cheats keep getting better every day. They will inevitably render clientside anticheat obsolete.…

> If an anti-cheat manages to stop all client-side cheating - it has already won. Requiring a hardware device to be shipped / being unable to start cheating right after a quick online purchase will deter most of the people that are considering purchasing cheats No anticheat, kernel mode or not, has come even close to that. The situation has remained mostly unchanged for at least a decade now. It’s the cheat developer…

> No anticheat, kernel mode or not, has come even close to that. The situation has remained mostly unchanged for at least a decade now.

While the situation has mostly "unchanged" from the perspective of the end-user, the barrier of entry to start making cheats has been raised quite a bit.

I'd say making a commercially viable cheat (assuming you actually care about your customers not getting hit by every ban wave) isn't exactly a trivial matter nowadays.

> The proliferation of DMA cheats will make any time spent fighting software based cheating significantly less valuable.

The future you talk about is not yet here. External device based cheats are a miniscule part of the current cheating market.

Re: /dev/null: Anti-Cheat Kernel Driver (2020)

#112
post #84

This is a pattern I see very often and that I think all of us can see all the time. The developers of software try to control how the users use the software. This is not just a regular customer or user relationship between the user and the developer. This is something else, some kind of controlling behavior that we need to get rid of. You can't force someone to stop doing something as long as they do it on their own…

You have the "right" to run cheats on your machine and Riot has the right to stop you from connecting to their servers and ruining the experience for their customers when you do it. The software is still installed and you can use all of its offline features all you want, which in the case of Riot games is stare at a login screen because they are all live service multiplayer games. Why is your right to disrupt a servi…

I'm not interested in any right to disrupt a service; it's just something that can happen because of other rights: to run arbitrary code on your own computer, and trying to remove that right is not going to work. We need a better solution.

Re: /dev/null: Anti-Cheat Kernel Driver (2020)

#113
post #67

Earlier quoted context omitted.

Creating a system to automatically verify correct videos will take a while to come out, not to mention that it is extremely invasive for the end user and requires that they own all this extra equipment and bandwidth. The cheater does not even really need to generate fake video like I've described. Aimbots can be as subtle as the cheater wants them to be, offering <5% precision adjustments which won't be visible on a…

What do you think is a better way to validate the input is legitimate?

The point is that the cheating problem is unsolvable at scale against sufficiently motivated attackers.

It would be possible to solve if the incentives are not that strong to cheat, but the status game associated with multiplayer games takes care of the "sufficiently motivated part".

It would be possible to solve at a small scale (e.g. at a tournament) by manually vetting hardware and manually reviewing footage.

But preventing cheating at scale against motivated attackers is so expensive as to be uneconomical. The devs will probably try to install whatever malware they can get away with in order to demonstrate to their shareholders that they care about it, but I'm guessing even the devs will be relieved when Microsoft just blocks their kernel-level malware because they know the risks it entails.

Re: /dev/null: Anti-Cheat Kernel Driver (2020)

#114
post #67

Earlier quoted context omitted.

Creating a system to automatically verify correct videos will take a while to come out, not to mention that it is extremely invasive for the end user and requires that they own all this extra equipment and bandwidth. The cheater does not even really need to generate fake video like I've described. Aimbots can be as subtle as the cheater wants them to be, offering <5% precision adjustments which won't be visible on a…

What do you think is a better way to validate the input is legitimate?

[deleted]

Re: /dev/null: Anti-Cheat Kernel Driver (2020)

#115
post #80
post #11

Earlier quoted context omitted.

I could see a webcam pointed at your hand/keyboard to verify input being something legit players would happily opt into.

So many problems with this idea.. Can you imagine your child saying “Mom / Dad I need to buy a webcam to play this game”. Alarm bells will be going off immediately. Financially speaking, every player needs to buy a webcam to play even a free to play game ? Do you need a camera of a specific quality ? What if the light in your room is off and the object detection can’t work out where your hand is ? Do you get kicked f…

I imagine it would start with competitive leagues first and then slowly expand into mainstream if the technology proved itself.

Re: /dev/null: Anti-Cheat Kernel Driver (2020)

#116
post #110

Earlier quoted context omitted.

Check out pcileech. Private hackers are using the FPGA module now. Some anti cheats are proctored these days, they see what you see to eliminate ESP/visual indicators. They’ve only just added mouse/hand aim proctoring (some DMA devices made automatic adjustments to the mouse direction with the help of hacked and custom mice - so you see an enemy left, your hand moves right, the mouse movement is overridden and moves…

> Some anti cheats are proctored these days, they see what you see to eliminate ESP/visual indicators Meh, https://github.com/EngineOwningSoftware/pcileech-webradar

Proctoring means someone watching over your shoulder and surrounding environment. That is, setting up cameras for a side-on view, and behind you - with visibility of your screen(s). Only relevant for tournaments.

Re: /dev/null: Anti-Cheat Kernel Driver (2020)

#117
post #110

Earlier quoted context omitted.

> Some anti cheats are proctored these days, they see what you see to eliminate ESP/visual indicators Meh, https://github.com/EngineOwningSoftware/pcileech-webradar

Proctoring means someone watching over your shoulder and surrounding environment. That is, setting up cameras for a side-on view, and behind you - with visibility of your screen(s). Only relevant for tournaments.

That’s what I would’ve taken it to mean, but I’m rather confused with regards to where you might actually run into that?

Re: /dev/null: Anti-Cheat Kernel Driver (2020)

#118
post #72

What a load of baloney. It's an open secret that client side cheat detection is a losing battle, and yet many games still persist with these unacceptably hacky half measures. The correct approach has always been to perform the cheat detection on the server side and use statistical analysis to detect and ban cheaters. No brittle assumptions about client environment resulting in potential breakages or false bans. No in…

> yet many games still persist with these unacceptably hacky half measures. Unfortunately what you're suggesting is a hacky half measure. From a servers perspective there is no difference between a client with a shitty connection and a client who is pretending they have a shitty connection to cheat. The reality is that servers trust clients for some cases (and verifies that those things are possible) because it provi…

> From a servers perspective there is no difference between a client with a shitty connection and a client who is pretending they have a shitty connection to cheat. The reality is that servers trust clients for some cases (and verifies that those things are possible) because it provides a better experience for a large number of players.

Lag switching is only one kind of cheat that applies mainly to multiplayer FPS games, and as I said, it can be mitigated through statistical analysis. A simple method would be to kick players (but not ban) from a match if they have too many latency spikes. A better method would be to analyze how often a player's latency spikes coincide with their kills, and ban them if there is excessive correlation.

You are right that preventing any and all forms of cheating is impossible, especially where such methods would negatively impact the player experience. But a perfect solution isn't necessary. Issuing bans after the fact is still effective, as long as the cheaters don't make too much progress or otherwise cause too much impact within that time frame.

> Let's be honest, server side anticheat is no less susceptible to this than client side. If you're banning on heuristics there's going to be false bans at some point, and you are making assumptions about a perfect client environment with this approach.

But that tradeoff is entirely under your control. With server side heuristics, you are in a better position to understand how it works and document it so that others on your team understand it as well. You can tweak its parameters and specialize it with assumptions specific to your game mechanics, and minimize false positives to some probability interval. You can identify specific cheating patterns (e.g. perfectly tracking an enemy behind walls long since the enemy is last seen) and tailor your heuristic to detect such cases. You can feed it more sample data to increase its accuracy. You can set up processes to verify ambiguous cases with human moderators in the loop. None of this requires any assumptions about the client environment, it only requires analyzing the player inputs received by the server over the network. Client side heuristics, on the other hand, tend to be based on things that serve as rather poor proxies for cheating. Running the game in a virtual machine? Banned. Running the client in WINE on Linux? Banned. Driver signature enforcement disabled? Flagged. User running AutoHotKey or WinDbg or Ghidra? Flagged. New Windows update that breaks some internal NT kernel ABI that my anti-cheat rootkit was relying on? Uh oh. These detection methods are better than nothing, but heavy reliance on them has made it easy for cheaters to circumvent anti-cheats while still causing issues for legitimate players whose setup might deviate slightly from the norm.

> Except you can analyse the ban rates based on how "aggressive" your cheat is across all your players and adjust the effectiveness to keep it under that threshold. If we're going to make the claim that cheaters can always adapt to client side cheats, we can make the same claim for server side cheats.

While true, this sort of signal carries much less information than what you can gain from reverse engineering client side cheat detection. You can make it more difficult by issuing ban waves at fixed intervals, and slightly varying the thresholds by some small random amount each time. Larger ban wave intervals mean that it takes longer for cheaters to infer the behavior of your server side anti-cheat, at the cost of taking longer to ban cheaters. But again, that tradeoff is under your control.

Re: /dev/null: Anti-Cheat Kernel Driver (2020)

#119

Earlier quoted context omitted.

It becomes the developer's problem when the players are quitting the game because cheaters are ruining it though. And also the player's problem who want to play a game without cheaters. For example, BattlEye started out as 3rd party anti-cheat for Battlefield Vietnam because the players wanted better anti-cheat. Similarly Face-IT and ESEA run their own anti-cheats that are opt-in and not part of the developer's game.

It becomes the developer's problem because they put themselves in a position where their money and future depends on what random people do in a game. Nobody should expect it to go well when you connect random people on the internet and require them to behave. Just look at Twitter and places like that. We need a different structure.

What do you have in mind for a different structure?

Re: /dev/null: Anti-Cheat Kernel Driver (2020)

#120
post #115
post #80

Earlier quoted context omitted.

So many problems with this idea.. Can you imagine your child saying “Mom / Dad I need to buy a webcam to play this game”. Alarm bells will be going off immediately. Financially speaking, every player needs to buy a webcam to play even a free to play game ? Do you need a camera of a specific quality ? What if the light in your room is off and the object detection can’t work out where your hand is ? Do you get kicked f…

I imagine it would start with competitive leagues first and then slowly expand into mainstream if the technology proved itself.

Can’t imagine a significant number of users ever accepting this solution, there’s too much hassle involved.

Users who are not attempting world record attempts or playing tournaments where money or fame is on the line.. in other words.. 99.99% of the user base will have no incentive to bother with webcam hand recording anti-cheat systems.

They will just move onto another less bothersome game that doesn’t require it, and that game will eat the webcam-required always recording game's market share.

Post reply on HN