FOK!dossier: World of Spycraft?

Alex (Lexie)

Onlangs ontstond er een hoop onrust in de online gaming community. Een gamer ontdekte dat Blizzard informatie verzamelt over de spelers van de MMORPG \'World of Warcraft\'. World of Warcraft is een zogenaamde online RPG waarin duizenden mensen samen en tegen elkaar gamen. Je kunt je karakter ontwikkelen, in groepen samenwerken, het opnemen tegen andere gamers, quests voltooien, de vetste gear verzamelen, je kent het wel. Een programmaatje genaamd ‘de Warden client’ verzamelt terwijl WoW draait informatie over andere programma’s die draaien op de computer van de gamers en stuurt deze in bepaalde situaties naar Blizzard. Omdat mensen en in het bijzonder internetgebruikers erg gesteld zijn op hun privacy is hier een hoop commotie over ontstaan. Meteen barstte er een verwoede discussie los over privacy. In het eerste deel van dit artikel wordt nader bekeken hoe de Warden precies werkt en waarom hij gebruikt wordt. In het tweede deel komt aan bod of gamers zich terecht ongerust maken en of onze privacy hier op het spel staat, of dat Blizzard volledig in zijn recht staat.

Waarom gebruikt Blizzard de Warden?
In de terms of agreement die gebruikers van WoW moeten ‘ondertekenen’ voordat ze gebruik kunnen maken van de software is terug te vinden dat de gebruiker akkoord gaat met het gebruik van een programma dat het geheugen van de PC mag scannen om te bepalen of er \"ongeautoriseerde\" programma\'s gedraaid worden.

De Warden wordt gebruikt om cheaten in welke vorm dan ook te detecteren en aan te pakken, mods te detecteren die de interface, omgeving of ‘beleving’ van de game aanpassen en mods te detecteren die data verzamelen over World of Warcraft of die data verzamelen met behulp van World of Warcraft. Als de Warden merkt dat de gamer een cheatprogramma gebruikt of ongeoorloofde mods draait dan zal dit doorgegeven worden aan Blizzard en zij behouden zich dan het recht voor om je tijdelijk of voorgoed de toegang te ontzeggen tot de game.

Wat de Warden precies doet.
Voor er uitspraken gedaan kunnen worden over het gebruik van de Warden is het van belang om precies te beschrijven hoe de Warden te werk gaat. De Warden wordt ongeveer iedere vijftien seconden uitgevoerd en verzamelt dan drie soorten informatie:

Ten eerste verzamelt hij alle DLL’s die aangeroepen worden wanneer World of Warcraft wordt gestart. Een DLL is een bibliotheek met functies die door meerdere applicaties aangeroepen kan worden. Hiermee wordt voorkomen dat een functie die door meerdere programma\'s gebruikt wordt onnodig meerdere malen draait. Dat de Warden deze controleert is niet zo erg, DLL\'s zijn openbaar en op iedere (Windows)PC te vinden. Als je weet welke DLL\'s iemand gebruikt dan weet je niet iets echt spannends. Blizzard controleert dit om er zeker van te zijn dat op dit gebied geen vreemde dingen gebeuren.

Het tweede proces is het scannen van de tekst in de titel van ieder venster dat je open hebt staan. Hierbij wordt geen onderscheid gemaakt tussen vensters die openstaan om WoW te kunnen spelen (zoals het venster waar WoW zelf in draait) en andere vensters. Heb je bijvoorbeeld de index van FOK!games geopend in FireFox dan is deze tekst “FOK!games – index – Mozilla FireFox”. Hierdoor wordt niet alleen informatie verzameld over welke webpagina’s je bezoekt, maar bijvoorbeeld ook over met wie je spreekt op msn, in welke kanalen van IRC je je begeeft en wat hier het wachtwoord van is, aan welke documenten je werkt, enzovoorts. Vervolgens worden deze titels gehashed (kort door de bocht is \'hashen\' een simpele vorm van het coderen van tekst) en vergeleken met een lijst van ‘banning hashes’. Is een van de gegenereerde hashes gelijk aan een van deze banning hashes dan weet de Warden dat je gebruik maakt van cheatprogramma’s. Is er een banning hash gedetecteerd dan wordt dit doorgegeven aan Blizzard en dan kunnen zij actie ondernemen.

Als laatste kijkt de Warden naar je ‘process memory’. Wat hier valt te zien zijn alle processen die je hebt draaien. De interessante stukken in het geheugen worden uitgelezen en ook weer gehashed en met de lijst van ‘banning hashes’ vergeleken. Deze checks worden gedaan om te detecteren welke andere programma’s je op de achtergrond hebt draaien. Interessant voor Blizzard zijn cheatprogramma’s als WoWglider. Om erachter te komen welke cheatprogramma’s er nu precies draaien, zullen alle programma\'s bekeken moeten worden. Zo worden bijvoorbeeld alle programma\'s die rechtsonder in je taakbalk staan gechecked maar ook alle andere programma\'s die draaien maar die daarvoor geen venster hebben openstaan.

Het hashen van de stukjes tekst en het vergelijken met de lijst van banning hashes gebeurt allemaal op de computer van de gebruiker. Komt er een hash uitgerold die wijst op het gebruik van ongewenste software dan wordt dit doorgegeven aan Blizzard. Er wordt dus alleen actie ondernomen (zoals hier gebeurd is) als er daadwerkelijk een ongeoorloofd programma is gedetecteerd en alleen het gegeven dat dat programma is gedetecteerd wordt doorgegeven. Informatie over andere programma\'s of hashes hiervan wordt dus niet teruggestuurd naar de servers van Blizzard.

Hashing?
Hashen is het versimpelen van grote stukken data (dus ook stukken tekst) naar een kleiner stukje informatie met een vaste lengte. Hashen betekent dan ook letterlijk: in stukjes hakken. Zou je alle tekst in dit artikel hashen, dan zou er bijvoorbeeld de hash “XHSS737XC7EALVM83J8JHY” uitkomen. Zou je dezelfde originele tekst nog een keer hashen dan komt er weer precies dezelfde hash uit. Zoals duidelijk zal zijn gaat er in dit proces zeer veel informatie verloren: de duizenden tekens die op een gemiddelde website te vinden zijn worden teruggebracht tot een hash van een paar tekens. Uit de hash kan dan ook nooit meer de oorspronkelijke input afgeleid worden. Geeft iemand jou een willekeurige hash, dan is het onmogelijk om vast te stellen waar deze hash van afkomstig is.

De lengte van een hash is vrij te kiezen. Omdat er altijd maar een beperkt aantal hashes te genereren zijn (als je een heel simpele hashfunctie zou schrijven die hashes oplevert die bestaan uit drie decimale cijfers dan zijn er maar 101 verschillende hashes mogelijk) en er oneindig veel verschillende combinaties van input bestaan, bestaat de kans dat verschillende input toch dezelfde hash oplevert. Hoe langer de hash, hoe kleiner de kans is dat twee verschillende inputs dezelfde hash opleveren. Kies je voor een 2-bits hash, dan zijn er vier mogelijke hashes: 00, 01, 10 en 11. Niet bijster veel mogelijkheden dus. Kies je echter zoals gebruikelijk voor een 128-bits hash dan zijn er 2128 oftewel 3,4 * 1038 mogelijke hashes en is de kans dat er twee dezelfde hashes gegenereerd worden te verwaarlozen. Hier kan bijvoorbeeld mee voorkomen worden dat er fouten ontstaan in het bepalen van wat wel en niet mag doordat twee programma\'s toevallig dezelfde hash opleveren en zo wordt effectief voorkomen dat mensen onterecht geband worden. Hashing wordt in dit geval niet primair gebruikt om informatie te vereenvoudigen maar om de input onherkenbaar te maken. Is er een lijst met hashes beschikbaar waarvan bekend is welke input welke hash genereert (zoals de lijst met banning hashes die gebruikt wordt door Blizzard) dan kan aan de hand van de hash bekeken worden welke input die specifieke hash opgeleverd heeft. Van alle andere mogelijkheden van input is dan echter niet bekend welke hash ze zouden opleveren, omdat uit een hash niet de oorspronkelijke input kan worden afgeleid. Deze techniek wordt dus door Blizzard toegepast om te voorkomen dat ze worden beschuldigd van het schenden van de privacy van de gamers.