Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 63 reacties

Met een algoritme werden Xbox Live-codes zo veranderd dat ze via het verversen van een link meer dan eens te gebruiken waren. Het door Forumlid 'Dark' van The Tech Game opgestelde algoritme, zou Microsoft 1,2 miljoen dollar hebben gekost.

Microsoft Xbox 360 Controller Wit, Xbox 360

Het lek werkte als een keygen. Hackers gebruikten een algoritme om via bepaalde gebruikte codes nieuwe codes voor de Xbox-site te genereren. Het was volgens website Save And Quit later ook mogelijk om een programma binnen te halen dat de codes automatisch voor een gebruiker aanpaste. Een gebruiker kon kiezen uit een code voor 160 Microsoft-punten, een Halo: Reach-Avatar-voorwerp of een kaart waarmee een Xbox-bezitter 48 uur lang Xbox Live Gold kan gebruiken.

Microsoft heeft het lek inmiddels gedicht, maar Save And Quit beweert ook dat gebruikers in totaal 1,2 miljoen dollar aan Xbox Live-content hebben binnengehaald. Eén forumlid claimde maar liefst 150 dollar aan codes te hebben binnengesleept. Het topic waar The Tech Game-gebruiker Dark zijn uitleg plaatste, is inmiddels gesloten.

Dit is niet de eerste keer dat url's van Microsoft niet helemaal waterdicht zijn. Promotionele dlc van Mass Effect 2 was bijvoorbeeld ook al gratis binnen te halen voor de release. Microsoft heeft zelf nog niet op het lek gereageerd.

Moderatie-faq Wijzig weergave

Reacties (63)

gestolen lijkt mij hier niet het juiste woord het is meer vervalst
Ik zou toch wel eens een fundamentele uitspraak willen over de strafbaarheid of aansprakelijkheid van een gebruiker die door slechts op een link te klikken (of een adres in de adresbalk van zijn browser te plakken) een overtreding begaat.

Ik kan jou namelijk zo'n link sturen en als je er dan op klikt maak jij je schuldig aan diefstal??

Het HTTP protocol stelt duidelijk dat GET requests (het type dat wordt verstuurd als je op een link klikt of een adres in je adresbalk invoert) nooit de state van de server mogen veranderen. Dit horen 'veilige' requests te zijn.

POST requests (het type dat vaak achter het invullen van een formulier schuil gaat) mogen wel server state veranderen. Als een bedrijf deze basis regels uit het HTTP protocol aan zijn laars lapt vind ik het nogal makkelijk om te wijzen naar de gebruikers als schuldigen. Het bedrijf heeft dit over zichzelf af geroepen.
9.1.1 Safe Methods

Implementors should be aware that the software represents the user in their interactions over the Internet, and should be careful to allow the user to be aware of any actions they might take which may have an unexpected significance to themselves or others.

In particular, the convention has been established that the GET and HEAD methods SHOULD NOT have the significance of taking an action other than retrieval. These methods ought to be considered "safe". This allows user agents to represent other methods, such as POST, PUT and DELETE, in a special way, so that the user is made aware of the fact that a possibly unsafe action is being requested.

Naturally, it is not possible to ensure that the server does not generate side-effects as a result of performing a GET request; in fact, some dynamic resources consider that a feature. The important distinction here is that the user did not request the side-effects, so therefore cannot be held accountable for them.
Bron: W3C - HTTP RFC 2616

De standaard stelt gewoon expliciet dat gebruikers niet verantwoordelijk gehouden kunnen worden voor bij effecten die het gevolg zijn van een GET request, omdat de geldende conventies en standaarden stellen dat dit 'veilige' requests dienen te zijn.
Tja, je moet de moeite maar nemen om elke twee dagen een nieuwe code in te vullen. Op internet kun je met wat zoeken ook voor 35 euro een jaarkaart kopen. Lijkt mij niet eht de moeite waard dus. Daarbij kan dit natuurlijk ook positief uitpakken. Er zijn nu dan wel codes uitgegeven terwaarde van 1.2 miljoen maar stel dat daardoor 10% besluit na die periode door te gaan met het gebruik van Xbox Live, dan kunnen ze er uiteindelijk alsnog aan verdienen.
Je kunt dus ook meteen meteen 2-daagse codes achter elkaar invullen. Dan telt je abonnement het gewoon op. Dus voor een uurtje werk kun je zo een heel jaar gratis gamen.
Telt hij de abonnementen niet gewoon bij elkaar op?

Daarnaast: de links werken volgens mij niet meer. Bijna al die codes zijn al gebruikt (Net even wat regels uitgetest. Met een zeer simpel scriptje zullen ze gewoon op te vragen zijn. Scriptje schrijven is geen probleem, maar geen zin om aangeklaagt te worden door microsoft ^^)

http://click.engage.xbox....fdfad4bae12cb3e21e896a44e

Is een voorbeeldje. Voor de hebberige, nee die geeft geen geldige code terug ;)
Lijkt me toch eenvoudig om de betreffende accounts te traceren die veelvuldig/achter elkaar deze codes invoerden? Lijkt me nogal opvallen waneer iemand tig keer achter elkaar 160 MSP/48 uur trials verzilverd...
Eenvoudig voor een mens, maar niet voor een computer. Als je niet weet dat deze exploit mogelijk is, is het ook niet rendabel om 'voor de zekerheid' al het verkeer te monitoren op herhaalde requests. Het is minder dataverkeer dan bijvoorbeeld een DDOS of het binnenhalen van een groot bestand, dus zelfs als ze er op zouden monitoren is het evengoed moeilijk de 'hackers' van de 'F5-indrukkers-omdat-ze-een-langzame-verbinding-hebben' te scheiden.
Ze houden uiteraard gewoon transactielogs bij van je account. Achteraf kan derhalve vrij gemakkelijk gezocht worden naar mensen die kort achter elkaar dit soort transacties hebben gedaan.

En ook met de logs van de betreffende site is wel te achterhalen dat iemand achter hetzelfde ip steeds continu een bepaald soort URL accesst.

[Reactie gewijzigd door .oisyn op 10 maart 2011 22:19]

Als iemand de hele tijd achter elkaar codes invoert kan het wel legaal zijn. Straks is het gewoon 1 of andere rijke vent die een zooi codes legaal heeft aangeschaft.
Een rijke vent die voor de lol 15x een 160 punten code koopt i.p.v. gewoon 2100 punten? Lijkt me toch vrij sterk!
Ook al lijkt het vrij sterk, hier ga je toch geen mankracht op gooien, dan blijf je maar bezig. :) Het management is wel met andere dingen bezig, zoals het lek dichten ipv het water dweilen en in de gootsteen gooien.

imo.
Dat hangt ervan af. Voor een bepaald systeem hebben wij bijvoorbeeld een flinke groep mensen die alle opvallende transacties tegen het licht houden. Iemand die een sloot codes achter elkaar intikt wordt niet geacht "normaal" bezig te zijn en moet dus langs een handmatige controle. Mensen zijn redelijk panisch als het om geld gaat en hoewel mensen bereid zijn een bepaald verlies te incasseren, wil men wel graag de zekerheid hebben dat dit soort zaken herkend en aangepakt worden. Wel moet ik toegeven dat dit systeem in Azie draait en daar mankracht een stukje goedkoper is dan hier. Of het in Europa ook rendabel zou zijn, durf ik zo 1,2,3 niet te zeggen.

En nee, nou niet vragen waarom wij scratch cards verwerken ;)

[Reactie gewijzigd door humbug op 11 maart 2011 09:38]

De codes die ik uitgeef zijn random (met een controlegetalletje erbij om typfouten te voorkomen) En ik heb gewoon een tabel waarin ik bijhoud welke codes ik uitgegeven heb en welke reeds geactiveerd zijn. Zoiets simpels is 100 keer veiliger dan de geldigheid van de code af laten hangen van de code zelf.
Gaat jouw tabbeletje automatisch of hou je deze handmatig bij ?
Als je dit namelijk handmatig doet wens ik je veel plezier dit te doen bij een userbase zoals van de xbox 360
Zelfs automatisch is zijn procedure heel moeilijk op te schalen naar een grote userbase. Als een nieuw nummer gegenereerd word moet eerst gecontroleerd worden of deze niet al uitgegeven is en bij invoer moet nog en keer gecontroleerd of de code geldig is. Met honderden of duizenden codes is dit wel te doen, maar als je in de miljarden codes uit gaat geven wordt het zelfs voor computers erg zwaar.
Daarnaast is er nog het probleem dat een computer geen echte random getallen kan genereren.
Computers kunnen natuurlijk wel echte random nummers genereren. OK, je moet een paar honderd euro neerleggen voor een insteekkaartje maar daarmee ben je wel klaar. Of het nodig is dan weer een tweede.

En miljarden codes? Er zijn 6 miljard inwoners op deze aardbol. Voordat je bij een miljard codes bent, ben je een hele tijd verder. Ook kunnen codes natuurlijk worden hergebruikt. De kans dat een code gebruikt is en na zeg 2 jaar iemand nog eens exact dezelfde code gaat proberen is nogal klein en niet veel groter dan iemand die willekeurige nummers gaat proberen. Dat in combinatie met het kaartnummer, is een vrij goed systeem.
Natuurlijk doe ik dat niet handmatig.. Ik ga niet met een dobbelsteen random getallen zitten genereren. Of ze overtikken. Zelfs niet als waren het er maar 100.

En aangezien de key de index van de tabel is, is die gegarandeerd uniek en is dat nog snel ook.
En als dan toch het moment komt dat één databaseserver niet meer genoeg is, laat ik het eerste digit bepalen in welke database gezocht moet worden. Simpel schaalbaar.


@Zer0: Geen echte random getallen... Een beetje random library heeft dat natuurlijk allang opgelost en gebruikt allerlei informatie van het systeem om betere random getallen te genereren. Tijd, process list, voorheen gegenereerde random getalen, tot ruis op audio line-in.
En dan nog is het de database die bepaalt of een getal geldig is, niet het getal zelf.

En ik hoef geen miljarden codes bij te houden, zelfs Microsoft hoeft dat niet. De enige codes die bijgehouden moeten worden, zijn de uitgegeven -maar nog niet ingeloste- codes. Laten dat er bij Microsoft een paar miljoen zijn. 1 database kan dat prima aan.

[Reactie gewijzigd door Roland684 op 11 maart 2011 10:14]

Waarom geef je codes uit? Althans dat vraag ik me dan af :)
en wat gebeurt er met de mensen die het hebben gebruikt of misschien van iemand de punten gekocht, worden deze dan ge-banned.

ik heb ooit zo'n key gen in bezit gehad maar ik heb het nooit durven testen ivm ban dan kost het met nog meer geld.
Het ijkt me niet makkelijk op te sporen, misschien bij extreme gevallen wel. Ik denk dat bij de mensen die meer dan 10 keer 160 punten bijgeschreven hebben dat makkelijk in de database terug te vinden is.
Is toch makkelijk te achterhalen? Er zijn namelijk geen Microsoft Points kaartjes van 160 punten.
Of hebben ze die in de VS wel?
160 punten worden voor promoties gebruikt.

Of dacht jij dat microsoft die genereerde voor de lol? ;)
Hoewel ik het vervelend vindt dat Microsoft onnodige schade heeft geleden, vind ik dit soort technische zaken altijd heerlijk om te lezen.
Heel netjes om zo'n algoritme (ook al is het maar deels) te reversen, en te gebruiken. :)

Edit:
Lees in het forum topic dat er alleen wat kleine parameters in de URL zijn veranderd. Als dit daadwerkelijk het geval is geweest, dan is het wel een hele simpele fout van de kant van Microsoft.

[Reactie gewijzigd door KirovAir op 10 maart 2011 17:08]

tjonge, ik zou willen ik dit kon doen met mijn bankrekening,
verder:
blijkbaar zijn die codegen van microsoft niet random genoeg, of de website niet waterdicht.
maar het is dus al gefixt. forum gesloten,
nog andere maatregelen getroffen?
Het topic waar The Tech Game-gebruiker Dark zijn uitleg plaatste, is inmiddels gesloten.
Je kan nog wel zien hoe je het moet doen. Link

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True