Málo kdo z nás by pravděpodobně mohl tvrdit, že se nikdy nezúčastnil nějaké soutěže, ať už o ceny či jen pro svoji zábavu. Těch, kterým se jejich úsilí vyplatilo, je ovšem po skromnu a štěstí se drtivé většině soutěžících vyhne nemalým obloukem. Opravdu je ale nutné spoléhat se na štěstí, osud či náhodu, jak nám tvrdí zažité zvyklosti, nebo je možné soutěže ovlivnit do takové míry, že jsme již od samotného spuštění soutěžního klání korunovanými výherci vytoužených cen?
Myšlenka manipulace s výsledky různých soutěží je stará jako lidstvo samo, s nástupem Internetu však získala nový rozměr. Hry, v nichž o výherci rozhoduje náhoda prostřednictvím losování se stávají čím dál méně populární, neboť účastníci obvykle své šance na výhru jen obtížně zvýší oproti ostatním soutěžícím a velmi dobře to vědí. Navíc je tento systém jeden z nejméně průhledných, poctivost pořadatele při slosování je přinejmenším spekulativní. Popularitě se proto mnohem více těší soutěže, v nichž vyhrává kreativita a zručnost nad náhodou, tedy klání s jasnou hierarchií výsledků, kde se na špici dostanou pouze ti nejlepší. Slovem "nejlepší" však není vždy myšleno to, co bylo záměrem samotného pořadatele.
Pro člověka znalého internetového prostředí není problém vidět hlouběji do struktury samotných soutěží a zvýšit tak výrazně svoje šance na výhru. Příkladem mohou být hry vytvořené ve flashi, kde se na bezpečnost zapomíná pravděpodobně nejčastěji. Flash je client-side technologie z čehož vyplývá, že veškeré výsledky se uchovávají v paměti počítače soutěžícího a teprve po skončení hry je nutné je přepravit ke zpracování na server pořadatele pomocí klasického HTTP požadavku. Jsou-li tyto informace přenášeny v plain-textu, může si případný útočník pomocí pouhého plug-inu typu Tamper Data v internetovém prohlížeči navýšit skóre na libovolnou hodnotu a zajistit si tak zaručeně první pozici na výherní listině. Chytřejší organizátoři soutěží proto sahají po obousměrné šifře a výsledek před odesláním na server zašifrují či zakódují, čímž od útoku odradí naprostou většinu script-kiddies, nikoliv však zdatnější útočníky. Ti si flashovou hru jednoduše stáhnou, decompilují a aplikují šifrovací algoritmus na uměle navýšené skóre, čímž se opět posunou na první pozici před poctivě hrající soutěžící. Šifrování by proto mělo být aplikováno vždy na pozadí ve spolupráci se serverem pořadatele (vygenerován a zaslán jednorázový unikátní klíč pro zašifrování dosaženého skóre), přičemž část práce flashové aplikace zastoupí JavaScript. Tím se zajistí běh hry na více technologiích a pro útočníka tak nebude snadné pochopit strukturu aplikace její pouhou dekompilací. Přesto i v tomto případě lze aplikaci pokořit, a to editací čí zmrazením příslušných, dosud nezašifrovaných hodnot přímo v operační paměti počítače pomocí k tomu určených nástrojů.
Vzpomínám si na nedávnou soutěž o Harley Davidson v hodnotě přesahující půl milionu Korun, kde bylo účelem dosáhnout v jednoduché flashové aplikaci co možná nejvyššího skóre, přičemž konečný výsledek se na server odesílal v čitelné podobě, tedy bez přítomnosti šifrování. Zatímco ve hře bylo odhadem možné nahrát maximální skóre kolem 10 000 bodů, již po několika dnech první pozice obsadili lidé s výsledky blížícími se desetinásobku. K navýšení vlastního skóre totiž postačil jednoduchý plug-in v prohlížeči soutěžícího, a tak nebylo o cheatující hráče nouze. Pořadatel si ovšem podezřele vysokých hodnot brzy všiml a několik dní před koncem soutěže zamezil přístup k mezivýsledkům, nikdo tudíž nemohl vědět, o kolik si má skóre navýšit, aby se tak dostal na první místo před ostatní, a přesto nebyl nápadný příliš vysokým skórem. Snaha pořadatele zamezit podvodům však nepadla na úrodnou půdu. Přístup k mezivýsledkům byl totiž zamezen pouze prostřednictvím flashové aplikace, přičemž ten, kdo si ji již dříve decompiloval, znal URL adresu stránky, která mezivýsledky z databáze zprostředkovávala a byl tak stále v obraze, jak moc si má skóre upravit. Ani to ovšem nebylo vše. Na serveru se navíc nacházela chyba známá jako SQL Injection, prostřednictvím které bylo možné sledovat účty ostatních hráčů, editovat a dokonce mazat jejich skóre. Po bezpečnostní stránce soutěž jednoznačně propadla…
Oblíbeným typem manipulovaných soutěží jsou rovněž ty, kde je vyžadována nějaká akce skupiny lidí (zpravidla kamarádů či fanoušků), jako je např. hlasování prostřednictvím anket, registrace nových uživatelů, sbírání unikátních návštěv, klikání na odkaz atp. Zde přicházejí na řadu jednoduché, ale i sofistikované programy často označované jako bot (zkrácené slovo robot). Pořadatelé se proti podobným útokům nezřídka brání akceptováním pouze přístupů z unikátních IP adres (tzv. UIP), v dnešní době rozsáhlé sítě TOR a dlouhých proxy-listů se však podobná snaha míjí účinkem a i zde dominují lidé, kteří toho o počítačích vědí více než jejich soupeři. Pro případ, že pořadatel nekalé praktiky soutěžících přesto odhalí, obsazují útočníci obvykle jako pojistku první dvě pozice, dosáhnou tudíž úspěchu i v případě, že je jejich první účet ze soutěže pro podezření z podvodu diskvalifikován.
Pokud jste se domnívali, že slosování je řešením, jak podobným manipulacím předcházet, pak jste se bohužel zmýlili. Losované hry většinou netrvají příliš dlouhou dobu, účastní se jich přibližně stovky lidí (čím delší období, tím více hráčů) a unikátním identifikátorem soutěžících není jméno nebo IP adresa, jak by se mohlo na první pohled zdát, nýbrž e-mailová adresa. Pro zdatného programátora ovšem není problém navrhnout aplikaci, jež překoná zabezpečení v podobě captcha obrázků na registračních formulářích freemailových portálů a zaregistruje stovky nevinně vyhlížejících účtů. V případě, že jich útočník zaregistruje např. 1 000, má oproti poctivému soutěžícímu tisíckrát vyšší šanci na výhru. V běžné soutěži taková bilance znamená, že každá druhá e-mailová adresa patří útočníkovi a obsazení některého z prvních pozic výsledkové listiny útočníkem je takřka nevyhnutelné.
Ani SMS soutěže nejsou ušetřeny manipulacím. Vzpomínám si na zajímavou soutěž z mého dětství, jejímž cílem bylo vytvořit černobílé logo pro mobilní telefon, jež bylo následně na internetových stránkách pomocí SMS návštěvníky bodováno (jedna SMS se rovnala jednomu bodu). Nejlépe hodnocená díla se pak rozdělila o hodnotné ceny. Odeslal jsem tehdy pomocí internetových SMS bran mobilních operátorů stovky zpráv na náhodně smyšlená telefonní čísla s textem, kde se uvádělo, že každý, kdo odešle SMS ve tvaru … se zapojí do slosování o automobil nemalé hodnoty. Přestože ne vždy vymyšlené číslo existovalo a pokud ano, jeho majitel na výzvu reagoval, bylo možné získat tímto způsobem mnohem více hlasů než ostatní soutěžící a vyhrát tak první cenu, tehdy běžný analogový modem.
Vždy, když podobné soutěže sledujete, narazíte na hlupáky, kteří se přes vidinu zisku nestarají o to, zda a jak moc jsou nápadní. Pravděpodobně nejčastějším jevem bývá až příliš vysoké skóre oproti ostatním soutěžícím, použití více desetinných míst ve zmanipulovaném skóre oproti výsledkům generovaných hrou nebo nabývání skóre v intervalech tam, kde se předpokládá víceméně lineární nárůst. Pořadatelé bohužel do zabezpečení soutěží málokdy zainvestují, ba naopak např. zobrazováním mezivýsledků útočníkům práci neskutečným způsobem usnadňují. Pokud se už o bezpečnost starají, často se jejich soutěž nachází na sdílených serverech webhostingových společností a útočníci tak mají i přes sebelepší zabezpečení konkrétní aplikace v podstatě neomezené pole působnosti a samozvaný dohled nad celou soutěží. Takoví hráči by ovšem i přes snadnou cestu k případnému obohacení neměli zapomínat na skutečnost, že svým jednáním porušují zákon, konkrétně § 257a (Poškození a zneužití záznamu na nosiči informací) a hrozí jim nemalé tresty.