Przeskocz do treści

Znajdź wirtualną flagę


Na przeczytanie potrzebujesz
4 minut(y).

Kto z nas nie lubi zagadek? Przechodzenie labiryntów, łamanie szyfrów, rozwiązywanie rebusów czy znajdowanie różnic między obrazkami to czynności, które wymagają cierpliwości, skupienia oraz staranności. Stawiają wyzwanie, rozwijają umiejętność analitycznego myślenia oraz dają poczucie, że odpowiednie podejście pozwala uporać się z problemem, który na pierwszy rzut oka może wydawać się nierozwiązywalny. Coraz częściej jednak świat łamigłówek wypierany jest przez magię oferowaną przez świat cyfrowy. A gdyby tak dało się połączyć ze sobą oba te światy?

Artykuł powstał w ramach współpracy z magazynem Programista Junior (https://programistajr.pl) i został opublikowany w numerze 01/2022

Dowiesz się

  • Co to są zadania i konkursy CTF.
  • Od czego rozpocząć naukę.
  • Gdzie znaleźć przykładowe zadania CTF.

Potrzebna wiedza

  • Dostęp do Internetu oraz dużo zapału i chęci do nauki.

Capture The Flag (CTF)

Na przełomie lat 90. i 2000 wielką popularnością cieszyły się gry typu FPS (ang. First Person Shooter), takie jak „Quake III Arena” czy „Unreal Tournament”. Wówczas zwrot CTF (ang. Capture The Flag) kojarzył się z trybem rozgrywki zespołowej, w którym żeby wygrać rundę, jedna drużyna musiała zdobyć flagę drużyny przeciwnej określoną liczbę razy. Należało ją wykraść z bazy przeciwnika i przetransportować do lokalizacji kontrolowanej przez własną drużynę.

Zwrot CTF to również określenie dla zawodów/zadań, w ramach których uczestnicy muszą wykazać się znajomością i praktycznymi umiejętnościami w obszarze programowania, kryptografii i bezpieczeństwa aplikacji internetowych, by wykorzystując błędy w oprogramowaniu, rozwiązując programistyczne problemy i szukając logicznych wytrychów, odnajdywać ukryte przez twórców „flagi”. Flaga to ukryty w cyfrowym zadaniu ciąg znaków o określonej długości stanowiących potwierdzenie, że zadanie zostało ukończone. Celem zawodów CTF jest popularyzacja wśród młodzieży i dorosłych zainteresowania tematyką cyberbezpieczeństwa. W trakcie konkursów uczestnicy w legalny sposób mogą zaspokoić ciekawość dotyczącą tego, jak to jest „być hackerem”, przełamywać zabezpieczenia i obchodzić czy atakować systemy.

Ilustracja 1. Przykład wartości flag występujących w konkursie Google CTF (https://capturetheflag.withgoogle.com). Wartość flag zapisana jest w popularnym formacie „CTF{ciag_znakow}” (źródło: https://www.youtube.com/hashtag/pasjainformatyki)
Ilustracja 1. Przykład wartości flag występujących w konkursie Google CTF (https://capturetheflag.withgoogle.com). Wartość flag zapisana jest w popularnym formacie „CTF{ciag_znakow}” (źródło: https://www.youtube.com/hashtag/pasjainformatyki)

Zadania CTF podzielone są na obszary tematyczne informujące użytkownika, jaka z dziedzin informatyki czy bezpieczeństwa informatycznego będzie kluczowa do rozwiązania danego zagadnienia. Mogą to być między innymi:

  • programowanie,
  • kryptografia,
  • bezpieczeństwo aplikacji webowych,
  • informatyka śledcza (ang computer forensics),
  • inżynieria wsteczna (ang. reverse engineering),
  • mieszanie wszystkich kategorii (ang. misc).

Zadania, oprócz przypisania do kategorii, zawierają również informacje o tym, ile punktów warta jest flaga im więcej, tym zadanie jest trudniejsze do ukończenia, składa się z większej ilości etapów, które należy przejść, żeby ją znaleźć. Częstą praktyką jest zawieranie w tytule lub opisie zadania drobnych podpowiedzi dla użytkownika (na przykład w postaci aluzji lub odwołań do zagadnień kulturowych) mogących naprowadzić grającego na właściwe tory lub w sprytny sposób poinformować go o tym, od której strony ugryźć cyfrową zagadkę.

Popularne platformy z zadaniami CTF to:

Ilustracja 2. Lista zadań CTF stworzona przez zespół Cert.pl w ramach eliminacji do wydarzenia European Cyber Security Challange
Ilustracja 2. Lista zadań CTF stworzona przez zespół Cert.pl w ramach eliminacji do wydarzenia European Cyber Security Challange

Ciekawostka

Instytut Wymiaru Sprawiedliwości organizuje ogólnopolski konkurs Capture The Flag „153+1”. Przedsięwzięcie jest skierowane do uczniów publicznych i niepublicznych szkół ponadpodstawowych, w szczególności techników oraz szkół branżowych o profilu informatycznym. Konkurs został objęty honorowym patronatem Ministra Edukacji Narodowej. Każdego roku zapisy do konkursu rozpoczynają się w październiku lub listopadzie.

Na zwycięzców konkursu czekają atrakcyjne nagrody pieniężne.
Więcej informacji na stronie https://153plus1.pl

Nie od razu Rzym zbudowano (Kraków zresztą też)

Nie przejmuj się, jeżeli po otworzeniu kilku przykładowych zadań CTF jesteś w kropce.
Jak w przypadku tradycyjnych zagadek i łamigłówek, nabycie biegłości w poruszaniu się meandrach zadań CTF wymaga praktyki i ćwiczeń połączonych z wiedzą z zakresu informatyki oraz przestawieniem się na nieszablonowy sposób myślenia i podejścia do stawianych przed nami wyzwań. Jeżeli dopiero zaczynasz swoją przygodę ze zbieraniem wirtualnych flag, zachęcam do zapoznania się z playlistą Capture The Flag z kanału Pasja Informatyki. Wiedzę możesz również zdobyć, analizując opis rozwiązań historycznych konkursów CTF (tak zwany writeup). Doskonałą bazą w tym zakresie jest blog lub kanał platformie YouTube, który prowadzi Gynvael Coldwind.

Dobre praktyki

Warto prowadzić i aktualizować notatki z zadań CTF, które rozwiązujemy (wykorzystane narzędzia, metody, napisany kod, przydatne artykuły typu writeup). Będą one przydatne podczas rozwiązywania kolejnych zadań, zwłaszcza w trakcie konkursu, w którym czas na ich rozwiązanie jest ograniczony.

Przed wyruszeniem w drogę należy zebrać drużynę

By doskonalić swoje umiejętności, zadania CTF można oczywiście rozwiązywać samemu w domowym zaciszu, jednak przystąpienie do konkursu CTF często wiąże się z przynależnością do zespołu. Głównym powodem takiego podejścia jest liczba zadań występująca w trakcie konkursu, mnogość zagadek z różnych obszarów bezpieczeństwa informatycznego oraz ograniczenie czasowe na znalezienie flagi.

Bycie częścią zespołu CTF to doskonała okazja do wymiany wiedzy z innymi osobami (zwłaszcza w obszarach, w których mamy mniej doświadczenia), poprawienie umiejętności pracy w grupie czy zdolności planowania i komunikacji. To również szansa na poznanie interesujących ludzi, którzy mają podobne do naszych zainteresowania.

Warto wiedzieć

W 2021 roku reprezentacja Polski (złożona z osób pomiędzy 14 a 25 rokiem życia) zajęła 2 miejsce w corocznym konkursie European Cyber Security Challenge.

Polskie zespoły biorące udział w międzynarodowych konkursach CTF (na przykład Dragon Sector czy P4) zajmują wysokie pozycje w międzynarodowym rankingu CTF. Zespół Dragon Sector zakończył rok 2019 (oraz 2018) na 1. miejscu, a zespół P4 na 4. (a w 2018 roku na 3.). W roku 2020 obie drużyny znalazły się na liście Top10 najlepszych zespołów.

Ilustracja 3. Polskie zespoły CTF w 2019 roku zakończyły rywalizację na wysokich pozycjach (źródło CTFTime.org)
Ilustracja 3. Polskie zespoły CTF w 2019 roku zakończyły rywalizację na wysokich pozycjach (źródło CTFTime.org)

Zapamiętaj

  • Capture The Flag (CTF) to rodzaj ćwiczenia/konkursu, w ramach którego uczestnik musi wykazać się znajomością i praktycznymi umiejętnościami w obszarze programowania, kryptografii i bezpieczeństwa internetowego. Rozwiązanie zadania zakończone jest uzyskaniem przez uczestnika tak zwanej „flagi”.
  • CTF writeup to szczegółowy opis rozwiązania zadania CTF zawierający informacje o sposobie podejścia do rozwiązania problemu oraz wykorzystanych technikach, które doprowadziły do odnalezienia flagi. Występują często w postaci wpisu na blogu.
  • Nabycie biegłości w rozwiązywaniu zadań CTF wymaga praktyki i ćwiczeń.
  • Zadania CTF można rozwiązywać samemu w domu, jednak przystąpienie do konkursu CTF często wiąże się z przynależnością do zespołu.

Ćwicz w domu

  • Spróbuj swoich sił, rozwiązując zadania z wykorzystaniem opisanych w artykule platform CTF.
  • Regularnie czytaj artykuły typu CTF writeup dla historycznych zadań.
  • Pogłębiaj swoją wiedzę z informatyki w obszarach, które cię interesują.
  • Wraz ze znajomymi podejmijcie wyzwanie i zapiszcie się do udziału w ogólnopolskim konkursie CTF „153+1” objętym honorowym patronatem Ministra Edukacji Narodowej.

Zapraszamy do zapoznania się z innymi artykułami przygotowanymi przez bezpieczny.blog dla magazynu Programista Junior:

Jest nam niezwykle miło, że dotarłeś aż tutaj! Jeżeli uważasz, że powyższy tekst jest wartościowy, będziemy wdzięczni za udostępnienie go dalej, bo być może dzięki temu trafi do innej osoby, która również potrzebuje go przeczytać.

Wiktor

Z zawodu bezpiecznik, szukający dziury w całym. Sympatyk dzielenia się wiedzą, maniak planszówek, miłośnik książek i filmów szpiegowskich. Prywatnie mąż i tata.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.