Analiza napada na višekorisničke mrežne...

13
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA RAČUNALNA FORENZIKA SEMINAR Analiza napada na višekorisničke mrežne igre Marko Stanić Zagreb, siječanj, 2018

Transcript of Analiza napada na višekorisničke mrežne...

Page 1: Analiza napada na višekorisničke mrežne igrenevena.lss.hr/recordings/fer/predmeti/racfor/2018/seminari/mstanic/seminar.pdf · Mrežne igre s peer-to-peer arhitekturom su inherentno

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

RAČUNALNA FORENZIKA

SEMINAR

Analiza napada na višekorisničke

mrežne igre

Marko Stanić

Zagreb, siječanj, 2018

Page 2: Analiza napada na višekorisničke mrežne igrenevena.lss.hr/recordings/fer/predmeti/racfor/2018/seminari/mstanic/seminar.pdf · Mrežne igre s peer-to-peer arhitekturom su inherentno

Sadržaj

1. Uvod ................................................................................................................... 3

2. Višekorisnička mrežna igra ................................................................................. 4

2.1 Definicija višekorisničke mrežne igre............................................................ 4

2.2 Arhitektura višekorisničke mrežne igre ......................................................... 4

2.2.1 Peer-to-peer arhitektura ..................................................................................... 4

2.2.2 Client-server arhitektura ..................................................................................... 5

3. Analiza napada na višekorisničke mrežne igre .................................................... 7

3.1 Napadi na igre s peer-to-peer arhitekturom .................................................. 7

3.2 Napadi na igre s client-server arhitekturom s tankim klijentom ..................... 7

3.3 Napadi na igre s client-server arhitekturom s debelim klijentom ................... 7

3.3.1 Napadi bazirani na čitanju i pisanju sadržaja radne memorije .......................... 8

3.3.2 Napadi bazirani na mrežnom sučelju ................................................................. 9

3.3.3 Napadi bazirani na grafičkim driverima ............................................................ 10

4. Obrana od napada na višekorisničke mrežne igre............................................. 11

5. Zaključak ........................................................................................................... 12

6. Literatura ........................................................................................................... 13

Page 3: Analiza napada na višekorisničke mrežne igrenevena.lss.hr/recordings/fer/predmeti/racfor/2018/seminari/mstanic/seminar.pdf · Mrežne igre s peer-to-peer arhitekturom su inherentno

3

1. Uvod

Računalne igre danas zauzimaju velik udio tržišta računalnog softvera. Razvoj grafičkih kartica i hardvera općenito omogućio je izradu vrlo opširnih, detaljnih i vizualno impresivnih igara koje korisnik može igrati na svojem osobnom računalu.

Iako postoje mnoge igre namijenjene jednom igraču (singleplayer), razvojem interneta su popularne postale i višekorisničke mrežne igre (online multiplayer). Za razliku od igre za jednog igrača, višekorisnička mrežna igra omogućuje igraču da igra s drugim igračima bez potrebe da se nalaze međusobno blizu. (Slika 1.1).

Slika 1.1 Primjer višekorisničke mrežne igre (World of Warcraft)

Međutim, igranje preko interneta pruža određeni stupanj anonimnosti, što malicioznim igračima daje prostora za varanje ili narušavanje iskustva drugim igračima. Varanjem u mrežnoj igri napadač može sebi dodati prednost ili je oduzeti nekom od suigrača, ili potpuno eliminirati suigrača iz instance igre. [1]

Iz forenzičkog aspekta, napadi na mrežne računalne igre se razmatraju iz nekoliko razloga, od kojih su najbitniji:

• Mrežne igre su izvor prihoda

• Mrežne isu računalni softver

• Mrežne igre mogu predstavljati sredstvo za identifikaciju žrtve (3.1)

Suzbijanje malicioznih igrača je bitna zbog unaprijeđenja iskustva ostalih igrača – ako igrom dominiraju igrači koji varaju, legitimni igrači će izgubiti interes, čime će igra zaraditi lošu reputaciju, a samim time i smanjenje prodaje.

Budući da su mrežne igre računalni softver, neovlašteni pristup udaljenom računalu koje je dio igre može biti zakonski kažnjiv, čak i ako je samo u svrhu varanja. [2]

Iako se arhitektura mrežnih igara od svojeg začetka do danas znatno razvila, još uvijek postoje brojne ranjivosti koje napadači mogu relativno lako iskoristiti.

Page 4: Analiza napada na višekorisničke mrežne igrenevena.lss.hr/recordings/fer/predmeti/racfor/2018/seminari/mstanic/seminar.pdf · Mrežne igre s peer-to-peer arhitekturom su inherentno

4

2. Višekorisnička mrežna igra

2.1 Definicija višekorisničke mrežne igre

Višekorisnička mrežna igra je računalna igra u kojoj sudjeluje 2 ili više igrača koji ne igraju na istom računalu, već je njihova interakcija sa virtualnim svijetom igre ostvarana preko računalne mreže.

Prije nego što je internet postao popularan i pristupačan, mrežne igre su koristile razne oblike lokalnih mreža za prijenos informacija između igrača. Igrači bi često dolazili na tzv. LAN okupljanja, gdje bi umrežili svoja računala i igrali mrežne igre. Zahvaljujući brzini prijenosa podataka i niskoj vjerojatnosti pogreške na lokalnoj mreži, mrežna komponenta ovakvih igara je bila jednostavno ostvariva.

Pojavom interneta se pojavila mogućnost igranja preko većih udaljenosti. Međutim, kod interneta se pojavljuje nekoliko važnih problema:

• kašnjenje

• prekidi veze

• greške u prijenosu podataka

Proizvođači igara su zbog toga trebali usvojiti nove arhitekture mrežnih igara kako bi omogućili iskustvo koje bi prosječnom igraču bilo prihvatljivo.

2.2 Arhitektura višekorisničke mrežne igre

Arhitektura višekorisničke mrežne igre obično ovisi o vrsti (žanru) igre i mreži kojoj je namijenjena. Na izbor arhitekture utječu razni parametri, primjerice:

• dinamičnost igre

• broj igrača

• vrsta mreže

• otpornost na narušavanje integriteta (hakerske napade ili varanje)

Dvije najčešće korištene arhitekture su peer-to-peer i client-server.

2.2.1 Peer-to-peer arhitektura

Peer-to-peer arhitektura je bila popularan izbor za igre tijekom 90-ih godina 20. stoljeća. Svaki igrač na svojem računalu ima kopiju stanja igre, a drugim igračima šalje naredbe koje će se izvesti nad stanjem. Drugi igrači primaju te naredbe i izvode ih lokalno, nad svojim kopijama stanja igre.

Glavna prednost ove arhitekture je decentralizacija – igrači se mogu umrežiti izravno, bez potrebe za dodatnim računalom koje bi služilo kao posrednik za komunikaciju (Slika 2.1).

Page 5: Analiza napada na višekorisničke mrežne igrenevena.lss.hr/recordings/fer/predmeti/racfor/2018/seminari/mstanic/seminar.pdf · Mrežne igre s peer-to-peer arhitekturom su inherentno

5

Slika 2.1 Prikaz peer-to-peer arhitekture

Međutim, decentralizacija predstavlja i suštinski problem ovakve arhitekture – složenost programskog koda. Budući da svaki igrač na svojem računalu ima pohranjeno stanje igre koje se konstantno mijenja i može divergirati u odnosu na stanja igre drugih igrača, javlja se desinkronizacija i potrebno je obaviti korekciju – resetirati stanje svih igrača na stanje koje se smatra „istinitim“, a to je obično ono koje se nalazi kod većine igrača u mreži.

Poznati primjer ovakve mrežne igre je Age of Empires II: Age of Kings.

2.2.2 Client-server arhitektura

Client-server arhitektura je postala popularna krajem 90-ih godina 20. stoljeća, razvojem interneta. Svaki igrač vrši interakciju s drugim igračima preko posrednika – poslužitelja, čija zadaća je održavanje „istinitog“ stanja igre, primanja naredbi od igrača i replikacija naredbi drugim igračima.

Posrednik nije nužno zaseban stroj, već njegovu ulogu može preuzeti i neki od strojeva igrača. Međutim, u zahtjevnijim igrama se najčešće koristi kao zaseban stroj da ne pojavi usporavanje igre (Slika 2.2).

Slika 2.2 Prikaz client-server arhitekture

Client-server arhitektura je programski jednostavnija za ostvaranje i pogodnija za primjenu u mrežnim igrama koje koriste internet – strojevi igrača se ne moraju nalaziti međusobno, već je dovoljno da se spoje na poslužitelj.

Najčešće se koriste dvije varijante ove arhitekture:

• Client-server arhitektura s tankim klijentom

Page 6: Analiza napada na višekorisničke mrežne igrenevena.lss.hr/recordings/fer/predmeti/racfor/2018/seminari/mstanic/seminar.pdf · Mrežne igre s peer-to-peer arhitekturom su inherentno

6

• Client-server arhitektura s debelim klijentom

2.2.2.1 Client-server arhitektura s tankim klijentom

Client-server arhitektura s tankim klijentom (thin client, dumb terminal) se koristi u mrežnim igrama kod kojih nije bitna brzina, već sigurnost i otpornost na napade.

Kod ovakve arhitekture, isključivo poslužitelj je odgovoran za svu logiku igre, a klijenti igraču pružaju samo uvid u trenutno stanje igre i sučelje preko kojeg zadaje naredbe.

Primjeri igara koji koriste ovakvu arhitekturu: Defense of the Ancients 2 (Slika 2.3), League of Legends.

Slika 2.3 Defense of the Ancients 2

2.2.2.2 Client-server arhitektura s debelim klijentom

Client-server arhitektura s debelim klijentom (fat client) se koristi u mrežnim igrama kod kojih je brzina bitnija od sigurnosti.

Za razliku od tankog klijenta, debeli klijent preuzima odgovornost za dio logike igre koji je njemu relevantan (npr. kretanje lokalnog igrača). Nakon obavljanja logike lokalno, klijent šalje promjene poslužitelju, koji ih nakon toga replicira ostalim klijentima.

Primjeri igara koji koriste ovu arhitekturu: Quake III Arena (Slika 2.4), Unreal Tournament.

Slika 2.4 Quake III Arena

Page 7: Analiza napada na višekorisničke mrežne igrenevena.lss.hr/recordings/fer/predmeti/racfor/2018/seminari/mstanic/seminar.pdf · Mrežne igre s peer-to-peer arhitekturom su inherentno

7

3. Analiza napada na višekorisničke mrežne igre

3.1 Napadi na igre s peer-to-peer arhitekturom

Mrežne igre s peer-to-peer arhitekturom su inherentno ranjive na denial-of-service napade – budući da svaki igrač zna adresu računala svih drugih igrača u istoj instanci igre, moguće je bilo kojeg igrača zagušiti paketima, čime se žrtva praktički izbacuje iz igre. [1]

Također, zbog decentralizacije logike igre, moguće je varanje. Ako se koristi algoritam kod kojeg se istinitim stanjem igre smatra ono koje je pohranjeno kod više od polovice igrača, onda napadač može izmijeniti svoje lokalno stanje i dinamički dodati dovoljan broj čvorova u mrežu koji će jamčiti da je njegovo lokalno stanje istinito, čime će se ostatak mreže sinkronizirati na to stanje.

Osim napada na integritet igre, napadač može napasti i ostale programe ili operacijski sustav na računalu žrtve, budući da su mu poznate adrese svih igrača koji sudjeluju u igri.

Zbog složenosti mrežnog koda i sigurnosnih problema, ova arhitektura se danas sve manje primjenjuje.

3.2 Napadi na igre s client-server arhitekturom s tankim klijentom

Client-server arhitektura s tankim klijentom je vrlo otporna na narušavanje integriteta igre - klijenti ne znaju adrese ostalih klijenata pa je izravni napad na bilo kojeg suigrača praktički neizvediv.

Zahvaljujući centralizaciji logike igre, nije moguće varanje – klijenti ne sadrže logiku igre, već predstavljaju samo sučelje između igrača i stanja igre na poslužitelju. [3]

Međutim, centralizacija logike je i glavni nedostatak ovakve arhitekture – sigurnost i otpornost na napade ovisi o izvedbi poslužitelja. Ako poslužitelj postane kompromitiran, napadač može mijenjati stanje igre na poslužitelju, dohvaćati adrese ostalih igrača i vršiti izravne napade na njih ili jednostavno srušiti poslužitelj, čime igra završava za sve sudionike.

Ovakva arhitektura je također ranjiva na denial-of-service napad, budući da je poslužitelj jedino računalo kojeg napadač treba zagušiti da bi se postiglo rušenje igre.

3.3 Napadi na igre s client-server arhitekturom s debelim klijentom

Iako je client-server arhitektura s tankim klijentom smatrana najsigurnijom i najotpornijom na varanje, najveći problem je sporost pristupa – da bi igrač rezultat svojih naredbi vidio na vrijeme, one prvo moraju doći do poslužitelja,

Page 8: Analiza napada na višekorisničke mrežne igrenevena.lss.hr/recordings/fer/predmeti/racfor/2018/seminari/mstanic/seminar.pdf · Mrežne igre s peer-to-peer arhitekturom su inherentno

8

koji na njima mora obaviti validaciju i izvesti ih, te poslati njihove rezultate natrag klijentu. To je prihvatljivo ako se radi o igri koja nije vrlo dinamična. Međutim, neke igre su vrlo brze i bazirane na upotrebi ljudskih refleksa, što znači da nekoliko milisekundi kašnjenja može napraviti znatnu razliku u ishodu igre. [3]

Zbog toga je uvedena client-server arhitektura s debelim klijentom. Klijent postaje odgovoran za dio logike igre koji je njemu relevantan – najčešće upravljanje likom lokalnog igrača. Nakon što igra primi naredbe od lokalnog igrača, primjeni ih na lokalno stanje igre i rezultat pošalje poslužitelju, koji te promjene primjenjuje na svoje stanje igre i replicira ih ostalim klijentima.

Iz navedenog je vidljiv ključan problem ovog pristupa – teško je provjeriti jesu li promjene koje je klijent napravio zapravo u skladu s pravilima igre. Dakle, moguće je varanje na razne načine i detekcija napada je iznimno teško ostvariva.

3.3.1 Napadi bazirani na čitanju i pisanju sadržaja radne memorije

Napadi bazirani na mijenjanju sadržaja radne memorije iskorištavaju mogućnost operacijskog sustava da jednom procesu omogući pristup memoriji drugog procesa. Iako je ta mogućnost zamišljena kao alat za debugging, može se koristiti u razne maliciozne svrhe.

Primjeri alata kojima je moguće izvesti ovakve napade su CheatEngine i x64dbg.

3.3.1.1 Aimbot

Aimbot je vrsta iskorištavanja ranjivosti u client-server arhitekturi s debelim klijentom, najčešće kod pucačkih igara iz prvog lica (first-person shooter). [4]

U poštenom scenariju, da bi igrač onesposobio virtualni avatar drugog igrača, mora dovesti nišan u odgovarajući položaj i pritisnuti odgovarajuću tipku za pucanje (Slika 3.1). Nišanjenje je ključan dio reakcije jer je bazirano na iskustvu igrača, brzini reakcije i preciznosti.

Slika 3.1 Nišanjenje u Call of Duty: Modern Warfare

Page 9: Analiza napada na višekorisničke mrežne igrenevena.lss.hr/recordings/fer/predmeti/racfor/2018/seminari/mstanic/seminar.pdf · Mrežne igre s peer-to-peer arhitekturom su inherentno

9

Aimbot napad eliminira potrebu za ljudskom interakcijom kod nišanjenja tako da čitanjem podataka iz radne memorije dohvaća poziciju najbližeg neprijatelja i u memoriju zapisuje odgovarajući podatak koji će nišan trenutno pomaknuti prema njemu i ispaliti projektil.

3.3.1.2 Wallhack

Budući da se debeli klijent obično koristi u igrama u kojima je bitna brzina reakcije, poslužitelj će klijentu nekad poslati redundantne informacije nad kojima klijent može napraviti lokalno predviđanje. Primjerice, ako poslužitelj klijentu pošalje poziciju neprijatelja i njegovu brzinu, klijent će na temelju brzine izračunati predviđenu poziciju neprijatelja da ublaži efekt kašnjenja podataka preko mreže. Da bi predviđanje bilo točnije, poslužitelj nekad mora poslati klijentu i pozicije neprijatelja koji klijentu nisu vidljivi, npr. pozicije neprijatelja iza zidova. [4]

Wallhack iskorištava tu činjenicu na način da iz radne memorije pročita pozicije svih neprijatelja u igri (vidljivih i nevidljivih) i na zaslonu napadača ispiše neku vrstu markera koji označava gdje se nalazi koji neprijatelj (Slika 3.2).

Slika 3.2 Primjer wallhack napada u igri Counter-Strike: Global Offensive

3.3.2 Napadi bazirani na mrežnom sučelju

Napadi bazirani na mrežnom sučelju iskorištavaju nedostatke i ranjivosti mrežnog koda ili samog poslužitelja.

3.3.2.1 Umjetno kašnjenje (artificial lag)

Umjetno kašnjenje je namjerni prekid veze s poslužiteljem u svrhu postizanja isprekidanog kretanja igračevog avatara.

Debeli klijent tipično naredbe igrača sprema u lokalni spremnik i potom ih izvodi lokalno, a tek onda isprazni spremnik i šalje ga poslužitelju. Ako je veza između klijenta i poslužitelja prekinuta, klijent će i dalje spremati naredbe u lokalni spremnik i izvoditi ih lokalno, ali poslužitelj ih neće dobiti. Kada se veza ponovo uspostavi, klijent će poslati sadržaj cijelog spremnika poslužitelju, koji će na

Page 10: Analiza napada na višekorisničke mrežne igrenevena.lss.hr/recordings/fer/predmeti/racfor/2018/seminari/mstanic/seminar.pdf · Mrežne igre s peer-to-peer arhitekturom su inherentno

10

temelju vremenskih oznaka (timestamp) utvrditi da su se naredbe dogodile u prošlosti, pa će se jednostavno sinkronizirati na posljednje primljeno stanje (fast-forward) i to dojaviti ostalim klijentima, iz čije će perspektive kretanje napadača izgledati isprekidano.

3.3.2.2 Denial-of-service

Denial-of-service je najjednostavnija vrsta napada na poslužitelj. Napadač iskorištava ranjivosti u poslužitelju da ga privremeno onesposobi.

Najčešća metoda za izvedbu ovakvog napada je kontinuirano slanje paketa prema poslužitelju, nakon čega se poslužitelj može zagušiti i ne obrađivati zahtjeve legitimnih korisnika.

Za razliku od ostalih navedenih metoda, denial of service najčešće ne daje prednost napadaču, već prekida instancu igre za sve sudionike.

3.3.3 Napadi bazirani na grafičkim driverima

Napadi bazirani na grafičkim driverima iskorištavaju činjenicu da debeli klijent prima redundantne informacije (3.3.1.2). Za razliku od wallhack napada, ova vrsta napada ne čita sadržaj radne memorije igre već je primjenjena kod iscrtavanja (rendering), tj. na grafičkom procesoru. Umjesto iscrtavanja poligona na normalan način, u postavkama grafičkog drivera uključi se tzv. wireframe rendering, koji umjesto poligona iscrtava samo njihove rubove, čime je moguće vidjeti neprijatelje koji se nalaze iza zidova ako igra ne primjenjuje precizne culling metode. (Slika 3.3).

Ovakve napade je vrlo teško detektirati, čak i ako je na napadačevom računalu instaliran legalni softver za špijuniranje (4) jer većina takvih programa nema sposobnost prepoznavanja načina iscrtavanja na grafičkom procesoru.

Slika 3.3 Napad baziran na grafičkom driveru

Page 11: Analiza napada na višekorisničke mrežne igrenevena.lss.hr/recordings/fer/predmeti/racfor/2018/seminari/mstanic/seminar.pdf · Mrežne igre s peer-to-peer arhitekturom su inherentno

11

4. Obrana od napada na višekorisničke mrežne igre

Iako su napadi na višekorisničke mrežne igre dobro dokumentirani, od većine njih se veoma teško obraniti (iz perspektive proizvođača igre). Najveći problem predstavljaju igre bazirane na client-server arhitekturi s debelim klijentom jer je teško spriječiti igrača da manipulira radnom memorijom ili mrežnim sučeljem.

Veliki proizvođači igara taj problem ublažavaju instaliranjem legalnog programa za špijuniranje (spyware) na računalo korisnika, što korisnik prihvaća nakon što pročita tzv. end-user license agreement.

Jedan takav program je Warden Client, koji je dolazi uz igre tvrtke Blizzard Entertainment (World of Warcraft, Diablo III, Overwatch). Warden Client radi slično kao i antivirusni program - nakon što je određena igra pokrenuta, Warden Client poziva API operacijskog sustava da pročita sadržaj radne memorije i uspoređuje digitalne potpise pokrenutih programa s potpisima u online bazi poznatih programa za varanje. Ako se potpisi poklapaju, zaključuje da igrač vara i poduzima odgovarajuće mjere. [5]

Detekcija napada je samo dio problema – potrebno je na neki način i spriječiti napadača da ponovi napad. Neki od načina za postizanje toga su:

• IP ban – zabrana spajanja korisniku s određene IP adrese. Uglavnom nije efikasno jer je IP adresu lako lažirati.

• MAC ban – zabrana spajanja korisniku na osnovu MAC adrese hardvera. Lažiranje MAC adrese je teže, ali moguće.

• Suspenzija korisničkog računa (Slika 4.1) – ako se radi o igri koja koristi login poslužitelj. Ovo je najefikasnija metoda jer napadač za pristup igri mora ponovo kupiti legalni primjerak igre.

Slika 4.1 Suspenzija korisničkog računa u igri World of Warcraft

Page 12: Analiza napada na višekorisničke mrežne igrenevena.lss.hr/recordings/fer/predmeti/racfor/2018/seminari/mstanic/seminar.pdf · Mrežne igre s peer-to-peer arhitekturom su inherentno

12

5. Zaključak

Budući da je industrija višekorisničkih mrežnih igara danas postala vrlo uspješna grana razvoja softvera, u nju se ulažu velike količine novca. Međutim, igrači kao kupci svoje mišljenje o igri kao proizvodu ne formiraju samo na temelju zabave koju igra pruža nego i na otpornost igre na napade i varanje.

Razvojni studio koji daje veliku pažnju suzbijanju varanja u mrežnim igrama svojim igračima šalje jasnu poruku da mu je stalo do unaprijeđenja iskustva a ne samo kratkoročnog profita, što ga predstavlja u pozitivnom svjetlu na tržištu i pridonosi daljnjem razvoju.

Drugi važan faktor su tzv. eSports natjecanja – okupljanja na kojima se profesionalni timovi natječu u igranju mrežnih igara (Slika 5.1). Budući da sponzori ovakvih timova ulažu veliku količinu novca, veoma je važno da u igrama koje igraju nije moguće varati.

Slika 5.1 Primjer tima na eSports natjecanju

Iz aspekta sigurnosti, u nekim igrama (peer-to-peer) se javlja problem identifikacije igrača po IP adresi, što se može smatrati narušavanjem privatnosti i dovesti do drugih sigurnosnih problema, kao što je izravno napadanje igračevog stroja.

Iako ne postoji potpuna sigurnost od napada i varanja, moguće je ostvariti sigurnost do mjere da će varanje prosječnom napadaču postati praktički neisplativo.

Page 13: Analiza napada na višekorisničke mrežne igrenevena.lss.hr/recordings/fer/predmeti/racfor/2018/seminari/mstanic/seminar.pdf · Mrežne igre s peer-to-peer arhitekturom su inherentno

13

6. Literatura

[1] Baptiste Pretre, Attacks on Peer-to-Peer Networks, 2005.

[2] Kazneni zakon Republike Hrvatske, Članak 266: Neovlašteni pristup, 2011.

[3] Gabriel Gambetta, Client-Server Game Architecture, 2017.

[4] Jouni Smed, Timo Kaukoranta, Harri Hakonen, Aspects of Networking in Multiplayer Computer Games, 2002.

[5] hackmag, Deceiving Blizzard Warden, 2016.