On 16 February a rumour emerged suggesting that Valve is tracking users’ personal DNS cache entries and sending the hashed info back to the mothership as part of its Valve Anti-Cheat (VAC) system.
The implication being that Valve was scraping the list of visited domains for known cheat websites, and using this as part of a new VAC approach. Another sinister implication is that Valve is storing all your browsing history for an unknown period of time, using it to target marketing, and selling the info on to third parties.
Valve’s chief hat technician, Gabe Newell has appeared on Reddit to deny these rumours.
The gist of his explanation is that VAC first flags a user for potentially using cheats; then it will check the user’s DNS cache for entries connecting to the cheat creator’s own DRM servers (there are paid cheats out there and the developers want to make sure these aren’t being pirated). If the known cheat domains are detected, these entries are hashed and sent back to Valve for verification.
Newell said that “less than a tenth of one percent of clients triggered the second check. 570 cheaters are being banned as a result.”
Newell also explained that their approach is to make it frustrating and financially unviable for cheat developers to operate, and therefore it might be a better strategy for the cheat developers to socially engineer fear and suspicion towards VAC rather than develop code that attacks or works around it.
His post is reproduced below for posterity:
Trust is a critical part of a multiplayer game community – trust in the developer, trust in the system, and trust in the other players. Cheats are a negative sum game, where a minority benefits less than the majority is harmed.
There are a bunch of different ways to attack a trust-based system including writing a bunch of code (hacks), or through social engineering (for example convincing people that the system isn’t as trustworthy as they thought it was).
For a game like Counter-Strike, there will be thousands of cheats created, several hundred of which will be actively in use at any given time. There will be around ten to twenty groups trying to make money selling cheats.
We don’t usually talk about VAC (our counter-hacking hacks), because it creates more opportunities for cheaters to attack the system (through writing code or social engineering).
This time is going to be an exception.
There are a number of kernel-level paid cheats that relate to this Reddit thread. Cheat developers have a problem in getting cheaters to actually pay them for all the obvious reasons, so they start creating DRM and anti-cheat code for their cheats. These cheats phone home to a DRM server that confirms that a cheater has actually paid to use the cheat.
VAC checked for the presence of these cheats. If they were detected VAC then checked to see which cheat DRM server was being contacted. This second check was done by looking for a partial match to those (non-web) cheat DRM servers in the DNS cache. If found, then hashes of the matching DNS entries were sent to the VAC servers. The match was double checked on our servers and then that client was marked for a future ban. Less than a tenth of one percent of clients triggered the second check. 570 cheaters are being banned as a result.
Cheat versus trust is an ongoing cat-and-mouse game. New cheats are created all the time, detected, banned, and tweaked. This specific VAC test for this specific round of cheats was effective for 13 days, which is fairly typical. It is now no longer active as the cheat providers have worked around it by manipulating the DNS cache of their customers’ client machines.
Kernel-level cheats are expensive to create, and they are expensive to detect. Our goal is to make them more expensive for cheaters and cheat creators than the economic benefits they can reasonably expect to gain.
There is also a social engineering side to cheating, which is to attack people’s trust in the system. If “Valve is evil – look they are tracking all of the websites you visit” is an idea that gets traction, then that is to the benefit of cheaters and cheat creators. VAC is inherently a scary looking piece of software, because it is trying to be obscure, it is going after code that is trying to attack it, and it is sneaky. For most cheat developers, social engineering might be a cheaper way to attack the system than continuing the code arms race, which means that there will be more Reddit posts trying to cast VAC in a sinister light.
Our response is to make it clear what we were actually doing and why with enough transparency that people can make their own judgements as to whether or not we are trustworthy.
1) Do we send your browsing history to Valve? No.
2) Do we care what porn sites you visit? Oh, dear god, no. My brain just melted.
3) Is Valve using its market success to go evil? I don’t think so, but you have to make the call if we are trustworthy. We try really hard to earn and keep your trust.