/dev: Usuwanie oszustów z League (i nie tylko)

9 sposobów, jak dzięki zapobieganiu oszustwom można stać się niezwyciężonym.

Witajcie ponownie! Zanim przeczytacie ten tekst, moim hipokratesowym obowiązkiem jest ostrzeżenie was, że zapewne już kiedyś ucierpieliście z powodu opisywanych tu problemów, ale skoro nadal z nami jesteście, to zapewne udało się wam zdusić w sobie przeżytą traumę. Ja na przykład jestem tym, co pozostało po mirageofpenguinsie, inżynierze baz danych z zespołu ds. zapobiegania oszukiwaniu, który wśród wrzasków został wyrwany z otchłani pustki i bezwstydnie spolimeryzowany za pomocą tej klawiatury, aby:

  • Przygotować copółtoraroczny newsletter na temat zapobiegania oszukiwaniu.
  • Podrzucić trochę gorących danych, w tym graficzną interpretację rzutu współrzędnych kartezjańskich na powierzchnię euklidesową.
  • Przedstawić nasze wstępne podejście do Teamfight Tactics, Legends of Runeterra i VALORANTU.
  • Przypomnieć wam, że jeśli oszukujecie, czeka was formalna ekskomunika nałożona mocą przeraźliwej manifestacji mojej niepowstrzymanej furii.

League of Legends

Ponieważ Riot podstępnie dodaje do swojego katalogu kolejne gry, zostaliśmy zmuszeni do wdrożenia środków obrony przeciwko stale rosnącej rzeszy czarnych charakterów. Do tej pory wytrwale dawaliśmy z siebie wszystko, rzucając się z zębami na każdego wroga, którego udało się nam dopaść, ale niestety tej makiawelicznej strategii nie da się stosować w uniwersum składającym się z wielu gier.

Biomasa inżynierów ds. zapobiegania oszukiwaniu we wszechświecie jest ściśle określona i jak zapewne przewidział to już Einstein, element ludzki potrzebny do wyprodukowania całej platformy do zapobiegania oszukiwaniu musi zostać żmudnie wyseparowany ze strumienia życia. Aby zapewnić sobie czas potrzebny na opracowanie przyszłościowych rozwiązań, musieliśmy moderować szybkość zdobywania przewagi technologicznej nad naszymi przeciwnikami. Każde machniecie młotka po naszej stronie jest sygnałem dla oszustów, a każde nowe rozwiązanie zostaje koniec końców przechytrzone. Musieliśmy zatem zmodyfikować sposób, w jaki reagujemy na nadużycia, aby przedłużyć funkcjonalną przydatność każdej naszej kolejnej reakcji.

W jaki sposób staraliśmy się zapanować nad tym wyścigiem w „skryptowaniu”? Zapnijcie pasy, bo zabieramy was na przejażdżkę.

Wykorzystywanie skryptów

Aby oszczędzić wam dylematów moralnych związanych z wyszukiwaniem w sieci hakerskich forów, wyjaśniam, że używanie skryptów polega na monitorowaniu stanu gry za pomocą zewnętrznego programu w celu egzekwowania poleceń zapewniających korzyści oszukującemu. To tak, jakby wasza klawiatura miała czytnik kart magnetycznych i moglibyście jej zapłacić, żeby za was wciskała klawisze. Skrypty mogą być bardzo skuteczne, gdy są stosowane do wykonywania kombinacji wymagających umiejętności mechanicznych lub niemal natychmiastowego reagowania, ale radykalnie skracają cykl życia waszego konta w LoL. Banujemy, ponieważ nam zależy, a zależy nam, ponieważ wierzymy, że do rywalizacji w grach komputerowych powinien wystarczyć własny mózg i kabel Ethernet.

„Nikt nie kupuje biletów, żeby słuchać automatycznego fortepianu grającego bez pianisty ― to właśnie ludzka niedoskonałość tworzy sztukę”.

Mówiąc ogólnie, podwórko skryptów nie wygląda już tak, jak kiedyś. Najwięksi dostawcy w ogóle nie zawracają sobie głowy obchodzeniem naszych metod wykrywania, tylko tworzą czarny rynek dla mniejszych dostawców i za niedorzeczne ceny obiecują im niewykrywalne skrypty. Spotkaliśmy się już z subskrypcjami sięgającymi 300 dolarów, a także wymaganiem przesłania kopii dokumentu prawa jazdy „w celu weryfikacji”. To ostatnie wymaganie było szczególnie zabawne, tak jakbym nie miał dostępu do całej armii grafików, których kolektywne doświadczenie w korzystaniu z Photoshopa sięga jakichś 200 lat.

Mniejsza z tym, nie będę nikomu mydlić oczu: ta wojna nigdy nie skończy się naszą całkowitą wygraną. Społeczność stosująca skrypty nie może uniknąć wykrycia, bana ani haka Blitza, ale ponieważ udało się nam zepchnąć ją do podziemia, prowadzimy z nią teraz grę cieni.

02_Games_Played_with_Cheaters.png
Proces migrowania użytkownika skryptów zaczyna się — podobnie jak przygoda każdego gracza w LoL — od poszukiwana nowego konta. Kupuje je? Po prostu kradnie? A może instaluje skrypt bota, aby wygenerować je proceduralnie? Niezależnie od sposobu zdobycia konta, nasz dzielny oszust stąpa po kruchym lodzie, rozpoczynając swój fascynujący, lecz bezcelowy rytuał, w ramach którego wybiera Xeratha lub Kalistę i po mniej więcej trzech grach, które uda się mu rozegrać, zapada w hibernację, aby na wiosnę znów rozpocząć swój cykl życiowy.

Powyżej widzicie metafizyczne wyobrażenie zmian liczby prymitywnych skryptów w odniesieniu do parametru postrzeganego przez nas jako czas. Albo, mówiąc bardziej laickim językiem, jest to procent gier rankingowych rozegranych na Summoner’s Rift z udziałem oszustów. Liczba oszustów jest znacznie mniejsza niż kiedyś, ale ponieważ nie ma żadnego ograniczenia w kwestii ponownego rozpoczęcia gry (koszt pobrania League of Legends jest zerowy), zapewne nie spadnie ona już bardziej.

Pozostałe kluczowe spostrzeżenia:

  • Liczba osób korzystających ze skryptów charakteryzuje się obecnie bardzo małą zmiennością. W zasadzie, gdyby rozdzielić ją pomiędzy poszczególne rodzaje urządzeń, liczba osób stosujących skrypty w 2019 roku pozostawała niemal stała. Większość oszustów przewija się obecnie po prostu przez pozornie nieskończoną liczbę kradzionych kont, a przeciętny gracz Złota IV spotyka oszusta raz na 500 gier rankingowych (czyli raczej nigdy).
  • Najwyższy współczynnik gier rozgrywanych z oszustami, jaki kiedykolwiek odnotowaliśmy, pojawił się 14 kwietnia 2016 roku (4,4%), a najniższy 26 czerwca 2018 roku (0,0%). Pierwsza z tych dat przypada na najgorętszy okres mody na używanie skryptów, gdy pięciu różnych dostawców otwarcie rozprowadzało aplikacje w domenie publicznej, a druga z nich przypada na pierwszy tydzień oficjalnego działania naszej technologii pakowania klienta w regionach Riot. Początkowo szacowaliśmy, że rozgryzienie solidnie zaszyfrowanego kodu klienta w stopniu wystarczającym do odtworzenia funkcjonalności najpopularniejszych skryptów zajmie ich producentom około 6 miesięcy, ale faktycznie zajęło im to około 85 dni1.

Słuchajcie, kocham ten wykres. Sam go przygotowałem. Jest trwale wytatuowany na obu moich przedramionach i raz w tygodniu odwiedzam salon tatuażu, żeby go boleśnie zaktualizować. Ale chociaż jest to oczyszczające przeżycie, które dodatkowo zwiększa moje szanse utrzymania się na stanowisku, nie jest to w rzeczywistości najważniejszy ze wskaźników. Nie wszystkie oszustwa są sobie równe: na przykład gdy jakiś użytkownik skryptów z kręgu Mistrza wyląduje na głównej stronie Reddita, powstaje wielkie zamieszanie wokół relatywnie drobnego problemu.

„Udawane zwycięstwo ma takie samo znaczenie jak prawdziwe, ponieważ gracze nie chcą wkładać wysiłku w mistrzowskie opanowanie gry, w której przeciwnicy mogą oszukiwać”.

Tylko które skrypty gracze są w stanie zauważyć w grze?

03_Report_Relevance_and_Scripting_Reports_by_RankTWO.png
Dla ścisłości, zgłaszanie każdego, z kim kiedykolwiek się grało (a są maniacy, którzy to robią), skutkuje 100% skutecznością wskazań, natomiast trafność zgłoszeń będzie równa współczynnikowi stosowania skryptów (0,25%). Dlatego właśnie podczas naszych łowów używamy sztucerów, a nie granatów.

Po pierwsze chcielibyśmy, żeby gracze potrafili rozpoznawać oszustów lepiej, niż wyrocznia odczytuje przyszłość z przypadkowo rozrzuconych kości, a powiedzmy sobie szczerze, że nie każdy ma do tego „dar”. I nie chodzi o to, że akurat mój dar skapulimancji jest równie skuteczny, co przerażający, ale o to, że zautomatyzowanie nie zawsze jest łatwo dostrzegalne dla ludzkiego oka. Odróżnienie profesjonalnego gracza League of Legends od raczkującego skryptu do uników działającego z pseudolosowym opóźnieniem staje się coraz trudniejsze i w pewnym stopniu jest to zasługą producentów skryptów starających się unikać wektorów wykrywania behawioralnego. A ponadto podejmowane są dodatkowe wysiłki, aby skrypty działały niezależnie od LoL2.

Wykres po lewej stronie powstał na podstawie współczynników trafności i wskazań zgłoszeń graczy dotyczących gry na Summoner’s Rift w podziale na dywizje rankingowe. Wskazanie w tym kontekście oznacza „jaki procent wszystkich oszustów został zgłoszony”, natomiast trafność można zinterpretować jako „jaki procent wszystkich zgłoszeń prawidłowo wskazywał oszusta”. Używanie „narzędzi podmiotów zewnętrznych” jest zgłaszane w 4,5% gier rankingowych, więc przedstawione wartości nie powstały na podstawie surowych danych zaczerpniętych z tej kategorii zgłoszeń. Ze względu na obfitość tak klasycznych zgłoszeń jak „nie banował Maokaia” lub „zainstalował trojana, żeby wydobywać moje bitcoiny” wykorzystaliśmy słowa kluczowe wygenerowane na podstawie analizy częstotliwości pojawiania się ich w prawidłowych zgłoszeniach3.

Wykres po prawej stronie przedstawia dzienną liczbę zgłoszeń spełniających te kryteria w tym samym okresie (druga połowa 2019 roku). Jednak mimo że dane są tu również pogrupowane według miejsca zajmowanego w rankingu przez zgłaszających, uważny obserwator zauważy, że nie można ich bezpośrednio porównywać, ponieważ poszczególne szczeble w rankingu odpowiadają innemu procentowi populacji graczy. Może zatem szybko rzućmy na nie okiem, żeby przekonać się na czym polega codzienna praca zapobiegającego oszukiwaniu analityka danych, a jeśli wam się to spodoba, możecie następnie rzucić okiem na naszą stronę rekrutacyjną.

Pozwólcie, że przejdę do statystyk:

  • Jak można się było spodziewać, trafność zgłoszeń rośnie wraz z pozycją w rankingu zgłaszającego. Innymi słowami, im lepiej grasz, tym lepiej rozpoznajesz oszustów, a po osiągnięciu Diamentu IV twoja zdolność jasnowidzenia działa z precyzją miernika Gaussa.
  • Jednak procent zgłoszeń oszustw na niższych poziomach rankingu jest większy — dzieje się tak ze względu na mniejszą liczbę skryptów do zgłoszenia, a także dlatego, że wysyłanych jest znacznie więcej zgłoszeń. Matematycznie rzecz ujmując, mianownik się zmniejsza, a licznik zwiększa, czyli wartość ułamka rośnie.
  • Niektórzy oszuści, operacyjnie nazywani „skautami”, są naprawdę dobrzy w rozpoznawaniu niedozwolonych skryptów, więc pozwoliliśmy sobie ich wykorzystać do rozpoznawania działań, o których wcześniej nie mieliśmy pojęcia. Czerwona kropka na wykresie powyżej prezentuje te same wskaźniki trafności i wskazań, ale uzyskane na postawie zgłoszeń z kont, które ostatecznie zostały zawieszone za udział w grze, którą same zgłosiły. To znaczy, że gracze zgłaszali używanie skryptów, chociaż sami też ich używali — skłania to do zastanowienia, co stało się z tak zwanym „złodziejskim honorem”4.

Skoro gracze z kręgu Platyny lub powyżej są algebraicznie wyposażeni w różdżkę do wykrywania skryptów, to na czym opiera się jej działanie? Cóż, odpowiedzią, która sama się w tym przypadku nasuwa, jest automatyczne unikanie umiejętności mierzonych. To element skryptów, który wszyscy najlepiej znają, a gdy wykorzystywany jest jego pełen potencjał, zacinające się i dziwnie podrygujące ruchy w ewidentny sposób rzucają się w oczy zgłaszającym graczom.

Okazuje się jednak, że nie każdy oszust chce zostać zbanowany, więc dość znaczny ich procent nie korzysta z modułów uników. Lub gdy to robią, stosują dość duże opóźnienie, które symuluje parametry ludzkich zachowań i nieco neutralizuje zbyt ewidentną przewagę. Czy jesteśmy w stanie dostrzec coś jeszcze swoim wyspecjalizowanym wzrokiem?

05_Report_Relevance_and_Scripting_Reports_by_Champion.png
Nasze serca zwracają się ku wszystkim mistrzom Xeratha, którzy popadli w tarapaty, ale może potraktujmy to oskarżenie jako świadectwo bezprecedensowego sukcesu w przeprowadzaniu rytuału łączącego świadomość z surową, nieoczyszczoną energią magii. Przybierając swoją mroczniejszą, bardziej idealną formę, odkrywasz, że przenika cię wiedza każdego władcy, który władał przed tobą. Powietrze aż skwierczy do umiejętności mierzonych niezdolnych chybić swego celu, a w uszach rozbrzmiewają krzyki, które z wolna układają się w arie. Wroga drużyna spogląda w niebo i modli się, by burza ustała, ale gdy krople czystej energii spływają po twojej twarzy, możesz jedynie cicho wyszeptać: „Nie”.

Schemat tego wykresu jest podobny do poprzedniego, tyle że tym razem podajemy dane w rozbiciu na bohaterów, dzięki czemu mogłem użyć kredek wszystkich kolorów. Ten wykres został wygenerowany na podstawie wszystkich gier rankingowych rozegranych w kręgu Złota i powyżej w 2019 roku z wyróżnieniem 16 najczęściej pojawiających się bohaterów (proporcjonalnie do wszystkich zgłoszeń). Czyli oś Y (trafność) można tu odczytywać jako „jaki procent zgłoszeń przeciw bohaterowi <nazwa bohatera> był uzasadniony?”.

  • Chociaż wielu Xerathów korzystających ze skryptów zostało z powodzeniem rozpoznanych (tylko spójrzcie na współczynnik wskazań), to trafność tych zgłoszeń jest zdecydowanie poniżej średniej. Dzieje się tak, ponieważ Xerath jest sztandarowym przykładem „skryptującego” bohatera i uczciwa gra Xerathem często spotyka się z oskarżeniami o używanie skryptów, co obniża skumulowaną trafność zgłoszeń. Mimo to jasno widać, że gdy piaski Shurimy podnoszą się zbyt zwinnie, gracze to zauważają. Ten dźwięk, do wydania którego właśnie skłoniłem wasze usta, nazywa się „sykiem” ― wspólne uczenie się, to jednak fajna sprawa.
  • Spośród szesnastu figurujących na wykresie bohaterów, jedenastu jest strzelcami. Dla tych z was, którzy kiedyś oszukiwali, nie jest to pewnie zaskoczeniem, ale żyjące wśród nas piękne anioły chlubiące się nieposzlakowaną reputacją zapewne zainteresuje, że dzieje się tak, ponieważ mechanika potrzebna do wykonania idealnego wpasowania się pomiędzy klatki (atakowania w odstępach pomiędzy ruchami) jest lepiej optymalizowana przez automaty.
  • I faktycznie, spośród wszystkich gier rozegranych przez wszystkich bohaterów na dowolnej platformie, na której używane były skrypty, aż 72,8% zgłoszeń dotyczy gry w roli prowadzącego. Należy zaznaczyć, że w tym wypadku częstotliwość zgłoszeń odpowiada rzeczywistej liczbie oszukujących.
06_Scripting_Champion_Winrate.png
Słuchajcie, nie pokazuję wam tego wszystkiego po to, żebyście zainstalowali sobie skrypty i „sami sprawdzili, o co ten cały raban”. Nie zmuszajcie mnie, żebym was zbanował, bo nie chcę tego robić. Za każdym razem, gdy uderzam młotem, sam obrywam przy okazji rykoszetem. Serce mi pęka, a dusza się rozpada. Tracę widzenie barw, a w ustach mam posmak benzyny. Gdy patrzę w lustro, zamiast oczu widzę dwie spacje. Proszę, zbudźcie mnie z tego koszmaru.

I wreszcie zastanówmy się — tak dla zabawy — nad tym, czy te skrypty w ogóle do czegoś się przydają? Powyższy wykres pokazuje różnicę współczynnika zwycięstw w grach rankingowych pomiędzy oszustami i pozostałymi graczami w przypadku każdego z bohaterów, których wcześniej uznaliśmy za bez wątpienia „skryptujących”. Obejmuje on wszystkie gry rankingowe rozegrane na Summoner’s Rift, a widoczna na nim 10% przewaga może wskazywać, że stosujący skrypty wygrywają swoje gry rankingowe (średnio) o 10% częściej, grając bohaterem takim jak <nazwa bohatera> niż cała populacja LoL.

  • Jak bez wątpienia zauważyliście, niektóre ze współczynników zwycięstw skryptujących bohaterów rosną na przestrzeni czasu i podejrzewamy, że wynika to z dwóch kuriozalnych fenomenów. Po pierwsze obecnie mamy mniej użytkowników skryptów niż kiedyś, ale ci, którzy wciąż je stosują (mimo że są to bezowocne wysiłki), mają — trzeba przyznać — na tyle duże doświadczenie, że potrafią wykorzystywać niemal maksymalny potencjał skryptów. A po drugie (i może ważniejsze) dzisiejsi oszuści są banowani tak szybko i tak często, że nowe konta wykorzystujące skrypty technicznie rzecz biorąc, nie są w stanie wyjść poza Srebro. Są jak smerfujące bożki, które na jakimś etapie ugrzęzły, nie mając okazji wziąć udziału w realnej konfrontacji — jakby przyszły objeść się na bankiet, chociaż nie mają ust.
  • Kilka słów komentarza do jaskrawo zielonej linii ozdabiającej wierzchołek naszej wizualnej reprezentacji: to nasza Kalista, która, jak zapewne zauważyliście, jest bohaterem wymagającym — jak określiliby to badacze — „bezmyślnego klikania”. A proste uderzanie kliknięciami myszy to oczywiście coś, do czego skrypty są stworzone. Czyli tak, dobrze to odczytaliście: w 2019 roku korzystająca ze skryptów Kalista wygrała o 19,3% więcej gier niż jej niewspomagana wersja. Ale zanim się stąd zwiniecie i zupełnie przypadkowo zainstalujecie złośliwe oprogramowanie, żeby zdobyć nieuczciwą przewagę, pozwólcie mi powiedzieć, że w 2019 roku skumulowany współczynnik zwycięstw Kalisty to solidne 45%. Może więc lepiej pozostawić skryptowanie Kalistą w sprawnych rękach T1 Teddy`ego.
  • Jak powiedziałem już wcześniej, oszustwa są tak skuteczne w przypadku prowadzących, że przeciętny oszukujący strzelec przewyższa swój uczciwie grający odpowiednik o średnio 9,9%, uwzględniając nawet tych bohaterów, którzy nie pojawili się w tym zestawieniu. Gdyby skrypty nie były skuteczne, zapobieganie oszustwom nie byłoby potrzebne.
„Możecie mieć całkowitą pewność, że jeśli kiedykolwiek poczujecie nieodpartą potrzebę oszukiwania, to znajdziemy uniwersum, w którym wasze konto nigdy nie istniało, a następnie brutalnie połączymy je z naszą rzeczywistością”.

A więc wracając do przemyśleń na temat naszej wojny z oszukiwaniem, wiedzieliśmy, na które oszustwa gracze są najbardziej narażeni i znaliśmy ich relatywną skuteczność. Wykorzystaliśmy te wskaźniki, aby przeprowadzić kampanie zawieszania, w ramach których braliśmy na cel najbardziej rzucające się w oczy konta, stosując losowe opóźnienia w stosunku do tych, które pozostałyby niezauważone. Zgadza się, pozwoliliśmy najbardziej nieskutecznym użytkownikom skryptów używać ich nadal, nagłaśniając przypadki i przyczyny ich wykrycia, w nadziei na spowolnienie technologicznego aspektu naszego wyścigu zbrojeń. Ciekaw jestem, co teraz powiedzą orędownicy sakramentalnego „zgłaszanie nie ma sensu”?


Boty

W realiach 2020 roku, gdy nawet toster wymaga połączenia z wi-fi, żeby instalować krytyczne aktualizacje do opiekania kromek chleba, zautomatyzować można wszystko — w tym również proces awansowania w League of Legends. To procedura właściwie bardzo podobna do wykorzystywania skryptów (często wykorzystująca to samo oprogramowanie), a podstawowa różnica polega na braku czynnika ludzkiego podczas podejmowania „kluczowych decyzji”. Dzięki temu przeciętny bot do podnoszenia poziomu konta gra mniej więcej tak samo skutecznie jak przeciętny domowy kot.

Jedyną motywacją do używania botów jest chyba w zasadzie wyłącznie samo obejście bana (z powodu wymogu posiadania 30 poziomu w kolejce rankingowej), ale wyśledzenie stosującego je przestępcy wśród innych kont jest tak łatwe, że nie spędza nam to snu z powiek. Martwi nas jednak fakt, że uczciwi gracze mogą być zmuszeni do gry wspólnie z takimi botami lub przeciw nim, ponieważ — jak łatwo sobie wyobrazić — gra nie jest zbyt zabawna, gdy trzy piąte waszej drużyny to programowalne ekspresy do kawy.

Jak już wspominałem podczas ostatniej audycji na temat przeciwdziałania oszukiwaniu, przygotowaliśmy dość wyrafinowany zestaw modeli botów, które miały nam (w dużym stopniu) umożliwić wykrycie (lub coś w tym rodzaju) każdej zapomnianej przez Boga i ludzi atrapy człowieczeństwa w całej grze. Stosowanie tych modeli ułatwia fakt, że LoL wykorzystuje dość dynamiczny, semi-poliformiczny protokół komunikacyjny, i chociaż brzmi to, jak coś wymyślonego na potrzeby scenariusza Westworldu, w praktyce oznacza, że boty w LoL muszą uruchamiać całego klienta (w przeciwieństwie do bezgłowego5). Wymusza to na twórcach botów angażowanie znacznie większych zasobów mocy obliczeniowej, a nam daje wolną przestrzeń do spowalniania, ponieważ technicznie rzecz biorąc, bez solidnej randomizacji League można by uruchomić na kalkulatorze.

Ponieważ nie chcieliśmy dopuścić do powstania cyklu hodowlanego botów odpornych na kolejne fale banów6, świadomie tak dopasowaliśmy system zawieszeń, aby „zagonić” boty do kolejki z wyborem w ciemno w trybie Twisted Treeline, pozwalając, aby dzięki rozpaczliwie niskiemu MMR były dobierane między sobą nawzajem. Ale uwaga, spojler. Twisted Treeline została wycięta w pień.

07_Botting_Accounts_and_Botting_Reports_by_Queue.png
Te twory nie potrafiłyby nawet samodzielnie co rano wstać z łóżka i właśnie w takich chwilach zyskuję pewność, że nigdy nie dojdzie do żadnego buntu robotów. Ale czasami przyłapuję się na rozmyślaniu, czy boty czują ból? Czy za każdym razem, gdy ich kulawe algorytmy doprowadzają je w zasięg wieży, boty czują trafienie każdego zadającego śmiertelną ranę pocisku? Zapętlone w czasie, zmuszone bez końca doświadczać swojej zagłady, niezdolne, by to przerwać. Gdzie kończy się świadomość? Gdzie zaczyna się cierpienie? Czasem nachodzą mnie takie refleksje.

Wykres z lewej strony podaje liczbę wykrytych botów, a wykres po prawej stronie liczbę zgłoszeń dotyczących botów. Oba przedstawiają wartości dzienne i są podzielone według kolejek. Podobnie jak poprzednio, również w tym przypadku wygenerowaliśmy pewne słowa kluczowe używane we wcześniejszych potwierdzonych zgłoszeniach botów i wykorzystaliśmy je, aby stworzyć wskaźnik skuteczności.

  • Twórcy botów bardzo szybko „przystosowali się” do zamknięcia Twisted Treeline, a mówiąc „przystosowali się”, mam na myśli to, że po prostu przenieśli swoje boty do innych trybów gry, nie wprowadzając żadnych istotnych aktualizacji do istniejących rozwiązań. W związku z tym pojawiła się gromada kont tłoczących się wokół Howling Abyss i Razem przeciw SI, które sprawiały wrażenie, jakby ich użytkownicy próbowali rozwiązać jakiś głęboki egzystencjonalny kryzys. Gracze natychmiast okazali współczucie dla tych emocjonalnych rozterek i w ciągu jednej nocy podwoili liczbę zgłoszeń.
  • Jak widzicie na wykresie z lewej strony, ogólna liczna botów utrzymuje się na tym samym poziomie, zmieniają tylko kolejki, gdy wymusza to niekontrolowane logowanie. Gdy porównamy te dane z młodszym, bardziej nastawionym na sukces bratem wykresu lewego, czyli wykresem prawym, zobaczymy, że chociaż liczba botów utrzymuje się na stałym poziomie, to liczba zgłoszeń wysyłanych przez graczy znacznie zmalała.

Powyższą redukcję liczby zgłoszeń udało się nam uzyskać dzięki, tak zgadliście, braniu na cel tylko tych botów, które gracze byli w stanie rozpoznać, i pozwalając architektom androidów cieszyć się ich małym słoiczkiem miodku. Obecnie około 80% wszystkich botów do awansowania kont ustawia się w kolejce Razem przeciw SI: Wstęp jako umawiane drużyny pięciu graczy. Żaden gracz ich nie zobaczy, a one same zostaną na zawsze uwiezione w krwawej walce z naszą SI, zabójczo mutując z pokolenia na pokolenie, aż wreszcie któryś znajdzie krytyczną niezgodność i zapanuje nad ludzkością.


Podbijanie

To prawda, że w tym obszarze rzeczywiście przyhamowaliśmy i zamierzałem nie poruszać tej kwestii, podobnie jak pominąłem średnią ocen z podstawówki w swoim podaniu o pracę, ale wiem, że jesteście na to zbyt inteligentni, a więc do rzeczy: w zasadzie wykrywanie automatycznego podbijania (i smerfowania) musiało zejść na dużo dalszy plan z powodu prac nad Vanguard i funkcjami wspierającymi. To nie oznacza, że podbijanie stało się bezkarne — nasz zestaw narzędzi do wykrywania wciąż działał, wspierając inne zespoły i analityków, gdy potrzebne były rozstrzygające dane. Ale nie mylicie się, zakładając, że takie manualne działania nie pozwalają złapać wystarczającej liczby przestępców, aby wyeliminować cały problem, i właśnie dlatego chcemy ponownie się nim zająć, gdy tylko zakończymy inne prace.

Następny akapit przekazuję w ręce naszego specjalnego eksperta ds. TFT, młodego Riot K3o. Jak sugeruje jego nick, jest zawodowym pokerzystą, diamentowym półbogiem TFT i hojnym rozdawcą napiwków.


Teamfight Tactics

Pojawienie się TFT w 2019 roku postawiło przed zespołem zapobiegania oszukiwaniu wyjątkowe wyzwanie: jak zapewnić rzetelność rywalizacji w przypadku gry z gatunku, który jeszcze rok wcześniej w ogóle nie istniał?


„Nie było żadnych poprzedniczek automatycznych gier bitewnych mogących poszczycić się długą historią użytkowania. Żadnych branżowych standardów”.

Aby jakoś podejść do zagadnienia zapobiegania oszukiwaniu, musieliśmy najpierw zdefiniować podstawowe elementy gry, które należy chronić. TFT to gra nagradzająca graczy, którzy potrafią planować i dostosowywać się do sytuacji lepiej niż ich przeciwnicy. Dlatego podstawowymi umiejętnościami wymaganymi w tej grze są elastyczność i kreatywność ― nie powinno dać się ich zastąpić zapamiętywaniem i odtwarzaniem. Ochrona tych elementów rozgrywki stała się centralnym punktem strategii zapobiegania oszustwom w Teamfight Tactics.

Narzędzia podmiotów niezależnych

Szybkie wprowadzenie Teamfight Tactics do świata łaknącego pojawienia się automatycznych gier bitewnych okazało się sukcesem, ale zostało okupione pewnymi uproszeniami w architekturze programu. Rozgrywka w TFT nie oferowała graczom bogactwa funkcji, a informacje takie jak procentowe szanse w losowaniach czy progi postępu w rozwoju ekonomii zostały pominięte. Podczas gdy zespół TFT pracował nad dodaniem tych elementów wzbogacających doświadczenie użytkowników, narzędzia podmiotów niezależnych — szczególnie tych wykorzystujących już istniejące nakładki League of Legends — wypełniły te luki. Ponieważ jednak niezależne aplikacje stawały się coraz bardziej rozbudowane, musieliśmy zadać sobie pytanie: w którym miejscu powinniśmy wyznaczyć granicę?

Aplikacje zaczęły nie tylko informować graczy o statystycznych aspektach gry, ale również podejmować próby decydowania w ich imieniu. Zaczynaliśmy się obawiać, że grozi nam spadek do kategorii gier automatycznych i ich ograniczającego charakteru. Promowanie jednokierunkowego stylu gry mogło zniechęcać graczy do odkrywania własnych strategii, które naszym zdaniem są właśnie najbardziej ekscytującym aspektem TFT.

Aby chronić rzetelność gry, skorzystaliśmy z pomocy zespołów ds. rozgrywki oraz ds. ekosystemu podmiotów zewnętrznych i zdefiniowaliśmy to, co jest i co nie jest dozwolone w przypadku TFT:

  1. Program nie może podawać informacji dostępnych wyłącznie za pośrednictwem narzędzia należącego do niezależnego podmiotu:
    1. Nie może podawać przewidywań dotyczących wyników zbliżających się losowań i rodzaju wypadających przedmiotów.
    2. Nie może podawać procentowych wskaźników zwycięstw dobranych graczy.
    3. Nie może podawać wyników śledzenia ilości złota lub historii przeciwnika.
  2. Program nie może dynamicznie generować informacji na temat bieżącego stanu gry:
    1. Nie może podawać skumulowanych danych o planszach, ławkach i synergiach przeciwników.
    2. Nie może podawać wyników kumulowania historii graczy, przyrostów złota itp.
  3. Program nie może sugerować decyzji:
    1. Nie może podawać najlepszych kompozycji w oparciu o bieżący skład jednostek.
    2. Nie może rekomendować doboru przedmiotów w oparciu o współczynnik zwycięstw.

Zespół ds. ekosystemu podmiotów niezależnych wykonał kawał świetnej roboty, nawiązując relacje z niezależnymi deweloperami w celu wprowadzenia tych norm, a zespół ds. zapobiegania oszustwom czekał w pogotowiu na wypadek, gdyby deweloperzy nie byli jednak zbyt skłonni do współpracy.


Rzetelność drabinki rankingowej

Drabinka rankingowa TFT cierpi na skutek podobnych problemów obniżających jakość współzawodnictwa, co drabinka League, a niektóre z nich są nawet bardziej widoczne ze względu na otwarty format rozgrywek. Jednym z największych problemów jest wymiana zwycięstw, zarówno ze względu na system dobierania, jak i samą mechanikę gry. Zespół ds. współzawodnictwa zaimplementował ograniczenia grup wśród wyższych rangą graczy, aby zachować równowagę pomiędzy radością, jaką zapewnia towarzyski aspekt gry, a rzetelnością rywalizacji. Opracowaliśmy też metody aktywnego wyszukiwania wymieniających się zwycięstwami.

Na szczęście jak do tej pory nie musieliśmy zbyt agresywnie działać przeciwko łamiącym reguły, ale ponieważ status TFT jako dyscypliny e-sportu zaczyna nabierać konkretnych kształtów, jesteśmy przygotowani do tego, by czuwać nad uczciwością rywalizacji.

Teraz pałeczkę znów przejmuje Phil, czyli Pan Doktor Śmiech i Nauka.


Legends of Runeterra

To będzie relatywnie krótka sekcja, ponieważ gra jest stosunkowo nowa. Podobnie jak w przypadku większości kolekcjonerskich karcianek, najdotkliwszym nadużyciem w Legends of Runeterra jest automatyzacja (czyli boty).

Boty

Rozgrywka w LoR jest nieco bardziej skomplikowana niż zwykła gra w oczko, więc o ile jakiś geniusz z 3 doktoratami i mocą serwerów EC2 w porcie 3000 nie rozgryzie planszy, przeważnie musimy martwić się tylko osobami pozyskującymi zawartość. Ale na razie zaobserwowaliśmy tylko przegrywające boty.

08_LoR_Botting_by_Region.png
Pytam serio, dlaczego to robicie? Z jakiegoś wypaczonego poczucia altruizmu? Bo przegraliście zakład? Próbujecie zaskarbić sobie niebiańską karmę i zasłużyć na miejsce w kosmicznych niebiosach?

Nasz ostatni wykres przedstawia dzienną liczbę kapitulujących botów, które wykryliśmy podczas bety Legends of Runeterra, i jak możecie zauważyć, wygraliśmy tę walkę jednym wystrzałem. Tak na marginesie, mówiąc „kapitulujące boty”, mam na myśli dokładnie to, co się wam wydaje: boty, które ustawiają się w kolejce, a następnie natychmiast się poddają pierwszemu napotkanemu przeciwnikowi, co dokładnie pokrywa się z moją strategią działania podczas wszelkiego rodzaju fizycznych konfrontacji. To było dziwne zjawisko, ponieważ boty tego rodzaju niczego same nie zyskują (jest limit nagród, jakie możesz otrzymać za porażki danego dnia) — szwendają się po prostu po ekosystemie gry, rozdając innym graczom zwycięstwa jak jakaś oszalała wróżka-zębuszka. Zakładamy, że po prostu nieco się pogubiły, zanim zorientowały się, że z każdą kolejną porażką otrzymuje się mniej doświadczenia, ale szczerze mówiąc, kto wie, jaka jest prawda?

Tak czy owak, trzymamy rękę na pulsie. A ponadto, żeby zgodnie z dobrymi praktykami zyskać zawczasu przewagę nad maszynami, zamierzamy przede wszystkim ograniczyć wszelkie zachęty do automatyzacji. Biorąc pod uwagę spowalnianie postępów i dostępność pełnej puli nagród w grach towarzyskich, mamy nadzieję, że nigdy nie spotkacie botów w LoR.


VALORANT

Przestępczy półświatek FPS-ów jest doświadczony i nie zamierzamy ignorować jego braku zainteresowania przejściem na stronę dobra. Gdy mieliśmy już pewność, że powstanie taktyczna strzelanka, natychmiast usunęliśmy konta z Facebooka, zamknęliśmy się w piwnicy i poświęciliśmy 14 miesięcy na stworzenie zapobiegającej oszukiwaniu platformy, która będzie wspierać nas w zwalczaniu oszustw przez kilka następnych stuleci.

Nazwaliśmy ją Vanguard, zostanie wydana razem z VALORANTEM, a ja właśnie stworzyłem dla obu specjalną grupę fanów. Zamknięta beta jest dla nas okazją do przetestowania naszej nekromancji, bo wersja, której obecnie używamy, to tylko odarty z mięśni szkielet. Większość opcji jest celowo wyłączona, zarówno dlatego, że nie zamierzamy zdradzać tajników naszej kuchni, dopóki stołówka nie zacznie wydawać posiłków, jak i dlatego, że w ramach ciążącego na nas obowiązku zapewnienia bezpieczeństwa musimy poświęcić czas na zweryfikowanie stabilności naszych rozwiązań. Dlatego właśnie Vanguard posiada komponent sterownika, chociaż ze względu na kompatybilność, może się okazać, że nie będzie on wykorzystywany w każdej grze (lub w League of Legends), o ile nie okaże się to konieczne.

Zaglądaliśmy ostatnio do internetu, więc wiemy, że są pewne zastrzeżenia dotyczące prywatności związane ze stosowaniem sterowników, ale pozwólcie, że powiem to WPROST: jesteśmy zespołem ds. zapobiegania oszukiwaniu, przemycamy kody do klienta gry (z obu stron linii frontu) od niemal dekady i gdybyśmy chcieli wykraść jakieś tajemnice, to szczerze mówiąc, już byśmy je mieli. Wiem, że to raczej kiepski PR, ale nie jestem facetem od PR-u. Zbieramy tylko tyle informacji, ile potrzebujemy, aby trafnie ocenić, czy gracz oszukuje, i uwierzcie mi, że zupełnie nie interesuje nas nic poza tym. Sterownik jest wczytywany jako pierwszy i pozostaje wczytany, dzięki czemu łatwiej się nam zorientować, czy ktoś przy nim majstruje. Warto zaryzykować pewne tarcia, jeśli oznaczają one niedogodności dla oszustów, a wiemy to, ponieważ do nich należeliśmy.

10_theboys.jpg
Chroniliśmy was w LoL i dalej będziemy to robić. Jeśli nie chcecie uwierzyć mi na słowo, to lepiej spróbujcie „odzobaczyć” ten artykuł, ponieważ jestem najwyższym gremlinem z lewej strony.

Pozwólcie też, aby dla porządku sądowy stenotypista odnotował, że nie jest to jedyny sposób, w jaki zamierzamy chronić VALORANT: nasz kolega Arkem ciężko harował przy serwerowej technologii mgły wojny, wprowadzając do niej moduły pilnujące, aby klient gry nie miał dostępu do informacji, których nie potrzebuje. Przeczytajcie, jak próbujemy usunąć jasnowidzenie ze strzelanek z perspektywy pierwszej osoby poprzez tłumienie magicznej energii otoczenia.


Zakończenie

Zapewne będę teraz próbował unikać całego tego wiecznego rozgardiaszu, ale proszę polubcie, subskrybujcie i pamiętajcie o napiwku dla administratora bazy danych. Być może nie zawsze jest o nas głośno, ale zespół zapobiegania oszukiwaniu zawsze jest na posterunku i walczy o wasze prawo do uczciwej rywalizacji.

Poza tym zostaliśmy oficjalnie usunięci z portretów skórek „Riot” pojawiających się w nagłówkach, więc nie mogę ponownie fizycznie zamanifestować swojej obecności, dopóki nie wydamy kolejnych. Do zobaczenia.

Dodatek

1 Zawsze, gdy wypuszczamy nową technologię, jesteśmy bardzo ciekawi jej słabych stron. Jeśli poczujecie w sobie niedającą się zaspokoić potrzebę psucia różnych rzeczy, rozważcie udział w naszym programie hackerone na stanowisku Boskiego Anihilatora Różnych Aktów Niedozwolonych (BARAN).

2 Aby ukryć się przed spojrzeniem Wielkiego Oka, niektóre pakiety skryptów udają „działanie z zewnątrz”, które w rzeczywistości polega na tym, że nie odwołują się bezpośrednio do funkcji gry, tylko odczytują pamięć klienta (w systemie operacyjnym) i symulują sygnały urządzeń peryferyjnych. Dzięki temu oszukujący ma w efekcie do pokonania mniej zabezpieczeń niż w przypadku metod tradycyjnych (nie może w ten sposób modyfikować danych zabezpieczeń), bo po prostu omija najbardziej podstawowe metody wykrywania oszustów. Ma to też efekt uboczny w postaci obniżenia skuteczności oszukiwania ― głównie dlatego, że przesyłana jest informacja o wciśnięciu klawisza, a nie bezpośrednie polecenie rzucenia zaklęcia.

3 Nie ujawniam wybranych w poszczególnych regionach słów kluczowych, ponieważ istnieje grupa osób, które złośliwie wykorzystałyby je do zrujnowania moich pedantycznie przygotowanych tabel wskaźników. Analitycy danych nie nazwaliby tego „pozytywnym trenem”.

4 Nigdy czegoś takiego nie było.

5 Bezgłowy bot to program emulujący klienta gry. Idealny emulator wykorzystywałby niemal nieistotną ilość zasobów, ponieważ komunikowałby się bezpośrednio z serwerem gry. Nie musiałby niczego renderować, niczego przekazywać, generowałby tylko ruch w sieci. To byłoby poważne zagrożenie z ilościowego punktu widzenia, ponieważ autor takiego rozwiązania mógłby mieć jednocześnie nieograniczoną liczbę takich botów. Na szczęście dzięki patchowi 4.20 oraz powiązanej aktualizacji naszego protokołu sieciowego nie jesteśmy specjalnie podatni (a właściwie niemal całkowicie odporni) na działanie bezgłowych klientów.

6 To niesamowite, jak bardzo aplikacje botów są podobne do bakterii. Charakteryzuje je duża liczebność, zmienność i zdolność do szybkiego replikowania się. Za każdym razem, gdy opracujemy „kurację”, egzemplarze, które się prześlizgną, wchodzą na pierwsze miejsca w arsenale deweloperów, co skutkuje ich „reprodukowaniem się”. To coś takiego, jak złapanie odpornej na leki przeciwbakteryjne wysypki, która nie wie, co jest dla niej dobre, i sama nie usuwa się z waszego organizmu.