News for hackers. Stuff that matters.
Re:Riot: Source code for League of Legends and TFT were exfi... by meltyness on Tuesday January 24, 2023 @12:57PM (#34507309)
ICYMI Riot makes players install a kernel-level driver to play games, so we might be witnessing the start of a once-in-a-decade cybersecurity Chernobyl.

https://news.ycombinator.com/item?id=22855600

Re:Riot: Source code for League of Legends and TFT were exfi... by 0cf8612b2e1e on Tuesday January 24, 2023 @01:38PM (#34507971)
This is why I begrudgingly had to build a separate PC for nothing but gaming. Furious that it is the only way to firewall the cowboy coding what-is-security development practices of the industry.
Re:Riot: Source code for League of Legends and TFT were exfi... by viraptor on Wednesday January 25, 2023 @12:49AM (#34514875)
Why a separate PC rather than a separate boot drive?
Re:Riot: Source code for League of Legends and TFT were exfi... by 0cf8612b2e1e on Wednesday January 25, 2023 @01:08AM (#34514953)
If the drives live in the same host system, they should be mountable by the other OS. The untrusted gaming partition/drive could then manipulate the trusted one.

In practice, that would require the malware to be specifically targeted to dual-booters (representing a tiny fraction of users). Much better to go after the millions of Windows gaming PCs that also host the entirely of someone’s digital life. Which is to say the physical separation likely buys me little real security, but it does make me feel better.

Re:Riot: Source code for League of Legends and TFT were exfi... by scotty79 on Wednesday January 25, 2023 @02:51AM (#34515602)
Maybe you could keep the secure partition encrypted?
Re:Riot: Source code for League of Legends and TFT were exfi... by 0cf8612b2e1e on Wednesday January 25, 2023 @03:19PM (#34523601)
The untrusted partition could ransomware encrypt my already encrypted drive.

Again, talking low likelihood that dual booters are a worthwhile target. Much more available low hanging fruit.

Re:Riot: Source code for League of Legends and TFT were exfi... by weberer on Wednesday January 25, 2023 @03:22AM (#34515774)
You should be encrypting your secure drive so stuff like this doesn't happen. Also so burglars can't grab your physical disk, put it in their machine, and read all your files. When installing most distros, they give you a checkbox to enable LUKS.

https://en.wikipedia.org/wiki/Linux_Unified_Key_Setup

Re:Riot: Source code for League of Legends and TFT were exfi... by viraptor on Wednesday January 25, 2023 @03:34AM (#34515854)
Bitlocker is also the default on most w10 and all w11.
Re:Riot: Source code for League of Legends and TFT were exfi... by Narishma on Wednesday January 25, 2023 @04:48AM (#34516434)
IIRC it was not available on Windows 10 Home, which I'd guess to be the largest install base. I don't know about Windows 11.
Re:Riot: Source code for League of Legends and TFT were exfi... by viraptor on Wednesday January 25, 2023 @05:09AM (#34516560)
Win 10 and 11 Home still allows device encryption (https://www.windowscentral.com/how-enable-device-encryption-...)
Re:Riot: Source code for League of Legends and TFT were exfi... by Narishma on Wednesday January 25, 2023 @06:35AM (#34517100)
That requires TPM v2 and UEFI. I guess that's why I've never seen it in any of the Windows machines I have access to.
Re:Riot: Source code for League of Legends and TFT were exfi... by 0cf8612b2e1e on Wednesday January 25, 2023 @03:26PM (#34523703)
The untrusted OS could ransomware encrypt the already-encrypted trusted one. The attacker is denied access to my SSH keys, but so am I.

Fully willing to confess this feels an outsized threat model, but it is something. Going forward, this separation will allow me to undersize my next linux workstation which requires far more modest hardware if never running games.

Re:Riot: Source code for League of Legends and TFT were exfi... by Y_Y on Tuesday January 24, 2023 @01:24PM (#34507720)
If the lasting tragedy of Chernobyl was the curtailment of nuclear power in favour of burning hydrocarbons, then will the victim of Cheriotnobyo be thsy society turns against MOBAs?
Re:Riot: Source code for League of Legends and TFT were exfi... by jpeter on Tuesday January 24, 2023 @01:49PM (#34508128)
Anticheat has to be kernel-level or it's useless
Re:Riot: Source code for League of Legends and TFT were exfi... by otuva on Wednesday January 25, 2023 @12:40AM (#34514829)
At this point, it's up to the user to make that trade-off, but most of the players don't have enough information to make that decision.

Sure, I wouldn't want any cheaters on my games, but these systems are not fool-proof and cannot circumvent every single cheater out there.

Dedicated enough cheaters are getting what they want anyway, while the unknowing user is left with a backdoor on their systems (in the event of a compromise)

Re:Riot: Source code for League of Legends and TFT were exfi... by Operyl on Wednesday January 25, 2023 @01:45AM (#34515179)
The goal isn’t to stop every cheater, the goal is to reduce the number of cheaters. They achieve this by making the monetary cost of cheating so high that it doesn’t happen often enough to affect the vast majority of players. “Private cheats” are expensive, “public cheats” get killed off quickly, pushing up the cost of “private cheats”.
Re:Riot: Source code for League of Legends and TFT were exfi... by nightfly on Wednesday January 25, 2023 @01:46AM (#34515192)
It's already useless (for motivated attackers), since you can capture video output and send input from a separate device
Re:Riot: Source code for League of Legends and TFT were exfi... by tester756 on Wednesday January 25, 2023 @02:03PM (#34522681)
Complexity increases shitton of times

If you reduce amount of cheaters from 1000 to 10, then it's still huge win for the player base and average player's experience

Re:Riot: Source code for League of Legends and TFT were exfi... by mrguyorama on Wednesday January 25, 2023 @04:09PM (#34524213)
None of this was as big a problem twenty years ago, despite cheats being easier to make. We had community run servers with occasional admin presence. All you need is an IP and username based banlist. I don't care if occasionally an admin is a power hungry 12 year old, I can just go next door.
Re:Riot: Source code for League of Legends and TFT were exfi... by 0x457 on Tuesday January 24, 2023 @01:50PM (#34508162)
It's either that or cheaters everywhere.
Re:Riot: Source code for League of Legends and TFT were exfi... by haunter on Tuesday January 24, 2023 @02:32PM (#34508911)
Startup idea: make a non-intrusive functioning anticheat system
Re:Riot: Source code for League of Legends and TFT were exfi... by cowthulhu on Tuesday January 24, 2023 @06:46PM (#34512297)
I’d be interested to know if that’s possible, purely on a technical level.
Re:Riot: Source code for League of Legends and TFT were exfi... by meltyness on Tuesday January 24, 2023 @07:24PM (#34512616)
Detecting superphysiological maneuvers is probably a trivial way to do this, for certain gameplay scenarios. There's established limits on reaction time, for example, it's just a matter of differentiating between reaction and preemption which converge at the highest echelons.
Re:Riot: Source code for League of Legends and TFT were exfi... by ramranch on Tuesday January 24, 2023 @08:31PM (#34513174)
Since it's trivial, I look forward to your proof-of-concept in the near future
Re:Riot: Source code for League of Legends and TFT were exfi... by dylan604 on Wednesday January 25, 2023 @01:33AM (#34515113)
they left themself an out with "probably"
Re:Riot: Source code for League of Legends and TFT were exfi... by meltyness on Wednesday January 25, 2023 @11:13AM (#34520069)
You're walking a thin line tempting me with a good time like that.
Re:Riot: Source code for League of Legends and TFT were exfi... by viraptor on Wednesday January 25, 2023 @12:51AM (#34514886)
There are limits on the reaction time, but you can own all humans by consistently hitting close to that limit and achieving useful things when you do. Adding a bit of delay to all bots would not make them useless.
Re:Riot: Source code for League of Legends and TFT were exfi... by jasonwatkinspdx on Wednesday January 25, 2023 @01:24AM (#34515055)
Cheating is a lot more sophisticated than the simple aimbots you're thinking of. A lot of cheats focus on giving the player extra information. In the context of big money online tournaments this motivates some pretty extreme behavior, like folks running a PCI card set up to access memory directly and find the game state for player positions, then indicate that to the player somehow. This defeats even kernel level anti-cheat.
Re:Riot: Source code for League of Legends and TFT were exfi... by lwansbrough on Wednesday January 25, 2023 @01:34AM (#34515114)
Well supposedly Riot’s server side interest management was supposed to solve this, perhaps by ray casting to the subjects’ bounding box. But I’m aware that wall hacks do get made for Valorant so it would appear that’s not the case. Which is understandable given the difficulty of juggling peeker’s advantage.
Re:Riot: Source code for League of Legends and TFT were exfi... by autoexec on Wednesday January 25, 2023 @01:59AM (#34515255)
> A lot of cheats focus on giving the player extra information.

Why are clients being sent that extra data in the first place? The server should track players and only push the information each player should have to that player's client. No need to hand every player the locations of other players when they're across the map and behind several walls.

Even with no extra data at all, at a certain point they're going to run into the analog hole. Cheaters will be able to point a camera at their screen and have it connected to their mouse/keyboard (real or not) so they can send inputs with speeds beyond what a human is capable of. Maybe it's not feasible to stop every cheater on Earth and the whole concept is incurably broken. There's always the option of letting people host their own servers to play with friends and other people they trust to play the game fairly. It's a hell of a lot more fun to play with people you know anyway. Tournaments can be done in person on dedicated trusted hardware under direct observation.

Re:Riot: Source code for League of Legends and TFT were exfi... by deafpolygon on Wednesday January 25, 2023 @02:20AM (#34515388)
> Why are clients being sent that extra data in the first place?

Performance reasons, usually. Easier to draw an enemy on the screen (and figure out occlusion, etc) than have the enemy pop in from nowhere due to lag. Also prevents lag (or netspeed in the UT days) hacking (used to be a thing, not anymore).

Re:Riot: Source code for League of Legends and TFT were exfi... by jasonwatkinspdx on Wednesday January 25, 2023 @02:53AM (#34515610)
> Why are clients being sent that extra data in the first place?

Because FPS games don't run in lockstep. They run in server ticks, which the client interpolates or even extrapolates with prediction for smoothness. This means the server has to send player positions a bit earlier than they would be visible via strict occlusion culling.

If you tried to run FPS in lockstep it's atrocious. This is literally why John Carmack originally implemented client side prediction for QuakeWorld. Do you think he was just too stupid to do the obvious simple correct thing? Or maybe the problem is actually a bit more complicated?

Again, hnews is anchoring on aimbots when that's by far the least interesting way to cheat.

Re:Riot: Source code for League of Legends and TFT were exfi... by autoexec on Wednesday January 25, 2023 @03:50AM (#34515980)
> Do you think he was just too stupid to do the obvious simple correct thing? Or maybe the problem is actually a bit more complicated?

No, but both hardware and software have changed dramatically since the 1990s. We even have cloud gaming services that run games remotely with very little being done on local hardware. They do currently over-promise when it comes to performance, but it's not unthinkable that we're at (or soon will be at) a point where games don't have to depend as much on the random PC at the player's end of the connection even though that's the way things have always been done.

Re:Riot: Source code for League of Legends and TFT were exfi... by stefncb on Wednesday January 25, 2023 @04:49AM (#34516444)
Latency is still relatively high in LOTS of areas around the world. Not high enough to make online FPS games unplayable, but high enough to make sending packets in lockstep unplayable. Discriminating against those people wouldn't be fair (especially since they're not a particularly small minority).
Re:Riot: Source code for League of Legends and TFT were exfi... by jasonwatkinspdx on Wednesday January 25, 2023 @04:58PM (#34524732)
It's even worse than that. Corner peeking is absolutely key in FPS games, and a laggy player can actually gain an advantage if there's pop in or rubber banding artifacts. It's like they teleport around the corner.
Re:Riot: Source code for League of Legends and TFT were exfi... by cowthulhu on Wednesday January 25, 2023 @04:16PM (#34524297)
I always thought this was a super interesting problem, because you're balancing a bunch of stuff - emergent behavior, latency, and server load.

Latency is the obvious one - you have to be able to tell not only if a client can see another client, but whether they might be able to see each other in, say, 500ms. That's pretty hard and computationally intensive, at-least compared to just checking whether bounding boxes have line-of-sight.

Where things get interesting is when we come to emergent behavior tied to rendering. A good example is shadows - you can have no LOS to a player, and not be in a position where you could get LOS quickly, but be able to see their shadow. So your client needs to know where the other player is so the shadow can be rendered correctly. Sound is also hard, and forces you to balance server load and client trust. Lets say someone really far away takes a step that's audible within 10m. You can't hear that, but the server would have to check distance against every player to confirm that. If you have a directional sound system (where sounds from inside a room will originate from the doorway for those outside) it's even harder, as the server is having to calculate the shortest path not blocked by the enviroment. Even if you do all this, you're still screwed - since when you determine the dishonest player can hear something so you tell their client client to play a sound, you have to send them the coordinates of the origin, so you're telling them where the other player is anyways!

Re:Riot: Source code for League of Legends and TFT were exfi... by adql on Wednesday January 25, 2023 @01:42AM (#34515164)
Right and how exactly that detects maphacks, wallhacks and a bunch of other non-input related ones ?
Re:Riot: Source code for League of Legends and TFT were exfi... by meltyness on Wednesday January 25, 2023 @10:15AM (#34519189)
That wouldn't need to be detected based on the architecture in use.

- Server-side actor occlusion.

- Server-side physics with client-side prediction that's been in use since 1996.

Re:Riot: Source code for League of Legends and TFT were exfi... by charcircuit on Wednesday January 25, 2023 @01:26AM (#34515067)
You can get rid of causal cheaters by having a secure boot all the way to the game. This would make it so people would have to use hardware cheats if they wanted to cheat.
Re:Riot: Source code for League of Legends and TFT were exfi... by worthless-trash on Wednesday January 25, 2023 @02:03AM (#34515285)
This is factually incorrect. You dont need hardware cheats to defeat that requirement.
Re:Riot: Source code for League of Legends and TFT were exfi... by charcircuit on Wednesday January 25, 2023 @02:30AM (#34515452)
Then also add the requirement that the operating system is bug free and allows you to protect your process from being read from or written to.
Re:Riot: Source code for League of Legends and TFT were exfi... by petterparker on Wednesday January 25, 2023 @05:17AM (#34516599)
Why jump through all those hoops? Just add a requirement for the game that prevents any form of cheating in the game.
Re:Riot: Source code for League of Legends and TFT were exfi... by charcircuit on Wednesday January 25, 2023 @11:39AM (#34520469)
Because that's not a realistic requirement.
Re:Riot: Source code for League of Legends and TFT were exfi... by worthless-trash on Thursday January 26, 2023 @06:13AM (#34530283)
and neither is a bug free OS!
Re:Riot: Source code for League of Legends and TFT were exfi... by DefineOutside on Wednesday January 25, 2023 @01:29AM (#34515085)
From the perspective of a server-sided anticheat as client side exists as a barrier to entry so it must be intrusive to work. I know of non-cheat devs who have bypassed Vanguard accidentally while implementing low level windows stuff.

No, this isn't possible. There will always be purely client sided cheats that don't touch anything sent to the server. For example, seeing enemies through walls gives a huge advantage but isn't detectable. This can be mitigated only sending entities the client can see, but latency makes it so you can't fully stop this.

You can also attack latency which doesn't directly affect protocol. Rewind enemies slightly forwards or backwards in shooters so you land the shot when you aim slightly off. These cheats exist in CSGO.

However, an anticheat's job is to prevent other players from noticing you cheating rather than to prevent cheating. This key distinction does let you simply ignore a lot of purely client side cheats as insignificant.

You also can't do much about aimassists that slightly correct aiming. Machine learning can help here but falls apart quite fast when humans are covering up the machine's aiming patterns. Algorithmic inputs and random human inputs still result in random-ish human inputs.

Re:Riot: Source code for League of Legends and TFT were exfi... by mattwilsonn888 on Wednesday January 25, 2023 @01:31AM (#34515100)
Yeah, it's called plug your mouse and keyboard into a game console - on a more serious note, a realistic idea for serious gamers who care about the sovereignty of their P.C. buy a completely corporate anti-cheat CPU that runs a separate system and uses GPU pass-through so you don't need to build an entire new rig.

The main issue, and this pervades computing, is that people don't care enough about owning their computers and controlling the software that runs on them.

Re:Riot: Source code for League of Legends and TFT were exfi... by flohofwoe on Wednesday January 25, 2023 @03:37AM (#34515876)
I remember that back in my console days, COD MW2 on Xbox 360 was full of glitchers and cheaters. I don't think the situation on PC vs console is all that much different.
Re:Riot: Source code for League of Legends and TFT were exfi... by mrguyorama on Wednesday January 25, 2023 @04:18PM (#34524332)
Console security has significantly improved since the Xbox 360 days. All the "trustable computing" stuff is heavily utilized there, and this is like the third time these companies have taken a swing at "Unhackable" consoles. There still isn't a way to exert control over a Switch that doesn't have the old backdoor.
Re:Riot: Source code for League of Legends and TFT were exfi... by adql on Wednesday January 25, 2023 @01:41AM (#34515161)
Only if that functionality came directly from OS, i.e. ability to run app in a container user can't mess with.

Then it is just OS being intrusive...

Re:Riot: Source code for League of Legends and TFT were exfi... by stefncb on Wednesday January 25, 2023 @04:47AM (#34516423)
The OS is already "intrusive" by that definition. What you described has a different issue though; my own computer letting some software run in some container that I can't touch is insane. That's Black Mirror kind of spooky and I hope it never becomes a reality.
Re:Riot: Source code for League of Legends and TFT were exfi... by smolder on Wednesday January 25, 2023 @09:57AM (#34518967)
That's clearly been the plan for quite some time with all the "trusted computing" rubbish. Online shopping or banking or playing games (or streaming DRM'd content) won't be allowed on hardware you actually control by like 2035 at the very latest, IMHO.
Re:Riot: Source code for League of Legends and TFT were exfi... by lwansbrough on Wednesday January 25, 2023 @01:49AM (#34515207)
There’s probably a few metrics you could come up with. I’d be thinking about ways to quantify awareness, then comparing average awareness vs. some distribution near the players’ skill level.

Awareness would be like: average travel distance between combat engagements, % of time fully occluded players receive gaze from a player, etc.

Re:Riot: Source code for League of Legends and TFT were exfi... by josephg on Wednesday January 25, 2023 @04:08AM (#34516133)
If Microsoft succeeds with their full plan for "trusted computing" (project Palladium), they'll be able to do anti-cheat at the operating system level.

The basic idea is the BIOS verifies the kernel (secure boot), and the kernel verifies all running software. The hardware TPM chip signs a message from the kernel attesting that this has all happened using the on-device crypto signature embedded by the hardware vendor (eg ATI). So the signature is tamper-proof, even by the computer user. And all that can validated over the internet via remote attestation.

The message would presumably include the hash of the game's binary files, and the signature & hash of all loaded kernel modules. So yeah, hardware level, "unhackable" anti-cheat on commodity hardware.

I can't tell whether to be terrified or impressed with the audacity of the plan.

https://en.wikipedia.org/wiki/Next-Generation_Secure_Computi...

Re:Riot: Source code for League of Legends and TFT were exfi... by bzzzt on Wednesday January 25, 2023 @05:22AM (#34516633)
While the whole signature verification thing sounds water-tight in theory there are lots of holes still being patched so I don't buy it this will 'change everything'. Making everything tamper-proof could even prevent some holes from being closed.
Re:Riot: Source code for League of Legends and TFT were exfi... by josephg on Wednesday January 25, 2023 @04:11PM (#34524237)
The only tamper proof part is the hardware TPM. Everything else uses a chain-of-trust model based on signatures. Most of the complex work will be in windows; and that code can be updated just fine so long as updated versions of the kernel are digitally signed.

I’m sure there will be security holes early on. But the people pushing this stuff seem to be playing a long, patient game. I think they’re going to get what they want.

Re:Riot: Source code for League of Legends and TFT were exfi... by smolder on Wednesday January 25, 2023 @09:29AM (#34518630)
> I can't tell whether to be terrified or impressed

I recommend the former, since this is another nail (maybe the final one?) in the coffin of "personal computers", hastening their replacement by hypertelescreens or whatever. (A computer you don't own, but merely access.)

Re:Riot: Source code for League of Legends and TFT were exfi... by deafpolygon on Wednesday January 25, 2023 @02:18AM (#34515370)
Now announcing ButlerCheat™, installing a live human supervisor into every home in the latest anti-cheat technology. Included now with its own refrigerator where you can store your snacks and drinks for those long gaming sessions.
Re:Riot: Source code for League of Legends and TFT were exfi... by chupasaurus on Wednesday January 25, 2023 @03:30AM (#34515824)
Blizzard had one, called Error 37.
Re:Riot: Source code for League of Legends and TFT were exfi... by vkou on Thursday January 26, 2023 @05:48AM (#34530129)
For a game that runs on a general-purpose computing system?

That's about as feasible as making a perpetual motion machine.

Re:Riot: Source code for League of Legends and TFT were exfi... by ehhthing on Wednesday January 25, 2023 @12:49AM (#34514876)
League of Legends does not use a Kernel-level anti-cheat. If you had actually read the article in question, this would have been made clear.
Re:Riot: Source code for League of Legends and TFT were exfi... by adql on Wednesday January 25, 2023 @01:40AM (#34515154)
On "people that didn't read the shit they quote" today!

> TL;DR Yes we run a driver at system startup, it doesn't scan anything (unless the game is running), it's designed to take up as few system resources as possible and it doesn't communicate to our servers. You can remove it at anytime.

Re:Riot: Source code for League of Legends and TFT were exfi... by ehhthing on Wednesday January 25, 2023 @12:21PM (#34521151)
You're quoting something from Valorant, not League of Legends. They use two different anti-cheat systems.

As a person who actually plays the game on a M1 Pro MacBook running in x86 emulation, which is not supported by kernel mode drivers, I can tell you with absolute certainty (unless of course Riot has found an exploit that allows installation of unsigned system drivers), that my computer has no non-apple drivers installed.

Re:Riot: Source code for League of Legends and TFT were exfi... by filiphorvat on Wednesday January 25, 2023 @01:21PM (#34522085)
On "people that don't know what they're talking about" today!

That's the anti-cheat which only Valorant uses

Re:Riot: Source code for League of Legends and TFT were exfi... by mattwilsonn888 on Wednesday January 25, 2023 @01:27AM (#34515068)
> ...entire game code for League of Legends and its tools, as well as Packman, your usermode anti-cheat. We understand the significance of these artifacts and the impact their release to the public would have on your major titles, Valorant and League of Legends

Mate you are chastising him for not reading the article and you are contradicted by the first paragraph.

Re:Riot: Source code for League of Legends and TFT were exfi... by Operyl on Wednesday January 25, 2023 @01:41AM (#34515163)
And in your own quote they stated it’s the user mode anticheat, and in Riot’s statement they said it’s an old/legacy anti cheat. This is not Vanguard, the kernel level anti cheat.
Re:Riot: Source code for League of Legends and TFT were exfi... by worthless-trash on Wednesday January 25, 2023 @02:00AM (#34515258)
Just to further clarify,

Code running in the kernel context is different than code running in the user context. Another process can modify user context, whereas it is expected that code running in the kernel context is "much harder".

A dedicated attacker could write kernel code which does the modifications, however this raises the bar and the anti cheat software could the game from running if it detects any unsigned drivers.

All this does is raise the bar to where the game is run into virtualization where the host OS can inspect the guests memory and infer details that way. The cat and mouse game goes on forever, the trick is to make it just hard enough so that the average person who wants to cheat will not not have the time, patience or financial incentive to do so.

Re:Riot: Source code for League of Legends and TFT were exfi... by filiphorvat on Wednesday January 25, 2023 @01:22PM (#34522106)
Why is your comment greyed out? Are people being so confidently incorrect that they downvoted this comment?
Re:Riot: Source code for League of Legends and TFT were exfi... by ThinkBeat on Wednesday January 25, 2023 @04:50AM (#34516445)
This makes me happy I am not into playing computer games.
Re:Riot: Source code for League of Legends and TFT were exfi... by mrguyorama on Wednesday January 25, 2023 @04:07PM (#34524186)
There are A LOT of games that aren't League Of Legends or Valorant. The vast vast vast majority don't need kernel access.