Live data from Hacker News

Anti-cheat kernel driver

na.leagueoflegends.com

71–80 of 115 posts

Re: Anti-cheat kernel driver

#71

Earlier quoted context omitted.

Have you ever played a multiplayer game when someone else is cheating?

Yes. I don't see how that is relevant though. It doesn't matter how bad the cheating gets. Sacrificing our computing freedom and privacy is simply not okay. These principles are far more important than having an online gaming experience that's free of cheaters. It is better to crack and remove the game's invasive modules than to let it run freely on our machines. The truth is online multiplayer gaming is fundamentall…

You don't have to sacrifice your computing freedom and privacy. These anti-cheating modules tend to be explained to you upon game installation, so if you're not comfortable with what they do then just cancel the installation. You're not forced to play the game, but the modules are part of the game's rules and you have to adhere to them if you want to play it.

All the participants of a game agree to a common set of rules required to make the game fun, fair, and enjoyable. And this is true of any game, from online games such as LoL to offline games like poker and soccer. Unfortunately the prevalence of cheating has made the anti-cheating modules another bullet point on that set of rules for online games. There's still plenty of games out there that you can play with people you know personally and can trust, but I certainly cannot find and organize 59 other people to play Battle Royale shooters with me within minutes of wanting to play a match on my schedule, so I'm ok with the trade-offs involved in making that possible. Just please don't force your principled stance on others.

Re: Anti-cheat kernel driver

#72
post #71

Earlier quoted context omitted.

Yes. I don't see how that is relevant though. It doesn't matter how bad the cheating gets. Sacrificing our computing freedom and privacy is simply not okay. These principles are far more important than having an online gaming experience that's free of cheaters. It is better to crack and remove the game's invasive modules than to let it run freely on our machines. The truth is online multiplayer gaming is fundamentall…

You don't have to sacrifice your computing freedom and privacy. These anti-cheating modules tend to be explained to you upon game installation, so if you're not comfortable with what they do then just cancel the installation. You're not forced to play the game, but the modules are part of the game's rules and you have to adhere to them if you want to play it. All the participants of a game agree to a common set of ru…

> Just please don't force your principled stance on others.

I'm not forcing it on anyone. Users are free to install and use the invasive software if they don't care about the implications. They're also free to circumvent the software and play the game without it. It's an individual decision. People shouldn't have to abstain from playing a game they bought because the game company doesn't have total access to their machine.

The point I'm making is game companies shouldn't be shipping invasive software at all regardless of what it's used for. They need to come up with better ways to detect cheaters. Methods that work on the server side. For example, traffic analysis can be used to detect bots:

https://www.iis.sinica.edu.tw/~swc/pub/bot_identification.ht...

Re: Anti-cheat kernel driver

#73
post #2

I understand why anticheat software exists, and why it's getting increasingly intrusive (and therefore risky). I'm not arguing that there's anything wrong with it. That said, the existence of cheaters is one of the big reasons why I don't play such games -- and that games include anticheating software is another one of the big reasons, equal to the existence of cheating in terms of how objectionable I find it. From m…

The fact is online multiplayer games are fundamentally broken. It depends on trust and that's rare because almost no one knows each other. Everyone's a stranger. It's just random people playing together. People find ways to cheat even on trusted platforms like game consoles. People should be playing online with others they personally know and trust.

Fundamentally broken in theory. In practice:

- The percentage of people who want to cheat is not that high.

- Any cheat that spreads widely enough can be obtained by the developers and detected. Cheat developers can and do sell exclusive cheats to smaller groups of people, but fewer people using the cheat also means less disruption.

- With tactics like delayed ban waves, game developers can make cheating risky enough to create an effective deterrence, even if they don't actually catch all cheats.

- If all else fails, game developers can have players manually review other players' replays for cheating, like with Overwatch for CS:GO (not to be confused with Overwatch the game). So obvious cheating will be caught, and if people make their cheating non-obvious, well, that also makes it less likely to annoy other players.

These measures can't stop all cheating, but they don't have to; they just have to deter it enough that it doesn't unduly hamper most players' experiences. In practice, it seems like most games are able to accomplish this.

Re: Anti-cheat kernel driver

#74
post #71

Earlier quoted context omitted.

You don't have to sacrifice your computing freedom and privacy. These anti-cheating modules tend to be explained to you upon game installation, so if you're not comfortable with what they do then just cancel the installation. You're not forced to play the game, but the modules are part of the game's rules and you have to adhere to them if you want to play it. All the participants of a game agree to a common set of ru…

> Just please don't force your principled stance on others. I'm not forcing it on anyone. Users are free to install and use the invasive software if they don't care about the implications. They're also free to circumvent the software and play the game without it. It's an individual decision. People shouldn't have to abstain from playing a game they bought because the game company doesn't have total access to their ma…

> They're also free to circumvent the software and play the game without it [...] People shouldn't have to abstain from playing a game they bought because the game company doesn't have total access to their machine.

Imagine we're playing soccer. We both know the rules. However I don't really like how those rules restrict me from using my hands when I'm not a goalie. You could say that I feel like the rules shouldn't have total access to dictate what I can and can't do with my body. But you want to play soccer and the rules that go with it. Who should abstain from playing the game?

For the sake of this example, please don't suggest saying that the rules should be changed by the players to accommodate both. This isn't a possibility in video games for the players. They can either choose to play with the existing ruleset or not play at all.

If your suggestion is to just avoid players that don't want follow the rules, with the game providing this as an in-game mechanism, please be aware this doesn't really work and is very ripe for abuse. There was a case early on in Overwatch where they had a top player complaining that they were no longer getting into games successfully. An investigation revealed that they were so good at the character they were playing -- a sniper -- that their opponents didn't want to play against him/her and thus used the in-game avoidance feature to do so. This had the net result of the match-making system not finding enough players for him/her to play against anymore.

> They need to come up with better ways to detect cheaters. Methods that work on the server side.

But they are coming up with better ways to detect cheaters, and it's through these kernel drivers. Ultimately, differentiating between a regular player and a cheater is a matter of how many signals you can analyze. The quality of the model you can build for identifying cheaters increases as you add more signals. And with a good enough model you can reach a certainly level that allows you to comfortably start issuing bans. You can see it with the link you provided, where the researchers found a way to add more signals to the model by analyzing the network traffic patterns.

Unfortunately, server-side detection can only get you so far. If a player turns on a wallhack, what signal can the server use to figure out what's going on? If my LoL champion has a defensive ability that I can use to dodge attacks, and my cheat program can detect incoming attacks that'll hurt me and activate it for me, with it programmed to have a minimum time to activation in order to pretend the reaction time is human, what can the server do to detect this?

Ultimately, to answer these questions you have to start asking the client to assist you by providing more signals, but when the client is under user-control it's trivial to lie to it. Hence the need to move some of the anti-cheat code to driver-space.

By the way, server-side detection doesn't really account for the reality of how cheaters actually cheat. Fancy detection methods like dynamic Bayesian networks for statistically analyzing shooting accuracy in FPS's sound great in theory, but aimbots don't really snap to player's heads anymore. Instead they guide the player's aim when toggled on and only do this gently, so that even human reviewers have a tough time seeing what's going on. The intent there is to increase the uncertainty level of the model declaring the player a cheater, as companies fear banning players accidentally and will only issue bans once they are positively sure the player is a cheater.

I'm sure Riot and many other game companies are using as many server-side detection methods as they can, so what exactly do you expect the game companies to do when they run out of available server-side detection methods and still have a cheater problem to deal with that affects their bottom line?

Re: Anti-cheat kernel driver

#75
post #23

Earlier quoted context omitted.

quite a few games prevent you running on a hypervisor (e.g. CSGO) this was one reason I stopped gaming under Windows inside KVM (the main reason being input lag/jitter) eventually all the cheats will move into the hypervisor and every competitive game will ban the use of virtualisation

Probably only because most hypervisors don't bother to hide themselves. There's no reason you couldn't prevent detection. Not to mention some people are creating FPGA boards that use DMA to read memory, something no one is setup to prevent (would require an IOMMU and an OS that bothered to configure it properly; also very difficult to differentiate legit cards from cheating cards and an area game developers have zero…

It's pretty easy to detect an hypervisor. There was an article recently on using CPUID timing to that effect. It takes a few cycles on bare metal, but hundreds when virtualized.

There are ways to defeat the time measurement, but it gets complicated fast, and the counter-measure itself is trivial to detect.

Re: Anti-cheat kernel driver

#76
post #74

Earlier quoted context omitted.

> Just please don't force your principled stance on others. I'm not forcing it on anyone. Users are free to install and use the invasive software if they don't care about the implications. They're also free to circumvent the software and play the game without it. It's an individual decision. People shouldn't have to abstain from playing a game they bought because the game company doesn't have total access to their ma…

> They're also free to circumvent the software and play the game without it [...] People shouldn't have to abstain from playing a game they bought because the game company doesn't have total access to their machine. Imagine we're playing soccer. We both know the rules. However I don't really like how those rules restrict me from using my hands when I'm not a goalie. You could say that I feel like the rules shouldn't…

> You could say that I feel like the rules shouldn't have total access to dictate what I can and can't do with my body.

Depends on what they have total access to. There is no problem with having total access to the playing field and monitoring it. I would object if they came up with a brain implant that could figure out whether players were diving and made it mandatory for every player to wear it in order to play.

> For the sake of this example, please don't suggest saying that the rules should be changed by the players to accommodate both.

I'm not saying that. My problem is purely with the invasive detection software.

> please be aware this doesn't really work and is very ripe for abuse

> This had the net result of the match-making system not finding enough players for him/her to play against anymore.

This is a problem but it's a match making problem. People prefer to play with others of similar skill since being beaten over and over again is too frustrating. The better the player gets, the harder it is to find others of similar ability. I don't know the answer to this problem.

In this case people are still playing with strangers they don't know or trust, players who could be cheating. I think people should play with real life friends who they know and trust in real life. Much smaller groups that can police themselves. I've met competitive players who are part of local groups and who play only with each other so there are people doing this.

> Ultimately, to answer these questions you have to start asking the client to assist you by providing more signals, but when the client is under user-control it's trivial to lie to it. Hence the need to move some of the anti-cheat code to driver-space.

Kernel mode is still under the control of the user. Their detection software got way more invasive but it still can't make any guarantees.

They are trying to secure their game client against an adversary who has full physical and logical access to the entire system. Nothing they do can take control away from the user. They can only make it hard enough to prevent most people from trying.

> so what exactly do you expect the game companies to do when they run out of available server-side detection methods and still have a cheater problem to deal with that affects their bottom line?

I don't have an answer. I just hope they can come up with something that doesn't require me to place so much trust in them.

Re: Anti-cheat kernel driver

#77

Earlier quoted context omitted.

Yes. It betrays a fundamental lack of respect for the user of the computer. They don't think of themselves as guests who have the privilege of being installed on people's computers. They actually think they own our machines. In their opinion, the mere existence of cheats is an affront to their divine authority over our domains. To them, we are merely an adversary who must be attacked and defeated preemptively before…

Have you ever played a multiplayer game when someone else is cheating?

Yes, it's pretty amusing when it happens.

Re: Anti-cheat kernel driver

#78

Earlier quoted context omitted.

Yeah! We don't negotiate with terrorists! I want to install this game, except for the parts I don't like, even though they do what I want them to! It's wrong of them to include stuff I don't like in their thing I want to use! Seriously man, it's a game. If you don't like their methods of anticheat implementation, feel free not to play! It's easy. You won't be missed by those millions of internet strangers. I like tha…

> We don't negotiate with terrorists! It's not like they're open to negotiation either. They only offer the game on their non-negotiable terms. Fighting back without compromising is actually the only way to deal with these one-sided take-it-or-leave-it deals. It worked for obnoxious pop-up ads on the internet, it's likely to work for invasive ads and tracking and there's no reason to believe it wouldn't also work in…

>Anti-cheating software actually used to be optional. I used to have the option to host or search for servers with anti-cheating disabled. During installation, many games offered me the option to install the anti-cheating module. Battlefield 2 comes to mind.

It was the same with Enemy Territory, you could choose not to enable PunkBuster. It worked quite well, since when PunkBuster stopped providing anti-cheat servers for ET, server admins had to be more proactive with banning - and it worked (and works) pretty well. The issue with games like Overwatch is that you don't host your own server, and you therefore can't choose to ban a certain player if you know they're a cheater.

If Blizzard were to implement host-your-own-server, like older MP games, it would fundamentally change their game dynamic, which is balanced matchmaking with other people in the queue. I'm not a fan of the random matchmaking model (it has destroyed the local community spirit of MP servers), but it does solve some problems - I can now be confident that I'll only be playing with people ranked similarly to me, and it provides a region ranking system where you can gain a higher skill rating and play against more experienced people. In ET, you could join your favourite server and spend a long time getting rolled by a really good player, consistently, and your only recourse would be to abandon that server and find another one, and hope there's not a really good player there either. It's not fun to consistently play against people miles ahead of you.

Re: Anti-cheat kernel driver

#79
post #71

Earlier quoted context omitted.

Yes. I don't see how that is relevant though. It doesn't matter how bad the cheating gets. Sacrificing our computing freedom and privacy is simply not okay. These principles are far more important than having an online gaming experience that's free of cheaters. It is better to crack and remove the game's invasive modules than to let it run freely on our machines. The truth is online multiplayer gaming is fundamentall…

You don't have to sacrifice your computing freedom and privacy. These anti-cheating modules tend to be explained to you upon game installation, so if you're not comfortable with what they do then just cancel the installation. You're not forced to play the game, but the modules are part of the game's rules and you have to adhere to them if you want to play it. All the participants of a game agree to a common set of ru…

Have you ever wondered why the user/kernel split in modern operating systems even exist in the first place? And no, it’s not to annoy the heck out of game developers. Kernel programming requires much more care and effort than userspace programming, and if you grant kernel access to any application that asks for it, you're bound to make the whole system unstable, insecure, and underperformant. Operating system developers spend a lot of time designing interfaces that are safe to use, and applications should strictly stick to those. Taking a “move fast and wreak havoc on the whole system” approach with your customer’s devices is not acceptable however justified you think you are.

This is all assuming that the developers of anti-cheating software have any sense of self-restraint and strictly limit themselves to anti-cheating, which is obviously not the case given their track record. The reality is much, much worse and no amount of legal gibberish they stick in front of their users before installation would make it any better.

Re: Anti-cheat kernel driver

#80
Two points:

1. I'm reminded of the exploitability of the rootkits folded into games like MapleStory a few years ago. Anybody with the rootkits installed had kernel-level authority available for the taking. Unfortunately don't remember exact details, but my vague memory suggests this was unfixed for years.

2. Link-chaining a bit I got to https://www.youtube.com/watch?v=rj6ukLPiY10, "The Norwegian CS Cheating Scandal". I didn't watch the video but I did read the top comment, which rightfully highlighted the utter inability for software to detect cheating via DMA (in the noted case over PCI-e, but potentially theoretically doable over ThunderBolt and FireWire too).

Hopefully these rootkits are a bit better at doing one thing and doing it better than the iPhone SecureROM ;)

Most seem to not realize that poking PCI-e isn't that expensive, but thankfully the specialist reverse engineering skills required are still well outside the 14-year-old script kiddie attention span.

Post reply on HN