Zpět na seznam článků     Číst komentáře (32)     Verze pro tisk

Manipulace s výsledky internetových soutěží (1)

Autor: .cCuMiNn.   
15.7.2011

Výsledky téměř všech soutěží pořádaných na internetu je možné nějakým způsobem zmanipulovat. Postupně se proto podíváme na jednotlivé metody jejich ovlivnění. Začneme jedním z nejjednodušších případů - s přepsáním získaného skóre v nezabezpečené flashové hře.


Před nějakým časem jste si na našem serveru mohli přečíst článek Internetové soutěže v rukou hackerů, který naznačoval možnosti zmanipulování výsledků u internetových soutěží. I když v něm autor upozorňuje na skutečnost, že manipulace s výsledky soutěží je často protizákonná, určitě se mezi vámi najde spousta těch, kteří alespoň jednou nějakou tu soutěž nečestným způsobem ovlivnili, nebo by to alespoň rádi udělali, kdyby věděli jak na to. Odpovídá tomu také vaše hlasování ve zdejší anketě. Současně se autor výše zmíněného článku pozastavuje nad skutečností, že mnoho internetových soutěží není odpovídajícím způsobem zabezpečeno proti zmanipulování a lze se proto domnívat, že jejich pořadatelé nemají o podobných praktikách hackerů ponětí. V této sérii článků si proto detailně popíšeme jednotlivé typy útoků na internetové soutěže tak, aby každý, kdo má o tuto problematiku zájem, získal jasnou představu o možnostech jejich zneužití.

Mnoho soutěží, které na internetu pořádají různé společnosti, je například založeno na získání nejlepšího skóre v jednoduché flashové hře. Toto skóre je ovšem možné (téměř) vždy nějakým způsobem zmanipulovat. Útočník se tak může poměrně snadno zapsat do tabulky nejlepších hráčů a tím získá opovídající ceny pro výherce.

Flashové hry jsou (až na pár vyjímek) navrženy tak, že jsou nejprve nahrány webovým prohlížečem a až po ukončení hry (levelu) je skóre odesláno na webový server k zapsání do výsledkové listiny. Díky tomu je možné ovlivnit výsledky již během hraní samotné hry (přepsáním hodnot v operační paměti počítače), upravit je během přenosu na webový server, nebo je například možné si hru zjednodušit přepsáním konfiguračních souborů při jejich načítání webovým prohlížečem. Výběr té správné metody závisí vždy hlavně na způsobu, jakým je hra zabezpečena proti zmanipulování. Postupně se v tomto seriálu podíváme mimojiné i na všechny tyto uvedené možnosti.


Změna skóre při jeho odesílání na server

V tomto úvodním dílu se podíváme asi na ten nejjednodušší způsob ovlivnění získaného skóre ve flashové hře. Setkáte se s ním v těch případech, kdy pořadatel soutěže vůbec neuvažoval nad možným zneužitím a hra proto nemá implementovánu žádnou ochranu proti změně výsledků při jejich odesílání na webový server. V praxi bylo možné tímto způsobem ovlivňovat výsledky například v soutěži od BigShockEnergy, viz. zdejší BugTrack. Konkrétně ale v této soutěži šlo o nejvyšší počet získání plného počtu bodů. Zmanipulovaný výsledek se proto musel odesílat opakovaně, což je úkol pro automatizovaný skript, se kterým se seznámíme v některém z následujících dílů.

Pro manipulaci výsledků v podobných soutěžích stačí použít jakýkoliv lokální HTTP proxy. Mezi nejznámější patří například Tamper Data, což je doplněk pro Firefox, nebo Webscarab, který je multiplaformním HTTP proxy vytvořeným v Javě. Při svém výkladu se tentokrát zaměřím na doplněk Tamper Data, jehož použití je opravdu velice jednoduché.



Po nainstalování doplňku do Firefoxu jej nalezneme v menu Nástroje. Pokud Tamper Data spustíme, bude zaznamenávat veškerou HTTP komunikaci a my si pak můžeme zpětně prohlížet jednotlivé požadavky, které náš browser odeslal směrem k webovému serveru a odpovědi, které tento server vrátil, včetně detailního obsahu request a response HTTP hlaviček. Zkoumat můžeme také obsahy proměnných odesílaných metodou GET i POST.

Spustíme tedy doplněk Tamper Data a dáme se do hraní demonstrační flashové hry, na které si můžete uvedené postupy vyzkoušet.




Výsledková listina


Po ukončení hry (to je ve chvíli, kdy ztratíme všechny životy) nás hra požádá o vložení nicku, který zapíše k získanému skóre do tabulky výsledků. Vyplníme tedy svůj nick a stiskneme tlačítko Send score. Následně si prohlédneme záznam komunikace, která prohěhla mezi browserem a webovým serverem.

Můžete si všimnout, že prohlížeč odeslal request na adresu www.soom.cz/projects/forarticles/flash1save.php a v POST proměnných score a nick předal zadanou přezdívku a získaný počet bodů. Pro jistotu přidávám také video, které ukazuje výše uvedený postup.



Nyní nám tedy zbývá jediné, naučit se pomocí doplňku Tamper Data komunikaci upravovat. K tomu slouží volba Start Tamper v horním menu doplňku. Po jejím zvolení dojde při každém odchozím požadavku k zobrazení dialogového okna, zda chceme požadavek upravit (Tamper), odeslat beze změny (Submit), nebo jeho odeslání zrušit (Abort Request).



Pustíme se tedy opětovně do hraní výše umístěné flashové hry, tentokrát se zapnutou volbou Start Tamper. Ve chvíli, kdy po skončení hry stiskneme tlačítko Send score, pozastaví Tamper Data komunikaci a zeptá se nás na akci, kterou má provést. Zvolíme možnost Tamper a v pravé části formuláře, který nám bude zobrazen, přepíšeme hodnotu POST proměnné score. Zbývá již jen upravený request odeslat tlačítkem OK a zrušit následné zastavování požadavků volbou Stop Tamper v menu doplňku. Pokud si nyní prohlédnete tabulku výsledků, můžete si (v případě, že jste vše udělali správně) všimnout toho, že je vedle vašeho nicku zapsáno vámi upravené skóre. Pro jistotu opět přidávám video, které zachycuje uvedený postup.


Poznámka: Během hraní hry, může docházet k samovolnému odesílání požadavků webovým prohlížečem. Může jít o requesty z jiných otevřených oken, nebo k různým aktualizacím, apd. Nenechte se proto případnými (obtěžujícími) dotazy od doplňku Tamper Data vystrašit a odesílejte je volbou Submit.


No a to je pro tentokrát vše. Vidíte, že pokud není implementována žádná ochrana proti zmanipulování, je ovlivnění výsledků soutěžní flashové hry banalitou. V příštím díle se podíváme, jak je možné změnit výsledek již během samotného hraní hry přepsáním údaje v operační paměti počítače. Tuto možnost využijeme například tam, kde je odesílaný výsledek chráněm proti zmanipulování kontrolním hashem.


Líbil se Vám článek?
Budeme potěšeni, pokud vás zaujme také reklamní nabídka

Social Bookmarking

     





Hodnocení/Hlasovalo: 1.47/47

1  2  3  4  5    
(známkování jako ve škole)