/dev/null: Οδηγός Πυρήνα για Καταπολέμηση Απάτης

Προστατεύουμε κάποια από τα επερχόμενα παιχνίδια της Riot με νέα συστήματα καταπολέμησης απάτης.

Προειδοποίηση: Αυτό το άρθρο περιέχει πολλές τεχνικές λεπτομέρειες και σχετίζεται με μέσα καταπολέμησης της απάτης που δεν θα χρησιμοποιηθούν μόνο στο League of Legends. Η αναβάθμιση προστασίας που αναφέρεται στο άρθρο θα εφαρμοστεί πρώτα σε άλλα παιχνίδια (όπως το Project A), πριν από το LoL.

Σε μια συλλογική μελέτη, η οποία χρειάστηκε περίπου 8 έτη και 20 εκατομμύρια δολάρια ΗΠΑ σε κρατική χρηματοδότηση, κορυφαίοι επιστήμονες του χώρου τοποθέτησαν χρονικά την εφεύρεση της απάτης κάπου μεταξύ της γέννησης της ζωής στη Γη και της 20ής Νοεμβρίου 1985. Αν και τα ακριβή αίτια της δημιουργίας της παραμένουν ακαθόριστα, ένα γεγονός θεωρείται αδιαμφισβήτητο: Πάντοτε υπάρχουν παίκτες που προσπαθούν να κλέψουν.

Τις τελευταίες δύο δεκαετίες, η ανάπτυξη των μεθόδων εξαπάτησης και της τεχνολογίας αποτροπής τους έχει ξεφύγει από τα όρια της έντιμης μάχης για τον έλεγχο της μνήμης της εφαρμογής του παιχνιδιού και έχει επεκταθεί σε προσπάθειες τροποποίησης του λειτουργικού συστήματος ή ακόμα και του υλικού του υπολογιστή του παίκτη που θέλει να κλέψει. Αυτές οι τεχνικές μπορούν να υποβαθμίσουν τη δυνατότητα των μέτρων προστασίας να ανακτούν χρήσιμα δεδομένα και αυτό γίνεται ακόμη χειρότερο, αν τα μέτρα καταπολέμησης απάτης είναι αναγκασμένα να εκτελούνται σε λειτουργία χρήστη.

Τι είναι η λειτουργία χρήστη;

Ο όρος περιγράφει ένα επίπεδο δικαιωμάτων εντός του λειτουργικού συστήματος και αντιστοιχεί συγκεκριμένα στην πιο περιοριστική βαθμίδα εκτέλεσης λογισμικού. Το πρόγραμμα περιήγησης, το νόμιμο αντίτυπο του WinRAR και τα αγαπημένα παιχνίδια σας εκτελούνται όλα σε λειτουργία χρήστη. Οι εφαρμογές που λειτουργούν σε αυτό το επίπεδο δεν μπορούν να «δουν» τι γίνεται πέρα από τα όρια λειτουργίας τους και ο κώδικάς τους πρέπει να χρησιμοποιεί τα εγγενή API του λειτουργικού συστήματος για την ανάγνωση ή την εγγραφή δεδομένων στη μνήμη, τα οποία δεν σχετίζονται με τη διεργασία της συγκεκριμένης εφαρμογής. Ή, για να τα εξηγήσουμε όλα αυτά με μια κάπως πιο κατανοητή μεταφορά: όλοι εμείς που καθόμαστε στο εστιατόριο (δηλαδή στη λειτουργία χρήστη) πρέπει να ρωτήσουμε στην κουζίνα (δηλαδή τα Microsoft Windows) για να μας πουν τι έχουν βάλει στα γιουβαρλάκια μας (δηλαδή το League of Legends).

For_Loc_Kernel_Drivers-gre.jpg

Αν έχετε πετύχει ποτέ κάποιον εξυπνάκια που σας είπε «lol, το cheat μου δεν μπορεί να εντοπιστεί στον δακτύλιο 0», εννοούσε ακριβώς αυτό. Και μετά, φυσικά, έφαγε το ban του κι ησύχασε.




Τα τελευταία χρόνια, οι δημιουργοί των μεθόδων εξαπάτησης (ή cheats) έχουν αρχίσει να στοχεύουν σε τρωτά ή αλλοιωμένα σημεία της επαλήθευσης ψηφιακής υπογραφής των Windows για να εκτελέσουν τις εφαρμογές τους (ή, έστω, μέρη τους) σε επίπεδο πυρήνα. Το πρόβλημα εδώ προκύπτει από το γεγονός ότι ο κώδικας που εκτελείται σε λειτουργία πυρήνα μπορεί να δεσμεύσει τις ίδιες κλήσεις συστήματος που χρησιμοποιούμε για να ανακτήσουμε τα δεδομένα μας, τροποποιώντας τα αποτελέσματα ώστε να φαίνονται κανονικά με τρόπο που ίσως δυσκολεύει τον εντοπισμό τους. Έχουμε εντοπίσει ακόμα και ειδικευμένο υλικό (hardware) που κάνει χρήση DMA1 για την ανάγνωση και την επεξεργασία της μνήμης συστήματος. Πρόκειται για έναν παράγοντα που, αν εκτελεστεί ιδανικά, θα μπορούσε να γίνει μη ανιχνεύσιμος2 από τη λειτουργία χρήστη.

Βέβαια, αν και οι περισσότεροι παίκτες δεν θα αλλοίωναν ηθελημένα την εγκατάσταση των Windows τους για λόγους ασφαλείας, δεν είναι λίγοι αυτοί που παραχωρούν πρόθυμα τον υπολογιστή τους στο botnet κάποιου αγνώστου για να μπορέσουν να κάνουν orbwalking. Άρα, υπάρχουν ήδη πάρα πολλά cheats που εκτελούνται σε υψηλότερο επίπεδο δικαιωμάτων από τα μέτρα καταπολέμησης απάτης μας. Για να το φέρουμε κι αυτό στα μέτρα της μεταφοράς μας με το εστιατόριο: όταν ρωτάμε τον σεφ αν τα υλικά της σούπας μας είναι βιολογικά, πετάγεται κάποιος τυχαίος τύπος με κουκούλα, του λέει «άσ' το σε μένα» και μετά μας απαντάει: «όλα πόπα, δικέ μου, μιλάμε για πρώτο πράμα».

1Ο όρος DMA εδώ σημαίνει «Direct Memory Access» (άμεση πρόσβαση στη μνήμη) και πρόκειται για μια μέθοδο που επιτρέπει σε μια συσκευή να έχει, όπως μάλλον θα μαντέψατε, άμεση πρόσβαση στη μνήμη του συστήματος, χωρίς να παίρνει την έγκριση του API των Windows. Οι πιο προηγμένες κοινότητες που ασχολούνται με την απάτη στα παιχνίδια έχουν χρησιμοποιήσει αυτήν τη μέθοδο για να αναμεταδώσουν τα περιεχόμενα της μνήμης σε έναν άλλον υπολογιστή, όπου μπορούν να τα επεξεργαστούν και να μάθουν πράγματα που δεν θα έπρεπε να γνωρίζουν.

2Χωρίς πλάκα, αναγκαστήκαμε να προσλάβουμε τον τύπο που σχεδίασε αυτήν την τεχνική για να μπορέσουμε να την εντοπίσουμε.


Γιατί μου τα λέτε όλα αυτά;

Παραδοσιακά, η αγαπημένη σας ομάδα καταπολέμησης απάτης ήταν αναγκασμένη να παίξει αυτό το παιχνίδι από το επίπεδο του χρήστη, με αποτέλεσμα να δώσουμε στους cheaters το πλεονέκτημα που χρειάζονται για να συνεχίσουν να μας απασχολούν. Προς το παρόν, μπορούμε να συνεχίσουμε να παλεύουμε με μειονέκτημα, κυρίως επειδή έχουμε δύο άλλα πλεονεκτήματα: σταθερή μισθοδοσία και δεν μας βάζει η μαμά μας να πέσουμε νωρίς για ύπνο. Όμως, όσο και αν μας αρέσει η ιδέα να πολεμάμε με εφήβους στο συναρπαστικό πεδίο μάχης της ασφάλειας εφαρμογών, ετοιμαζόμαστε να περάσουμε σε μια νέα εποχή με πολλά παιχνίδια, όπου οι ανάγκες σε χρόνο και ύπνο θα πολλαπλασιαστούν σε βαθμό που ίσως να μην μπορέσουμε να αντεπεξέλθουμε.

Για αυτόν τον λόγο, ορισμένοι από τους μελλοντικούς τίτλους της Riot θα προστατεύονται με πρόγραμμα οδήγησης πυρήνα (kernel driver).

Δηλαδή πρέπει να πανικοβληθώ;

Όχι, δεν πρέπει να πανικοβληθείτε, και οι λόγοι είναι πολλοί!

  1. Πρώτα από όλα, το άγχος μπορεί να προκαλέσει τριχόπτωση και δεν θέλουμε να κρυώσει το κεφαλάκι σας.
  2. Αυτή η μέθοδος δεν πρόκειται να μας δώσει δυνατότητες παρακολούθησης που δεν είχαμε ήδη. Αν μας ένοιαζε τόσο πολύ η μυστική συνταγή της γιαγιάς σας για τέλειο ψητό κατσαρόλας, θα μπορούσαμε εύκολα να τη βρούμε σε λειτουργία χρήστη και να την πουλήσουμε μετά στο The Food Network . Σκοπός αυτής της αναβάθμισης είναι η παρακολούθηση της ακεραιότητας του συστήματος (για να γνωρίζουμε ότι τα δεδομένα μας είναι αξιόπιστα), ώστε να δυσκολέψουμε το έργο όσων προσπαθούν να τροποποιήσουν τα παιχνίδια μας. Με αυτόν τον τρόπο, δεν θα μπορείτε πλέον να κατηγορείτε τα aimbot για τη δική σας αποτυχία.
  3. Δεν πρόκειται καν για κάποιο καινούριο σύστημα. Υπάρχουν πολλά συστήματα καταπολέμησης απάτης τρίτων κατασκευαστών —όπως τα EasyAntiCheat, Battleye και Xigncode3— που προστατεύουν ήδη τα αγαπημένα σας παιχνίδια πρώτης γραμμής με kernel driver. Αυτό που κάνουμε στην ουσία είναι να βάλουμε τον δικό μας μάγειρα στην κουζίνα των Windows, ώστε να μπορούμε να εμπιστευόμαστε την απάντησή τους όταν τα ρωτάμε «τι κιμάς είναι αυτός»;
  4. Με αυτόν τον τρόπο θα είναι πολύ πιο δύσκολο να δημιουργηθούν cheats που θα αποφεύγουν τον εντοπισμό, ώστε να προστατέψουμε εσάς από την πιθανή χρήση aimbot, εμάς από το Reddit και τους cheaters από τους εαυτούς τους.

Πιστεύουμε ότι η καταπολέμηση απάτης είναι ένα από τα πιο σημαντικά στοιχεία ενός online παιχνιδιού με πολλούς παίκτες και θέλουμε να είστε βέβαιοι ότι παίζετε σε περιβάλλον όπου δεν χωράει αμφισβήτηση για τις ικανότητες του αντιπάλου σας. Δεν υπάρχει αντιβίωση ενάντια στον πυρετό του cheat, αλλά θα συνεχίσουμε να κάνουμε ό,τι περνάει από το χέρι μας ώστε να έχετε τις καλύτερες δυνατόν αγωνιστικές εμπειρίες.

Αυτά από μένα προς το παρόν, αλλά θα επιστρέψω περίπου σε τέσσερα μεγαδευτερόλεπτα για να σας πω περισσότερα σχετικά με τα bots στο ARAM και να συνεχίσω το βραβευμένο μας θεατρικό «Διώχνουμε τους κλέφτες από το League ».