List od deweloperów: niedozwolone oprogramowanie

Witajcie!

W ramach naszych działań mających na celu informowanie Was o nowych rozwiązaniach przeciwdziałających oszustwom, przedstawiamy krótkie podsumowanie tego, czym zajmowaliśmy się przez kilka ostatnich miesięcy. Przede wszystkim: na froncie walki z oszustami dzieje się bardzo dużo. Nie możemy podać wszystkich szczegółów, bo mogłoby to zagrozić naszej pracy, ale poniżej znajdziecie omówienie kilku kategorii naszych działań wraz informacjami o bieżących postępach i dalszych planach.

  • Poprawa skuteczności zabezpieczeń technicznych
  • Usprawnienie rozwiązań do przeciwdziałania oszustwom
  • Usprawnienia wykrywania niedozwolonych programów
  • Usuwanie luk w systemie Steam
  • Nasilenie działań prawnych

Poprawa skuteczności zabezpieczeń technicznych

Od premiery PUBG spotkaliśmy się z wieloma różnymi rodzajami ataków przeprowadzanych przez programy do oszukiwania. Mimo że podjęliśmy konkretne działania i wprowadziliśmy wiele mechanizmów zabezpieczających w celu poprawy skuteczności i szybkości reagowania na ataki, jest to walka, która nigdy się nie skończy. Zacznijmy od ogólnego omówienia działania programów do oszukiwania oraz usprawnień technicznych wprowadzonych przez nas w związku z nimi.

Schemat działania programów do oszukiwania

  • Po uruchomieniu programu do oszukiwania (plik .exe) i gry (plik .exe) do pamięci RAM systemu są równocześnie ładowane odpowiednie dane.
  • Następuje aktywacja domyślnej ochrony w ramach procesu gry lub zewnętrznego rozwiązania do przeciwdziałania oszustwom:
    • Wstępna faza ochrony polega na blokowaniu dostępu innych procesów do procesu gry.
  • Proces programu do oszukiwania stara się obejść technologię ochrony zastosowaną w punkcie 2. i udaje mu się uzyskać dostęp do pamięci procesu gry:
    • Oznacza to, że może modyfikować informacje związane z grą w pamięci.
    • Najbardziej znane metody tego typu to DKOM, tworzenie atrap procesów (ang. process hollowing) oraz przechwytywanie tabeli SSDT.
  • Program do oszukiwania z dostępem do pamięci procesu gry może zbierać różne dane i modyfikować je lub kopiować w celu umożliwienia korzystania z funkcji, które nie są dostępne w grze. Najbardziej typowymi technikami tego rodzaju są wstrzykiwanie DLL i wstrzykiwanie kodu:
    • Wstrzykiwanie DLL: polega na wstrzyknięciu pliku DLL do określonego procesu. Wykorzystuje interfejs API LoadLibrary() systemu Windows.
    • Wstrzykiwanie kodu: polega na wstrzyknięciu kodu wykonywalnego do procesu docelowego. Wykorzystuje interfejs API CreateRemoteThread() systemu Windows.
  • Zawartość obszaru pamięci, do którego w ten sposób uzyskano dostęp, można swobodnie odczytywać lub fałszować/modyfikować, aby implementować funkcje, których nie ma w grze.

Wstrzykiwanie DLL to najstarsza i najpowszechniej używana metoda hakerska. Polega ona na siłowym umieszczeniu określonego pliku DLL w procesie gry. Jeśli atak się powiedzie, wstrzyknięty kod DLL będzie traktowany jako zaufany, podobnie jak oryginalny kod gry. Pozwoli to na modyfikowanie procesu gry zgodnie z wolą hakera poprzez wpinanie się do danych i przechwytywanie ich przy użyciu kodu DLL.

Blokowanie ataków wykorzystujących wstrzykiwanie DLL jest jednym z głównych zadań zespołu ds. przeciwdziałania oszustwom. Na wczesnym etapie rozwoju PUBG występowały też błędy zgodności polegające na tym, że takie programy jak Steam czy Discord były błędnie rozpoznawane jako próby wstrzyknięcia plików DLL lub zawierały pliki DLL rozpoznawane jako szkodliwy kod.

Kolejnym rodzajem ataków są ataki z użyciem sterowników jądra. Sterownik jądra to plik potrzebny do komunikacji między składnikami sprzętu, który generuje proces działający z pewnym poziomem uprawnień. Ponieważ sterownik jądra może obchodzić większość rozwiązań do przeciwdziałania oszustwom i działa z poziomem uprawnień wyższym niż uprawnienia zwykłego użytkownika, jest dużo trudniejszy do wykrycia.

Ponadto mimo że system operacyjny Windows blokuje wewnętrznie nieautoryzowane sterowniki jądra, tego rodzaju sterowniki są często traktowane jako legalne, ponieważ wykorzystują luki w zabezpieczeniach oraz nielegalnie pozyskane certyfikaty.

Przed atakami tego typu można się bronić, korzystając z metody używanej do blokowania wstrzyknięć DLL, ale nie byłoby to zbyt skuteczne, ponieważ cały czas pojawiają się nowe luki w systemie Windows, a większość rozwiązań do przeciwdziałania oszustwom wykorzystuje metody zbliżone do tych stosowanych przez szkodliwy kod, co oznacza, że trudno byłoby je od siebie odróżnić. Dlatego też zespół ds. przeciwdziałania oszustwom skupia się obecnie na ochronie obszaru pamięci, który jest celem ataków hakerskich, stosując szyfrowanie pozwalające na skuteczne odpieranie ataków z użyciem sterowników jądra. Staramy się też objąć podobną ochroną kolejne zagrożone obszary.

Zajmujemy się także usprawnianiem mechanizmów reagowania, na przykład poprzez szyfrowanie protokołu komunikacji między klientem a serwerem lub ponowną weryfikację wartości wynikowej na kliencie, aby utrzymać przewagę w walce z programami hakerskimi.

Usprawnienie rozwiązań do przeciwdziałania oszustwom

Oprócz opisanych wyżej zabezpieczeń technicznych, w grze PUBG stosowane są także zewnętrzne rozwiązania do przeciwdziałania oszustwom, chroniące obszar procesu gry. Jak informowaliśmy wcześniej w naszych notatkach prasowych itd., obecnie wykorzystujemy dwa rozwiązania tego typu: BattlEye i Uncheater. Chronią one obszar procesu gry, jednocześnie wykrywając próby obejścia mechanizmów zabezpieczających.

Poza wymienionymi rozwiązaniami do przeciwdziałania oszustwom stosujemy także technikę wykorzystującą uczenie maszynowe, która analizuje wzorce zachowań graczy i ma wbudowany system wykrywający nietypowe wzorce lub działania pochodzące od hakerów i zakłócające normalne działanie gry. W trakcie budowania tych systemów współpracowaliśmy z wieloma doświadczonymi producentami rozwiązań do przeciwdziałania oszustwom oraz najwyższej klasy ekspertami technicznymi, aby poprawić zabezpieczenia naszej gry.

Zamierzamy współpracować z tymi i kolejnymi firmami, badając nowe techniki ataków i rozwijając technologię, która zapewni przed nimi ochronę.

Usprawnienia wykrywania niedozwolonych programów

Mimo zastosowania różnych systemów zabezpieczeń, praktycznie niemożliwe jest zablokowanie wszystkich niedozwolonych programów. W przypadku programów próbujących obejść nasze zabezpieczenia obecnie koncentrujemy się na wykrywaniu, czy są one używane podczas grania, i na ich natychmiastowym blokowaniu.

Zespół ds. przeciwdziałania oszustwom codziennie analizuje średnio ok. 3 TB logów z gry, 60 rodzajów logów oszustw oraz ponad 10 mln zgłoszeń. W tym morzu danych znajdujemy użytkowników o nietypowych wzorcach zachowania i po weryfikacji banujemy ich konta. Ponadto okresowo aktualizujemy wzorce działania niedozwolonych programów, aby wykryć próby korzystania ze zmodyfikowanych wersji wcześniej zablokowanych programów.

Jednocześnie staramy się udoskonalić metody udostępniania względnych aktualizacji naszym użytkownikom. Przykładem jest system informowania o zgłoszeniach wprowadzony w aktualizacji z 23 sierpnia. Od czasu jego wprowadzenia do użytkowników wysłano ponad 100 mln zgłoszeń. 83% użytkowników, którzy otrzymali wiele zgłoszeń w ciągu jednej sesji, zostało trwale zbanowanych, co świadczy o tym, że zgłoszenia są traktowane poważnie i pomagają w zapewnieniu uczciwej rozgrywki.

Tygodniowe zgłoszenia z okresu od 23 sierpnia do 30 listopada

Od 19 listopada zaczęliśmy stosować bany sprzętowe. W przypadku tej metody banowania należy zachować szczególną ostrożność, ponieważ łatwo kogoś niesłusznie ukarać — dotyczy to szczególnie kafejek internetowych i komputerów publicznych. Dlatego też podczas identyfikacji komputerów do zbanowania działamy bardzo uważnie. Po zastosowaniu bana sprzętowego na ekranie pojawia się poniższy komunikat, który informuje, że nie można już grać w PUBG na danym sprzęcie. Oprócz stosowania banów sprzętowych zaczęliśmy też banować myszy z makrami. Planujemy objąć tą akcją wszystkie urządzenia z makrami, aby uniemożliwić korzystanie z nieuczciwej przewagi, jaką zapewniają.

Powadomienie bana sprzętowego


Powadomienie bana myszy z makrami

Obecnie ponad 100 osób z naszego zespołu przez całą dobę monitoruje miejsca sprzedające niedozwolone udogodnienia tego typu (witryny, komunikatory, Discord itd.) na całym świecie. Uważnie monitorujemy też społeczności wymieniające się informacjami na temat programów hakerskich, aby jak najszybciej wykrywać i blokować wszystkie elementy mogące zagrozić bezpieczeństwu w PUBG.

Głównym celem jest podejmowanie działań prewencyjnych, które mają uniemożliwić hakerom aktywność w grze.

Niedawno dodaliśmy też funkcję komunikatów systemowych wysyłającą graczom w czasie rzeczywistym powiadomienia o tym, że ktoś w ramach tej samej sesji został zbanowany. W przypadku wykrycia nietypowego wzorca zachowania podczas rozgrywki lub stwierdzenia, że dany użytkownik stosuje techniki hakerskie, wskazane konto zostanie zbanowane bez przerywania gry, a informacja o banie pojawi się na kanale informacji o zabójstwach.

Usuwanie luk w systemie Steam

Oprócz usprawnienia metod stosowanych w samej grze, pomogliśmy też w eliminacji luk w platformach zewnętrznych. Jak wiecie, PUBG korzysta z platformy Steam. Zdarzały się przypadki wykorzystywania słabych punktów tej platformy do uzyskiwania niedozwolonych korzyści, dlatego we współpracy z zespołem Steam usunęliśmy luki w zabezpieczeniach i teraz gracze używający programów hakerskich są karani tak jak wszyscy inni. Oto kilka przykładów:

  • Wykorzystanie słabego punktu w funkcji Udostępnianie gier Steam w celu obejścia ograniczeń platformy Steam i PUBG:
    • Jeśli konto, na którym zakupiono PUBG, udostępniło grę innemu kontu, na którym nie zakupiono gry, na tym drugim koncie nie można już grać w naszą grę.
  • Modyfikowanie czasu gry na platformie Steam, aby spełnić wymagania zwrotu kosztów i uzyskać zwrot kosztów, mimo grania przez długi czas (czyli granie za darmo):
    • We współpracy z firmą Valve (właścicielem Steam) usprawniliśmy metodę obliczania czasu gry w PUBG oraz dopracowaliśmy wymagania zwrotu kosztów, aby nie dopuścić do takich sytuacji.
  • Wykorzystywanie struktury platformy Steam i faktu, że serwery beta i testowe znajdują się w innych środowiskach, do uzyskania dostępu do serwera testowego i stosowania technik hakerskich przy użyciu konta, które zostało zbanowane na serwerze głównym:
    • Zmieniliśmy działanie systemu, tak aby rekordy banów były sprawdzane na wszystkich serwerach. Rekordy banów są teraz wspólne dla serwera głównego, serwera testowego i pozostałych serwerów, więc gracz zbanowany na jednym serwerze nie ma dostępu do innych serwerów.

Stale usprawniamy nasz system, ściśle współpracując z zespołem Steam i bezwzględnie zwalczając przypadki wykorzystywania luk w zabezpieczeniach.

Nasilenie działań prawnych

Blokowanie programów hakerskich utrudniających uczciwą rozgrywkę jest istotne, ale głównym celem działań powinny być także osoby tworzące, promujące i sprzedające te programy. Aby powstrzymać rozpowszechnianie programów hakerskich, współpracujemy z organami ścigania i oddziałami w innych krajach, podejmując zdecydowane działania prawne. Poniżej znajduje się podsumowanie działań podjętych w roku 2018 w regionie CN. Były one możliwe dzięki bliskiej współpracy z firmą Tencent.

  • Lianyungang, Chiny (styczeń 2018 r.): aresztowano 41 osób
  • Huai’an, Chiny (luty 2018 r.): aresztowano 3 osoby
  • Xiangyang, Chiny (luty 2018 r.): aresztowano 11 osób
  • Nankin, Chiny (kwiecień 2018 r.): aresztowano 141 osób
  • Huai’an, Chiny (kwiecień 2018 r.): aresztowano 1 osobę
  • Daejeon, Korea Południowa (sierpień 2018 r.): aresztowano 6 osób
  • Wenzhou, Chiny (wrzesień 2018 r.): aresztowano 1 osobę
  • Tangshan, Chiny (październik 2018 r.): aresztowano 3 osoby
  • Wenzhou, Chiny (październik 2018 r.): aresztowano 34 osoby
  • Yangcheon, Korea Południowa (październik 2018 r.): aresztowano 11 osób

Poza działaniami opisanymi powyżej, pomagamy obecnie koreańskiej policji, kancelariom prawnym i agencjom ochrony praw autorskich w śledztwach dotyczących sprzedaży programów hakerskich oraz w namierzaniu twórców takich programów. Będziemy informować o wynikach tych śledztw.

Podsumowanie

W każdej sesji PUBG 100 użytkowników próbuje przechylić szalę zwycięstwa na swoją stronę, a nie jest to łatwe. Zdajemy sobie sprawę, że nawet jedna osoba stosująca nieuczciwe techniki może zepsuć zabawę wielu graczom, dlatego musimy zapewnić wyższy poziom zabezpieczeń niż w przypadku innych gier.

Będziemy nadal z poświęceniem realizować to zadanie i mimo że przedstawione tu działania to dopiero początek większej kampanii, nie zaprzestaniemy prac nad nowymi technologiami przeciwdziałania oszustwom w celu wyeliminowania jak największej liczby programów hakerskich i ukarania ich twórców.

Dziękujemy wam wszystkim za cierpliwość i okazane zaufanie. Zrobimy wszystko, aby go nie zawieść. Dziękujemy za nieustające wsparcie i kolejne zgłoszenia.

Dziękujemy za uwagę,
Zespół ds. przeciwdziałania oszustwom w PUBG

Dyskusja o artykule
Udostępnij ten artykuł