tldr for anyone:
They aren’t fixing it. fuck y’all.
Also - it’s not a rootkit - it just loads at boot and has higher privileges than the userspace that you can’t contr… oh. it’s a rootkit. They don’t want you to call it that though. It’s not cancer… it’s a growth.
at this point i want to cheat on an approved, bare-metal windows machine, just as a fuck you.
but then i remember this game is awful and i dont wanna touch it anyway.
Funnily enough that’s how a lot of modern cheats work. it’s on a separate box. Good luck catching that automatically vanguard. Hard to out-ring the hardware layer.
If it’s not server based detection it’s exploitable.
I’m not in that line of work but make no mistake if it hasn’t been yet: a cheat vector will probably involve patching the anti cheat software or attacking how it communicates.
there are arduino-based cheats now, you dont even need an expensive box, it hijacks your mouse for aimbots and such. thinking of putting one of mine to use.
Yep, this is what I was referencing in other responses. Purely from a solution perspective it is positively the ultimate “get bent” from the cheat community. Add in some randomness and suddenly there’s zero difference between a ‘good session’ and scripting.
Next up: sorry you don’t have xyz brand mice you can’t play our games. Consumers get forced to buy shit they don’t want or need and meanwhile the cheat / hack community release a patch to emulate it.
It’s the same old cat and mouse game. There are solutions - but a rootkit isn’t it.
not looking forward to mice DRM of all things. but then it will be funny to see their games wilt because most people don’t own the xyz hardware they require. im willing to bet arduinos can fake hardware ids too.
Stop stealing our CPU cycles for high risk rootkits and start mitigating and detecting cheating on the server.
It’s that easy.
I stopped playing games that want this bullshit. Don’t need that shit in my life.
I’ve long believed that the main point of client-side anti-cheat is to serve as security theater.
If the player sees “PROTECTED BY ACME ANTI-CHEAT” on the boot screen of a game, they’re less likely to cry wolf when they get their ass kicked. At least, until they see a blatant example of hacking and lose all faith in the ability of the platform to protect them from it; from that point on, everyone better than them must be cheating from their perspective (speaking from firsthand experience here).
Given how infamously toxic and high-strung the LoL community is, I can only imagine that Riot’s basically at the end of their rope here. If you read the original forum post, they sure make this sound like a Hail Mary. “Sorry, it’s just what we have to do to make sure the game is fair.”
Hilariously, they even undercut their own points in the FAQ:
Q: If Vanguard is so good, why do I still see cheats on VALORANT?
For starters, we do not action every cheat or account instantly. Every ban is like broadcasting a signal to the developer that their cheat has been detected and that they need to “update” it. In order to slow the progression of our “cheat arms race,” we delay bans based on the sophistication and visibility of the cheat and cheater, respectively.
But also, cheaters gonna cheat. [Emphasis mine.] We’ve really driven our preventative layer as far as we can feasibly go without colliding with existing setups and hurting legitimate players. [Linux players aren’t legitimate I guess?]
Also, they’re apparently not bothering enabling Vanguard on OS X because apparently few people have actually developed cheats on it yet. Really tells you what’s the more developer friendly platform, Linux or OS X, doesn’t it? Or maybe the OS X market share is too small to care.
They do also mention using machine learning to detect cheating server-side but lament that it’s not always enough information, and that cheat developers have added “humanization” elements that play more like humans.
My thought is… if a cheat doesn’t make someone obviously better than a human player of a certain skill level, then what does it really matter? Congratulations, you made a bot that’s indistinguishable from a human, thanks for padding our player numbers.
The real problem is that botters don’t pay for microtransactions. And players who buy bot-leveled accounts probably don’t spend a ton either. Why would they? They got everything unlocked for them, they didn’t have to grind for it. That’s all Riot really gives a shit about.
In practice, client side anti cheat is essentially DOA because hardware cheats that analyse the player’s screen on a 2nd computer and proxy inputs to your mouse USB have made it so cheat clients are never actually executing code on the host machine.
At that point, even players cant tell someone is cheating because the cheats aren’t modifying the game state in a noticeable way- they’re still weak to effects that obscure your vision and have inputs that are difficult to differentiate from a “real” player.
IMO cheating is a social problem and one that is totally impossible to beat with rootkits by design.
It’s that easy.
I’m guessing you’re not a programmer yourself? Because it’s really really not that east to /just/ detect in the server side, hacks can be super sofisticsted these days and there are often many client side exploits that you simply cannot detect serverside.
Actually, I am.
Using rootkit anti-cheat is a shortcut that reduces cost for both dev time and hosting time at the expense of your customers’ security and CPU. You also have to lay your cards on the table for those who are attacking you. It is not the right solution for this problem.
Authoritative servers. Never trust the client, especially with information the player shouldn’t have right now. Look at behaviors and group players based on if you think they cheat or not - let the cheaters play together, no need to spoil their fun and let them realize you know they cheat.
People do some or all of this on the server now, but root kitting all machines to try to solve this problem to play video games is one of the dumbest approaches ever and we will realize it one day when a state level actor pops their zero day against a big install base.
This. Having worked on some in-house anti-cheat solutions myself, it absolutely is just offsetting the processing and security cost to the players. The attack vector of having such a rootkit running on so many devices is just not even close to be worth the trade off of catching marginally (if really measurably at all?) more cheaters.
But… have you considered having control of 0-ring software that runs on hundreds of millions of computers, that can perform targetted updates to change behaviour on just a select few computers, even interact with the network adapters unbeknownst to the OS.
I’m not talking about zero days popping up for this. But rather, this being part of the design?
A less nefarious application: The root kit anti cheats already continuously monitor processes. Say it finds a crypto mining one. It can request the instructions needed to search for a wallet and snatch that off.
A more nefarious one: RK is known to be in the device owned by the kid of a military contractor. Etc.
Trusting the client is a fools errand. So we are in complete agreement. I never understood why the effort isn’t placed on server side. People are very good at knowing when others have cheated. They know this from information that exists on the server side, so with the correct classifier, the server should also be able to know this.
Never trust the client, especially with information the player shouldn’t have right now.
This is a big part of the problem, but it’s not the only problem. If you do all of that stuff right, you can’t build a responsive first person shooter. There’s some level of trust you need to put in the client.
Disclaimer: This is based on my experience playing shooters and as a programmer. I have not worked on anticheat systems hands on.
We see less and less of the “god mode” hacks where players can send the packet for a carpet bomb and the server just blindly trusts it. Or the ludicrous spinbots that spin at an extreme speed and headshot anyone that comes into line of sight.
What we’re seeing is increasingly sophisticated cheats that provide “buffs” to a player’s ability. An AI enhanced aimbot that when you click gently nudges your hand to “auto correct” the shot and then clicks is borderline impossible to detect server side. It looks just like a player moved the mouse and fired.
The “best” method to prevent these folks from cheating seems to be to detect the system or the game has been tampered with.
Maybe the way to deal with that is to just let it happen and deal with smurfs down ranking… So these “soft” cheaters just exist in the “pro tier” where the pros can possibly stand a chance.
One strategy I have seen that I wish more developers would do is sending “honeypot” information to the game client (like a player on the other side of the wall that isn’t really there but an aimbot or a wall hack might incorrectly expose).
Maybe the increasing presence of hardware cheats will result in new strategies that make these things unnecessary. I keep wondering if a TPM could be used to solve this problem someday… But I’m not sure exactly how/we may need faster TPMs.
I think by the end of your message you were starting to arc around a little bit to the right way you need to think about clients: as outside your security envelope. (TPM is a joke in my mind, just like client side anti-cheat.)
There are many ways to try to identify and stop cheating on the server side that have not been explored because executives have directed use of off-the-shelf anti-cheat because they do not understand why it is snake oil.
TPM is a joke in my mind
I thought this at first as well, but they have an interesting property.
They have a manufacturer signed private key. If you get the public key from the manufacturer of the TPM, you can actually verify that the TPM as it was designed by the manufacturer performed the work.
That’s a really interesting property because for the first time there’s a way to verify what hardware is doing over the network via cryptography.
Or, if I can extract that key from the hardware, I can pretend to be that hardware whenever I want, right?
Hmmm… I was going to say no because it’s asymmetric crypto, but you’re right if you are somehow able to extract the signed private key, you can still lie… Good point
You don’t necessarily need to detect the cheat itself, you can look at things like players having suddenly higher kill rates and put them into a queue for observation by either more advanced (more expensive) automation to look for cheating or eventually involve a human in the loop.
Even on consoles after a while it becomes obvious that you cannot control the hardware, let alone the software on the client side. Those are the very best argument for this kind of approach and they get cracked eventually.
You don’t necessarily need to detect the cheat itself, you can look at things like players having suddenly higher kill rates and put them into a queue for observation by either more advanced (more expensive) automation to look for cheating or eventually involve a human in the loop.
That’s true, if the player suddenly has higher kill rates. However, that doesn’t work if they’ve been using the cheat from the start on that account. A sufficiently advanced AI powered aim bot would also be nearly indistinguishable from a professional player. Kind of similar to how Google created the CAPTCHA that uses mouse movement … but had to go back to (at least in some cases) the additional old school captcha.
I’m a programmer, yes it is. It’s not easy in the sense of easy to implement, it’s easy in the sense that everything else is impossible. Client-side anti-cheat is impossible, and by that I don’t mean hard, I mean perpetual-motion level of impossibility. If someone tells you they implemented a foolproof client-side anti-cheat you should be just as skeptical as if someone tells you they created a perpetual motion. It’s impossible, never going to happen, want an example? Robot using a camera to watch the screen and directly moving the mouse and keyboard, completely undetectable from the client side.
From the server perspective the person is cheating or is behaving like a human. If they’re behaving like a human their behavior is completely indistinguishable from a human, so who cares if they’re cheating?, whatever they’re doing has them still at human level so if the game has skill based matchmaking (which most of these games do) he’ll rise up until his cheating puts him in the same level of more skilled humans and everyone has fun. If he keeps rising forever he’s not on a human level, therefore a cheater. More importantly this also penalizes people who buy bot leveled accounts, because their matches will be all against people they can’t hope to win and the game will not be fun.
Server side can also trick clients into giving up that they’re cheating, e.g. sending ghosts behind walls to check for wall hacks or other similar things to gauge player responses.
But what do I know? I’m just a senior programmer who’s been working on servers for some years. l never worked on the client side anti-cheat though, also never tried to build a perpetual motion machine.
It’s not easy, but it’s really not worth the massive gaping security vulnerability you are giving your users. One disgruntled employee giving out the keys to the castle or one programmer plugging in an infected USB, and every user now has a persistent malicious rootkit. The only way to fix an issue that deep after it gets exploited is to literally throw away your hard drive.
The only way to fix an issue that deep after it gets exploited is to literally throw away your hard drive.
This can’t be right.
Don’t throw your hard drive in the trash. Quarantine the infected computer, and then wipe that hoe and slap your choice of OS back on it and scan/monitor to see if any issues arise.
Edit: since folks may or may not read though the rest of the conversation: I am wrong, throw that SSD/HDD in the garbage like barbarian said.
I’m sorry to disappoint, but with rootkits, that is very real. With that level of permissions, it can rewrite HDD/SSD drivers to install malware on boot.
There’s even malware that can rewrite BIOS/UEFI, in which case the whole motherboard has to go in the bin. That’s much less likely due to the complexity though, but it does exist.
not all rootkits are made to do that. So yes in some cases, throw it in the trash. In others, remediate your machine and move on.
Outside of monitoring individual packets outside of your computer (as in, man in the middle yourself with a spare computer and hoping the malware phones home right when you’re looking) there’s no way of knowing.
Once ring 0 is compromised, nothing your computer says can be trusted. A compromised OS can lie to anti-malware scanners, hide things from the installed software list and process manager, and just generally not show you what it doesnt want to show you. “Just remediate” does not work with rootkits.
Dude… That’s fucked. They should really go a little more in depth on rootkits in the CompTIA A+ study material. I mean, I get that it’s supposed to be a foundational over view of most IT concepts, but it would have helped me not look dumb.
Could they harden their clients somehow or maybe randomize memory locations for things? Seems like their should be a better solution than installing malware to prevent cheating.
You’re asking good questions but factor this in: a development team at a game company will only want to spend as little time as possible on this process: it doesn’t make them more money - it costs it. Conversely a hacker / cheater is being paid (or gaining) directly from breaking this code. Which is more motivated? Now remember that the protection has to be in place first. Who has the advantage? Client side code will always be breakable. A rootkit doesn’t change the game - it just adds a new vector to attack for other hackers to exploit.
It’s not easy. And league is free. So banning people won’t work well either. They can’t ban ip addresses either without banning college campuses, some apartment buildings, and Internet cafes.
There are solutions to this problem but they don’t want to permanently ban them. A ban = a new registration… maybe even two. Bonus! You get to pad your ban numbers and user registration numbers at the same time!
This. Server side anticheat is the only correct detection method. And it’s only part of the solution. Pure automation is pure garbage.
Fuck Riot. Never playing their games again. If you’re going to have a shitty anticheat at least give people the option to play in anticheat disabled lobbies. Besides, they should be doing anticheat at the server level not spying on the boot sequence of client PCs. That shit is unnecessary for a fucking banking app let alone a goddamn game. It’s just a game, let us enjoy it rather than making such a ridiculously over the top response to cheating.
If you’re going to have a shitty anticheat at least give people the option to play in anticheat disabled lobbies.
This, a thousand times. I can understand requiring anti-cheat for Ranked matches, but some of us just wanna screw around. If there’s no progression tied to the match why should they care?
(Microtransactions, if I had to guess)
Yup, at the very minimum let me continue to play TFT. You can’t really cheat there, and if you could, that’s more likely due to an underlying gamplay/UX problem.
Just tried TFT on Android device, and … well, its time to let this shit go.
The “any backdoors we leave open for it” bit kinda sounds like straight-up complaining that they can’t compromise users’ security without compromising their own control over users’ systems?
Boo fucking hoo, I guess 🤷
That’s a pretty standard position nowadays from a lot of different tech companies. They can’t possibly give the user any freedoms, because it might compromise something. It’s this broad assumption that all users that refuse to surrender control of their device should never be trusted and therefore not have their desires respected.
Like how Google continues to actively punish users that claw back control of their devices through custom roms or rooting, and of course Apple has been doing that forever. Microsoft is threatening more invasive restrictions in windows, too. It’s why shit like integrity checking is continuing to be pushed.
The pattern is very clear: you are required to let them stick their arm up your device’s ass to participate in our “modern” tech space.
It’s the equivalent of a store that forces all customers to strip naked before entering to prevent shoplifting. You of course don’t have to enter that store, but that store has also run virtually all the other stores out of business, and it’s the only one that carries the specific brand of chips you’re looking for.
In my country there was a story about a lady who got viral because it had been customary for shops to make people leave their backpacks and purses on a locker or with an employee. Then a security employee also had to check your receipt against the items in your bag before you left. It’s extremely annoying and cumbersome, it can add up to half an hour of extra time when the shops are full and there aren’t enough employees to do the checks.
So one day she went to buy groceries, before giving her purse to the employee she emptied it and itemized everything there was in there on a piece of paper. Then she bought her groceries and had the clerk double check the price and weight of every item she bought against the price tags and content labels of everything. Including the prepackaged meats. Then, when picking up her purse back, she had the list of items and emptied the bag again in front of the employee.
The manager noticed and went to her mad at what she was doing. She argued with him that they treated her as a thief so she would treat them as thieves themselves and pointed out how she had been charged for an extra plastic bag they didn’t gave her (we get charged the price of the bags) and demanded her plastic bag or money back.
Of course nothing came of it, but it riled social media discourse over here for a while. Some low end (local bodegas) and high end stores stopped the practice as the economic situation stabilized later, but it was still a quirky detail of that dark era. Some employees did steal stuff from customers bags sometimes. Same lady had a field day during the days of stores trying to return change on payments with lollipops and candy. So she tried to pay with a bag of candy and lollipops. That one was wild as well.
The issue with this entire statement is that despite the amount of system access they want, and the complexity of the software they’ve made, cheating is as rampant as it was before. The fact that they continue treating Linux as an issue, just as Ubisoft do with Siege, or Bungie with Destiny, just shows that there is a much larger issue at hand
Even worse, it proves that they themselves don’t understand the entire psycho-social scope and workings of cheating. Cheating is not an entirely technical problem. It’s multidimensional.
My main issue with this blog post is that rather than properly addressing concerns, they make fun of them.
It’s not a rootkit, journalists just spread misinformation for clicks
Why is it not a rootkit, then??
A blog toxic as it’s community? Gasp.
A long while back riot used to be a fun sorta disruptive thing that was pretty healthy overall. It was awkward and fun. That was before it was purchased though. Now riot exists to make money for big china. It isn’t that company anymore. It’s a facade.
You can’t fix it, nor can the employees.
Riot is a skinpuppet that has no autonomy. Unlike the employees though, we have the choice to leave that failing franchise and move on. Rootkits aren’t acceptable and that needs to be the standard. It wasn’t okay when Sony tried it in the name of anti-piracy and it’s still not okay now. No person should be okay with installing a black box with greater admin rights than they have on their own machine. That is not okay. It is security heresy. That blog uses hand waving and bullshit to sell the concept to people that don’t know any better. And honestly? That’s almost just as bad as the rootkit itself.
A rough translation is:
Be a good drone and put the slave collar on. It’s good for you. Don’t ask questions, you don’t need to know why. Just do it. You are the product and you have no rights.
I disagree that they went downhill post-purchase. They were shit from the very start when pendragon decided to burn one community to promote his own in the name of capitalism.
They had their issues, sure. But most studios will have burned bridges in their wake. Not a hard and fast rule of course.
When I refer to downhill I’m looking directly at the slippery slope that is changing from profit as a target to profit above all else. When you sell a company regardless of who you retain - there will be a value shift as the head drives the body. The existing cracks got worse and new ones formed. People that care the most generally give up, leave, or both and the whole thing falls in on the void left by those support’s absences.
You may be right that a shift in ideal started then. I’m not terribly familiar with the story so I’ll defer to you on that.
I guess the difference is in whether or not the victim was complicit with installing spyware in the kernel.
If that’s the distinction they’re going with, they don’t actually know what a rootkit is and have no business declaring something is or isn’t one
because on windows it’s not considered a rootkit, it’s considered user obscured feature sets.
Because journalists.
So … do we have any evidence that rootkits actually decrease the amount of cheating? Like… At all?
The awnser is a firm no. Cheaters have moved to hardware based cheats with DMA boards. On valorant some cheaters have started exploiting remote play services to use machine vision based aim bots. Neither of those two methods can be detected by a kernel level anti cheat.
And now they have more fun working with hardware than software. No needing to reverse engineer the game either since you’re just processing display output and executing inputs on separate hardware like an Arduino or Raspberry Pi
With DMA based cheats I disagree as if you were developing a DMA based cheat you would still need to understand how the game works so you can figure out what memory adresses are for what part of the game.
You’re assuming the anti cheat won’t refuse to run if a DMA device is installed.
Pfft… that’s easy to solve. Just ask them to identify all the fire hydrants.
it totally decreases the amount of cheating by a lot. Like the biggest decrease in history. That’s right. It’s huge. /trumpvoice
Also
trust me bro
I wouldn’t trust you if you were a valid SSL cert, bro
Come oooon. I’m google.com. really! Would I lie to you?
If you’re google.com, then yes. But then that would mean you are not google.com, which would mean you are google.com.
It’s a good thing Google isn’t based on Athens. That would have amplified the logic bomb tremendously!
Prove it with your dnssec record otherwise I shall consider you a liar.
Nah, you wouldn’t! Sorry, mate!
But… Uh… Do you really need all this credit card data and my banking password to show me more accurate search results? Sounds like a pretty convoluted tech to me… Well, who am I to question Google, right? There you go.
yesterday, there were just over 800 Linux users on League.
And how many of them were cheating? ರ_ರ
And Vanguard is already being bypassed by using external tools. IIRC I saw a video about it where the cheater had the hack running on a completely separate computer.
The number would be higher too, I doubt I was the only one who stopped playing months ago when Vanguard was supposedly going to be implemented imminently.
You and me both.
Fun fact: you could get an account locked in under an hour if you used a command line to close the league client. Not powershell - just good ol cmd. No reports needed. Reproduced it 4 times in 2 days… Lots of fun emails with initially the support teams and then the devs. Apparently “taskkill” is the most nefarious cheat known to the gaming industry.
A grade schooler with a “learn programming in 24 hours” book could probably produce better cheat detection.
How far is the company willing to go to prevent cheating? Cameras in people’s homes to make sure they’re not using another computer that your anti-cheat has no access to?
If players tolerate that then competitive gaming is going in a deeper dark pit of proprietary spyware in the name of fighting cheating, an arms race with no end.
and the difficulty in securing it is only compounded by all the frustrating differences between distributions.
You DO NOT get to bitch about dIfFeReNcEs while you’re writing rootkits. Fuck off.
DotA 2 works right? Just upgrade to DotA 2
Yeah, but what if I want:
- pre-2010 graphics
- a free rootkit
- a single ugly stagnant map with no skins
- a single and unchangeable and uninspired drone of an announcer
- a game whose bug-ridden, laggy client leaks memory and processes
- a game whose client prevents you from spectating pro games, past and present
- a pro scene rampant with match fixing and ads injected into the horrendous casting
If not League of Legends, where else am I gonna get all of that from?
I love that you mentioned that abomination they call a client. Something so bad a developer solo wrote a better one only to have them hire that person and quietly kill the project.
But what if I want to turn without waiting?
deleted by creator
WINE
Is
Not
(an)
EmulatorWhat makes you think they are referring to Wine in that particular case, and not the emulation of the kernel level anticheat on userland? It’s also arguably not an entirely correct use of the word there either, but it’s fine.
What makes you think they are referring to Wine in that particular case.
Them talking about Lutris and Wine in that same paragraph and using the phrasing “even allowing” implying it’s what they’re currently doing. But looking again, you’re right. They were referring to VMs.
“linux does not allow us a good enough ability to confirm boot state”
Skill issue, L for riot games.
Realistically, if this is true, it’s because of security. Shocker on that one really. Also, there are probably only 800 players on linux because the anti cheat doesnt fucking work. But that doesnt count apparently
Yeah I didn’t know I could play it.
i was convinced that LOL didn’t boot under linux, im still trying to figure out how they’re getting these numbers.
Right?
Skill issue, L for riot games.
I’m no expert here, but couldn’t they rely on SEV/SME or similar? My understanding is those features encrypt RAM, which would make it a lot more difficult for an attacker to do memory-based attacks when the game is running within a VM. I expect “physical attacks” would include attacking a VM’s memory, but again, I’m not an expert.
I also wonder if this could work in a containerized environment instead of a VM, so players could just run a lightweight container and preserve direct access to resources like the GPU. I don’t know if GPU access can be required to be encrypted as well, but surely this is a massive step forward.
i have no clue myself frankly. Realistically, doing literally anything is probably going to be better than what riot claims is possible. I think a fundamental part of the problem is stuff outside the control of the game, the OS already has segmented ram for instance, it’s all supposed to be virtually privatized, that way you don’t get these kinds of problems On the fly encryption would probably help, though they would probably just use shitty encryption anyway. Regardless, if you get something to hook into the game code itself, rather than just abusing memory values, it wouldn’t matter. Because at that point it’s going to be running inside the game.
The “distributions” argument always smells like bullshit. Developers actually interested on supporting Linux usually stick to one or two distros of their choice. (Typically Ubuntu.)
Beyond that: I don’t play LoL, but the fact that they need such an aggressive rootkit as anti-cheat hints poor game design. As in, why are your players so eager to cheat?
The “distributions” argument always smells like bullshit. Developers actually interested on supporting Linux usually stick to one or two distros of their choice. (Typically Ubuntu.)
My thoughts exactly. It is not unheard of at all for Linux ports to only be guaranteed to function on specific distros. It’s well within the realm of possibility and this is not a real stumbling block at all.
Others might do it for them if they shared the source code 🤷
I’m guessing that people just like feeling superior to others and video games are a convenient outlet for that. There’s no changing that via game design unless LoL ceases to be a competitive game.
It’s more likely an admission they have to trampoline every gpl function in the kernel which isn’t really easy to do and would let that kernel module run on any other kernel. Otherwise they would have to do a shim like nvidia which would mean a whole other level of issues like saying we support Linux but only Ubuntu which as a non Ubuntu user would mean to me they do not in fact support Linux. I’d vote with walle here but I already don’t own this game as my friends said the user base is terrible years ago but this just means there is no reason to buy any of their games.
This is a game, not something interacting with the desktop much, it can be totally self-contained binary. So they just need to publish a Flatpak or .deb, no need to support bunch of distros that community decided to create and support, because who create a new packaging format should be responsible to promote it.
Typical for a group of people that probably dedicated their whole careers to Windows. Could have just put it plainly that they don’t want to pay engineers that have the skills to do this on Linux.