Geposted von spawnYzn,
Zum Abschluss der ersten Staffel von 99Behind the Scenes kommen diesmal die Programmierer zu Wort, die Teil des großen Katz-und-Maus-Spiels sind. Während wir letzte Woche mehr über die Arbeit eines Cheat-Programmierers erfuhren, betrachten wir heute die andere Seite der Medaille.


Einleitung - "I would prefer even to fail with honor than win by cheating"



Im letzten Teil beschäftigten wir uns mit der Sicht eines Cheatcoders auf sein Hobby. Diesmal wechseln wir quasi die Seiten und stellen den Anticheat-Programmierern einige Fragen. Das ständige Katz-und-Maus-Spiel erfordert nicht nur das endlose Reagieren auf neue Lücken, sondern auch Voraussicht um Funktionen umzusetzen, die möglichst verhindern sollen, dass bestimmte Programme das Spielvergnügen schmälern.

Dabei sind die Programmierer jedoch eingeschränkt in ihrer Arbeit. Nicht nur, dass das Programm auf allen Computern der Nutzer - in diesem Fall der Electronic Sports League - laufen soll, sondern neben Qualitätsstandards auch noch gesetzliche Regelungen berücksichtigen muss. Oft sind den Nutzern der technische Umfang, die Herausforderungen und Schwierigkeiten unbekannt. Ein Grund mehr, den Gesichtern hinter dem ESL Anticheat Team auf den Zahn zu fühlen und über ihre Arbeit sprechen zu lassen.




Interview mit dem ESL Anticheat Team



Bitte stellt euch doch kurz vor. Wer seid ihr und was macht ihr?


Hallo! Danke für die Gelegenheit, einige technische Gedanken über Lösungen bezüglich Anticheat zu teilen. Wir sind Thomas Zimmer (leitender Entwickler), Markus Stoller (Client Developer) und David Hommelsen (Produktmanager) des ESL Anticheat Teams.


Welche Hintergründe und Qualifikationen habt ihr, die es euch ermöglicht haben, dem Anticheat Coder Team beizutreten?


Markus: In der Vergangenheit habe ich überwiegend in der DRM-Abteilung verschiedener Unternehmen gearbeitet. Um 2009 herum habe ich an einer Code-Überprüfung für die ESL gearbeitet. In den darauffolgenden Monaten habe ich regelmäßig für sie gearbeitet, bis ich zwei Jahre später dem Team beigetreten bin.

Thomas: Ich habe vor zehn Jahren als (Web-)Developer bei der ESL angefangen, nachdem ich mein Bachelor-Studium abgeschlossen hatte. Zusätzlich habe ich auch viel für ESL Wire gearbeitet. Unmittelbar nachdem Markus zum Unternehmen kam, hatte ich meine Finger beim Vorschlag zu ESL Anticheat im Spiel. Nachdem ich buchstäblich jede einzelne Codezeile konvertiert habe - vom Windows-Quellcode bis hin zur Linux-Kompatiblität - hat es mich gepackt. Ich bin dem AC-Team beigetreten und die meiste Zeit an den Serverkomponenten gearbeitet. Dadurch, dass ich immer aufgeschlossen blieb und mehr darüber gelernt habe, wie die Client-/Kernel-Parts funktionieren, wurde ich nach zwei Jahren zum leitenden Entwickler des AC-Teams.


Was motiviert euch am meisten bei eurer Arbeit? Was treibt euch an?


Thomas: Ich nenne es einfach: "Mit technischen Lösungen die böse Jungs jagen". Das klingt ein wenig nerdy, aber am Ende ist es die selbe Motivation wie beim Ethical Hacking.

Markus: Ich mag Herausforderungen... sehr sogar. Während die meisten Cheats nicht wirklich speziell sind, gibt es hier und da einige, die von wirklich talentierten Jungs gemacht wurden. Ich mag es, sie zu übertreffen.

David: Ein starker Glaube an Fair Play und die konstante Herausforderung, die mit diesem Arbeitsfeld einhergeht.


Was sind ein paar der größeren oder gar die größten Herausforderungen in euren Jobs, von denen fast niemand weiß?


Thomas: Für mich persönlich ist es, die technischen Visionen im Blick zu behalten und natürlich die ständigen neuen Herausfoderungen, denen man jedes Mal begegnet, wenn ein neuer Cheat auftaucht.

David: Der stetige Kampf, zwischen Sicherheit und Performance einen guten Mittelweg zu finden. Gleiches gilt für die Unterstützung von Betriebssystemen.

Markus: Mein nahezu endloser Kampf mit dem Windows Memory Manager.


Wie hat sich eure Arbeit in den letzten Jahren verändert?


Markus: Wir arbeiten sehr viel mehr auf Stabilität und Performance hin, statt des ganzen Treibercode-Spielereien aus früheren Tagen.

Thomas: Ich würde sagen sehr viel. Softwareentwicklung an sich unterliegt ständigen Veränderungen und bringt viele neue Paradigmen (z.B. die Wiederbelebung der funktionalen Programmierung) und Tools (z.B. Lamda/Streaming Architecture) mit sich. Ich kann also nur empfehlen, immer offen zu bleiben und sich mit den neuen Technologien auseinander zu setzen.


Es ist immer wieder die Rede von Hacks, die zum Beispiel in Hardware integriert sind oder extern auf Smartphones laufen. Wie ernst muss man dieses Problem nehmen? Oder wird da übertrieben?


David: Es hat dazu geführt, dass es striktere Regeln bei vielen LAN-Events gibt und brachte sogar Anticheat Software auf die Events. Die ESL ist dazu verpflichtet, die Integrität unserer Wettbewerbe und eine faire Spielweise für profesionelle Spieler sicherzustellen. Deshalb nehmen wir jede potenzielle Bedrohung Ernst.


Valve hat bekanntgegeben an einer Mechanik zu arbeiten, die lernt, einige Cheats effizienter zu erkennen. Was ist eure Meinung dazu? Sind das künftige Anticheat Methoden und gibt es da eventuell noch andere vielversprechende Ideen und Lösungen, die sich von klassischen Anticheat Methoden unterscheiden?


Thomas: Ich denke, maschinelles Lernen ist der Weg, auf den alle Anticheat Lösungen hinauslaufen. Meiner Meinung nach sollte es Teil einer permanenten Feedbackschleife sein und als Empfehlungsgenerator fungieren, der die Anticheat Lösung verbessert. Solange man eine stabile und sichere Plattform hat, kann man mit ML-Daten weitere Verbesserungen und Lösungen finden.


Wie versucht ihr, den Cheatcodern einen Schritt voraus zu sein? Oder ist es eher eine reaktive Haltung, um Cheating zu bekämpfen?


Markus: Wir decken bereits viel durch Heuristiken ab, um unbekannte Cheats zu entdecken. Ähnlich wie es Antivirus-Programme tun.

Thomas: Wenn man die Cheat-Szene zusammenfasst, dann gibt es Muster, die die meisten Cheats verfolgen. Wenn man also nicht zu spezifisch mit seinen Scans ist, findet man aktiv neue und alte Cheats.

David: Wie bei vielen anderen Dingen auch, sind Informationen der Schlüssel. Es führt kein Weg daran vorbei, proaktiv zu sein.


Wie sieht euer technisches Standartprozedere aus, wenn ihr versucht, einem bestimmten Cheat oder einer bestimmten Methode vorzubeugen beziehungsweise zukünftig zu entdecken? (Rekonstruieren, Muster verfolgen und so weiter.)


Markus: Wir analysieren das Verhalten des Cheats, d.h. wo der Code liegt (Kernel oder User), was er tut und so weiter. Dann entscheiden wir individuell, wie wir dafür eine Erkennung schreiben.

Thomas: Das hängt hauptsächlich von der Umsetzung des Cheats ab. Natürlich ist Rekonstruktion immer ein guter Anfang, wenn man mehr über die Cheat selbst herausfinden will. Der Rest ist reine Mustererkennung.


Gibt es eine aktive Zusammenarbeit zwischen verschiedenen Anticheat Entwicklern? Vergleicht ihr Stichpunkte mit den Jungs von ESEA, EAC oder sogar Valve?


David: Wir arbeiten offensichtlich sehr eng mit den Leuten von ESEA zusammen. Es gibt aber auch einen Austausch mit anderen Spieleentwicklern.


Ist eine tiefere Systemdurchdringung notwendig, um effektiver zu werden?


Markus: Für die meisten Cheats nicht, aber für einige ist es definitiv notwendig, Zugang zum Kernel-Mode zu erlangen. In letzter Zeit gibt es Cheats, die Bootkits benutzen, die den Windows Patchguard umgehen, um damit Anfragen zu filtern. Das kann aus dem User-Mode heraus nicht entdeckt werden.


Wie stellt ihr sicher, dass Anticheat gut genug funktioniert, damit Spieler keine Probleme mit FPS-Drops und ähnlichen Dingen bekommen? Erfordert das, die Effektivität der Cheat-Erkennung zu reduzieren?


Markus: Wir optimieren unsere Scans immer so gut wie möglich.

Thomas: Am Ende ist es immer ein Kompromis zwischen Performance und Sicherheit. Wir verfolgen das Min-Max-Prinzip und versuchen Tätigkeiten, die sehr CPU-lastig sind, so oft wie möglich zu vermeiden.


Wie läuft die Qualitätssicherung ab, damit sichergestellt wird, niemanden zu Unrecht zu verurteilen?


Thomas: Es gibt einen Verbesserungsprozess. Wir haben die, die zu einhundert Prozent schuldig sind und bei denen es keinen manuellen Prozess braucht. Dann haben wir die Fälle, die du "zu Unrecht verurteilt" nennst. Unsere übliche Vorgehensweise ist es, in einem Vier-Augen-Prinzip zu einem gemeinsamen Schluss zu kommen (also entweder schuldig oder nicht). Diese Informationen nutzen wir, um sie in unser System zurückzuführen.


Gibt es irgendein Frühwarnsystem, welches verschiedene Situationen aufnimmt, welche zwar auffällig sind, aber keinen Ban auslösen, da kein Cheat erkannt wurde (z.B. das Overwatch-System)?


Thomas: Das ist Teil unserer Feedback-Schleife. Wir haben verschiedene Arten von Warnstufen.


Was denkt ihr über hardwareunterstützte Virtualisierung? Ist das die nächste große Bedrohnung, die das "Cheating gegen Anticheating" auf ein neues Level hebt?
(https://www.reddit.com/r/GlobalOffensive/comments/47dv61/insights_from_an_ex_anticheat_developer_on_the/)

Markus: Ja, das wird es auf ein neues Level heben. Seit ich für die ESL arbeite, habe ich soetwas noch nicht gesehen.

Thomas: Es wird zukünftig einige solcher Bedrohungen geben, aber im Moment ist der Markt noch nicht bereit dafür.


Wohin wird eurer Meinung nach das ganze Thema Cheating führen? Wird es ein endloser Kampf werden?


Markus: Ja, es ist eines dieser endlosen Katz-und-Maus-Spiele


Welche Änderungen und Verbesserungen (auf beiden Seiten) erwartet ihr? Sind einige technische Fortschritte besonders außergewöhnlich?


Thomas: Ich denke, dass die Virtualisierung über die letzten Jahre immer populärer geworden ist und das ermöglicht beiden Seiten sowohl Vor- als auch Nachteile. Ich persönlich denke, dass es weniger "große" Namen auf dem Markt geben wird, da die Anticheat Software immer besser wird und immer mehr Insider-Wissen benötigt.


Wenn du unbegrenzte finanzielle Mittel zur Verfügung hättest, was würdest du damit anstellen?


Thomas: Ich denke, mehr Geld in ein Edge-Node Netzwerk zu stecken, wäre eine gute Idee. Es würde die Idee eines Thin Clients sehr viel realistischer machen, sodass es am Ende fast unmöglich wäre, eine Cheat-Software anzuwenden.


Eine letzte Frage: Welche Tipps könnt ihr Fans geben, die eine ähnliche Karriere anstreben wie ihr?


Thomas: Ich denke nicht, dass es da einen ultimativen Weg gibt. Es hängt vor allem davon ab, in welchem Bereich man gerne arbeiten möchte. Für den Server-Bereich zum Beispiel, muss man entweder ein "Backend"- oder ein "Frontend"-Guru werden. Also, wenn man sich etwas mehr mit dem "Metall" verbunden fühlt, empfehle ich, sich Artikel und Blogs von größeren Unternehmen wie Amazon oder Facebook durchzulesen. Sie haben ziemlich gute Ideen, wie man Software für Millionen von Nutzern erstellen und aufwerten kann. Was mir selbst in der Vergangenheit sehr geholfen hat, ist, nach Mentoren in einem Unternehmen Ausschau zu halten und ihr Wissen so gut wie möglich aufzusaugen. Davon abgesehen habe noch einige andere Empfehlungen:

Bleibt aufgeschlossen (sich nicht gleich generell verschließen, aber auch nicht zu schnell anpassen)
Spielt mit neuen Technologien herum
Arbeitet bei Open-Source Projekten mit
Lest Blogs
Lest Tweets über Anwendungsfälle eurer Technologien und folgt den Tech-Leadern
Hinterfragt euch selbst, ob ihr in eurem Application Stack Dinge verbessern könnt







Hier endet der erste Teil der Interviewreihe. Ihr habt Interesse daran, wie Mapper, Manager und Caster arbeiten, oder vielleicht komplett andere Berufsfelder, die euch interessieren? Lasst es uns wissen und schreibt eure Vorschläge in die Kommentare!

Ein Teil der Serie verpasst?
99Behind the Scenes #9 - Der Cheatcoder
99Behind the Scenes #8 - Der Sales Operations Manager
99Behind the Scenes #7 - Der PR Manager
99Behind the Scenes #6 - Der Content Creator (Skins)
99Behind the Scenes #5 - Die Fotografin
99Behind the Scenes #4 - Der Observer
99Behind the Scenes #3 - Der Lead Referee
99Behind the Scenes #2 - Der Headadmin
99Behind the Scenes #1 - Der Anwalt

Kommentare