Capture The Flag (CTF) Hacking - spielend zum Profi-Hacker
CTF-Hacking-Wettbewerbe haben nichts mit Paintball – oder Shooter-Spielen zu tun, aber sie sind sehr gut dazu geeignet, um Hacking-Techniken und -Fertigkeiten zu trainieren und Konzepte der IT-Sicherheit zu verinnerlichen. Dieser Artikel erklärt die Grundlagen und erleichtert den Einstieg in die Szene. Das Capture-The-Flag-Prinzip, kurz: CTF, ist uralt und wird traditionell im freien Gelände gespielt. Es geht darum, die gegnerische Fahne zu erobern (bzw. zu entwenden) und zur eigenen Basis zu bringen. CTF wird in Kinderspielen, bei Paintball-Events, in militärischen Manöver-Übungen und in Computerspielen als Spielmodus verwendet. Insbesondere bei Multiplayer-Egoshootern erfreut sich CTF großer Beliebtheit. Doch auch in der Cybersecurity ist CTF ein beliebtes Spielprinzip, das insbesondere durch die Hackerkonferenz DEFCON bekannt wurde.
Was bedeutet CTF in der Cybersecurity?
Typischerweise besteht das Ziel der CTF-Herausforderung darin, sich in ein Computersystem zu hacken und die “Flagge” zu finden. Die Flagge ist typischerweise eine Textdatei (z.B. flag.txt) mit einem Hash oder einfach eine Zeichenkette dieser Art: “ctf{ch4ll3ng3}”. Alternativ können manchmal die Herausforderungen als Binärdatei heruntergeladen werden und die Flagge kann mittels Reverse Engineering oder kryptographischen Lösungen gefunden werden. Der Inhalt der Flagge steht entweder für sich und kann an die Spielleitung übermittelt werden oder er enthält einen Hinweis auf das nächste Ziel.
Aufbau von CTF-Umgebungen
Meistens besteht ein CTF aus einer Sammlung von einzelnen Herausforderungen in Form von extra präparierten Computersystemen oder ganzen Netzwerken. Die Umgebung basiert in der Regel auf virtuellen Maschinen. Diese können über eine Plattform im Internet via VPN zugänglich gemacht werden oder stehen als Download zur Verfügung. Die präparierten Systeme weisen eine oder mehrere spezifische Schwachstellen auf, die es auszunutzen gilt oder es muss ein technisches Rätsel gelöst werden, um die Flagge zu finden. Sie variieren in ihrem Schwierigkeitsgrad und benötigen manchmal sehr spezielle und tiefgreifende technologische Kenntnisse. Viele CTF-Systeme wirken auf den ersten Blick wie ganz normale, Linux- oder Windows-basierte Umgebung und scheinen zunächst gar keine Schwachstellen aufzuweisen. Die eigentliche Herausforderung besteht daher immer wieder darin, die eigenen Grenzen zu überwinden und noch mehr über die jeweilige Technologie zu lernen, die einem zu Beginn häufig unknackbar erscheint. Hier gilt: Nicht aufgeben! CTF spricht den Spieltrieb an und weckt dadurch den Ehrgeiz. Findet man eine Flagge, ist das gleich ein doppeltes Erfolgserlebnis, da man nicht nur die Herausforderung gemeistert, sondern gleichzeitig eine Menge neuer Fähigkeiten erlernt hat. Dieses neue Wissen kann bereits im IT-Security Alltag sehr hilfreich sein, spätestens aber bei der nächsten CTF-Herausforderung.
CTF-Wettbewerbe
Auch wenn das erfolgreiche Knacken eines präparierten Systems an sich oft schon eine befriedigende Herausforderung darstellt, so besteht der wahre Kern von CTFs im Messen mit anderen Hackern. Ein CTF-Wettbewerb hat von Natur aus einen sehr kompetitiven Charakter und verläuft meistens nur in einem festgelegten Zeitrahmen. Innerhalb dieser Zeit ist der CTF-Wettbewerb aktiv und die gefundenen Flaggen können eingereicht werden. Für eine eingereichte Flagge wird die Herausforderung als ‘gelöst’ markiert und der Teilnehmer des Wettbewerbs, bzw. sein Team, bekommen entsprechend des Schwierigkeitsgrades Punkte zugeschrieben. Je schwieriger die Herausforderung zu knacken ist, desto mehr Punkte erhalten die Teilnehmenden. Die Teilnehmenden oder das Team, das nach Ablauf der Zeit am meisten Punkte gesammelt hat, gewinnt dementsprechend den Wettbewerb. Auf einigen großen Konferenzen mit dem Fokus auf IT-Sicherheit gibt es auch sogenannte “Attack and Defence”- CTFs. Dabei treten die teilnehmenden Teams unmittelbar gegeneinander an und müssen versuchen, gleichzeitig ihre Systeme gegen die jeweils anderen Teams abzusichern und Schwachstellen in den gegnerischen Systemen auszunutzen, um die Flaggen zu stehlen. Das ist eine sehr anspruchsvolle Form eines CTF-Wettbewerbs, wo dann häufig auch nur ausgewählte Teams mit entsprechenden Fähigkeiten teilnehmen. Es gibt unzählige Anbieter von CTF-Hacking-Wettbewerben. Zu den wichtigen zählen unter anderem:
Diverse Organisationen veranstalten CTFs teilweise jährlich, so dass eine Suchmaschinen-Suche nach “ctf hacking” viele Ergebnisse zutage fördert.
Standalone-CTFs und Hackits
Weitaus häufiger noch als CTFs im eigentlichen Sinne sind die vielen Lernplattformen im Internet, die sich das Konzept des CTF zunutze machen. Viele kleine Herausforderungen können direkt online gelöst oder heruntergeladen werden. Sie werden auch als Hackit bezeichnet. Ähnlich wie bei den CTF-Wettbewerben können in vielen Fällen auch Punkte gesammelt werden. Oft gibt es eine Rangliste, die die Teilnehmer motivieren soll. Das kann auf manche Teilnehmenden allerdings auch abschreckend wirken, da sich Einsteiger nicht immer diesem Druck aussetzen wollen. Andererseits wird niemand gezwungen, sich in die Ranglisten einzutragen. Wertvolle Quellen für Hacking- und CTF-Herausforderungen sind https://www.hackthebox.eu/ und https://www.root-me.org/?lang=de. Viele Plattformen stellen präparierte virtuelle Maschinen (VMs) zum Download bereit. Sie stehen für sich (standalone) und haben meist keinen Bezug zu anderen Systemen oder Herausforderungen. Jede präparierte VM enthält eine oder mehrere Schwachstellen, deren Exploit es ermöglicht, das System zu kompromittieren und an die Flagge zu gelangen. Die Flagge kann dann oft auf der jeweiligen Website eingetragen werden, so dass der Benutzer erkennbar die Herausforderung gemeistert hat. In diesem Szenario gibt es meistens kein Zeitlimit und keine Gegner, die dem Hacker zu Leibe rücken. Für viele CTF-VMs gibt es Anleitungen, die den Einstieg erleichtern. Daher ist auch dies ein geeigneter Weg für Einsteiger, um sich mit der Welt der CTFs vertraut zu machen und die Hacking-Fähigkeiten zu trainieren. Websites, die präparierte VMs anbieten, sind z.B. https://vulnhub.com sowie https://pentesterlab.com.
Was bringen mir CTFs?
Lässt man den kompetitiven Aspekt erstmal außen vor, stellen CTFs eine enorme Vielfalt an Möglichkeiten dar, das eigene Wissen über die vielen verschiedenen Domänen der IT-Sicherheit und des Hackings zu trainieren. Oft werden CTFs mit Puzzles oder Rätseln verglichen, und die Entwickler der Herausforderungen betonen immer wieder, dass es hauptsächlich darum gehen soll, Spaß zu haben und neue Skills zu lernen. CTFs sind so gesehen eine fantastische Ressource, um die Fähigkeiten und Tools im Bereich des Hackings zu testen und weiterzuentwickeln. Jede gelöste Challenge ist ein persönlicher Erfolg, da man weitergekämpft und nicht vor der Aufgabe kapituliert hat. Auch wenn es manchmal lange dauert, stellt sich früher oder später gleichzeitig ein technischer und fachlicher Erfolg ein, da man die eigenen Lösungsansätze und Strategien hinterfragt und weiterentwickelt hat. Allerdings sollte man darauf aufpassen, dass die Erwartungen an ein CTF nicht mit den Erwartungen an die alltägliche Praxis in der IT-Sicherheitsbranche vermischt werden. CTFs sind eine Art Lern-Spiel, während richtige Pentester beispielsweise nicht das vorrangige Ziel haben durch eine einzige Lücke eine Root-Shell zu bekommen, sondern ein System auf alle möglichen und erdenklichen Schwachstellen zu testen – auch wenn sie dabei oft ähnliche Techniken anwenden. Somit sind CTFs eine wertvolle Ergänzung im Pentesting-Training, aber nicht der allumfassende Weg zum perfekten Hacker.