Dragon Sector

Dragon Sector AMA (wykop.pl, 8.1.2015 12:00 - 9.1.2015 10:00)

Sesja AMA została zakończona - dziękujemy za aktywny udział, pytania i komentarze, oraz zachęcamy do udziału w CTFach :)

Jesteśmy polskim zespołem biorącym udział w rozgrywkach CTF (security/hacking). Sezon 2014 skończyliśmy na pierwszym miejscu w klasyfikacji generalnej prowadzonej przez serwis CTFTime.org. Zapraszamy do zadawania pytań!

  • Link do AMA: http://www.wykop.pl/link/2325106/dragon-sector-ama/
  • Na pytania odpowiadamy z kont: @dragonsector (konto wspólne), @gynvael (kapitan), @lympho, @keidii
  • Początek: 8.1.2015 12:00 (UTC+1)
  • Koniec: 9.1.2015 10:00 (UTC+1)
  • Ponieważ jest to AMA, na które będzie odpowiadać 13 osób, możliwe jest, że na niektóre pytania pojawi się kilka odpowiedzi (czasem sprzecznych ze sobą).

CTF? Co to?

CTF (ang. Capture The Flag) w kontekście security to rodzaj drużynowych zawodów/turniejów testujących umiejętności z dziedzin powiązanych z security/hackingiem.

W ciągu roku rozgrywanych jest około 40-50 CTFów i bierze w nich udział od 100 do 2000 drużyn z całego świata. Większość CTFów rozgrywana jest przez internet, niektóre (oraz większość rund finałowych) odbywają się w konkretnym miejscu na świecie, zazwyczaj przy okazji konferencji.

Istnieją dwa główne typy CTFów: Jeopardy oraz Attack-Defense, o których więcej napisaliśmy poniżej. W obu przypadkach punkty zdobywa się za zdobywanie flag (krótkich, trudnych do przewidzenia ciągów tekstowych; przykładowe flagi: reversing_is_not_that_hard!, 1a97f624cc74e4944350c04f5ae1fe8d, whitespaceProgrammingIsHard).

O ile zawody nie są ze sobą powiązane (z wyjątkiem rund kwalifikacyjnych/finałów oraz rozdawanych czasami dzikich kart), to istnieje klasyfikacja generalna prowadzona przez serwis CTFTime.org.

Note: Ponieważ padło wyżej słowo "hacking", zaznaczymy od razu, że CTFy są w pełni legalne, ponieważ wszystkie zadania i serwery zostały stworzone i skonfigurowane na potrzeby turnieju, a co za tym idzie są własnością organizatorów, którzy uprawniają drużyny do próby przełamania zabezpieczeń i dostępu do informacji zawartych na serwerach (drużyny muszą oczywiście zaakceptować stosowne regulaminy/zasady/etc).

Jeopardy

Drużyny muszą rozwiązać od 5 do 50 zadań (zazwyczaj praktycznych do bólu) przygotowanych przez organizatorów. Zadania najczęściej podzielone są na kategorie oraz punktowane od 100 (bardzo proste) do 500 (bardzo złożone) punktów. Wygrywa drużyna która zdobędzie najwięcej punktów. CTFy w stylu jeopardy najczęściej trwają od 24h do 48h.

Przykładowe opisy zadań Jeopardy:

Typowe kategorie:

  • pwn / exploitation - Organizatorzy dostarczają plik wykonywalny serwisu sieciowego oraz adres IP/port na którym dany serwis jest uruchomiony. Zadanie drużyn polega na analizie (przy użyciu inżynierii wstecznej) pliku wykonywalnego, znalezieniu błędów w implementacji oraz eksploitacji jednego z nich (tj. wykorzystanie błędu w celu uruchomienia własnego kodu na serwerze organizatorów, a więc de facto włamanie się na serwer przez serwis), a następnie wykradzenie flagi. Warto zaznaczyć, że platformą nie zawsze jest x86/Linux; często ma się do czynienia z innymi procesorami / systemami.
  • web - Organizatorzy podają adres serwisu WWW. Zadaniem drużyn jest znalezienie podatności w serwisie oraz najczęściej uzyskanie dostępu do części przeznaczonej dla administratora, bazy danych, lub systemu plików serwera, gdzie ukryta jest flaga.
  • crypto - Organizatorzy dostarczają szyfrogram (tj. wiadomość zaszyfrowaną nieznanym szyfrem), czasami wraz z kodem źródłowym, który został użyty do jej zaszyfrowania. Zadaniem drużyn jest odszyfrowanie wiadomości.
  • stegano - Organizatorzy dostarczają plik (najczęściej graficzny lub dźwiękowy), w którym została ukryta w nieznany sposób wiadomość. Zadaniem drużyn jest odnalezienie i odczytanie wiadomości.
  • re - Reverse-engineering / inżynieria wsteczna. Organizator dostarcza plik wykonywalny, który (zazwyczaj w bardzo zagmatwany sposób) weryfikuje poprawność wprowadzonego przez użytkownika hasła. Celem graczy jest analiza (poprzez inżynierie wsteczną) pliku wykonywalnego, uzyskanie kodu/algorytmu weryfikującego hasło, zrozumienie go, a następnie odwrócenie jego działania w taki sposób, by dostać poprawne hasło (flagę).
  • forensics - Informatyka śledcza. Organizator udostępnia obraz dysku lub zrzut pamięci RAM komputera. Celem drużyn jest znalezienie flagi ukrytej na dysku. W niektórych przypadkach fragmenty ważnych struktur na dysku są uszkodzone.
  • programming - Zadanie algorytmiczne lub programistyczne (podobne do tych z olimpiad informatycznych, choć zazwyczaj prostsze).
  • inne - Czasem pojawiają się inne kategorie, np. trivia (coś na kształt testu wiedzy), recon (znalezienie w otchłani internetu ukrytych przez organizatorów flag), shellcoding (stworzenie shellcode'u spełniającego bardzo wyśrubowane kryteria), log analysis (analiza logów serwera), signal analisys (analiza sygnału analogowego, np. radiowego), networking (zabawa z protokołami sieciowymi lub analiza nagrań ruchu w sieci), itp.

Attack-Defense

Każda drużyna otrzymuje identyczny serwer na którym stoi 5-8 serwisów; na serwerze są flagi których należy bronić (szukać błędów i łatać aplikacje), a przy okazji atakować serwery innych drużyn i wykradać z nich flagi (tj. tworzyć exploity na znalezione błędy i używać ich do wykradania flag). Wygrywa drużyna, która zdobędzie najwięcej flag, najmniej straci, a przy okazji jej serwisy będą działać najbardziej stabilnie.

Attack-Defense jest znacznie bardziej dynamiczny w porównaniu do Jeopardy. Zazwyczaj rozgrywki online trwają 8-12h, natomiast offline 12-36h.

Patrz także:

Dragon Sector? Co to?

Dragon Sector jest polskim zespołem CTF założonym w lutym 2013 przez 3 osoby (gynvael, j00ru, adami). Obecnie mamy 13 aktywnych graczy (patrz http://dragonsector.pl). Bierzemy aktywny udział w rozgrywkach CTF, zarówno przez internet jak i w zawodach/finałach offline. W klasyfikacji generalnej prowadzonej przez CTFTime.org sezon 2013 skończylismy na trzecim miejscu, zaś sezon 2014 na miejscu pierwszym.


(photo by Tyler/PPP)

Więcej informacji można znaleźć w poście podsumowującym sezon 2014.