Live data from Hacker News

Never trust the client

gafferongames.com

111–120 of 155 posts

Re: Never trust the client

#111
post #64

Earlier quoted context omitted.

If you don't care about overkill, you could employ machine learning and anormaly detection: send the input sequences, timing and other difficult to fake data (e.g. gyroscope state) to the server and learn the "typical" distribution of those values. A perfect game played by a robot will likely be an outlier in a lot of the values. (Note that some legit games will also look suspicious, so you'd want to use this to find…

If I was a game developer and a person developed a bot to play my game perfectly, I'd let them have the high score.

But that doesn't happen, that person distributes that bot and suddenly you have a huge issue where all the high scores are bots which frustrates real users.

Re: Never trust the client

#112
How do we reconcile sentiments like "never trust the client" alongside this community's hope for decentralization, á la "The Internet Has Been Stolen From You. Take it Back Nonviolently"?

Re: Never trust the client

#113

If you don't know this you should not be working on software. It's a latent risk to customers.

It's a video game, not a life critical system.

A game can include a payment system, or processing of personally identifiable information. Security is important.

Re: Never trust the client

#114

Earlier quoted context omitted.

I saw a talk where a guy was showing how to cheat at some games. A lot of games will detect and crash you out if they detect a debugger attached to them. Things like Punk Buster, et. al. are more like anti-virus software: they try to find the signatures of known chat clients. So it's best to write you own...and rename your debugging process to "Google Chrome." He got pretty far with his auto-walker in some MMOs. He h…

More modern anti-cheat software seem to have a trend to move to kernel space[1] and block user-mode access. So it's not just signature checking, but some generic attack prevention as well. (Cheats also move to kernel space, of course.) Wonder how soon there will be a market of PCI-e cheat rigs for DMA attacks... ____ [1] Yep, gamers are literally accepting rootkits that allow arbitrary remote code execution on their…

> Yep, gamers are literally accepting rootkits that allow arbitrary remote code execution on their machines.

That's certainly risky and rather horrible, but what's the alternative? Multiplayer games are a huge business and a huge culture, and all that goes down the drain if people cheat.

Game companies have millions of people around the world competing for prestige and money. They're running game software on their own personal computers--machines that are also full of their financial records, naked pictures and personal correspondence. If your game is full of cheaters, you're done. If your game gets players hacked, you're really done.

I have no idea what the solution is, and I'm really glad it's not my job to figure it out.

Re: Never trust the client

#115
post #112

How do we reconcile sentiments like "never trust the client" alongside this community's hope for decentralization, á la "The Internet Has Been Stolen From You. Take it Back Nonviolently"?

In decentralization you are always the server and everyone else is the client. You have ways to validate what they send to you. It works out because they all think of themselves as the server and everyone else as the client too.

This is of course a vast simplification but the trust part is the same. No one trusts anyone but themselves and validates everything everyone sends them.

Re: Never trust the client

#116
post #74
post #58

Earlier quoted context omitted.

I'm really interested in game hacking. Do you have a link for the video/talk?

I used to visit Game Deception, the best game hacking technical forum. Unfortunately it closed. I lost interest in game RE a long time ago, but http://www.unknowncheats.me/ seems to be its successor, though from a cursory glance I see there are a lot more cheats and less technical information. GD we miss you.

I used to frequent http://aimbots.net/ when I was younger. Its a forum dedicated to mostly open source cheats so there is a whole discussion thread with sources and RE strategies.

Re: Never trust the client

#117

Earlier quoted context omitted.

I saw a talk where a guy was showing how to cheat at some games. A lot of games will detect and crash you out if they detect a debugger attached to them. Things like Punk Buster, et. al. are more like anti-virus software: they try to find the signatures of known chat clients. So it's best to write you own...and rename your debugging process to "Google Chrome." He got pretty far with his auto-walker in some MMOs. He h…

More modern anti-cheat software seem to have a trend to move to kernel space[1] and block user-mode access. So it's not just signature checking, but some generic attack prevention as well. (Cheats also move to kernel space, of course.) Wonder how soon there will be a market of PCI-e cheat rigs for DMA attacks... ____ [1] Yep, gamers are literally accepting rootkits that allow arbitrary remote code execution on their…

Yeah and modern cheat software is doing the same. A friend of mine recently used a Battlefield 4 cheat which required a boot loader entry so it could bypass kernel patch protection and get hooks in which the anticheat couldn't detect.

Re: Never trust the client

#118

Earlier quoted context omitted.

Can you give any more insight into this product? Curious what kind of product would have that be ok from a business perspective...

What I'm trying to figure out isn't the business option where it's ok, but the business where you actively are avoiding doing it. I mean why not just do it the right way?

You can handle orders of magnitude more users with the same hardware if you don't have to run the game simulation on the server.

Re: Never trust the client

#119

Earlier quoted context omitted.

More modern anti-cheat software seem to have a trend to move to kernel space[1] and block user-mode access. So it's not just signature checking, but some generic attack prevention as well. (Cheats also move to kernel space, of course.) Wonder how soon there will be a market of PCI-e cheat rigs for DMA attacks... ____ [1] Yep, gamers are literally accepting rootkits that allow arbitrary remote code execution on their…

> Yep, gamers are literally accepting rootkits that allow arbitrary remote code execution on their machines. That's certainly risky and rather horrible, but what's the alternative? Multiplayer games are a huge business and a huge culture, and all that goes down the drain if people cheat. Game companies have millions of people around the world competing for prestige and money. They're running game software on their ow…

The solution is simple: do everything server side. Look at World of Tanks for a great example of this. They pretty much let people run free with mods in multiplayer and even the worst of those mods can barely provide an advantage in online play. They do this by managing absolutely everything server side. Ammo, direction of aim, position, enemy players appearing and disappearing etc. Basically your server should be built to send only what's absolutely necessary and your client should be built to use absolutely everything so cheats can't provide much advantage rather than vice versa.

Re: Never trust the client

#120
post #106

Earlier quoted context omitted.

More modern anti-cheat software seem to have a trend to move to kernel space[1] and block user-mode access. So it's not just signature checking, but some generic attack prevention as well. (Cheats also move to kernel space, of course.) Wonder how soon there will be a market of PCI-e cheat rigs for DMA attacks... ____ [1] Yep, gamers are literally accepting rootkits that allow arbitrary remote code execution on their…

How does the server know you are running the anti-cheat software, and not your own fake? (Alternatively, run game in VM? I guess performance would suffer too much with that approach?)

Running the game in a vm is actually completely possible using Vt-d to forward the GPU these days.
Post reply on HN