Rozrywka

Link z ostatniego wpisu o tym, jak AI rzekomo zabiło CTFy przypomniał mi o podobnym zjawisku sprzed lat. Zanim przejdę do sedna – faktycznie, wygląda na to, że scena CTF do czasu pojawienia się AI się zmieniła. Niedawno bawiliśmy się ze znajomymi i duże kilkadziesiąt zespołów rozwiązało wszystkie zadania. Nie mam większej próbki, na ile to powszechne, ale faktycznie, pierwszy raz widziałem taką sytuację. No i opisy autora wpisu, całe frameworki, agenty – robi wrażenie. Bo LLMy były wykorzystywane już wcześniej, ale raczej ręcznie, przynajmniej wg mojej wiedzy. Zresztą oddać trzeba, że większość CTFów nie dawała żadnych ograniczeń w tym zakresie.

Wracając do zjawiska, które mi się przypomniało. Wieki temu, w czasach szkoły średniej, kiedy mieliśmy za dużo czasu, z kolegami wpadliśmy na genialny pomysł. Kupimy magazyn z łamigłówkami, rozwiążemy wspólnie i wyślemy do losowania, aby ubiegać się o najwyższą nagrodę. Były bowiem różne nagrody, zależne od ilości rozwiązanych zadań. Najniższy próg można było dość łatwo osiągnąć, ale i nagrody były niezbyt wysokie. Natomiast w najwyższym i nagroda była – jak dla nas – wysoka, i trzeba było naprawdę pogłówkować. Magazynem była tytułowa Rozrywka, która zawierała krzyżówki, jolki, rebusy itp. Jednym słowem: łamigłówki. Z perspektywy czasu, był to trochę taki CTF, tylko niezwiązany z komputerami i IT security.

Dla ustalenia uwagi: dwutygodnik Rozrywka – bo o nim mowa – kupowało się w kiosku, rozwiązania wysyłało zwykłą pocztą, chyba z fragmentem numeru. Z tego co pamiętam – choć nie dam głowy, każdy z nas kupował i wysyłał swój egzemplarz. Sporo rzeczy rozwiązywaliśmy równolegle, bo synchronizacja była nie online, tylko telefonicznie, albo w szkole[1]. Inny świat.

Oczywiście nigdy nic nie wygraliśmy, a sam pomysł dość szybko upadł[2]. Pewnie nie doceniliśmy wpływu szczęścia w losowaniu i przeszacowaliśmy szanse, czyli ilość ludzi, którzy jednak rozwiążą wiele zadań i wyślą rozwiązania. W sumie dla emerytów mogło to być jedyne zajęcie i odpowiednik loterii. Posiadali przy tym duże doświadczenie w rozwiązywaniu… Teraz to oczywiste, wtedy o tym nie myśleliśmy.

Jednak pamiętam, że robiliśmy usprawnienia. Pewien typ zadań to działania matematyczne, gdzie część cyfr jest zastąpiona literami[3]. Jako zdolni programiści podjęliśmy próbę napisania programu, który rozwiąże takie zadania. Z tego co pamiętam, początkowo zastosowaliśmy podejście brute force, co na niezbyt szybkich w owych czasach komputerach skazane było na niepowodzenie – program działał zbyt wolno. Przynajmniej w wersji naiwnej, bo ostatecznie kolega napisał w Pascalu coś, co było wystarczająco szybkie.

Dziś mamy tak szybkie komputery, że nawet wersja naiwna wystarczy[4]. Mamy też narzędzia w stylu Z-solvera czy OR-tools, które są w stanie pomóc przy tego typu zagadkach. Wreszcie jest dostęp online i do algorytmów, i gotowych narzędzi. Kiedyś było więcej myślenia i samodzielnego kombinowania. Podobnie z krzyżówkami. Chyba próbowaliśmy korzystać z jakichś komputerowych słowników na potrzeby krzyżówek, ale raczej były niekompletne i trudno dostępne.

Zmierzam jednak do tego, że komputery, ze swoją mocą obliczeniową, całkowicie zmieniły krajobraz łamigłówkowy i „scenę”. Bo pojawiły się też programy do tworzenia krzyżówek, sudoku, łamigłówek. Zmieniły się i same krzyżówki. Kiedyś normą była „szachownica” białych pól na wpisywanie haseł i czarnych, pustych. W białych były numerki, a hasła były oddzielnie. Czasem miały dość długie opisy. Teraz dominują krzyżówki panoramiczne, gdzie pojedyncza kratka zawiera – oczywiście krótki – opis hasła, a same hasła krzyżują się praktycznie wszystkimi literami.

I tak sobie myślę, że komputery zrobiły łamigłówkom to, co dziś LLMy i agenty robią CTFom. Zupełnie zmieniają krajobraz i środowisko. Przygotowując ten wpis dowiedziałem się, skąd wzięła się nazwa zadań: jolka… Jeśli chodzi o wydawnictwo Rozrywka, to z Wikipedii dowiadujemy się, że w 2021 r. prawa do tytułów zostały sprzedane. Jednak sam dwutygodnik nadal istnieje. Czy w zbliżonej formie? Jestem prawie pewien, że nie. Ale może kupię, żeby zobaczyć jak ma się do tego, co pamiętam. No i mam nadzieję, że scena CTF jednak nie zniknie, nawet jeśli się zmieni.

Bo łamigłówki nadal funkcjonują, nawet w epoce komputerów. Czasem – dzięki nim. I dostarczają radości i zabawy. Wystarczy przypomnieć 711 wyrazów o optymalizacji.

[1] Hm, a może to były wakacje/ferie?
[2] Jeśli dobrze pamiętam, wysłaliśmy z 2-3 razy, czyli zabawa na jakiś miesiąc czy dwa.
[3] Nazywa się to kryptarytm.
[4] Nawet w Pythonie, bez PyPy. A gdyby kogoś kryptarytmy i rozwiązywanie bardziej zainteresowało, to polecam te dwa linki.

Cele pozorne

Czasami jest tak, że to, co wydaje się celem, wcale celem nie jest. Łatwo to przeoczyć, szczególnie, jeśli mamy do czynienia z punktacją czy ogólnie gamifikacją.

Ale jak to? O co chodzi? Może łatwiej będzie na przykładzie. Weźmy konkurs, kto zbierze najwięcej śmieci podczas oczyszczania lasu. Czy zwycięstwo w tym konkursie jest najważniejsze? Czy bardziej liczy się sam fakt sprzątania, a miejsce w konkursie jest tylko motywującym dodatkiem?

Inny przykład: zawody powiedzmy straży pożarnej. Czy tak naprawdę ważne jest uzyskane miejsce w zawodach, czy ważniejszy jest fakt przygotowywania się do nich drużyny, poprawy jej sprawności, przez co będzie skuteczniejsza w codziennych zadaniach? Tak, to trochę zagadnienie, czy ważniejsza jest droga, czy cel.

Punktacja czy też wynik może odzwierciedlać aktualne przygotowanie drużyny, szczególnie, jeśli organizator zawodów zadba, by były spójne w kolejnych latach. Wtedy walka o możliwie najlepszy wynik jest jednocześnie miarą rzeczywistego przygotowania na przestrzeni lat.

Jasne, skoro jest punktacja/miejsce, to łatwo zgubić szerszą perspektywę. Można się skupić na wyniku/miejscu. To nawet nie jest jakiś wielki błąd. Przynajmniej nie powinien być. Dobrze wyznaczony cel/punktacja powinny przecież motywować uczestników i wspomagać realizację faktycznych założeń. W powyższych przykładach: zebranie większej ilości śmieci czy zwiększenie sprawności drużyny.

Podobnie jest przy CTFach. Jasne, łatwo skupić się na uzyskaniu jak największej ilości punktów. Ale zasadniczym celem może być budowa drużyny AKA wspólne spędzanie czasu, nauka, zabawa czy po prostu gimnastyka umysłowa. Albo uzyskanie jak najlepszego wyniku, ale w określonej kategorii zadań. Bo trzeba pamiętać, że różni ludzie mają różną motywację do uczestnictwa w zawodach/konkursach. Dla niektórych miejsce w zawodach, medal, czy nagroda pieniężna są ważne. Albo nawet najważniejsze. Trochę jest tak, że każdy gra w swoją grę.

Jednak w momencie, gdy miejsce w zawodach zaczyna przysłaniać wszystko inne, warto sobie zapytać, czy naprawdę celem jest miejsce. Przykładem wypaczenia spowodowanego parciem na miejsce może być doping w sporcie. Jeśli mamy dwóch zawodników, jeden skorzysta z dopingu i zdobędzie złoty medal, drugi będzie czysty i zdobędzie srebro, to który lepiej realizował cel? Nie mówię nawet o przypadku, gdy doping zostanie wykryty. Tak zwyczajnie.

Jeśli ktoś spadnie w zawodach na trzecie miejsce na skutek powiedzmy błędu sędziego, choć powinien był wygrać, to – jeśli mówimy o zawodach straży pożarnej – czy jest to tak naprawdę wielki problem, czy lepiej odpuścić, bo tak naprawdę miejsce było tylko celem pozornym? Oczywiście, najlepiej, jeśli cele pozorne i rzeczywiste idą ze sobą w parze. Jednak nie zawsze tak jest. Czasem po prostu bunkrów nie ma

Adwentowy CTF

W telegraficznym skrócie: jest CTF przyjazny początkującym, w formie zabawy adwentowej. Czyli codziennie publikowane proste zadania. Jak piszą organizatorzy Konkurs jest beginner-friendly i rozpoczyna się 01.12.2023 o godzinie 10:00 i kończy 23.12.2023 o godzinie 23:59.

I tak, już się rozpoczął, ale nic nie przeszkadza, by dołączyć teraz – nadal można rozwiązywać zadania z poprzednich dni. Jeśli ktoś się zastanawiał nad rozpoczęciem zabawy w CTFy – wydaje mi się to idealną okazją. Póki co zadania są łatwe, z różnych kategorii, świetne by się oswoić.

Wszystkie zadania są po polsku, może to być świetna okazja by podrzucić nawet zainteresowanej IT młodzieży, która jeszcze się angielskiego uczy. Treść jest prosta, translator da radę nawet jeśli ktoś nie zna angielskiego.