Attack/Defense CTF
Úvod
A/D(Attack/Defense) CTF je druh CTF, při kterém každý tým má svůj server, na kterém běží několik služeb. Cílem, stejně jako u jeopardy CTF, je nasbírat co nejvíce bodů, avšak zde se získávají úplně jinak. Jsou dvě hlavní cesty, jak získávat bodový náskok nad ostatními - útočení(attack) a bránění(defense). A/D CTF se snaží být blízkou simulací reálného světa, protože učí jak útočení (red team), tak chránění(blue team). Dále ještě učí monitorování síťového provozu, protože díky tomu týmy mohou zjistit, kterých zranitelností využívají ostatní týmy.
Servery(vulnboxy)
Každý tým má svůj vlastní server, na kterém běží několik služeb. Týmy mají přístup k těmto serverům přes SSH a mohou na nich instalovat, konfigurovat a spravovat služby podle svých potřeb.
Tick
tick určuje jak často se spouští kontroly služeb a aktualizuje žebříček.
Během jednoho ticku se provádí následující kroky:
- Každá služba na každém týmu je zkontrolována pomocí kontrol.
- Body za obranu(defense points) jsou přiděleny týmům za funkční služby.
- Body za útok(attack points) jsou přiděleny týmům za úspěšné útoky na služby ostatních týmů.
- Žebříček je aktualizován na základě získaných bodů.
tick obvykle trvá 1-3 minuty.
Kontroly(Checkers)
Kontroly jsou skripty, které ověřují funkčnost služeb na týmech.
Každá služba má svou vlastní kontrolu, která je spuštěna jednou za tick.
Kontroly mohou provádět různé akce, jako je odesílání požadavků na službu, ověřování odpovědí
a kontrola dostupnosti služby.
Služby(services)
Služby jsou hlavní částí A/D CTF, protože přesně na ně týmy útočí a snaží se je chránit.
Nejčastěji to jsou webové servery, nebo textové protokoly, které běží v Docker kontejnerech.
Služby jsou jednou za tick zkontrolovány pomocí kontrol.
Pokud služba funguje správně, tým získá body za obranu(defense points). Pokud služba nefunguje, tým nezíská žádné body.
Vlajky(flags)
Vlajky jsou speciální řetězce znaků, které jsou generovány službami a slouží jako důkaz, že služba je funkční. Zároveň jejich získáním se ověřuje, že tým úspěšně útočil na službu jiného týmu. Vlajky tým posílá na submission server, který je ověří a přidělí týmu body za útok(attack points).
Síťování
Jednotlivé týmy jsou připojeny do jedné velké sítě pomocí VPN. Každý tým má svou vlastní podsíť, ve které běží jeho služby. Důležité je, že všechny týmy mohou komunikovat mezi sebou, což umožňuje útoky na služby ostatních týmů. Zároveň vše prochazí přes router, který všechny packety NATuje. Toto zajišťuje, že týmy nepoznají, kdo je kdo - vše jde z jedné IP adresy.
NOP team
NOP(NO Player) team je speciální tým, který nehraje aktivně v soutěži. Využívá se k testování útoků a k ověřování funkčnosti služeb bez rizika ztráty bodů v soutěži. Tým se krom toho chová úplně stejně jako ostatní týmy.