| ▲ | xg15 5 days ago |
| This article gave me more appreciation for the stance of the Linux community. So to sum up. Valorant's anti-cheat, which the author sees something like an ideal solution: - starts up and loads its kernel driver on boot. - generates a persistent unique ID based on hardware serial numbers and associates this with my game account. - stays active the entire time the system is up, whether I play the game or not. But don't worry, it only does some unspecified logging. - is somehow not a spyware or data protection risk at all... |
|
| ▲ | mitkebes 5 days ago | parent | next [-] |
| I also always hear a lot of people complain about cheaters in Valorant, so all of that compromised personal security doesn't actually stop cheaters. Honestly I feel like you should only use kernel anticheat on a dedicated machine that's kept 100% separate from any of your personal data. That's a lot to ask of people, but you really shouldn't have anything you don't consider public data on the same hardware. |
| |
| ▲ | pxc 5 days ago | parent | next [-] | | > you should only use kernel anticheat on a dedicated machine that's kept 100% separate from any of your personal data. Correct. Unfortunately, what you've just described is a gaming console rather than a PC. This problem fundamentally undermines the appeal of PC gaming in a significant way, imo. | | |
| ▲ | thewebguyd 5 days ago | parent | next [-] | | > This problem fundamentally undermines the appeal of PC gaming in a significant way, imo. Yes, game publishers are trying to turn PCs into a gaming console, which IMO will always be a futile effort, and is quite frankly annoying. I don't game on PC to have a locked down console-like experience. Just embrace the PC for what it is and stop trying to turn it into a trusted execution platform with spyware and rootkits. Look at BF6 - for all the secure boot and TPM required anti-cheat they stuffed it with, there were cheaters day 1, so why abuse your users when it's clearly ineffective anyway. | | |
| ▲ | ryandrake 4 days ago | parent | next [-] | | That's what gets me! If these rootkit anti-cheat systems actually stopped cheating then maybe, just maybe, I'd accept them as a necessary evil. But every game that has these things... still has cheaters! So as a user, you're consenting to ripping a security hole through your system, and in return you are still playing games with cheaters. The game companies keep saying these things are necessary, yet they don't fully do the very thing they claim to do on the label. | | |
| ▲ | Propelloni 4 days ago | parent [-] | | I can't put a finger on it but that tastes like the copyright/DRM situation in reverse. | | |
| ▲ | balamatom 4 days ago | parent [-] | | Not even in reverse, this is literally DRM. Can't help but ask myself sometimes... why would users want to pay in the first place, for the content of someone who invests more money and leverage that some people see in their entire lives, in delivering user-hostile technical countermeasures that most of the time are ultimately futile? What is the so valuable thing that one is supposed to get out of the work of someone who treats their audience this way, awesomely as their stuff might've been made? That's what doesn't make the most sense to me. But then I remember how most people aren't very intentional about most of their preferences and will accept whatever as long as it's served by an unaccountable industry into everyone's lives at the same time in a predictable manner, and I despair. | | |
| ▲ | tuhriel a day ago | parent | next [-] | | Funnily enough, there is also the exact opposite discurse in the US regarding firearms; where one side says: that firearms need to somehow be restricted and and it needs more checks to buy a gun.
But then the Industry tells the story that in that case only the 'good guys' get restricted, since the 'bad guys' don't really follow the law anyways. Where with Anti-cheat and DRM only the 'good guys' get hit, since the 'bad guys' don't follow "the law" anyways. | |
| ▲ | xg15 3 days ago | parent | prev [-] | | Yeah. Anticheat systems are the "think of the children" of DRM. It's the one scenario where you can sell users the hostile takeover of their own computer as actually beneficial for them - because cheaters in multiplayer are a genuine annoyance - while ignoring anything else. Of course the argument falls flat on multiple levels: It ignores other ways to prevent cheaters, like server-side detection or maybe developing a gameplay that is not based on channeling masses of anonymous strangers through the game world. It ignores that it doesn't actually solve the problem of cheaters. And it ignores that many games use anticheat for reasons that don't have to do with multiplayer at all, e.g. to keep players from bypassing in-game purchases. |
|
|
| |
| ▲ | frollogaston 4 days ago | parent | prev [-] | | How are the cheaters getting around it? | | |
| ▲ | quantummagic 4 days ago | parent [-] | | Some use dedicated custom hardware, or a second PC, like this: https://www.dma-cheats.com/ | | |
| ▲ | yonatan8070 4 days ago | parent [-] | | The amount of effort, time, and money people put into cheating is honestly insane. A 14 year old who installs an autoclicker to mess with friends or randoms online I can get. But there are fully grown adults who dedicate their time and substantial amounts of money (whole second computer) just to win in online video games? What's the motivation/justification for spending hundreds or even thousands of dollars on cheating hardware and software? Are these just super-rich people who have more money than sense? | | |
| ▲ | technothrasher 4 days ago | parent | next [-] | | I haven't paid much attention to any of it, as I don't really like multiplayer games anyway, but I always just assumed many people figure out how to cheat simply as a meta-game. I mean, how can you ask what the motivation to cheat is without asking what the motivation to even play the game in the first place is? Barring professional competition, both playing and cheating are largely meaningless activities outside the simple enjoyment. | |
| ▲ | RugnirViking 4 days ago | parent | prev | next [-] | | A bit of both. Some very clever people, often in Russia or Philippines or Venezuela etc where incomes and legal risks are low make the cheats, and sell them to idiots in the west. | |
| ▲ | quantummagic 4 days ago | parent | prev | next [-] | | > What's the motivation/justification... No doubt there are various reasons, some more understandable than others. There are some fascinating historical cases, like the one explored in "The King of Kong" : https://youtu.be/_4v15X8Px34 Which is well worth a watch, if you're curious. | |
| ▲ | swagmoney1606 4 days ago | parent | prev | next [-] | | You don't neeed DMA hardware btw. Just find a signed driver that's vulnerable to run whatever you want... Also, not hard at all. I guarantee you have a driver you could re-purpose on your windows machine right now. | |
| ▲ | snickerdoodle12 4 days ago | parent | prev [-] | | do you not have any hobbies? cheat development is insanely fun | | |
| ▲ | yonatan8070 4 days ago | parent [-] | | Of course I have hobbies, and they cost me money. I just make sure my hobbies aren't ruining the fun for everyone around me. | | |
| ▲ | snickerdoodle12 4 days ago | parent [-] | | Developing a cheat does not ruin anyone's fun. The same goes for guns, knives, anything that could be used as a weapon. It's all about how you use a tool, and in this case creating the tool is fun. Unless you think that everyone who fires a gun for fun, or creates a knife or even just a baseball bat, is a murderer? | | |
| ▲ | frollogaston 3 days ago | parent [-] | | So people develop cheats only to not use them in public games, and not distribute them to others? | | |
|
|
|
|
|
|
| |
| ▲ | msgodel 4 days ago | parent | prev | next [-] | | Somehow Xonotic manages to be both completely free/open software and not have cheating problems like this. It's never been clear to me how they've done that although client-side stuff like these kernel anti-cheat things were obviously never going to work. | | |
| ▲ | sodality2 4 days ago | parent [-] | | Combination of niche/low user base, community servers encouraging user-based enforcement of norms, and the lack of a unified ranking system. People don't cheat if it doesn't psychologically reward them. (at least en masse) |
| |
| ▲ | pityJuke 5 days ago | parent | prev [-] | | Honestly, if consoles were willing to accept KB+M (and gyro aiming for that matter), I’d be completely proposing that competitive live service titles mostly abandon PC, except for a small “probably infested with cheaters” base. | | |
| |
| ▲ | Scramblejams 5 days ago | parent | prev | next [-] | | > doesn't actually stop cheaters. doesn't actually stop all cheaters. We could have a better discussion around this if we recognize that failing to stop 100% of something isn't a prerequisite to rigorously evaluating the tradeoffs. | | |
| ▲ | trehalose 5 days ago | parent | next [-] | | Doesn't actually stop all cheat developers. If even one person develops and sells a cheat that the kernel-level anticheat doesn't catch, then it stops 0% of cheaters from buying and using the cheat. | | |
| ▲ | Levitating 4 days ago | parent | next [-] | | It's much harder to sell a cheat that requires the user to significantly alter their computers boot process. Anti-cheat just exists to inconvenience cheaters enough so that the cheats lose their value. | |
| ▲ | pharrington 5 days ago | parent | prev | next [-] | | It makes the cheats more valuable on the black market. I'm fairly sure the only people cheating in the major competitive games with anticheat are whales and extremely unethical pro players. | | |
| ▲ | baby_souffle 5 days ago | parent [-] | | If that's the case then why not only have kernel level anti-cheat enforced for the leagues and the tournaments? | | |
| ▲ | charcircuit 4 days ago | parent [-] | | Because then a lot more people would cheat outside of leagues and tournaments. |
|
| |
| ▲ | Mindwipe 4 days ago | parent | prev [-] | | That's not really true if the exploit requires soldering on to RAM pins and executing on a second, independent machine. |
| |
| ▲ | gellybeans 5 days ago | parent | prev [-] | | I think the problem with this line of reasoning is that it's one-sided. Essentially you are saying "Just trust me bro" on behalf of a self-evaluating company. I'd argue the potential for abuse is a perfectly reasonable discussion to have, and doesn't have much bearing on the effectiveness of anticheat, but I understand that's not the point you are trying to make. | | |
| ▲ | Scramblejams 4 days ago | parent [-] | | Sorry, my writing should have been clearer, I put one too many negatives in. :-) I didn't claim we should trust the company. Whether we can trust the anticheat maker is certainly part of the rigorous evaluation of the tradeoffs I mentioned. My point was that saying "it doesn't stop cheaters" is both incorrect and stifling to a more productive conversation, because it implies anticheat has no value and is therefore worth no risk. As for me, if Gabe said "now you can opt your Steam Deck in to a trusted kernel we ship with anticheat and play PUBG," I'd probably do it. But that's because I, for better or worse, tend to trust Gabe. If Tencent were shipping it, I'd probably feel differently. | | |
| ▲ | YokoZar 4 days ago | parent | next [-] | | Compare: "I still get spam, therefore all these anti-spam measures are worthless" It is absolutely the case that there would be more cheating if we turned off the only partially effective systems. We know this because they are regularly stopping and banning people! | |
| ▲ | Mindwipe 4 days ago | parent | prev [-] | | People are going to to be upset when it happens but it is absolutely inevitable at some point Steam ships a Steam Deck with hardware based attestation of the OS being a signed version of SteamOS, feeding back to a Steam API, that can be used as the basis of an anti-cheat solution. |
|
|
| |
| ▲ | pfooti 5 days ago | parent | prev | next [-] | | A dedicated machine with no other general purpose apps that has minimal private data on it sounds like a gaming console. | | |
| ▲ | wakawaka28 5 days ago | parent [-] | | Or a virtual machine... | | |
| ▲ | superb_dev 5 days ago | parent | next [-] | | And with PCIe pass through you can get near bare metal performance. You won’t be able to play Valorant though | |
| ▲ | Gigachad 5 days ago | parent | prev [-] | | Anti cheat won't run in a VM | | |
| ▲ | dylan604 5 days ago | parent | next [-] | | Flip it. Run the games on bare metal with nothing on it but games and a VM. use the VM for your personal system. | | |
| ▲ | Hackbraten 4 days ago | parent [-] | | That achieves nothing. A hypervisor can see and manipulate any VM it runs. By extension, a compromised kernel can do the same. | | |
| |
| ▲ | beeflet 4 days ago | parent | prev | next [-] | | Not with that attitude! | |
| ▲ | wakawaka28 5 days ago | parent | prev [-] | | Why not? | | |
| ▲ | Gigachad 4 days ago | parent | next [-] | | Because anti cheat want's to verify that the highest levels of the system are not being tampered with. When contained within a VM it's impossible to tell if some cheating script on the host OS is reading or tampering with the game memory. Probably the only workable solution is for windows to provide some kind of secure game mode where the game and only the game runs and can have windows attest nothing else is running. But that anti cheat has no access to the data in the real work OS which is currently not running. Ruins multi tasking, but assuming you can switch over fast enough it might not be too bad. | | |
| ▲ | thayne 4 days ago | parent [-] | | How does it know it is in a VM? Couldn't the host system make it look enough like real hardware, possibly with hardware passthroughs that the AC can't tell it is a VM? | | |
| ▲ | Gigachad 4 days ago | parent [-] | | It’s pretty complex. To start with, off the shelf VMs make absolutely no attempt to hide the fact that they are VMs but even if you do, there are tons of tricks you can do to work it out. Things like timing api response times, finding quirks in the emulation, boot chain attestations from the hardware, etc. |
|
| |
| ▲ | kaladin-jasnah 5 days ago | parent | prev | next [-] | | I've read that they specifically look for this by finding RDTSC timestamps, which would include (?) the overhead of the hypercall or something. | |
| ▲ | dandersch 5 days ago | parent | prev [-] | | It can work on a vm, but for Valorant specifically it seems that detecting a vm triggers the anticheat and gets you banned. I believe this is the case for most anticheats except VAC. You can try to evade the detection, but then you just enter the same cat & mouse game as a cheater. Whether allowing/disallowing VMs actually cuts down on cheaters? I don't know. |
|
|
|
| |
| ▲ | sounds 5 days ago | parent | prev | next [-] | | About halfway in the article, there's a brief nod to CS:GO. It uses a tick system and the server controls what is possible, such as physics or awarding kills. Fighting genre games use the same server-based game logic. Cheating is a big draw to Windows for semi-pro gamers and mid streamers. What else is there to do except grind? Windows gives the illusion of "kernel level anti-cheat," which filters out the simplest ones, and fools most people some of the time. | | |
| ▲ | chowells 5 days ago | parent | next [-] | | Fighting games do not use server-mediated simulation, in general. Cheating is actually a huge problem in popular games. And in fact, even running a server-mediated simulation wouldn't help with any of the common cheating in fighting games. For instance, a common cheat in Street Fighter 6 is to trigger a drive impact in response to the startup of a move that is unsafe to a drive impact. That is recognizing the opponent's animation and triggering an input. There's no part of that which cares where the game simulation is being done. In fact, this kind of cheating can only be detected statistically. And the cheats have tools to combat that by adding random triggering chances and delays. It's pretty easy to tune a cheat to be approximately as effective as a high-level player. Kernel-level anticheat isn't a perfect solution, but there are people asking for it. It would make cheating a lot harder, at least. | |
| ▲ | ben-schaaf 4 days ago | parent | prev [-] | | > About halfway in the article, there's a brief nod to CS:GO. It uses a tick system and the server controls what is possible, As does Valorant and virtually every other first person shooter. The cheats aren't people flying around or nocliping, it's wallhacks and aim assists/bots. | | |
| ▲ | JoshTriplett 4 days ago | parent | next [-] | | Wallhacks depend on the server giving the client information the client shouldn't have. | | |
| ▲ | joha4270 4 days ago | parent [-] | | You will find that competitive games already attempt's this, but it's impossible to eliminate entirely. I can move and reveal what's behind a corner a lot faster than a network roundtrip, so either the server needs to give some advance warning or you're going to see enemies pop into existence suddenly. And computing if somebody is almost visible isn't trivial either. Level geometry can have narrow openings such as holes in a wall. Or what if somebody jumps? And that's before getting into non visual information. It's not perfect, but you could still add a significant advantage by drawing the exact location of footsteps. So yeah, (some) games try, but network latency means the client needs some information a wallhack can use, and the alternative: being killed by an enemy that was invisible is at least as frustrating as being killed by a cheater so the visibility estimate has to be generous. | | |
| ▲ | ben-schaaf 4 days ago | parent [-] | | Additionally these games usually have dynamic shadows, and some even fully dynamic lighting. Good luck predicting where those could end up within a network round trip. |
|
| |
| ▲ | sounds 4 days ago | parent | prev [-] | | Admittedly, Valorant still has a cheating problem. But cheating is already less successful due to server side sim. Next gen games will have improved cheat detection, eventually leading to cheating drying up. |
|
| |
| ▲ | asabla 4 days ago | parent | prev | next [-] | | I fundamentally agree with you. But anti-cheat hasn't been about blocking every possible way of cheating for some time now. It's been about making it as in convenient as possible, thus reducing the amount of cheaters. Is the current fad of using kernel level anti-cheats what we want? hell nah. The responsibility of keeping a multi-player session clean of cheaters, was previously shared between the developers and server owners. While today this responsibility has fallen mostly on developers (or rather game studios) since they want to own the whole experience. | |
| ▲ | tzs 4 days ago | parent | prev | next [-] | | > Honestly I feel like you should only use kernel anticheat on a dedicated machine that's kept 100% separate from any of your personal data. That's a lot to ask of people, but you really shouldn't have anything you don't consider public data on the same hardware. Wouldn't it be sufficient to simply have a minimal system installed on a separate partition or on a separate drive (internal or external). Boot that for gaming, and never give it the password for the encryption of your non-gaming volumes. | |
| ▲ | torginus 4 days ago | parent | prev | next [-] | | This is why (even though everybody hates my for saying this) - the only way to do security is by enforcing root of trust - which is why Windows 11 forcing secure boot and TPM is a necessary change. The idea that we should allow arbitrary code execution at some point, then we claw back security by running mass surveillance on your PC is clearly insane. The only way to go forward is what BF6 has done - ensure the PC is in a pristine state, and nothing bad was loaded in the kernel - which is ironically why their anticheats conflicted - they don't allow loading random crap in the kernel. Not to mention, people who develop these invasive security modules don't have the expertise, resources or testing culture to muck about in the kernel to the degree they do. As to how dangerous this actually got actually showcased by Crowdstrike last year. | | |
| ▲ | safety1st 4 days ago | parent [-] | | Sounds great! Guess who I trust? Me. The root of trust should be a key I generate. I do not trust this to any government, any private company or really any 3rd party, except perhaps a member of my family or my lawyer. It can just be me and maybe someone I grant a digital equivalent of power of attorney to. For a company like Microsoft to try and get involved is in my view a form of aggression. | | |
| ▲ | torginus 4 days ago | parent [-] | | I hope you run a globally recognized certificate authorithy then... |
|
| |
| ▲ | 0xDEAFBEAD 4 days ago | parent | prev | next [-] | | Why not dual boot, and keep your files on an encrypted partition? | |
| ▲ | y7 4 days ago | parent | prev [-] | | > Honestly I feel like you should only use kernel anticheat on a dedicated machine that's kept 100% separate from any of your personal data. That's a lot to ask of people, but you really shouldn't have anything you don't consider public data on the same hardware. Yes, and at that point, you may as well use Windows for that machine. |
|
|
| ▲ | everdrive 5 days ago | parent | prev | next [-] |
| Strongly agreed. Some people want kernel-level anticheat for Linux. I think that's a huge mistake. Ideally, kernel-level anticheat would be done away with altogether. More realistically, I'm just going to avoid any games which use kernel-level anticheat, even if it means missing out. |
| |
| ▲ | thewebguyd 4 days ago | parent | next [-] | | I got roasted on linux subreddits for saying as much. We should not be encouraging this crap to come to Linux, it needs to go away for good. IIRC, even Microsoft was getting fed up with hands in the kernel after Cloudstrike so we may see it disappear eventually if Microsoft starts cracking down. | | |
| ▲ | ykonstant 4 days ago | parent [-] | | Wait, people on linux subreddits support kernel-level anti-cheat? | | |
| ▲ | everdrive 4 days ago | parent [-] | | I had the same experience as the parent; opposition to kernel-level anticheat was very unpopular. I think the people on reddit don't understand that in principle, linux could be made to be exactly as bad as any other OS, and that kernel-level anticheat is just one step on the journey there. |
|
| |
| ▲ | Hikikomori 4 days ago | parent | prev [-] | | So you're just okay with people cheating then? | | |
| ▲ | fph 4 days ago | parent | next [-] | | This sounds a lot like anti-encryption rhetoric: "so are you just okay with terrorists / pedophiles / pirates then?". | |
| ▲ | everdrive 4 days ago | parent | prev [-] | | That's a rude strawman of the point I was making. Kernel-level anticheat is just too great of a cost. Your entire system is compromised so that you can play some (usually lousy) AAA games. I oppose kernel-level anticheat because once it's in place, it will proliferate, even to single player games, just as it has in Windows. In other words, once it's broadly supported, the number of games available to me (assuming I want to avoid kernel-level anticheat) will actually _shrink _. | | |
| ▲ | Hikikomori 4 days ago | parent | next [-] | | What cost? Unless you're using multiple users the game exe can already read all your files and memory of your processes. This kernel argument just silly fear mongering when userspace can already do so much. | |
| ▲ | daveidol 4 days ago | parent | prev [-] | | I think the point the other poster was trying to make is that nobody explicitly wants anti cheat — likely including the game devs. But the alternative is cheaters in the game, which your point doesn’t really address. So for many it is a necessary evil, so to speak. | | |
| ▲ | Sammi 4 days ago | parent [-] | | Linux is an open project. If you want a closed system then get a console. This is a reasonable stance because these things are fundamentally at odds and can't be reconciled on one machine. Either you have an open hackable system, where security comes from cryptography and transparency, or you have a locked down system where security comes from inaccessibility and obscurity. |
|
|
|
|
|
| ▲ | koakuma-chan 5 days ago | parent | prev | next [-] |
| > - is somehow not a spyware or data protection risk at all... Don't worry, it's owned by Tencent. |
| |
|
| ▲ | brendoelfrendo 4 days ago | parent | prev | next [-] |
| The way I described it to a friend was to use this analogy:
Imagine you have someone over for game night, and before you play they say "Oh, by the way, I need the keys to the filing cabinet where you keep all your tax returns and whatnot." To which you might respond, "Wait, you need to read my tax returns before we can play this game?" And they say, "Oh, I'm not going to read them, I just need to hold the key while we play." And you would rightly tell them to piss off and get out of your house, because that makes no sense. If you really wanted to torture the metaphor, you could I guess argue that they need full access to your house just in case you decide to pull some loaded dice out of the filing cabinet or something, but that's not really the important thing to me. The important thing is that, regardless of whether or not I trust the developer of the anti-cheat, the game just isn't that important. |
|
| ▲ | Stevvo 5 days ago | parent | prev | next [-] |
| In Valorant's defence: 1) There is a 100k bug-bounty on the anti-cheat: https://hackerone.com/riot?type=team 2) The anti-cheat is the game's entire reason for being. It is the main focus of the development and marketing. People buy Valorant for the anti-cheat; they are willing to accept a kernel driver as a trade off for fairer competition. |
| |
| ▲ | brendoelfrendo 4 days ago | parent | next [-] | | Based on the install base and the level of access it could theoretically provide, I think a 0-day has a good shot at being worth more than $100k. Definitely worth more than that if you happen to know your high-value target plays League. Fair competition is all well and good, but there are other ways to do it and I can already tell you that the war on kernel-level anti cheat is well under way. There are already people cheating in Valorant, and that will not slow down. If anything, it's going to get more common because cheaters and cheat creators are some of the most diligent people out there. | |
| ▲ | mudkipdev 5 days ago | parent | prev [-] | | 'Buy valorant'? | | |
| ▲ | Stevvo 4 days ago | parent [-] | | I didn't realise the game is free of charge. You could replace 'buy' with 'install', but my point stands; people play Valorant because they want a competitive shooter with difficult anti-cheat rather than the unique art style or gameplay attributes. |
|
|
|
| ▲ | Retr0id 5 days ago | parent | prev | next [-] |
| - and, by design, is resistant to auditing, analysis, or user-modification |
| |
| ▲ | gjsman-1000 5 days ago | parent [-] | | If you trust Microsoft with your OS; I suppose you should trust Microsoft when they sign kernel modules, right? ;) | | |
| ▲ | ACCount37 5 days ago | parent [-] | | It's a good thing that Microsoft has never signed an anticheat kernel module that turned out to be so vulnerable that some malware installed it on purpose to gain more system access. | | |
|
|
|
| ▲ | shaokind 5 days ago | parent | prev | next [-] |
| Honest question: do you segment your activities on your computer on different users? No? In which case, what practical spyware risk does a kernel level driver add that user mode software can’t do? User mode software can spy on your clipboard, surreptitiously take screenshots, and take data out of your system. That spooks me enough that, if I don’t trust a software manufacturer, I don’t install it. Kernel mode makes no practical difference in my security posture. |
| |
| ▲ | xg15 5 days ago | parent | next [-] | | For starters: - Creating a unique ID that is directly bound to hardware. - Accessing the memory of any process, including browsers or messengers. - Installing persistent background processes that are hidden from the rest of the system. But I think that's the wrong question. Talking about the kernel driver is a distraction. The abuse scenario that I think is most likely would be that the game and/or anticheat vendor uses the hardware ID for user profiling instead of just ban enforcement, and that the "logging" functionality is coopted to detect software or activities that aren't related to cheats at all, but are just competition of the vendor or can once against be used for profiling, etc. None of that strictly requires a kernel driver. Most of that stuff could be easily done with a usermode daemon. But under normal circumstances, there is no way I'd install such a program. Only in the name of cheat prevention, suddenly it gets permissible to make users install that stuff if all they want to do is play some game. | | |
| ▲ | Hikikomori 4 days ago | parent [-] | | The point it, you don't need a kernel driver to access most of your data. Just a user space process can go read all your files and memory of processes of the same user. | | |
| ▲ | xg15 4 days ago | parent [-] | | Yes. But I normally wouldn't install such a user space process either, if I can avoid it. Anticheat is trying to normalize that behavior. | | |
|
| |
| ▲ | throwaway01934 5 days ago | parent | prev | next [-] | | > User mode software can spy on your clipboard, surreptitiously take screenshots, and take data out of your system Not on any properly secured Linux machine. But yes, it's generally a bad idea to install software you don't trust, a category that anticheats slot nicely into, given their resistantance to auditing and analysis. | | |
| ▲ | vilunov 4 days ago | parent [-] | | A properly secured Linux machine is a unicorn. The Linux desktop ecosystem is struggling a lot with putting software in namespaces. People still install software with their package managers outside Flatpak, there is no isolation of data, not to say many workflows depend on the whole user directory being available to access. |
| |
| ▲ | frollogaston 4 days ago | parent | prev | next [-] | | This is adjacent to how Linux users claim their default system is inherently more malware-resistant than Windows, when either way you're trusting anything you run in user space with almost everything important. | | | |
| ▲ | 4 days ago | parent | prev | next [-] | | [deleted] | |
| ▲ | foresto 4 days ago | parent | prev [-] | | > Honest question: do you segment your activities on your computer on different users? Yes. |
|
|
| ▲ | pjmlp 4 days ago | parent | prev | next [-] |
| It is the same stance as calling Windows games, developed for Windows, using DirectX, without any consideration of the studios to ever target GNU/Linux, even though they might actually target Android/Linux with other titles, Linux games. Because somehow Proton is better than standing for actual GNU/Linux games. So like IBM with OS/2 and Windows, studios keep ignoring Linux, and let Valve do whatever is needed, it is Valve's problem to sort out. |
|
| ▲ | zaptheimpaler 5 days ago | parent | prev | next [-] |
| Except that this kernel driver is audited and signed by Microsoft, whom you also trust with the rest of your kernel if you use Windows at all. |
| |
| ▲ | sidewndr46 5 days ago | parent | next [-] | | I don't think Microsoft auditing of code it signs. Wasn't Crowdstrike signed by Microsoft? | | |
| ▲ | ronsor 5 days ago | parent [-] | | It was. All Windows kernel drivers are. Microsoft doesn't do any auditing besides "is this the most obvious malware?" |
| |
| ▲ | Hikikomori 4 days ago | parent | prev [-] | | They don't audit them. Private cheat sellers user signed drivers because they have a small set of customers so they're unlikely to be reported or detected. |
|
|
| ▲ | gjsman-1000 5 days ago | parent | prev | next [-] |
| - … but successfully, more or less, prevents most cheating attempts which would also make the game unplayable regardless. For anyone saying “just do server side,” no, it’s physically impossible to stop all cheating that way until we have internet faster than human perception. |
| |
| ▲ | Enginerrrd 4 days ago | parent | next [-] | | I actually think this is one area where AI and statistics applied to player behavior are actually the right answer, similar to how they catch chess cheaters. I've seen videos where cheats are particularly easy to detect if you are also cheating. I.e. when you have all the information, you can start to see players reacting to other players before they should be able to detect them. So it should be possible to build a repertoire of cheating examples and clean examples using high level players to catch a fair amount of cheating behavior. And while I understand that there are ways to mitigate this and its an arms race, the less obvious the cheats are, the less effective they are, almost by definition. If someone is consistently reacting outside the range of normal human reaction times, they're cheating. If they randomize it enough to be within human range, well, mission accomplished, kind of. If they're reacting to other players in impossible ways by avoiding them or aiming toward them before they can be seen with unusual precision or frequency, they're cheating. A lot of complex game dynamics can be simplified to 2D vectors and it shouldn't be that computationally intensive to process. | | |
| ▲ | xg15 4 days ago | parent [-] | | Fully agreeing with this. I think there are two different approaches when people think of "server side": The first is "never trust the client", i.e. realtime validation and having the server be the sole authority on the current game state. This is the straightforward solution to think of for programmers, but it's also practically infeasible due to latency, etc. But what the server could do is a "trust but verify" approach: accept data from the clients when they submit it, but have some background processes that can analyze the data for anomalies and, if too much of it was detected, trigger a ban. The only problem I see with this approach is that cheaters might react by repeatedly making new accounts and playing as them until the verification process has caught up and bans the account. Cheating would be more obvious - as cheaters would have to start over with a beginner character every time - but it could still be annoying. So the problem of ban evasion would become even more important. And I don't really see how a purely server-side solution could work there. |
| |
| ▲ | dvdkon 5 days ago | parent | prev [-] | | Sure, but you could stop the most blatant wallhacks at least, but most times I see a video of a cheater, it's something stupid like that. It can't be that hard to do occlusion calculations server-side, right? Don't let perfect be the enemy of good. | | |
| ▲ | orbital-decay 5 days ago | parent | next [-] | | >It can't be that hard to do occlusion calculations server-side, right? I think you already know the answer. Yes, it's bottlenecked by latency and jitter (of the laggiest player, no less), and in addition to that the maximum possible movement velocity makes it much much worse in fast paced games. It's been attempted a few times since at least late 90's, with predictable results. In other words, complete server-side calculations are a fantasy. Besides, they won't even remotely make cheating impossible or even harder! Even complete hardware lockdown won't. | |
| ▲ | gjsman-1000 5 days ago | parent | prev | next [-] | | When it comes to cheating, perfect is the enemy of good. This is one of those rare cases where the phrase doesn’t hold. The problem is that server-side occlusion is only a small piece of the puzzle. A naïve implementation means hundreds of thousands of raycasts per second, which doesn’t scale. Real engines rely on precomputed visibility sets, spatial partitioning, and still have to leak some data client-side for responsiveness. Basically - the kernel level check is not laziness, but for unsolvable problems without huge compute costs or latency. | | |
| ▲ | dvdkon 5 days ago | parent [-] | | Fine, then let's not bother with anti-cheat at all, since an aimbot can work by just filming the screen and sending HID events over USB. Anti-cheat is like DRM: You have to make do with a compromise. Hundreds of thousands of raycasts per second sounds doable to me, but couldn't you just use a GPU and some simplified level geometry? That ought to scale well enough. It's not free or perfect (knowing the position of a hand a cheat will be able to estimate where the head is anyway), but that's not the goal, right? | | |
| ▲ | whatevaa 5 days ago | parent [-] | | There is a video of DYI aimbot of using a camera and sending electrical impulses into his arm to make him do certain adjustments. It's a bit hit and miss but seems refineable. It's cat and mouse game. | | |
| ▲ | dpoloncsak 2 days ago | parent | next [-] | | This is probably the video? https://www.youtube.com/watch?v=x-EbjGSRyKA&pp=ygUZYmFzaWNhb... BasicallyHomeless has made it his life mission to eradicate cheating in video games. | |
| ▲ | pxc 5 days ago | parent | prev [-] | | Is cyborg doping even cheating? At least at this stage it's still high effort and DIY. That almost makes it legitimate to me | | |
| ▲ | internetter 5 days ago | parent [-] | | many sport communities call doping cheating | | |
| ▲ | pxc 5 days ago | parent [-] | | and that's reasonable! but it's not a given. It's different from other kinds of cheating and some of its motivations are unusual when it comes to cheating restrictions (e.g., long-term health of players) |
|
|
|
|
| |
| ▲ | Hikikomori 4 days ago | parent | prev | next [-] | | In a 2d game? Sure, no problem, all Dota types have them. In games like CS and Valorant? Yes, they already do that, they have maps with simple geometry so its possible. Games with open world geometry with buildings with windows etc? Will be almost useless to implement anyway. You need to avoid pop-in effects so positions needs to be sent 1-2m before they are visible, its what they do in cs/valorant but it doesn't really work with complex geometry. | |
| ▲ | vel0city 4 days ago | parent | prev | next [-] | | If the server sends your client "you hear footsteps from this location" then you know where they are. | |
| ▲ | olaulaja 4 days ago | parent | prev [-] | | It can be rather difficult, mostly due to the occlusion calculations having to be conservative (must count visible things as visible, allowed to count invisible as visible, or things pop) and latency (must account for every possible position within max move speed * max latency, or things pop) The naive raycast from player camera to other player would be fine for perf but may count partially visible as invisible, so its unacceptable. You'd have to raycast every pixel of the potentially visible player model to stay conservative. With movement + latency this expands to every pixel the player model could potentially occupy during your max latency period, and you need to consider the viewer moving too! In practice this expands to a visibility test between two spheres with radius max_latency*max_movespeed + player_model_radius. Now, you could theoretically do a bunch of random raycasts between the spheres and get an answer that is right some of the time, but it would be a serious violation of our conservativeness criteria and the performance would get worse with more rays/better results. Also keep in mind that we need to do this for every single player/player pair a few dozen times per second, so it needs to be fast! To do this, you need a dedicated data structure that maps volumes to other volumes visible from said volume. There are a few, and they are all non-trivial and/or slow to build well. (google for eg. potentially visible set, cell-portal graph + occlusion). You also trade performance for precision, and in practice you walls might become 'transparent' a bit too early. With all this being done, we can actually "do occlusion calculations server-side". There's just one problem with this that I still don't know a solution for, namely precision. With fast players and imprecise conservative visibility, things you care about are going to count as visible pretty often, including stuff like enemies peeking from behind a corner (because they could have moved at full sprint for 100ms and the end of the wall is rounded away in your acceleration structure anyway) so all this complexity might not get you that much, particularly if your game is fast paced. You'd prevent some wallhacks but not the ones that really matter. TLDR yes, it's actually hard and might not be good enough anyway |
|
|
|
| ▲ | torginus 4 days ago | parent | prev | next [-] |
| And since the game has access to the anticheat running in the kernel, every Valorant bug is a potential root level kernel exploit. |
|
| ▲ | foresto 4 days ago | parent | prev [-] |
| And it gets circumvented anyway. https://www.youtube.com/watch?v=RwzIq04vd0M It seems to me that kernel-level anti-cheat is little more than a speed bump for determined cheaters. |
| |
| ▲ | 7bit 4 days ago | parent [-] | | Having one determined cheater ist worth not having 1000 cheaters because they fear getting banned. | | |
| ▲ | foresto 4 days ago | parent | next [-] | | Or: Deterring some casual cheaters is not worth having my whole system pwned by employees of a game publisher and whomever else figures out how to exploit their code. Obviously, our personal priorities differ. That's fine, but yours don't invalidate my earlier point. By the way, it's never just one determined cheater. Once discovered, circumvention techniques get shared, just as with mod chips and exploit scripts. It's only a matter of time before anyone willing to do a little reading or buy a little hardware can use them. And they do. (Often on alt accounts, with no fear of getting banned.) In other words, any relief from game cheaters is bound to be temporary, while harm from spyware or exploit is irreparable to anyone who values the privacy of their data. This is why kernel-level anti-cheat systems are so widely criticized. They might make sense on dedicated gaming machines, where the risks are low, but the situation is very different on general-purpose computers. | |
| ▲ | 63stack 4 days ago | parent | prev [-] | | The video showing one person cheating does not mean there aren't a 1000 others doing the same |
|
|