Pierwszy Capture The Flag - okładka

Mój pierwszy Capture The Flag

Opublikowano Kategorie Przemyślenia, SecurityCzas czytania 5min

Niedawno, w ramach projektu na studia, miałem okazję brać udział w swoim pierwszym konkursie Capture The Flag (CTF). Z uwagi na to, że było to niesamowicie ciekawe doświadczenie, postanowiłem podzielić się w tym wpisie swoimi przemyśleniami i spostrzeżeniami, jakie mam co do konkursów Capture The Flag.

Czym jest Capture The Flag

Capture The Flag, w skrócie CTF, to konkurs z dziedziny cyberbezpieczeństwa. Zadaniem uczestników jest znalezienie tzw. flag w podatnym systemie, wykorzystując znalezione luki bezpieczeństwa. Konkursy Capture The Flag mogą być przeprowadzane indywidualnie lub w grupach. Można spotkać się zarówno z wariantem konkursu, gdzie wszyscy uczestnicy są atakującymi, jak i z wariantem gdzie część uczestników jest atakującymi, a część ma za zadanie obronić się przed atakiem. Do udziału w konkursach Capture The Flag oprócz wiedzy z dziedziny cyberbezpieczeństwa, bardzo istotna jest też wiedza programistyczna oraz wiedza z zakresu technik pozyskiwania informacji (OSINT — Open Source Intelligence).

Pierwszy konkurs Capture The Flag

Konkurs, w którym miałem okazję wziąć udział, wykorzystywał aplikację OWASP Juice Shop. Aplikacja ta posiada sporą ilość celowo pozostawionych luk bezpieczeństwa. Może ona być wykorzystana do szlifowania umiejętności znajdowania podatności i ich późniejszego wykorzystania. Oprócz podatności znanych z dokumentu OWASP Top Ten, znajdują się tam także inne, równie ciekawe luki bezpieczeństwa. Poziom trudności zadań jest bardzo szeroki. Każda podatność umiejscowiona jest na skali trudności w zakresie od 1 do 6. Zadania z oceną 1 są dosyć proste i do ich wykonania potrzebna jest minimalna wiedza. Natomiast zadania z oceną 6 stanowią już spore wyzwanie. Oprócz skali trudności, zadania są podzielone ze względu na rodzaj wykorzystanej podatności.

Uruchomienie aplikacji jest proste i można to zrobić na kilka sposobów. W README projektu można znaleźć instrukcje dotyczące uruchomienia aplikacji zarówno lokalnie, jak i przy wykorzystaniu np. Heroku czy AWS EC2.

Po uruchomieniu aplikacji można zacząć szukać podatności. Lista podatności, wraz z już odnalezionymi dostępna jest na podstronie /score-board. Niemniej jednak nie zachęcam, aby zaglądać tam na samym początku, z uwagi na to, że część informacji tam zawartych ułatwia wykonanie części zadań oraz może zepsuć zabawę.

Przydatne narzędzia

Do znalezienia i wykorzystania sporej części podatności niezbędne okażą się dodatkowe narzędzia.

Klient HTTP

Pierwszym narzędziem, które Ci się przyda, jest klient HTTP. W artykule Zapytania HTTP – zestaw przydatnych narzędzi przedstawiłem kilka popularnych klientów HTTP, które możesz wykorzystać. Możesz również wykonywać zapytania z poziomu kodu, co może Ci dać nieco większe możliwości niż graficzny klient HTTP. W ramach uczestnictwa w Capture The Flag wykorzystałem Postmana. Umożliwia on szybkie i wygodne zdefiniowanie użytej metody HTTP, nagłówków, parametrów body zapytania oraz parametrów query co było dla mnie wystarczające.

Burp

Burp to narzędzie do analizy komunikacji z wykorzystaniem protokołu HTTP. Dzięki wykorzystaniu mechanizmu proxy atakujący jest w stanie przechwytywać, czytać i modyfikować zapytania HTTP. Oprócz tego, Burp pozwala na zautomatyzowanie pewnych czynności. Do tego celu można wykorzystać mechanizm repeatera. Obszerny poradnik do pracy z Burpem możesz znaleźć na blogu Sekuraka oraz w książce Sekuraka Bezpieczeństwo Aplikacji Webowych.

Wyszukiwarka

Może to brzmieć jak coś oczywistego, ale wyszukiwarka to będzie Twój najlepszy przyjaciel w konkursach Capture The Flag. Przede wszystkim, nie ma chyba takiej osoby, która wiedziałaby o cyberbezpieczeństwie wszystko. Dodatkowy research w trakcie testowania aplikacji jest czymś pewnym.

Po drugie, część zadań zakłada przeprowadzenie researchu z wykorzystaniem OSINT. Niektóre zadania wymagają wiedzy o użytkownikach posiadających konta w systemie oraz o autorze aplikacji.

Po trzecie, do ukończenia niektórych zadań potrzebne będą dodatkowe narzędzia oprócz Postmana czy Burpa i konieczne będzie ich znalezienie. Jednym z takich narzędzi jest jwt.io, które przyda Ci się do pracy z JSON Web Tokenami.

Podsumowanie

Konkursy Capture The Flag to świetny sposób na zwiększenie swoich umiejętności z zakresu cyberbezpieczeństwa, a oprócz tego fajna zabawa i produktywne spędzenie czasu. Branie udziału w konkursach niesie również szereg innych korzyści, które opisałem w artykule opisującym korzyści z uczestnictwa w konkursach. Z uwagi na zróżnicowany poziom trudności zadań, uważam, że OWASP Juice Shop jest bardzo dobrym wyborem zarówno na pierwszy Capture The Flag, jak i okazja do rozwoju dla nieco bardziej zaawansowanych. Zachęcam do uruchomienia projektu i spróbowania swoich sił. Zachęcam też do podzielenia się swoim wynikiem oraz napotkanymi trudnościami w komentarzu!

Materiały dodatkowe i źródła

Dominik Szczepaniak

Zawodowo Senior Software Engineer w CKSource. Prywatnie bloger, fan włoskiej kuchni, miłośnik jazdy na rowerze i treningu siłowego.

Inne wpisy, które mogą Cię zainteresować

Zapisz się na mailing i odbierz e-booka

Odbierz darmowy egzemplarz e-booka 106 Pytań Rekrutacyjnych Junior JavaScript Developer i realnie zwiększ swoje szanse na rozmowie rekrutacyjnej! Będziesz też otrzymywać wartościowe treści i powiadomienia o nowych wpisach na skrzynkę e-mail.

Subscribe
Notify of
guest

0 komentarzy
Most Voted
Newest Oldest
Inline Feedbacks
View all comments