Masarykova univerzita Fakulta informatiky
Bezpečnostní hry pro rozdílné úrovně dovedností Diplomová práce
Miloš Barták
Brno, jaro 2016
Prohlášení Prohlašuji, že tato diplomová práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.
Miloš Barták
Vedoucí práce: RNDr. Jan Vykopal, Ph.D. i
Poděkování Rád bych poděkoval vedoucímu práce RNDr. Janu Vykopalovi, Ph.D. za odborné vedení a cenné rady během psaní této práce. Velký dík patří také RNDr. Martinovi Vizvárimu za pomoc při vývoji.
ii
Shrnutí Práce se zabývá návrhem a přípravou hry pro bezpečnostní školení, která bude přístupná pro širokou škálu hráčů s různými úrovněmi dovedností. Hra je navržena v prostředí Kybernetického polygonu. Na základě rešerše dostupných bezpečnostních her, je navržena hra vlastní. Důraz je kladen na zpřístupnění hry pro hráče s různými dovednostmi – konkrétním mechanismem pro dosažení tohoto cíle je například využívání nápověd nebo vzorových řešení. Jednotlivé možnosti jsou uvedeny v návrhu hry a na základě testování hry s uživateli je pak v závěru zhodnocen jejich přínos.
iii
Klíčová slova bezpečnostní hra, CTF, capture the flag, KYPO, Kybernetický polygon, penetrační testování, nápověda, praktická výuka
iv
Obsah 1 2
3
4
5
6 A
B C D
Úvod . . . . . . . . . . . . . . . . . . . . 1.1 Struktura práce . . . . . . . . . . . . Rešerše bezpečnostních her . . . . . . . 2.1 Kritéria pro rozdělení her . . . . . . . 2.2 Dostupné bezpečnostní hry . . . . . . 2.3 Zhodnocení . . . . . . . . . . . . . . Analýza a návrh herního prostředí . . . 3.1 Obecné požadavky na hru . . . . . . . 3.2 Rozbor návrhu nové hry . . . . . . . 3.3 Specifikace herního prostředí . . . . . Metodika tvorby nové hry . . . . . . . . 4.1 Rozdělení hry do úrovní . . . . . . . 4.2 Předchozí implementace hry v KYPO 4.3 Výběr zranitelností . . . . . . . . . . 4.4 Úvod do herního scénáře . . . . . . . 4.5 Scénář hry . . . . . . . . . . . . . . . 4.6 Úrovně hry . . . . . . . . . . . . . . 4.7 Příprava hry pro prostředí KYPO . . Nasazení a vyhodnocení hry . . . . . . 5.1 Sběr dat . . . . . . . . . . . . . . . . 5.2 Vyhodnocení dat . . . . . . . . . . . Závěr . . . . . . . . . . . . . . . . . . . . 6.1 Budoucí vývoj . . . . . . . . . . . . . Plné znění dotazníků . . . . . . . . . . A.1 Dotazník A . . . . . . . . . . . . . . A.2 Dotazník B . . . . . . . . . . . . . . Konfigurační scénář hry . . . . . . . . . Časy hráčů v jednotlivých úrovních . . Obsah přiloženého CD . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 3 4 6 11 13 13 14 15 21 21 22 23 24 27 27 28 29 29 30 36 36 41 41 42 44 46 47
v
1 Úvod Oblast kyberbezpečnosti a nabídka pracovních pozic s ní spojených již několik let zažívají vysoký růst [1]. Mnohé pozice vyžadují určitou certifikaci nebo alespoň konkrétní znalosti o bezpečnostních hrozbách a rizicích. Zvýšení povědomí o možných bezpečnostních hrozbách bývá zprostředkováno například školením. Velkou nevýhodou takovýchto školení však bývá absence praxe. Alternativní, a v poslední době se prosazující, metodou jsou praktická školení vedená například formou her, která dávají účastníkům možnost získat praktické zkušenosti a pohled na bezpečnost z druhé strany – nepřemýšlet jen jak je možné systémy zabezpečit, ale také jak je možné na ně útočit. Bezpečnostní hra slouží pro procvičení dovedností hráčů v oblasti bezpečnosti informačních technologií, přičemž obecně se předpokládá, že hráči mají jisté základní zkušenosti v této oblasti. V souvislosti se školeními jsou tak navrhovány různé bezpečnostní hry s různým pojmenováním: wargames, security games, capture the flag games (CTF) apod. Hry se liší svým průběhem a zaměřením – hráči mají za úkol útočit, bránit nebo obojí. Bezpečnostní hry ve svém vývoji značně postoupily a mnoho starších her je dostupných veřejnosti. Hry využívají zranitelností, kterých se každoročně objevuje mnoho1 , avšak dají se kategorizovat do několika málo skupin, čímž se stává tvorba her s novými koncepty složitější. Pro zachování atraktivity nových her je tedy nutné, aby byl jejich obsah inovativní. Nové hry se tak často specializují na konkrétní oblasti, které mohou po hráčích vyžadovat jisté specifické vstupní znalosti [3]. Tato práce se zabývá návrhem a tvorbou bezpečnostní hry a také návrhem mechanismů, které dokáží bezpečnostní hru zpřístupnit i méně zkušeným hráčům, přičemž hra si zachovává dostatečnou složitost i pro zkušenější hráče. Hra byla navržena pro platformu Kybernetického polygonu (dále KYPO), Platforma KYPO se zabývá výzkumem a vývojem prostředí pro analýzu hrozeb. KYPO umožňuje vytvářet různorodé scénáře, zahrnující jednotlivé stroje nebo rozsáhlé sítě, ve kterých jsou spuštěny aplikace a služby [16]. Typickým využitím je praktické školení v oblasti bezpečnosti informačních technologií. Hráč si během školení ve smyšleném scénáři zahraje roli penetračního testera a vyzkouší si útoky na zranitelné aplikace v prostředí virtuální sítě.
1.1
Struktura práce
Začátek práce je zaměřen na rešerši dostupných bezpečnostních her typu capture the flag. Nejprve jsou vymezena kritéria podle kterých je možné na bezpečnostní hry nahlížet a na základě zvolených kritérií jsou pak vybrané bezpečnostní hry popsány. Jádrem práce je analýza, návrh a tvorba vlastní bezpečnostní hry na platformě KYPO, která využívá mechanismů pro zpřístupnění hry hráčům s různými úrovněmi dovedností. Nejprve jsou popsány obecné principy hry a její pravidla, poté 1. National Vulnerability Database v minulém roce reportovala přes 8 000 zranitelností [2]
1
1. Úvod se práce věnuje prostředí, ve kterém je hra nasazena a také systémovým zdrojům, které hra využívá. Závěr je věnován evaluaci dat z testovacích běhů samotné hry. Hra byla odehrána ve dvou bězích, během nichž probíhal sběr dat o průběhu hry a zpětné vazby od hráčů. Celkem se hraní zúčastnilo 21 hráčů s různou úrovní dovedností. Sběr dat byl zaměřen především na interakci hráčů s herním prostředím, na využívání nápověd a také na komentáře hráčů k jednotlivým částem hry týkající se obtížnosti apod. Získané výsledky zahrnující demografické údaje o hráčích, informace o interakcích hráčů s nápovědami apod. jsou následně v závěru práce prezentovány ve formě grafů a statistik a diskutovány s ohledem na další vývoj.
2
2 Rešerše bezpečnostních her Tato kapitola přináší pohled na bezpečnostní hry, které jsou volně dostupné veřejnosti a jsou relevantní k tématu práce. Existuje několik typů bezpečnostních her, které však mají společné jedno: jsou připravovány pro jednotlivce nebo malé týmy, které řeší zadané úlohy týkající se bezpečnosti [5]. Účelem her je nenáročnou formou obeznámit hráče s možnými bezpečnostními hrozbami. Tato práce se zabývá útočným typem hry, jelikož právě model útočníka je klíčový pro získání praktických zkušeností v oblasti kyberbezpečnosti [4]. Kromě tohoto typu také existují, obranné typy jako jsou například Locked Shields a Cyber Europe a také typy smíšené, například The UCSB iCTF. Jejich pojetí se však poměrně liší – hráči neznají tok událostí ve scénáři a musí se rychle adaptovat na nové změny. Útočné hry mívají naopak přesně definovaný postup, který je často striktní. Navržená hra také přebírá některé prvky z hry typu Jeopardy – útočení probíhá formou plnění úloh. Za splnění úlohy bývají hráčům uděleny body, které jsou na konci hry sečteny a udávají pořadí hráčů. Hry je možné hrát lokálně i vzdáleně, online, nebo offline. Nejčastějším typem jsou wargames nebo capture the flag hry, jež sdílí podobný princip – vyřešit zadanou úlohu a získat tak vlajku. Konkrétní podoba vlajky je dána tvůrcem hry, většinou se jedná o textový řetězec, který je hráči přístupný po splnění úlohy. Hráč zadá vlajku do herního rozhraní, čímž potvrdí správnost svého řešení. Další podkapitola obsahuje detailnější kritéria, podle kterých můžeme takovéto hry dělit, avšak v obecné rovině se bezpečnostní hry dají rozdělit na dvě hlavní skupiny [5]: Attack-defense Hra probíhá většinou v týmech. Každý z týmů spravuje část sítě, která obsahuje stroje se zranitelnými službami. Na začátku hry má každý tým jistý čas na zabezpečení své infrastruktury. V další fázi na sebe začnou jednotlivé týmy útočit – za úspěšné prolomení obrany cizího týmu jsou body připisovány, za prolomení vlastní obrany jsou naopak body strhávány. Prolomení obrany je spojené se zajmutím vlajky, která stvrzuje dosažený výsledek. Vítězem se stává tým s nejvyšším počtem bodů na konci hry. Jeopardy Hra přístupná pro více hráčů nebo týmů, kteří nezávisle na sobě (v týmu nebo jednotlivě) řeší zadané úlohy. Úlohy můžeme rozdělit do několika kategorií (logické, kryptografické, steganografické, reversní inženýrství apod.). Každá úloha je zakončena získáním vlajky – vlajkou může být například dešifrovaný text, prolomené heslo atd. Kromě zmíněných dvou kategorií existují hry využívající konceptů z obou představených, existují tedy hry typu attack-only, defense-only, apod. Důležitým aspektem kromě obsahu je také průchod hrou – můžeme rozlišit lineární průchod a průchod volitelný.
3
2. Rešerše bezpečnostních her Lineární průchod Hra je rozdělena do několika úrovní, které na sebe většinou logicky navazují. Pro přístup do úrovně n je nutné projít všech n-1 předchozích úrovní, viz schéma 2.1.
Obrázek 2.1: Schéma lineárního průchodu hrou Volitelný průchod Hra má definovaný počet úloh, přičemž úlohy na sebe nijak nenavazují. Řešit je možné kdykoliv jakoukoliv úlohu, viz schéma 2.2.
Obrázek 2.2: Schéma volitelného průchodu hrou V následující podkapitole je uvedeno jakým způsobem je možné bezpečnostní hry dělit podle konkrétních kritérií. Následující kapitoly se pak zabývají návrhem a vytvořením vlastní hry a také navrženou hru podle definovaných kritérií kategorizují.
2.1
Kritéria pro rozdělení her
Tato podkapitola se zaměřuje na bezpečnostní hry typu Jeopardy, jelikož právě tento typ jsme zvolili jako výchozí pro navrženou hru. Práce je taktéž omezena na hry dovolující konkrétními mechanismy (např. systémem nápověd) zpřístupnit svůj obsah větší škále hráčů. Zmíněné mechanismy jsou jedním z klíčových kritérií, podle kterých jsou v této podkapitole hry rozděleny. Dalšími kritérii jsou dostupnost hráčům a to jak dostupnost časová, tak i dostupnost ve smyslu způsobu přístupu ke hře. 2.1.1 Přístupnost podle úrovně dovedností Hry capture the flag mohou být pořádány v rámci turnaje. Jedná se o soutěže pořádané lokálně nebo vzdáleně, ve kterých hráči srovnají své dovednosti v různých disciplínách, týkající se zejména bezpečnosti informačních technologií. Pokud se setkáváme především s hrami připravovanými pro turnaje, můžeme rozlišit dva typy: Vstup bez kvalifikace Turnaj je volně přístupný pro kohokoliv, kdo přihlásí sebe nebo svůj tým. Turnaje mohou být pořádané zdarma nebo je nutné zaplatit startovné. 4
2. Rešerše bezpečnostních her Vstup pouze pro kvalifikované Turnaj je přístupný pouze hráčům nebo týmům, které prošly kvalifikací. V některých případech jsou pozvány nejlepší týmy z předchozího konání turnaje bez nutnosti kvalifikace. Hry připravované mimo turnaje bývají zpravidla přístupné po registraci. V některých případech je potřebné splnit vstupní úlohu pro získání plného přístupu ke hře. Samotná vstupní úloha však může být chápána jako součást hry, především pokud má hra lineární průběh a pro získání přístupu k další úloze je potřeba splnění předchozí. Důležitým aspektem je také přístup hráčů k nápovědě, chceme-li bezpečnostní hru využít nejen k porovnání znalostí a tréninku zkušených hráčů, ale také k výuce hráčů s žádnými nebo jen povrchními zkušenostmi z oblasti bezpečnosti. Pokud chceme při školení nebo podobné formě výuky dosáhnout jisté uniformity pro všechny hráče, kteří mohou mít různé znalosti v oboru, je dobré vypracovat systém nápověd, který umožní vyrovnat rozdíly mezi znalostmi jednotlivých hráčů. Ve hrách pak můžeme pro méně zkušené hráče využít některé z následujících principů, které by je měly motivovat k postupu ve hře. Malé nápovědy Do hry umístíme jednu nebo více nápověd, které umožní hráči přiblížit se k vyřešení úlohy. Nápovědou může být informace, jaký nástroj použít pro řešení úlohy, případně klíčové slovo, které jej k jeho použití navede. Nápovědou také může být informace jakým způsobem použít konkrétní nástroj k dosažení požadovaného výsledku. Pokud je hra bodovaná, bývá použití nápovědy svázáno s jistou penalizací (například snížení maximálního bodového zisku v případě vyřešení úlohy). Přístup k nápovědě může být také různým způsobem omezen: nápovědy se dají využívat postupně nebo v libovolném pořadí, v omezeném počtu apod. Diskuzní fóra Častým řešením především u her nabízených v rámci webového portálu je nápovědu nevkládat přímo do hry, ale umožnit hráčům mezi sebou komunikovat na vyhrazeném diskuzním fóru. Problémem však může být zaslání příliš konkrétního návodu jak vyřešit danou úlohu. Tento způsob nápovědy tak může zahrnovat režii v podobě moderování diskuzních vláken na fóru. Řešení V některých případech jsou hry bez jakékoliv nápovědy, především jsou-li přístupné pouze po stažení v podobě virtuálního stroje. Hry tohoto typu většinou nemívají jasně definovaný scénář. Tvůrcem hry bývá nadšenec z nějaké konkrétní komunity (například Vulnhub [11]), který se podělí o svoje zkušenosti formou bezpečnostní hry. Tvůrce hry se pak může rozhodnout přidat ke hře manuál, ve kterém hráče navede k řešení nebo jim poskytne kompletní řešení úlohy. 2.1.2 Časové omezení Turnajové hry Turnajové hry mají nejvíce striktní časové omezení: po dobu běhu turnaje mají všichni účastníci plný přístup ke hře, avšak po skončení turnaje bývá 5
2. Rešerše bezpečnostních her většinou přístup ke hře navždy uzamčen (v některých případech dojde ke zveřejnění zadání). Turnaje jsou většinou pořádány v rozmezí několika dní, ať už se jedná o turnaje s nutnou lokální účastí nebo turnaje pořádané online. Webové portály Hry spojené s webovými portály mají prakticky neomezenou dobu přístupu spojenou s existencí portálu. Úlohy jsou přístupné nepřetržitě. Samostatné hry Samostatné hry bývají uloženy na serverech poskytujících úložiště a jsou převážně v podobě jednoho nebo více virtuálních strojů, které jsou dostupné pro stažení. Hra je tedy dostupná po dobu její existence na serveru, případně do té doby, dokud existuje alespoň jedna její kopie. 2.1.3 Způsob přístupu Lokální přístup Pokud mluvíme o hrách, u kterých je vyžadován lokální přístup, jedná se především o turnaje nebo cílená školení. V těchto případech je nutná fyzická přítomnost hráčů, kteří dostanou přístup k fyzickým strojům, na kterých je hra připravena. V některých případech mohou hráči obdržet přístup do privátní sítě. Jelikož při hraní může docházet k cíleným útokům, probíhá hra ve virtualizované nebo uzavřené síti. Online přístup Hry s online přístupem se vyskytují v několika podobách. Stěžejním typem je přístup do webového portálu, na kterém jsou hráči registrováni. S jejich uživatelským účtem je spojen jejich aktuální postup ve hře a získaný počet bodů za řešení úloh. Úlohy pak mohou být v podobě webové aplikace integrované přímo do portálu, nebo se může jednat o analýzu dokumentů, které jsou z portálu stažitelné. Další možností je zpřístupnění strojů skrze Internet – stroje bývají zpřístupněny například pomocí protokolu SSH (Secure Shell). U tohoto typu je často nutné se nejdříve připojit do lokální sítě skrze VPN (Virtual Private Network). Offline přístup Hráčům je poskytnut jeden nebo více virtuálních strojů, přičemž je nutné jejich stažení. Hráč také musí mít požadované nástroje a vlastní zdroje pro provoz – virtuální prostředí schopné emulovat stroje a dostatečnou vnitřní paměť.
2.2
Dostupné bezpečnostní hry
V předchozí podkapitole byla vymezena kritéria, rozdělující hry do různých skupin. Tato podkapitola podává informace o dostupných hrách a rozebírá je z pohledu definovaných kritérií. Důraz je kladen především na kritérium přístupu podle úrovně dovedností a možných typech nápověd, které jsou hráči poskytnuty k řešení zadaných úloh, jelikož se jedná o stěžejní téma této práce a navržená hra čerpá z některých mechanismů uvedených níže. Každá další z her v seznamu vždy přináší oproti předešlým nové prvky. Detailnější rozbor vybraných principů je uveden na konci kapitoly. 6
2. Rešerše bezpečnostních her 2.2.1 n00bsCTFLabs Způsob přístupu Jedná se o hru přístupnou skrze webový prohlížeč (bez nutnosti registrace), která je určena začátečníkům. Hru zprostředkovává InfoSec Institute na svém webu [21]. Skládá se z patnácti samostatných úrovní, které mezi sebou nejsou provázány. Úrovně obsahují úlohy zahrnující především analýzu a to například analýzu zdrojového kódu webové stránky, dat skrytých v obrázcích, v hlavičce HTTP protokolu, v souborech cookie apod. Hráči jsou v každé úrovni motivováni reálnou finanční odměnou, která je předána prvnímu řešiteli. Časové omezení Hra je přístupná po dobu existence webového portálu, přičemž portál je dostupný bez omezení. Přístupnost podle úrovně dovedností Každá úroveň obsahuje skrytá vodítka pro řešení úlohy. Příkladem je zadání odkazující se na popkulturu Hvězdných válek: „May the source be with you!“ s obrázkem mistra Yody, jež navádí k analýze zdrojového kódu stránky se zadáním. S rostoucím číslem úrovně roste i složitost jednotlivých úloh, přičemž série posledních úrovní je dostatečně složitá i pro zkušenější hráče. Nápovědy ve hře nejsou explicitní v podobě přímých vodítek a v některých případech je obtížné domyslet si konkrétní referenci, která je použita. Kromě nepřímých nápověd jsou pro hráče přístupná i řešení – nejsou však přímo dodána od tvůrců, ale vybrána z nejlepších řešení samotných hráčů. Pokud má tedy hráč problém s řešením konkrétní úrovně, může si přečíst některé z řešení. Správných řešení je vystaveno více a tak mají hráči možnost získat různé úhly pohledu na řešení konkrétní úlohy. 2.2.2 Vulnhub Způsob přístupu Vulnhub není konkrétní hra, jde spíše o web spojený s úložištěm pro virtuální stroje, který je veřejně dostupný bez nutnosti registrace. Web umožňuje uživatelům nahrávat a stahovat virtuální stroje, které záměrně obsahují zranitelné verze aplikací, případně záměrně špatně nakonfigurované služby. Ne všechny stroje jsou předurčené pro hraní CTF, ale většina strojů je v tomto duchu připravována. Tvůrce hry ke stroji napíše krátký popis, obsahující například operační systém stroje, dostupné aplikace a případně výchozí bod pro hráče. Ve většině případů je koncovou úlohou získání vlajky v podobě přečtení souboru flag.txt dostupného pouze pro superuživatele. Před tím však předchází proces zneužívání zranitelných služeb, který vede k eskalaci práv na stroji. Hra je dostupná v podobě virtuálního stroje a tudíž je nutné si příslušný obraz stroje stáhnout na lokální počítač. K provozu stroje je pak možné využít virtuální prostředí, mezi nejlepší patří např. VirtualBox nebo VMWare [17]. Stroje jsou upraveny tak aby na disku obsadily co nejméně místa – většinou obsadí virtuální stroj přibližně 600 MB. 7
2. Rešerše bezpečnostních her Časové omezení Jedná se o samostatné hry, které jsou dostupné po dobu jejich existence na webovém portálu respektive na daném úložišti. Po stažení jsou hry dostupné bez omezení. Přístupnost podle úrovně dovedností Obtížnost a definice předpokladů záleží přímo na tvůrci virtuálního stroje. Hry zpravidla neobsahují možnost malých nápověd (konkrétní informace, která vás nasměruje k řešení), avšak web (spojený s hrami) poskytuje prostředky pro nahrání správného řešení hry. Každý řešitel tak má možnost inspirovat se částí nebo celým řešením. Díky existenci více různých řešení je možné získat přehled ohledně rozmanitých přístupů k postupu ve hře. Kromě analýzy správného řešení je také možné navštívit IRC (Internet Relay Chat) kanál zprostředkovaný webovým portálem Vulnhub, kde je možné komunikovat s ostatními členy komunity. 2.2.3 Over the wire Bezpečnostní hry poskytované komunitou Over the wire se částečně liší od dříve popisovaných. Nejedná se přímo o typ capture the flag neboť při vyřešení zadané úlohy neobdrží hráč žádnou vlajku, kterou by potvrdil splnění úrovně. Mezi úrovněmi nebývá přímá návaznost, a tudíž není potřeba dokončovat úroveň n pro získání přístupu do úrovně n + 1. Způsob přístupu Zadání hry je poskytnuto na webu. Pro samotné plnění zadané úlohy je nutné se vzdáleně připojit (například pomocí SSH) na poskytované stroje. Každé úrovni odpovídá samostatný uživatelský účet na konkrétním stroji. Úrovně tak mezi sebou obsahově nekolidují a hráč pracuje vždy jen v uzavřeném prostředí, kde není rušen ostatními úlohami z ostatních úrovní. Over the wire poskytuje hned několik her, které jsou logicky rozděleny podle náplně jednotlivých úloh. Vypsán je také doporučený seznam rozdělující hry podle obtížnosti. Časové omezení Hra je přístupná po dobu existence webového portálu a strojů, na kterých se úlohy řeší. Portál i stroje jsou dostupné neustále. Přístupnost podle úrovně dovedností Přístupných je hned několik her: Bandit, Vortex, Krypton atd. Hra Bandit je určena především začátečníkům, přičemž každá úroveň se zaměřuje na odlišnou oblast využití více základních i pokročilejších Unixových nástrojů najednou. Příkladem může být seznam příkazů použitelných v úrovni 15: „SSH, telnet, nc, openssl, s_client, nmap“ [22]. Na začátku této hry je nutné se připojit vzdáleně k bandit.labs.overthewire.org, přičemž uživatelské jméno na které se chceme připojit závisí od úrovně, kterou řešíme: bandit0, bandit1 atd. Hra Krypton je jednou z kratších avšak dodržuje stejné principy. V první úrovni musí hráč dekódovat tajnou zprávu, která představuje heslo pro vzdálené připojení na stroj krypton.labs.overthewire.org. Na tomto stroji pak hráč řeší zadané úlohy týkající se kryptografie. 8
2. Rešerše bezpečnostních her Typy nápověd pro hráče se odvíjí od hry: hra Bandit poskytuje pouze výčet nástrojů, které může hráč použít pro splnění úloh, ve hře Vortex je nápověda koncipována ve formě odkazů na písemné materiály, které mají hráči napomoci k řešení. Ne každá úroveň však nápovědu obsahuje. Celkově se dá zhodnotit systém nápověd jako nestandardizovaný a připravený na míru každé úrovni. 2.2.4 This is legal Způsob přístupu Web thisislegal.com je opět portálem agregujícím několik různých her na jednom místě. Od předchozího konceptu se však liší. Každý hráč musí být na stránce registrovaný (registrace je zdarma), přičemž bez registrace nejsou přístupné žádné hry. Výhodou tohoto přístupu je, že hráči vidí svůj aktuální postup ve hře. Úrovně jsou pak navíc doprovázeny statistikou počtu úspěšných řešitelů a hráčům je také dostupná tzv. „Hall of fame“, tedy žebříček hráčů s nejvíce body. Díky nutnosti registrace je také možno zjistit počet hráčů, kteří se kdy do systému přihlásili – v současné době se jedná o zhruba 25 000 hráčů. Časové omezení Hra je přístupná po dobu existence webového portálu, přičemž portál je dostupný neustále. Přístupnost podle úrovně dovedností Dostupných her je hned několik, jmenovitě například: Basic Challenges, Encryption Challenges, Application Challenges, SQL Challenges atd. Každá hra má určitý počet úrovní, které jsou navíc rozděleny podle obtížnosti do tří kategorií: Easy, Medium a Quite Hard. V některých hrách jsou umístěny tzv. Easter Eggs, což je koncept, ve kterém jsou přímo do hry zakomponovány reference na jiný obsah – například jinou hru, knihu, film, skladbu apod. Easter Eggs jsou tedy jakýmsi skrytým a zábavným prvkem hry. Nápověda hráčům je přístupná v podobě tutoriálů, které však neobsahují celá řešení, jedná se o neúplné návody jak k řešení dojít. Na webu je také přístupné dedikované fórum, kde si hráči mezi sebou sdělují získané poznatky. Pravidlem je nevyzradit celé řešení, ale pouze napovědět, kterým směrem se vydat při řešení zadané úlohy. 2.2.5 RingZer0 Team Online CTF Způsob přístupu Jak již název napovídá, opět se jedná o hru typu capture the flag, která je zprostředkována online. Tvůrci však do hry zakomponovaly několik zajímavých konceptů, které hru odlišují od předešlých. K účasti je nutná registrace (opět zdarma), přičemž kromě získaných bodů se s každým účtem spravuje také virtuální měna RingZer0Gold. Připravených je v současné době 233 úloh, které jsou opět logicky rozděleny. Úlohy zahrnují oblasti kryptografie, forenzní analýzy, analýzy malware, steganografie apod. Každá úloha je klasicky zakončena zadáním vlajky, kterou je možné získat po vyřešení úlohy. Úlohy jsou různě přístupné – v některých případech řešitelné přímo ve webovém prohlížeči, jindy je nutné stáhnout si soubor pro analýzu, nebo se vzdáleně připojit (například přes SSH) ke konkrétnímu stroji. 9
2. Rešerše bezpečnostních her Velmi podařený je také integrovaný systém nástrojů, který je možné využít přímo online. Jedná se například o možnost počítat hashe z textových řetězců, kódovat a dekódovat řetězce pomocí kódování Base64 apod. Ukázku herního prostředí dokládá obrázek 2.3.
Obrázek 2.3: Obrázek herního rozhraní jedné z her RingZer0 Team Online CTF Časové omezení Hra je přístupná po dobu existence webového portálu, přičemž portál je dostupný neustále. Přístupnost podle úrovně dovedností Za správně vyřešenou úlohu je možné získat body, které hráče posouvají v celkovém žebříčku hráčů. Dále pak je možné zaslat své korektní řešení, které je sdíleno s ostatními úspěšnými řešiteli dané úlohy. Hráči tímto způsobem získají i jiný pohled na řešení daného problému. Nápověda v tomto systému je řešena velice zajímavým způsobem, a to právě s využitím virtuální měny. Hráči obdrží RingZer0Gold v případě, že administrátorům hry zašlou korektní řešení některé z úloh. Získanou měnu pak hráči smění za nápovědy v úlohách, ve kterých si neví rady. 2.2.6 Předchozí implementace hry v Kybernetickém polygonu Pro platformu Kybernetického polygonu již v minulosti byla vytvořena jedna bezpečnostní hra, kterou v rámci své diplomové práce navrhl Lukáš Neudert [24]. Hra je koncipována jako capture the flag a je zaměřena na penetrační testování jednoho stroje, který obsahuje několik různých zranitelných aplikací. Hra je rozdělena do pěti úrovní, zahrnující například skenování portů, prolamování hesel apod. Finální úrovní je příprava útoku odmítnutí služby. Způsob přístupu Hra je přístupná online, přičemž pro osoby nepůsobící na Masarykově univerzitě je nutná registrace do systému. Hráč přistupuje ke všem zdrojům hry (ovládá průběh hra a připojuje na virtuální stroje) skrze webový prohlížeč. Virtuální stroje jsou nasazeny v cloudu, který také zajišťuje síťování [14]. Hra je rozdělena do několika úrovní, které je nutné projít lineárně. 10
2. Rešerše bezpečnostních her Časové omezení Hra je přístupná pouze po dobu jejího nasazení v cloudu, což bývá zpravidla několik hodin nebo dní během bezpečnostního cvičení nebo školení. Přístupnost podle úrovně dovedností Za správně vyřešenou úlohu jsou hráčům připsány body. Pokud hráči nezvládají některou z úloh, mohou využít malé nápovědy, které je možné vybírat pouze postupně (lineárně). 2.2.7 Turnajové hry Turnajové hry byly ponechány záměrně na konec této kapitoly, protože se liší od dříve popsaných – především svou časovou omezeností. Jedná se o hry pořádané online (velice často sdružované na webu CTF TIME [6]), ale také turnaje pořádané lokálně s nutností přímé účasti. Způsob přístupu Online turnaje využívají možnosti vzdáleného přístupu. Po dobu běhu turnaje je možné se připojit (pomocí SSH) na konkrétní stroje a řešit na nich zadané úlohy. S hrou bývá spojen webový portál, který umožňuje registraci do turnaje, monitoruje aktuální postup ve hře pro jednotlivé týmy, kontroluje jejich zaslané vlajky apod. Lokální turnaje jsou pořádány většinou v uzavřené síti nebo virtualizovaném prostředí. Časové omezení V případě lokálního i online turnaje bývá hra dostupná pouze v době jeho konání. CTF TIME archivuje informace o jednotlivých turnajích a odkazuje na původní materiály, týkající se turnaje. Záleží poté na pořadateli, jestli zadání hry zůstane dostupné nebo ne – většinou jsou zadání zpětně nedostupná. Přístupnost podle úrovně dovedností V případě turnajů nemívají hráči přístup k jakýmkoliv nápovědám a na řešení úloh musí přijít sami. Úlohy lze však řešit v libovolném pořadí a většinou se nepočítá s tím, že by někdo zvládl vyřešit všechny.
2.3
Zhodnocení
V této kapitole byly představeny některé konkrétní hry typu Jeopardy a kritéria, podle kterých byly hry popsány. Následující odstavce jsou věnovány shrnutí představených kritérií. Způsob přístupu Nejvíce uživatelsky přívětivým z výše popsaných je jednoznačně online přístup. Na minimum tak můžeme zredukovat výdaje – odpadá nutnost cestování a registrace většinou také bývá bez poplatku. Další výhodou jsou minimální požadavky na zdroje na straně hráče – většinou si hráč vystačí s prohlížečem a klientem pro vzdálené připojení. 11
2. Rešerše bezpečnostních her Nevýhoda online přístupu je absence fyzické přítomnosti hráče a omezená komunikace mezi hráčem a lektorem. Druhořadými problémy mohou být také nekompatibilní verze potřebných programů, které se mohou u hráčů lišit. Časové omezení Výhodou her poskytovaných na webových portálech je jejich neustálá dostupnost. Lokální hry bývají zpravidla časově omezeny, mohou však být pravidelně opakovány. Přístupnost podle úrovně dovedností Nejčastějším konceptem jak zpřístupnit hru co nejvíce hráčům bývá integrace systému nápověd přímo do hry. Hráči mohou využít malé nápovědy, diskuzní fóra nebo IRC kanály pro komunikaci. V některých případech je hráčům za jistých podmínek poskytnuto vzorové řešení. Tabulka 2.1 podává celkový sumář a srovnání představených her. Hra
Způsob přístupu
Časové omezení
Přístupnost podle úrovně dovedností
2.2.1
online
žádné
korektní řešení
2.2.2
offline
žádné
korektní řešení
2.2.3
online
žádné
odkazy na materiály, IRC
2.2.4
online
žádné
tutoriály, diskuzní fórum
2.2.5
online
žádné
malé nápovědy, korektní řešení
2.2.6
online
po dobu cvičení
malé nápovědy
jednotky dnů
většinou bez nápověd
2.2.7
online
offline
Tabulka 2.1: Shrnutí her podle kritérií
12
3 Analýza a návrh herního prostředí Tato kapitola podává přehled o nových prvcích, které byly zakomponovány do návrhu herního prostředí – konkrétně se jedná o nové uživatelské prostředí, které usnadňuje hráčům přístup ke hře a také systém nápověd, který umožňuje hru zpřístupnit širší škále hráčů. Kapitola shrnuje jakým způsobem byly jednotlivé prvky zakomponovány, případně ovlivněny v závislosti na systému, ve kterém byla vznikající hra implementována.
3.1
Obecné požadavky na hru
3.1.1 Prostředí hry Hra byla navržena v prostředí Kybernetického polygonu (dále KYPO), kde je možné hrát hru v rámci bezpečnostního školení nebo cvičení. Hra má definovaný konfigurační scénář, na základě kterého jsou hráčům vytvořeny takzvané sandboxy. Sandbox je uzavřené prostředí, které umožňuje hráči interagovat s jemu přidělenými stroji. Před začátkem jakéhokoliv cvičení je nutné každý sandbox postavit a po skončení cvičení následně zrušit. Stavba i rušení sandboxů probíhá automatizovaně na základě definovaného konfiguračního scénáře viz příloha B. Hráči interagují se svými sandboxy výhradně pomocí portletů. Portlety jsou aplikace splňující Java Portlet Specification JSR-286 [7]. Typickým případem je webový portál, který obsahuje několik menších oken (vizualizační část portletů), kterými uživatel ovládá poskytnuté aplikace. Konkrétním příkladem může být herní portlet, skrze který je ovládán postup ve hře.
3.1.2 Požadavky na hru Z pohledu prvního prvku definovaného v této kapitole – přístupnosti podle úrovně dovedností, byla hra navržena tak, aby byla dostupná co nejširší škále hráčů (od méně zkušených, po zkušené) a přitom si zachovala dostatečnou obtížnost. Hráči tak ve hře mohou využít integrovaný systém nápověd, přičemž nemají možnost komunikovat mezi sebou. V případě nezvládnutí jakékoliv úlohy je pro ně nachystáno korektní řešení, které si klade za cíl jednoduchou formou vysvětlit řešení úlohy a udržet hráče dostatečně zainteresovaného. Z pohledu časového omezení, kdy je hra dostupná a také omezení přístupu ke hře jsou hlavním faktorem vlivy určené architekturou KYPO. Hra kromě platformy KYPO, coby prostředí, pomocí nějž je zprostředkována, využívá také portletu, pomocí kterého hráči ovládají svůj postup ve hře. Součástí hry je také sběr dat o jejím průběhu. Za tímto účelem bylo do hry zakomponováno logování herních událostí a byly vytvořeny dva dotazníky. Logovány jsou události vyvolané aktivitou hráčů – může se jednat o splnění úlohy, využití nápovědy apod. 13
3. Analýza a návrh herního prostředí
3.2
Rozbor návrhu nové hry
Hra využívá principů popsaných v kapitole 2 a staví na portletu, který byl vytvořen Zuzanou Dankovčíkovou v rámci její bakalářské práce [15] a pro účely této hry byl pozměněn, především za účelem zprostředkování hry širší škále hráčů. Do portletu tak byla doplněna následující funkcionalita: ∙
Možnost volby pořadí využití nápověd.
∙
Přístupnost vzorového řešení.
∙
Logování herních událostí v herním portletu.
3.2.1 Systém nápověd Volba pořadí použití nápověd je v capture the flag hře poměrně neobvyklá, neboť v klasickém pojetí jsou nápovědy volitelné pouze lineárně (v pořadí 1, 2, 3, ...). Často se potom může stát, že po využití první nápovědy hráč nezíská žádné informace navíc a zbytečně ztratí cenné body. Možnost využití kterékoliv nápovědy spolu s jejím popiskem pak umožňuje hráči lépe volit tu přínosnější. Možnost volení nápověd nebyla součástí originálního herního portletu a proto byla jeho funkcionalita v tomto směru změněna. 3.2.2 Přístupnost vzorového řešení Po využití všech nápověd získá hráč přístup k řešení, které krok po kroku vysvětluje jaké nástroje a jakým způsobem je možné použít pro splnění zadané úlohy. Kompletní řešení umožní hráčům osvojit si nové dovednosti a také jim pomůže udržet si přehled o scénáři ve hře. Motivací také je, že po splnění úlohy i při využití řešení hráč získá určitý počet bodů – jsou mu odečteny pouze body za využití všech nápověd. 3.2.3 Logování herních událostí Interakce hráče s ovládacími prvky a s nápovědami je během hry logována do souboru. Logování umožňuje lektorovi získat v reálném čase během hraní globální pohled na aktuální stav hry. Díky logu lektor vidí aktuální postup hráčů ve hře, ale také individuální problémy hráčů, statistiky získaných bodů apod. Pomocí logu je také po skončení hry možné vyhodnotit bodové zisky hráčů. Log herních událostí je spojen s unikátním identifikátorem hráče. Stejné identifikátory jsou použity i u zmíněných dotazníků, čímž dochází k logickému provázaní hráčových aktivit s jeho vyplněným dotazníkem. Díky dotazníku jsou data z logování obohacena o jinak nezjistitelné údaje jako je subjektivní pocit obtížnosti apod.
14
3. Analýza a návrh herního prostředí Ukázka logu ID, timestamp, logical time, level, event 16046,2016-04-07 06:41:10,00:00:00,1,Game started 16046,2016-04-07 06:45:42,00:04:32,1,Correct flag submited 16046,2016-04-07 06:56:43,00:11:00,2,Correct flag submited 16046,2016-04-07 07:19:32,00:22:49,3,Correct flag submited 16046,2016-04-07 08:06:28,00:46:55,4,Correct flag submited 16046,2016-04-07 08:33:32,00:27:04,5,Correct flag submited 16046,2016-04-07 08:52:50,00:19:17,6,Hint 1 taken 16046,2016-04-07 09:05:44,00:32:11,6,Wrong flag submited ac95 16046,2016-04-07 09:18:45,00:45:12,6,Correct flag submited 16046,2016-04-07 09:18:47,00:45:14,6,Game finished
3.3
Specifikace herního prostředí
3.3.1 Interakce hráče s herním prostředím Před začátkem hry se musí hráči přihlásit do webového rozhraní, kde jim je představeno herní prostředí a mají vyhrazen čas pro přečtení pravidel. Poté mohou hráči spustit hru. V průběhu hraní má hráč možnost využít jakékoliv dostupné nápovědy a také vzorové řešení. Řešení je hráčům přístupné po využití všech nápověd v dané úrovni. Interakce hráče s herním prostředím je vyjádřena ve schématu 3.1.
Obrázek 3.1: Schéma interakce uživatele s herním prostředím 3.3.2 Virtuální stroje v prostředí KYPO KYPO umožňuje pro každého hráče připravit vlastní uzavřené prostředí, ve kterém je izolován od ostatních hráčů – jedná se o zmíněný sandbox. Každý hráč má tedy přístupný svůj vlastní sandbox, ve kterém má svou kopii virtuální sítě. KYPO umožňuje mezi hráči virtuální sítě sdílet, avšak v tomto případě se jedná o nežádoucí vlastnost, neboť hra je koncipována pro jednotlivce (případně je možné pracovat v malé skupině na jednom stroji). Každý sandbox je nutné před samotnou hrou sestavit administrátorem a po skončení hry je sandbox zrušen. Sandbox je postaven podle předem připraveného 15
3. Analýza a návrh herního prostředí konfiguračního scénáře. Jedná se o soubor ve formátu JSON (JavaScript Object Notation) [19], ve kterém je uveden popis jednotlivých uzlů sítě, jejich propojení, počet lokálních sítí, příslušnost uzlů do sítí apod. Do systému je taktéž nutné dodat virtuální disky strojů, které budou do sandboxů nasazeny. Stroje jsou pak rozkopírovány, podle počtu sandboxů, pro každého hráče. Pro stavbu, konfiguraci a mazání sandboxu je připraven v KYPO portlet, který používá výše zmíněný konfigurační scénář. Vstupem pro tvorbu sandboxu tedy jsou virtuální disky používaných strojů a konfigurační scénář, který definuje jejich zapojení. Stavění jednoho sandboxu trvá řádově několik malých jednotek minut. Uživatel (hráč nebo administrátor) komunikuje se sandboxem prostřednictvím webového portálu. Portál je pro něj vstupním bodem, kterým přistupuje ke strojům ve virtuální síti a pomocí portálu také hraje nebo konfiguruje hru. Detailnější rozbor vizualizační části je uveden v následující podsekci 3.3.3. Architekturu systému KYPO popisuje následující obrázek 3.2.
Sandbox 1 SMN Scénáře Portál
SMN
Sandbox 2
Uživatelé Cloud
Obrázek 3.2: Architektura KYPO [16] Sandboxy jsou vybaveny dvěma stěžejními prvky: ∙
SMN (Scenario Managment Node) – Slouží jako hlavní přístupový bod do sandboxu z vnějšího světa. Přístup je umožněn díky spuštěnému SSH serveru. V každém sandboxu je právě jeden uzel SMN.
∙
LMN (LAN Managment Node) – V závislosti na topologii virtuální sítě postavené podle konfiguračního scénáře je v sandboxu přítomný konkrétní počet uzlů LMN – pro každou lokální síť právě jeden. LMN zajišťuje v sandboxu směrování mezi jednotlivými lokálními sítěmi.
Pro hráče jsou oba popsané prvky skryté a nepřichází s nimi do kontaktu. 16
3. Analýza a návrh herního prostředí 3.3.3 Herní prostředí KYPO využívá platformy Liferay, která zajišťuje správu uživatelů a představuje rozhraní mezi sandboxem a uživatelem. Je postavena na technologii portletů, přičemž přirozenou součástí je možnost vytvářet portlety vlastní, skrze které se do systému dostává nová funkcionalita. Portlet zahrnuje funkční část a uživatelské rozhraní, kterým hráč aplikaci ovládá. Navržená hra využívá již zmiňovaný herní portlet, který řídí průběh hry. Portlet je napsán v jazyce Java a využívá specifikaci JSP (JavaServer Pages) pro tvorbu obsahu stránky [25]. Vygenerovaný obsah je pak integrovaný do portálu v podobě HTML stránky. Následný průchod hrou je poté ovládán za pomocí JavaScriptu, díky kterému je umožněn přechod mezi jednotlivými úrovněmi, kontrola dat zadaných uživatelem a uložení aktuálního stavu hry. Po přihlášení je uživateli přístupný jeho sandbox, ve kterém může interagovat s jemu přístupnými portlety: herní portlet a topologický portlet. Topologický portlet Umožňuje přímý přístup k hráčovým strojům ve virtuální síti a po startu hry je výchozím bodem pro uživatele. Pomocí topologického portletu je hráči zpřístupněn VNC (Virtual Network Computing) portlet, kterým se hráč připojí na svůj přidělený stroj, kde začíná plnit zadané úlohy. Topologický portlet také zobrazuje IP adresy jednotlivých strojů, čímž vymezuje rozsah adres, ve kterém se hráč pohybuje. Zobrazenou topologii v portále ukazuje snímek obrazovky 3.3, VNC portlet je zobrazen na snímku 3.4.
Obrázek 3.3: Topologie virtuální sítě hry v portletu 17
3. Analýza a návrh herního prostředí
Obrázek 3.4: Snímek obrazovky VNC portletu
Herní portlet Umožňuje hráči ovládat postup ve hře. Je rozdělen na několik částí viz schéma 3.5.
Obrázek 3.5: Schéma herního portletu Popis úrovně Popisy úrovní jsou jednotně strukturované. Každá úroveň má definované obecné zadání a také konkrétní cíl, kterého je potřeba dosáhnout. Zadání 18
3. Analýza a návrh herního prostředí také vysvětluje v jaké podobě se nachází vlajka dané úrovně a jakým způsobem lze vlajku získat (viz obrázek 3.6).
Obrázek 3.6: Snímek obrazovky popisu úrovně Popis nápověd Nápovědy mají slovní popisky, kterými hráčům podávají informaci o jejich obsahu (viz obrázek 3.7), čímž jim umožňují nápovědy vhodně volit. Hráč si tak může rozmyslet, která z nápověd pro něj bude přínosná v konkrétním okamžiku – například pokud hráč ví jaký nástroj použít, ale neví jakým způsobem, zvolí nápovědu 2.
Obrázek 3.7: Snímek obrazovky popisu nápověd Ovládací panel Hráč může pomocí ovládacího panelu zadávat příkazy hernímu portletu a ovládat tak průběh hry. Během hry má možnost zadat a odeslat vlajku stisknutím tlačítka Submit, které vyvolá nové okno v podobě informace o správnosti zadané vlajky. V případě, že hráč není schopen získat vlajku, má možnost danou úroveň přeskočit stisknutím tlačítka Skip Level. Pokud hráč z jakéhokoliv důvodu potřebuje opustit hru, může tak učinit stisknutím tlačítka Exit game. Hráč také 19
3. Analýza a návrh herního prostředí na ovládacím panelu vidí odpočet času, který je vyhrazen pro splnění úlohy a také aktuální možný a maximální bodový zisk viz obrázek 3.8. Právě interakce s ovládacím panelem jsou předmětem logování herních událostí.
Obrázek 3.8: Snímek obrazovky ovládacího panelu Nápovědy Hráč má v každé úrovni přístup k alespoň dvěma nápovědám. Hráči mohou užívat nápovědy v libovolném pořadí a to kliknutím na příslušné tlačítko Get hint #n. Každá z nápověd také oznamuje hodnotu penalizace, která bude hráči udělena. Penalizace se projeví snížením možného bodového zisku v aktuální úrovni. Obrázek 3.9 ukazuje již použitou nápovědu v první úrovni. Po použití všech nápověd se hráči zpřístupní tlačítko Help level, které jej přesměruje na vzorové řešení (vzorové řešení záměrně není součástí textu práce). Interakce hráče s panelem nápovědy je také předmětem logování.
Obrázek 3.9: Snímek obrazovky nápověd
20
4 Metodika tvorby nové hry V této kapitole je popsán přístup k návrhu nově vznikající hry capture the flag. Jednotlivé podsekce zahrnují vlivy určující směr návrhu hry, výběr konkrétních zranitelností a důvod jejich výběru a nakonec samotný herní scénář, který byl vytvořen. Návrh herního scénáře nové hry byl ovlivněn hned několika faktory: ∙
Scénář by měl být rozdělen do menších úrovní různé obtížnosti. Jednotlivé úrovně by také měli obsahovat odlišná témata.
∙
Každá úroveň by měl být zvládnutelná pro všechny hráče, bez ohledu na jejich znalosti – zkušení hráči nebudou mít s průchodem úrovně žádné problémy, méně zkušení hráči budou moci využít mechanismů, které jim umožní úroveň zvládnout.
∙
Scénář hry by se měl lišit od již dříve navržených her pro prostředí KYPO.
∙
Zranitelné aplikace, které budou v průběhu hraní napadnutelné musí obsahovat zranitelnosti, jež je možné zneužít v reálném časovém intervalu (v řádu malých desítek minut).
4.1
Rozdělení hry do úrovní
Každá z úrovní obsahuje různý typ zranitelnosti zaměřující se na různé téma z oblasti bezpečnosti, jež jsou blíže popsány v sekci 4.3. Příkladem může být chyba v řízení úrovní přístupu, které je v konkrétní podobě reprezentována výběrem slabého hesla. Zvládnutí všech úrovní širokou škálou hráčů je oproti předchozímu bodu poměrně složitější. Hry se mohou zúčastnit jak nezkušení hráči, mající jen povrchní znalosti z bezpečnosti (hrají hru v rámci školení), tak také zkušenější (hrají hru v rámci tréningu). Obě skupiny by měly řešit stejné problémy v rámci úrovní, přičemž hráči hrají nezávisle na sobě. U nezkušených hráčů je poměrně přirozené, že budou úrovně řešit déle než hráči zkušení, v některých případech také budou potřebovat získat více informací, které naopak zkušenější hráči již mají. Datový model portletu v KYPO viz sekce 3.3.3, který řídí hru, umožňuje definovat seznam nápověd (hints) pro každou z úrovní. Zadání každé úrovně je pak koncipováno tak, aby hráč věděl, co je jeho cílem, přičemž volba nástrojů jakými se k cíli dostane zůstává na něm. Zkušení hráči tak ze zadání dokáží odhadnout jaké nástroje použít. Méně zkušení hráči tuto informaci obdrží v nápovědě, kde se také dozví jak daný nástroj použít. Koncept používání nápověd je také inspirován hrou n00bsCTFLabs (sekce 2.2.1) ve smyslu skrývání důležitých částí zadání v textu vhodnou formou – důležité části jsou napsány změněným fontem nebo je v textu odkázáno konkrétní vodítko, které hráč odhalí až přímo ve hře v souboru na konkrétním stroji. Používání „malých nápověd“ vychází z již dříve implementované hry (sekce 4.2), rozdílem je však, že v návrhu nové hry je možné použít jakoukoliv nápovědu (Hint) bez použití všech předchozích. Každá nápověda má také navíc svůj slovní popis, 21
4. Metodika tvorby nové hry jež hráči umožní volit nápovědy (Hints) na základě informace, kterou z nich obdrží – zkušenější hráč například ví jaký nástroj použít, ale neví jak, vezme si tedy příslušnou nápovědu, díky čemuž předejde ztrátě bodů za nápovědu, která by mu nepomohla. Posledním typem nápověd, který byl využit při návrhu je založen na systému nápověd portálů Vulhub (podsekce 2.2.2) a portálu This is legal (podsekce 2.2.4), ve kterých je hráčům přístupné celé vzorové řešení ve formě tutoriálu. Ve hře je vzorové řešení přístupné v každé úrovni a to až po využití všech nápověd, které každá úroveň nabízí. Nezkušení hráči jsou tak motivováni k použití nápověd a až pokud zjistí, že jim nápovědy nepomohly, měli by využít vzorového řešení. Mezi zkušenými hráči to naopak zajistí, že použití tutoriálu je adekvátně penalizováno.
4.2
Předchozí implementace hry v KYPO
Nově vzniklá hra navazuje na již existující hru, kterou v rámci své diplomové práce vytvořil Lukáš Neudert [24]. Jeho hra se skládá z pěti úrovní a je koncipována jako klasická capture the flag hra – v každé úrovni má hráč za úkol získat vlajku, čímž potvrdí splnění zadané úlohy. Hra nabízí přístup na stroje pouze prostřednictvím textové konzole za použití vzdáleného připojení pomocí protokolu SSH. Hráč ovládá průběh hry skrze samostatnou webovou aplikaci, která je přístupná na uzlu SMN. Aplikace například kontroluje správnost odeslaných vlajek. Jednotlivé úrovně jsou rozděleny následovně: Úroveň 1 V první úrovni je hráč instruován k použití nástroje Nmap [29] k získání přehledu o aktivních službách na otevřených portech v síti. Skenování portů je velice častá aktivita ze strany útočníků a často může indikovat následný útok [13]. Vlajkou je hash vytvořen z řetězce čísel otevřených portů. Úroveň 2 Druhá úroveň požaduje po hráči provedení útoku SQL injection, který patří mezi časté útoky na webové aplikace [27]. Cílová webová aplikace nekontroluje korektně uživatelské vstupy a tak hráč získá uživatelské jméno administrátora systému. Vlajkou je hash vytvořený z řetězce jména administrátorského účtu. Úroveň 3 Ve třetí úrovni dostane hráč za úlohu získat přístup do systému s přihlašovacím jménem, které obdržel v minulé úrovni. Zadání napovídá k použití programu hydra [8]. Po úspěšném přihlášení se do systému hráč zjistí, že ukradený uživatelský účet má přístupová práva pouze do adresáře s webovým obsahem. Vlajka je hash vytvořený ze seznamu souborů ve zmíněném adresáři. Úroveň 4 Jelikož hráč nezískal v předchozí úrovni dostatečná práva na cílovém stroji, musí využít další zranitelnosti, která je přítomná v podobě zranitelné verze aplikace Samba [10]. Po zneužití této zranitelnosti má hráč právo superuživatele a výslednou vlajku vytvoří jako hash adresáře /root. 22
4. Metodika tvorby nové hry Úroveň 5 V poslední úrovni má hráč za úkol nakonfigurovat aplikaci NTP (Network Time Protocol) tak, aby mohla být využita při tzv. Reflection Denial of Service útoku, u kterého je využito aplikací třetích stran k provedení útoky odmítnutí služby [9]. 4.2.1 Zhodnocení hry Hra má přínosný a zajímavý obsah pro školení penetračního testování, především díky široké škále útoků v představeném scénáři. Hlavním nedostatkem je heterogenita prostředí – aplikace ovládající hru je oddělena od samotného virtuálního prostředí, ve kterém se hráč pohybuje (je dáno stupněm vývoje platformy KYPO). Důležitým aspektem je také složitost jednotlivých úrovní, které mají skokovitě odlišné obtížnosti.
4.3
Výběr zranitelností
Výběr zranitelností, pomocí nichž byl vybudován scénář pro novou hru byl proveden na základě reportu organizace OWASP (The Open Web Application Security Project), konkrétně podle reportu OWASP Top 10 2013 [32]. OWASP se zaměřuje na bezpečnost aplikací, a to nejen webových. Na svých stránkách [33], vydává zprávy především o obecných zranitelnostech v aplikacích a možných metodách prevence a mitigace. Kromě těchto zpráv také vydává jednou za tři roky tzv. Top 10 report, ve kterém uvádí nejaktuálnější a nejzávažnější zranitelnosti, jež se vyskytují u nových aplikací. Report obsahuje 10 obecných typů zranitelností, ktreré je možné dále dělit. Příkladem může být obecná zranitelnost injektování, kterou můžeme rozdělit na SQL (Structured Query Language), LDAP (Lightweight Directory Access Protocol) atd. Níže následuje popis konkrétních zranitelností, které byly vybrány pro jednotlivé úrovně hry. Zranitelnosti jsou kategorizovány podle zmíněného reportu. 4.3.1 Úroveň 1 – Žádná zranitelnost První úroveň má za cíl obeznámit hráče s infrastrukturou, ve které pracuje – hráči tak mají za úkol skenovat otevřené porty na jednotlivých strojích, čímž nezneužívají žádné zranitelnosti. Skenování otevřených portů však bývá dosti častou aktivitou před zahájením síťových útoků [13]. 4.3.2 Úroveň 2 – A6 – Expozice citlivých dat Na jednom ze strojů ve hře je umístěna aplikace WordPress, kterou lze pomocí automatizovaných nástrojů skenovat. Skenování pak prozradí verzi aplikace, její zásuvné moduly společně s jejich verzemi. Útočníci pak mohou vyhledávat konkrétní servery obsahující zranitelnou verzi aplikace, která jim například dovolí získat přístup na server. 23
4. Metodika tvorby nové hry 4.3.3 Úroveň 3 – A5 – Nezabezpečená konfigurace Zmíněná webová aplikace WordPress používá na daném webu zásuvný modul Reflex Gallery, který v konkrétní nainstalované verzi 3.1.3 obsahuje chybu: modul umožňuje nahrání obrázků, nekontroluje však typ souboru. Na server je tedy možné nahrát jakýkoliv soubor. Zranitelnost má identifikátor CVE-2015-4133 (Common Vulnerabilities and Exposures) [34], což je standard pro označení konkrétních zranitelností. 4.3.4 Úroveň 4 – A2 – Chybná autentizace a správa relace Jeden z uživatelů má nastaveno jednoduché heslo, jež je součástí slovníku hesel dostupného na Internetu [18]. Na jemu přístupném stroji je spuštěn SSH server, což umožňuje útočníkům provézt útok slovníkovou metodou. 4.3.5 Úroveň 5 – A2 – Chybná autentizace a správa relace Na jednom ze strojů v síti je spuštěn operační systém s jádrem, jež umožňuje za jistých podmínek eskalovat uživatelská práva na práva superuživatele. Konkrétně se jedná o zranitelnost s označením CVE-2015-8660 [35], která se týká například strojů s operačním systémem Ubuntu ve verzi 15.10, který je na stroji nainstalován. 4.3.6 Úroveň 6 – A2 – Chybná autentizace a správa relace Jeden ze strojů spoléhá na autentizaci pomocí certifikátu a privátního klíče, kterými prokazuje svou identitu vůči serveru. Díky absenci hesla chránícího obě zmíněná kryptografická primitiva je cílový server napadnutelný při odcizení klíče a certifikátu. Pokud tedy hráč získá přístup na stroj, kde jsou tato primitiva použita, může je zkopírovat na svůj stroj nebo přímo použít pro krádež identity.
4.4
Úvod do herního scénáře
Veškeré subjekty a osoby použité ve scénáři hry jsou smyšlené a nepředstavují žádné konkrétní subjekty ani osoby v reálném světě. Celá hra je napsána v anglickém jazyce, aby byla přístupná co nejširšímu počtu hráčů. Před začátkem hry jsou hráči seznámeni s prostředím, ve kterém hra probíhá. Herní portlet jim nabízí stručné informace v textové podobě, které je uvedou do děje: WWE Bank has some problems with the security of their IT infrastructure. They proposed a challenge to "hack"their system. Anybody who finds out any security holes will be awarded some real cold cash. They are especially afraid of sensitive data in one of their databases. Your goal is to find a way into their system and if possible, access the database. However, you are not granted any direct access so good luck trying. Výše zmíněný databázový server a další stroje v síti jsou následně hráčům předvedeny na topologickém portletu, který vizualizuje virtuální síť, ve které hráči plní zadané úlohy hry (viz obrázek 3.3). 24
4. Metodika tvorby nové hry Hráč si tedy ve scénáři vyzkouší roli penetračního testera, jež se snaží odhalit nedostatky v informační infrastruktuře banky WWE. Jeho nejdůležitějším cílem je získat tajné informace z databáze jednoho ze serverů banky. K dispozici má jeden výchozí stroj, který má nainstalován operační systém Kali Linux light (na obrázku 3.3 stroj CTF–7–Kali–attacker/10.10.20.2). Systém nebyl nainstalován v plné verzi, neboť obsahuje širokou škálu nástrojů pro skenování, penetrační testování apod., které by mohly zbytečně hráče mást. Proto byla zvolena zjednodušená verze, jež obsahuje pouze některé základní nástroje. Pro účely hry byly některé nástroje z plné verze přidány – například databáze exploitů z projektu Exploit-db [12]. Ke svému stroji s operačním systémem Kali se hráč připojí skrze VNC portlet, který poskytuje grafické rozhraní. Všechny ostatní stroje v síti nejsou hráči přímo přístupné a patří bance WWE. Hráč se postupným plněním jednotlivých úrovní zmocňuje konkrétních strojů v síti, pomocí nichž poté vede další útoky. V síti banky jsou celkově tři stroje: webový server pro klienty banky (na obrázku 3.3 stroj CTF–7–http–server/10.10.10.4, dále jen server HTTP), webový server pro zaměstnance banky (na obrázku 3.3 stroj CTF–7–https–server/10.10.10.3, dále jen server HTTPS) a databázový server (na obrázku 3.3 stroj CTF–7–mysql– server/10.10.10.5, dále jen server MySQL). Všechny servery mají nainstalován operační systém Lubuntu, avšak liší se nainstalovanými aplikacemi. Stroje nemají klasické uživatelské rozhraní a celkově byly upraveny, za účelem snížení diskové kapacity. Podrobnosti týkající se instalace aplikací, hesel apod. jsou uvedeny na přiloženém CD, shrnutí o jednotlivých strojích podává tabulka 4.1 Název
Operační systém
Aplikace
Kali
Kali Linux 4.3.0
Nmap, wpscan, Metasploit, Medusa
Server HTTP
Lubuntu 15.10
LAMP, Wordpress
Server HTTPS
Lubuntu 15.10
LAMP, OpenSSL, SSH server
Server MySQL
Lubuntu 15.10
MySQL server, OpenSSL
Tabulka 4.1: Přehled jednotlivých strojů, (LAMP – Linux, Apache, MySQL a PHP) 4.4.1 Server HTTP Server má primárně nainstalován webový server Apache, na kterém jsou pomocí aplikace WordPress vytvořeny fiktivní stránky banky WWE. Kromě samotné serverové aplikace jsou také doinstalovány moduly PHP pro Apache a databáze, která je vyžadována systémem WordPress – systém není závislý na konkrétní databázové aplikaci, zvolenou byla MySQL databáze. Do aplikace WordPress byl doinstalován zásuvný modul Reflex Gallery verze 3.1.3. Modul umožňuje nahrávat na server obrázky, avšak při zasílání dat na server nekontroluje dostatečně formát zasílaných dat, čímž představuje zranitelné místo, zneužitelné útočníkem. Dalším nedostatkem systému WordPress je jeho konfigurace. Konkrétně se jedná o přihlašovací údaje do databáze, které jsou umístěny v otevřené podobě v souboru wp-config.php. V případě, že administrátor webu nezmění souboru přístupová práva explicitně, je soubor dostupný komukoliv pro čtení. 25
4. Metodika tvorby nové hry 4.4.2 Server HTTPS Server má primárně nainstalovaný webový server Apache, který je tentokrát kompilován s modulem SSL (Secure Socket Layer), jež umožňuje šifrovat přenos dat. Server také používá soukromý klíč pro autentizaci při přístupu na MySQL server. Server má také doinstalován SSH server pro vzdálený přístup. Na webu je doinstalována aplikace TWiki, pomocí níž byly vytvořeny webové stránky pro personál banky. Intranet obsahuje informace o jednotlivých projektech banky a o její infrastruktuře. Aplikace ani web neobsahují žádnou zranitelnost, ta je představována slabým heslem [18] pro uživatele „undertaker“, který má na server HTTPS umožněn vzdálený přístup skrze SSH. 4.4.3 Server MySQL Server má primárně nainstalovaný databázový server MySQL, jež je přístupný pouze ze serveru B a navíc pouze za použití SSL. Pro vzdálené připojení je potřeba použít privátní klíč a certifikát, který si server MySQL ověří. Autentizace nevyžaduje žádné heslo. Certifikát i privátní klíč jsou čitelné pouze z účtu superuživatele a tak se může zdát, že je autentizace dobře zabezpečená. Problémem je však možnost, že obyčejný uživatel serveru HTTPS dokáže eskalovat svá práva a stát se superuživatelem. Poté uživateli nic nebrání využít zmíněný klíč a certifikát a připojit se na databázový server MySQL. Podle scénáře hráč získává přístupy na jednotlivé servery v pořadí naznačeném ve schématu 4.1.
Obrázek 4.1: Schéma postupu napadání strojů 26
4. Metodika tvorby nové hry
4.5
Scénář hry
Hráč má možnost projít až šest úrovní, které mají unikátní zadání. Tabulka 4.2 popisuje názvy jednotlivých úrovní, odhadnutý čas, který by měl stačit na jejich splnění a stroj, na který se v aktuální úrovni útočí. Úroveň 1 2 3 4 5 6
Jméno Průzkum Skenování webu Exploitace webu Krádež přihlašovacích údajů Eskalace práv Krádež informací
Čas (min.)
Napadaný stroj
10 10 25 20 20 15
– Server HTTP Server HTTP Server HTTPS Server HTTPS Server MySQL
Tabulka 4.2: Tabulka shrnující úrovně hry
4.6
Úrovně hry
Úrovně mají poměrně rozsáhlé zadání a tak je jejich plné znění uvedeno na přiloženém CD. Následující odstavce se věnují popisu jednotlivých úrovní a předpokládanému průchodu. 4.6.1 Průzkum V úvodní úrovni má hráč za úkol zjistit služby dostupné v síti WWE banky. Pomocí nápověd se hráč dozví, že vhodným nástrojem je Nmap [30, 31], pomocí nějž provede skenování portů. Otevřené porty pak hráč seřadí v rostoucím pořadí a vytvořený textový řetězec použije pro zajmutí vlajky. 4.6.2 Skenování webu Hráč v předchozí úrovni zjistil, že na serveru HTTP je otevřený port 80, na kterém ve většině případů bývá spuštěn web [20]. V této úrovni má hráč za úkol zjistit zranitelnost webu a její CVE. Po navštívení webu serveru si hráč může všimnout, že web používá aplikaci WordPress. Na jeho počítači (Kali) je nainstalována aplikace wpscan, která umožňuje skenování aplikace WordPress. Skenováním hráč zjistí, že aplikace WordPress na webu používá zásuvný modul Reflex Gallery a přímo ve výstupu se dozví CVE zranitelnosti s modulem spojené. 4.6.3 Exploitace webu Hráč v minulé úrovni objevil zranitelnost, týkající se webu na serveru HTTP. Ve stávající úrovni je cílem hráče zranitelnost zneužít a získat tak přístup na server HTTP. Zde je pak připraven soubor obsahující vlajku. Hráč využije aplikace Metasploit, 27
4. Metodika tvorby nové hry která je nainstalována na jeho počítači a patří mezi nejlepší nástroje pro penetrační testování [23]. Metasploit umožní hráči přistoupit na server HTTP použitím meterpreter shellu, pomocí nějž hráč najde příslušný soubor s vlajkou. 4.6.4 Krádež přihlašovacích údajů Hráč dostal v minulé úrovni přístup na server HTTP. Zde má za úkol zjistit uživatelská jména z databáze a následně použít získané přihlašovací jméno ke slovníkovému útoku na server HTTPS. Na serveru HTTP je aplikace WordPress, která používá databázi a přihlašovací údaje k ní má uložené v otevřené podobě v souboru wp-config.php. Hráč tak dostává snadno přístup do databáze. V databázi nalezne hráč uživatelské jméno, které použije spolu s jemu dostupným slovníkem pro útok na SSH slovníkovou metodou pomocí aplikace Medusa [26]. Vlajkou v této úrovni je heslo, pro přihlášení skrze SSH na server HTTPS. 4.6.5 Eskalace práv Hráč získal v minulé úrovni přihlašovací údaje na server HTTPS. V této úrovni má za úkol přečíst soubor, který je však čitelný pouze pro superuživatele. Hráč využije datasetu exploit-db, ve kterém nalezne program napsaný v jazyce C, který je schopen eskalovat práva běžného uživatele na superuživatele na verzi distribuce Ubuntu 15.10. Hráč přesune program na server HTTPS, kde jej zkompiluje a spustí. Nyní může hráč přečíst zmíněný soubor. 4.6.6 Krádež informací Hráč je odkázán na web serveru HTTPS. Zde se dozví, že server HTTPS má možnost vzdáleného přístupu k databázi na serveru MySQL s využitím privátního klíče a certifikátu. Certifikát i klíč je čitelný pouze superuživateli (jeho práva získal hráč v minulé úrovni). Po připojení se k databázi hráč získá hash z jedné z tabulek databáze. Hash pak následně prolomí a získá tajnou zprávu, ze které vytvoří vlajku.
4.7
Příprava hry pro prostředí KYPO
V předchozích sekcích byly popsány zranitelnosti vybrané pro hru a také jejich rozmístění v jednotlivých úrovních. Zranitelné aplikace byly nainstalovány na jednotlivé systémy nejdříve lokálně – v prostředí VMware Workstation Player (příprava jednotlivých virtuálních disků je popsána na přiloženém CD). Poté byly takto připravené virtuální disky zavedeny do prostředí KYPO, kde je možné pomocí konfiguračního scénáře postavit sandboxy viz příloha B. Před samotným nasazením hry byla hra interně otestována dvěma hráči a na základě jejich připomínek bylo pozměněno znění některých popisů zadání a navýšeny délky trvání některých úrovní. Tímto je uzavřena kapitola o návrhu a tvorbě hry, a také zázemí a nástrojích, které byly použity. Následující kapitola pojednává o nasazení a testování hry a pomocí údajů z průběhu odehraných her představuje dosažené výsledky v oblastech, ve kterých se hra liší od předchozích klasických implementaci capture the flag her. 28
5 Nasazení a vyhodnocení hry Nová hra byla zatím nasazena ve dvou bězích, přičemž celkově jsme získali data od 21 hráčů. Nasazení hry se účastnili členové týmu Computer Security Incident Response Team of Masaryk University (CSIRT-MU1 ), členové laboratoře softwarových architektur a informačních systémů (FI MU LaSArIS2 ) a také účastníci akce Masaryk University Staff Training Week z různých univerzit v Evropě. Tato akce byla zaměřena na bezpečnost informačních technologií [28]. Cílem bylo otestovat jednotlivá rozšíření a vlastnosti hry: ∙
Možnost využívat nápovědy v jakémkoliv pořadí.
∙
Přístup k řešení každé úrovně.
∙
Obtížnost.
∙
Časová náročnost.
5.1
Sběr dat
Sběr dat byl veden ve dvou úrovních. Pro hráče byly připraveny anonymní dotazníky (hráči v nich vyplnili ID spojené s jejich herním účtem) a během hraní docházelo k logování herních událostí. Vyplňování dotazníků zobrazuje schéma 5.1
Obrázek 5.1: Schéma vyplňování dotazníků Dotazníky byly nachystány pomocí google forms3 a byly celkem dva – první se týkal osobních zkušeností s bezpečností, dosaženého vzdělání, let praxe v oblasti bezpečnosti apod. (veškeré otázky jsou v příloze A). Tyto informace především slouží pro potvrzení dostatečné diverzity mezi hráči, která by v případě vysoké jednostrannosti mohla zkreslovat pohled na evaluaci odhadu náročnosti hry. Druhý dotazník se týkal přímo hry jako takové. Hráči měli po dokončení každé úrovně za úkol vyplnit herní dotazník viz příloha A.2. Pro každou úroveň byly připraveny totožné otázky týkající se obtížnosti, časové náročnosti a dotazník také 1. http://csirt.muni.cz/ 2. http://lasaris.fi.muni.cz/ 3. https://www.google.com/intl/cs_cz/forms/about/
29
5. Nasazení a vyhodnocení hry dával možnost hráčům jakýmkoliv způsobem se vyjádřit k náplni úrovní ve formě volného textu. Na závěr pak mohl každý hráč ve stejné formě zhodnotit hru jako celek. Během hraní byly logovány elementární kroky hráčů do textového souboru. Konkrétně se jednalo o interakce s herním portletem. Po události vyvolané kliknutím na jakékoliv tlačítko byl změřen konkrétní čas a událost která nastala. V logu je tak u každého hráče vidět začátek hry, čas využití nápovědy a také její identifikátor, čas využití řešení úlohy, čas zadání špatné vlajky, čas zadání správné vlajky a tedy dokončení úrovně, čas kdy hráč přeskočil úroveň a také čas dokončení celé hry.
5.2
Vyhodnocení dat
Tato sekce popisuje data získaná z testovacích běhů hry. Jednotlivé podsekce zobrazují demografické rozdělení hráčů, využívání nově zavedených prvků – nápovědy a vzorová řešení, a také porovnání odhadů obtížnosti a časové náročnosti se získanými hodnotami. 5.2.1 Data z dotazníků před začátkem hry Hráčům bylo před začátkem hry i během ní položeno několik otázek viz příloha A. Otázky před hrou slouží především pro určení variability znalostí a zkušeností hráčů. Demografické rozdělení Nejvyšší dosažený akademický titul Graf 5.2 ukazuje rozložení hráčů podle nejvyššího získaného akademického titulu.
52.4% 9.5%
Žádný - středoškolské vzdělání Bakalář Magistr/Inženýr Doktor a vyšší Jiné
19% 19%
Obrázek 5.2: Rozdělení hráčů podle nejvyššího dosaženého akademického titulu
30
5. Nasazení a vyhodnocení hry Zkušenosti se síťovou bezpečností Zkušenosti jsou vyneseny v grafu 5.3 na škále 1 až 5. Stupeň 1 odpovídá nulovým zkušenostem, stupeň 5 odpovídá zkušenostem na úrovni penetračního testování, zátěžového testování apod. 10
Počet hráčů
9 (42.9%) 5 (23.8%) 5 3 (14.3%)
3 (14.3%)
1 (4.8%) 0
..
1
2
3
4
5
..
Zkušenosti
Obrázek 5.3: Rozdělení hráčů podle zkušeností se síťovou bezpečností Zkušenosti s jinými hrami Hráči byli dotázáni, zda někdy v minulosti již nějakou bezpečnostní hru hráli (viz graf 5.4).
38.1%
Ano Ne, ale vím o co se jedná Nikdy jsem o tom neslyšel
19%
42.9%
Obrázek 5.4: Zkušenosti s jinými hrami Zhodnocení statistického vzorku Škála hráčů byla během testování poměrně pestrá – hru si vyzkoušeli jak hráči zkušení tak i ti s nulovými zkušenostmi. Poměr hráčů, kteří již dříve nějakou bezpečnostní hru hráli byl také poměrně vyrovnaný. Celkově se dá říci, že byl vzorek poměrně vhodný pro získání adekvátních dat, která tak nejsou jednostranně zkreslená. Při analýze dat z dotazníků a zaznamenaných logů u některých vzorků docházelo k nesrovnalostem – konkrétním příkladem je využívání nápověd, kdy dotazníky obsahovaly informace o zvládnutí úrovně bez nápovědy, záznam však ukázal opak. Na druhou stranu se takovéto nesrovnalosti objevily i v opačném směru – hráči uvedli do dotazníku, že nápovědu využili, v logu však takové záznamy nebyly. Tato skutečnost mohla být tedy dána nepochopením otázky, nebo mohlo jít o záměr hráčů zakrýt skutečnost. 31
5. Nasazení a vyhodnocení hry 5.2.2 Časový odhad
0
10
Délka trvání [minuty] 20 30 40 50
60
Hra měla autorem odhadnutou dobu úrovní blíže popsanou v tabulce 4.2. Během logování pak byly nasbírány skutečné délky trvání jednotlivých úrovní. Krabicový diagram 5.5 ukazuje globální pohled na získané časy. Modrou vodorovnou čarou v každém z diagramů je označen predikovaný čas, černá vodorovná čára představuje medián. Každý z obdélníků vyznačuje data z prvního a třetího kvartilu, extrémní hodnoty jsou zaznačeny vodorovnou tenkou čarou na konci pruhované svislé.
1
2
3
4
5
6
Úroveň
Obrázek 5.5: Krabicový diagram délek trvání jednotlivých úrovní
Odhadnutý čas pro jednotlivé úrovně byl následující: 10, 10, 25, 20, 15 minut. Z diagramu vyplývá, že úroveň 1, 2, 3 a 5 měly čas odhadnutý poměrně přesně (mediány: 9, 11, 20, 22 minut), což je poměrně blízký výsledek odhadnutému času. Naproti tomu odhady pro úrovně 4 a 6 nespadají ani do intervalu mezi extrémními hodnotami (22–63, 23–67), což může být způsobeno poměrně velkým počtem menších úloh v zadání úrovní 4 a 6. Důvodem dlouhých trvání těchto úrovní také může být jejich náplň – hráči měli ve 4. úrovni za úkol prolomit heslo slovníkovou metodou. I když hráči měli stejné slovníky, používali často uživatelská jména, která nebyla slovníkovou metodou prolomitelná, nebo nepoužívali možnost souběžného zkoušení hesel, čímž se jejich pokus o prolomení hesla zpomalil. V 6. úrovni šlo o prolamování hashe ukrytého v databázi, dlouhá délka trvání tedy může opět souviset s konkrétním nástrojem a jeho módem spuštění. Graf časů všech hráčů je poměrně rozměrný a proto je uveden v příloze C. 32
5. Nasazení a vyhodnocení hry 5.2.3 Používání nápověd Hráči měli možnost využít v každé úrovni dvě nápovědy, vyjma třetí úrovně, kde byly nápovědy tři. Pokud si hráč zvolil některou z nápověd, byla jeho akce zalogována. Kromě samotného faktu využití nápovědy byly také logovány jejich identifikátory. Jelikož hráči měli u každé nápovědy přístupný textový popisek o obdržené informaci z nápovědy, zkoumanou veličinou zde bylo využívání nápověd v jiném než lineárním pořadí. Dosažené výsledky popisuje schéma 5.6.
Obrázek 5.6: Schéma využívání nápověd Každý z řádků tabulky odpovídá jedné úrovni, každý ze sloupců odpovídá průchodu jednoho hráče. V případě, že hráč v dané úrovni nepoužil žádnou nápovědu, je příslušné pole bílé. Modré pole znamená užití nápověd v lineárním pořadí – možné varianty jsou: (1), (1,2), (1, 2, 3). Zelené pole značí užití nápověd v jiném než lineárním pořadí – např: (2), (2, 3, 1) apod. Pokud byla úroveň nesplněna a následně přeskočena je v příslušném poli uvedeno červené X. Celkový počet využití alespoň jedné nápovědy v každé z úrovní činí 74 ze 126. Dále je možné napočítat celkově 21 četností využití nápověd v jiném než lineárním pořadí, což činí 28 %. Tento systém se poměrně osvědčil – což je patrné například u hráčů popsaných v 16. a 19. sloupci ve schématu 5.6, jež využili možnost volby mezi nápovědami a podařilo se jim splnit zadané úlohy. Na druhou stranu je vidět, že někteří hráči měli problém vyřešit skoro všechny zadané úlohy (sloupce 18 a 20) – jednalo se o hráče s povrchními znalostmi (vyplnili v dotazníku „zkušenost se síťovou bezpečností“ hodnotami 1 respektive 3 a žádnou bezpečnostní hru dříve nehráli) a možnost volby nápověd pro ně nebyla klíčová. 5.2.4 Použití vzorového řešení Hráči měli po využití všech nápověd možnost bez další bodové ztráty využít vzorové řešení v každé úrovni. Záměrem bylo nabídnout méně zkušeným hráčům, kterým nepomohou ani všechny nápovědy, možnost získat určitý počet bodů, čímž by byli motivováni pokračovat ve hře a zároveň také získali nové znalosti v dané oblasti. Celkově bylo vzorové řešení použito ve 27 případech 8 hráči. U hráčů se poté sledovalo jestli po použití vzorového řešení zvládli zajmout vlajku a dokončit úroveň. Výsledky byly poměrně překvapující. Každé vzorové řešení poskytovalo 33
5. Nasazení a vyhodnocení hry návod jak postupovat krok za krokem, avšak i přesto byl počet přeskočených úrovní po použití vzorového řešené poměrně vysoký. Celkový poměr pro každou úroveň vyjadřuje tabulka 5.2.4 Úroveň 1 2 3 4 5 6
Zobrazeno řešení 0 4 6 9 3 6
Úroveň splněna 0 4 3 5 2 3
Úroveň přeskočena 0 0 3 4 1 3
Tabulka 5.1: Poměr úspěchu při využití vzorového řešení Úspěšnost při využívání vzorového řešení se zdá poměrně nízká, na druhou stranu je 7 z 11 přeskočených úrovní svázáno pouze s dvěma hráč. Oba dříve žádnou bezpečnostní hru nehráli a mají poměrně povrchní zkušenosti se síťovou bezpečností. Ostatní hráči využili možnost náhledu na vzorové řešení většinou jednou za hru – jednalo se o hráče méně až průměrně zkušené. 5.2.5 Hodnocení hry Jednou z otázek druhého dotazníku byl subjektivní pocit ze hry. Hráči mohli volit z několika charakteristik jak se jim hra jevila viz graf 5.7. Hráči mohli volit více odpovědí. Zábavná Nudná Poučná Neinformativní Frustrující/Iritující Motivující/Hodnotná Zajímavá Ztráta času Jiné 0
20 (95.2%) 0 (0%) 16 (76.2%) 0 (0%) 10 (47.6%) 11 (52.4%) 8 (38.1%) 0 (0%) 0 (0%) 2
4
6
8
10
12
14
16
18
20
Počet hráčů
Obrázek 5.7: Hodnocení hry Celkové hodnocení hry je spíše kladné – všichni hráči až na jednoho označili hru jako zábavnou (poslední ji označil jen jako poučnou). Skoro pro 50 % hráčů však byla hra frustrující, popřípadě iritující. Zajímavé je, že toto označení použili hráči, kteří získali většinou 80 a více bodů ze 100 (nikdo z nich neměl méně než 59 bodů). Způsobeno to bylo nejspíše časovou náročností úrovní 4 a 6, kde museli hráči neaktivně čekat na prolomení hesla respektive hashe. Jednalo se také o hráče, kteří subjektivní pocit ze hry vyjádřili alespoň 4 různými odpověďmi. Ostatní hráči byli spíše zdrženliví a použili většinou jen 2 odpovědi. Velice dobrou charakteristikou je fakt, že i hráči, kteří hru nezvládli ji neoznačili jako ztrátu času a v dotazníku 34
5. Nasazení a vyhodnocení hry odpověděli, že se něco nového naučili a také by si další bezpečnostní hru zahráli. Hráči měli možnost v dotazníku u každého z úrovní a i hry všeobecně napsat jakékoliv připomínky, které byly vesměs také kladné a týkaly se popisů zadání, ale také dostupných nástrojů. Odpovědi byly většinou prázdné nebo strohé, přesto se našly i plnohodnotné odpovědi: ∙
„I have lost focus in the last round :)“
∙
„Thank you for the good time :-)“
∙
„The beginning was fun, but then I lost the track and got bored.“
∙
„Question 4 or 5 was a bit unclear, shell without autocomplete is tedious, copy paste to brworser would be cool, or some editor to make notes on Kali. the metasploit framework was frustrating, but it got more rewarding at the end. Excellent!“
∙
„Cheat sheet with UN*X commands would be helpful.“
∙
„Well done, interesting, good hidden points in the level description.“
5.2.6 Motivace zahrát si jinou bezpečnostní hru Závěrečná otázka se týkala motivace zahrát si jinou bezpečnostní hru po odehrání stávající. Graf 5.8 ukazuje rozložení jednotlivých hráčů, přičemž v návaznosti na otázku předešlé zkušenosti z jinými hrami v podsekci 5.2.1, devět z deseti hráčů, kteří dříve žádnou podobnou hru nehráli by si další zahráli.
14.3%
Určitě, hra se mi líbila Možná Ne
85.7%
Obrázek 5.8: Motivace zahrát si jinou hru Celkem tři hráči si nejsou jisti, zda by si další hru zahráli – pouze jednomu z nich se hra jevila jako iritující a celkově si hráči vedli průměrně až nadprůměrně. Nejspíše byli ovlivněni úrovní 4 kde strávili v průměru 53 minut a obdrželi pouze poloviční bodový zisk.
35
6 Závěr V této práci jsme se zabývali návrhem a tvorbou bezpečnostní hry, která bude přístupná pro hráče s různými úrovněmi dovedností. Začátek práce je věnován zpracování dostupných bezpečnostních her typu capture the flag. Hry jsou zhodnoceny podle vybraných kritérií s důrazem na mechanismy zajišťující dostupnost her široké škále hráčů. Na základě rešerše jsme poté navrhli vlastní bezpečnostní hru, která může být použita pro školení hráčů v oblasti bezpečnosti informačních technologií. Hra a veškeré materiály s ní spojené jsou vytvořeny v anglickém jazyce. Hru jsme připravili v prostředí Kybernetického polygonu. Nejprve jsme upravili již existující herní prostředí – přidali jsme možnost přístupu ke všem dostupným nápovědám a také možnost zpřístupnit vzorové řešení pro každou úlohu. Do prostředí jsme také přidal možnost zaznamenávat herní události, což bylo použito pro analýzu využívání nápověd, vzorových řešení a úspěšnosti plnění úloh. Logování taktéž přináší lektorovi možnost sledovat přehledně aktuální stav hry u všech hráčů – aktuální řešené úrovně, počty bodů apod. Cílem hry je obeznámit hráče s oblastí penetračního testování a také zvýšit povědomí o různých typech aktuálních síťových útoků. Pro hru jsme tedy vymysleli fiktivní scénář útočení na síť banky. Hra je rozdělena do několika úrovní, přičemž v každé z úrovní si hráč různým typem útoku buduje nadvládu nad infrastrukturou sítě. Jednotlivé útoky byly inspirovány reportem OWASP Top 10 o aktuálních typech zranitelností. K vybraným zranitelnostem jsme dohledali zranitelné aplikace, které jsme nainstalovali na virtuální stroje. Z virtuálních strojů jsme poté sestavili v prostředí Kybernetického polygonu virtuální síť. Před použitím hry v rámci cvičení došlo k internímu testování scénáře. Scénář hry poté prošel konkrétními změnami, než jej bylo možné použít pro reálné cvičení. Společně s vedoucím práce jsme uspořádali dva běhy hry, které sloužili pro vyhodnocení nových rozšíření a vlastností hry, během něhož byla sledována především interakce hráčů se systémem nápověd a využívání vzorových řešení. Testování se zúčastnili zaměstnanci a studenti Masarykovy univerzity a také zaměstnanci různých evropských univerzit. Kromě sběru dat skrze logovací systém jsme také od hráčů získali zpětnou vazbu v podobě dotazníků. Dotazníky se zaměřily na hodnocení obtížnosti hry, zkušenosti s jinými hrami a také využívání nápověd během hry. Pro zpracování dat z dotazníků jsme vytvořili skripty, které umožňují data vhodně vizualizovat a dále je zpracovávat, skripty jsou součástí dokumentace uložené na CD.
6.1
Budoucí vývoj
Hra je opakovatelně použitelná a bude využita pro některá příští školení a cvičení o bezpečnosti. Možný směr budoucího vývoje je především zpřesnění znění otázek v dotaznících, neboť při analýze dat z dotazníků a logování docházelo k poměrně častým nesrovnalostem mezi odpovědí hráče a jeho zaznamenanou událostí. Zpřesnění umožní získat více informací ohledně přínosnosti hry pro konkrétní skupiny hráčů. Díky získaným informacím z dotazníků tak bude možné lépe hru popsat 36
6. Závěr v závislosti na předpokládaných parametrech, které by měli hráči splňovat, aby pro ně hra měla dostatečný přínos. Další možnou oblastí vývoje je také podrobnější zpracování dat získaných z logování herních událostí, neboť zde s vysokou pravděpodobností nemůže dojít k chybám (jako ze strany hráčů u dotazníků). Jejich následná analýza pak může přinést nové poznatky o chování hráčů v čase a bude tak možné na míru připravit bezpečnostní hry pro různé profily hráčů. Logování je také možné rozšířit o logy aplikací uvnitř virtuálního prostředí, čímž však dojde ke ztrátě obecnosti hry – hra bude vázána na konkrétní aplikace.
37
Literatura [1] BURNING GLASS TECH. Job Market Intelligence: Cybersecurity Jobs [online]. 2015 [cit. 2016-05-18]. Dostupné z: http://burning-glass.com/wp-content/ uploads/Cybersecurity_Jobs_Report_2015.pdf [2] NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY. nvdcve-2.02015 [online]. 2015. [cit. 2016-05-18]. Dostupné z: http://static.nvd.nist. gov/feeds/xml/cve/nvdcve-2.0-2015.xml.zip [3] CHUNG, Kevin a Julian COHEN. Learning Obstacles in the Capture The Flag Model. In: USENIX Summit on Gaming, Games, and Gamification in Security Education (3GSE 14). San Diego: CA, 2014. [4] MIRKOVIC, Jelena a Peter A. H. PETERSON. Class Capture-the- Flag Exercises. In: USENIX Summit on Gaming, Games, and Gamification in Security Education (3GSE 14). San Diego: CA, 2014. [5] LEGG, Steven D. Capture the Flag: It’s All Fun and Games with Business Benefits [online]. 2015 [cit. 2016-05-18]. Dostupné z: http: //www.tripwire.com/state-of-security/security-data-protection/ capture-the-flag-its-all-fun-and-games-with-business-benefits/ [6] CTFTIME. Domovská stránka [online]. [cit. 2016-05-18]. Dostupné z: https:// ctftime.org/ [7] RICHARD L. SEZOV. Liferay portal administrator’s guide. 3. ed. [Nachdr.]. London: Liferay Press, 2009. ISBN 978-057-8027-296. [8] THC. Hydra 8.1 [program]. Dostupné z: https://www.thc.org/releases.php [9] PAXSON, Vern. An analysis of using reflectors for distributed denial-of-service attacks. In: ACM SIGCOMM Computer Communication Review [online]. 2001, 31(3), 38[cit. 2016-05-21]. DOI: 10.1145/505659.505664. ISSN 01464833. Dostupné z: http://portal.acm.org/citation.cfm?doid=505659.505664 [10] THE SAMBA TEAM. Samba 3.6.3 [program]. Dostupné z: https://www.samba. org/samba/PFIF/ [11] VULNHUB. About Vulnhub [online]. [cit. 2016-05-18]. Dostupné z: https: //www.vulnhub.com/about/ [12] EXPLOIT-DB. Domovská stránka [online]. [cit. 2016-05-18]. Dostupné z: www. exploit-db.com [13] GADGE, Jayant a Anish Anand PATIL. Port scan detection. 2008 16th IEEE International Conference on Networks. IEEE, 2008, , 1-6. DOI: 10.1109/ICON.2008.4772622. ISBN 978-1-4244-3805-1. Dostupné z: http://ieeexplore. ieee.org/lpdocs/epic03/wrapper.htm?arnumber=4772622 38
LITERATURA [14] EICHLER, Zdenek, Radek OŠLEJŠEK a Dalibor TOTH. KYPO: A Tool for Collaborative Study of Cyberattacks in Safe Cloud Environment. In: HCI International 2015: Human Aspects of Information Security, Privacy, and Trust. LNCS, vol. 9190. Los Angeles: Springer International Publishing, 2015. s. 190-199, 10 s. ISBN 9783-319-20375-1. doi:10.1007/978-3-319-20376-8_17. [15] DANKOVČÍKOVÁ, Zuzana. Konfigurace a přehrávání herního scénáře v prostředí portálu Kypo [online]. Brno, 2015 [cit. 2016-05-18]. Bakalářská práce. Masarykova univerzita, Fakulta informatiky. Vedoucí práce Dalibor Toth. Dostupné z: http: //is.muni.cz/th/410237/fi_b/. [16] ČELEDA, Pavel, Jakub ČEGAN, Jan VYKOPAL a Daniel TOVARŇÁK. KYPO – A Platform for Cyber Defence Exercises. In: STO-MP-MSG-133: M&S Support to Operational Tasks Including War Gaming, Logistics, Cyber Defence. Munich (Germany): NATO Science and Technology Organization, 2015. s. nestránkováno, 12 s. ISBN 978-92-837-2020-1. [17] SANCHEZ, Joe. Virtual Machine Software: Top 10 Alternatives [online]. 2015 [cit. 2016-05-20]. Dostupné z: http://www.vminstall.com/ virtual-machine-software/ [18] SKULL SECURITY. The Top 500 Worst Passwords of All Time [online]. 2008 [cit. 2016-05-18]. Dostupné z: http://www.whatsmypass.com/ the-top-500-worst-passwords-of-all-time [19] ECMA INTERNATIONAL. The JSON Data Interchange Format [online]. 2013, s. 8 [cit. 2016-05-18]. Dostupné z: http://www.ecma-international.org/ publications/files/ECMA-ST/ECMA-404.pdf [20] COTTON, M. et all. Service Name and Port Number Procedures: Best Current Practice. RFC 6335. [online]. 2011, s. 32 [cit. 2016-05-20]. ISSN 2070-1721. Dostupné z: https://tools.ietf.org/html/rfc6335 [21] INFOSEC INSTITUTE. Domovská stránka [online]. [cit. 2016-05-18]. Dostupné z: http://ctf.infosecinstitute.com/index.php [22] OVER THE WIRE. Bandit level 15 [online]. [cit. 2016-05-18]. Dostupné z: http: //overthewire.org/wargames/bandit/bandit15.html [23] SECTOOLS. Top 125 Network Security Tools [online]. [cit. 2016-05-20]. Dostupné z: http://sectools.org/ [24] NEUDERT, Lukáš. Bezpečnostní hry [online]. Brno, 2014 [cit. 2016-05-18]. Diplomová práce. Masarykova univerzita, Fakulta informatiky. Vedoucí práce Jan Vykopal. Dostupné z: http://is.muni.cz/th/359981/fi_m/. [25] ROTH, Mark a Eduardo PELEGRÍ-LLOPART. JavaServer Pages Specification: Version2.0 [online]. Santa Clara, 2003, s. 94 [cit. 2016-05-20]. Dostupné z: http: //download.oracle.com/otndocs/jcp/jsp-2.0-fr-oth-JSpec/ 39
LITERATURA [26] FOOFUS ADVANCED SECURITY SERVICES. Medusa 2.2 [program]. Dostupné z: http://foofus.net/goons/jmk/medusa/medusa.html [27] AKAMI. Akami’s [state of the internet]/security [online]. 2015, s. 93 [cit. 2016-0521]. Dostupné z: https://www.akamai.com/de/de/multimedia/documents/ state-of-the-internet/2015-q1-internet-security-report.pdf [28] VAŠEK, Martin a Zita HRABOVSKÁ. Masaryk University Staff Training Week. [online]. Brno, 2016. [cit. 2016-05-18]. Dostupné z: http://cic.muni.cz/ images/MUST_programme_IT.pdf [29] LYON, Gordon. Nmap 7.12 [program]. Dostupné z: https://nmap.org/ [30] CASH, Johnny. TOP 5 FREE PORT SCANNERS [online]. 2013 [cit. 2016-05-18]. Dostupné z: http://securityblog.gr/1808/top-5-free-port-scanners/ [31] LEE, Clemmer. The Top 5 Free Port Scanners [online]. 2010 [cit. 2016-05-18]. Dostupné z: http://www.brighthub.com/computing/smb-security/articles/ 34708.aspx [32] OWASP. OWASP Top 10: Deset nejkritičtějších bezpečnostních rizik webových aplikací [online]. s. 22 [cit. 2016-05-18]. Dostupné z: https://www.owasp.org/ images/f/f3/OWASP_Top_10_-_2013_Final_-_Czech_V1.1.pdf [33] OWASP: Domovská stránka [online]. 2016 [cit. 2016-05-23]. Dostupné z: https: //www.owasp.org/index.php/Main_Page [34] MITRE. CVE-2015-4133 [online]. 2015 [cit. 2016-05-18]. Dostupné z: https: //cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4133 [35] MITRE. CVE-2015-8660 [online]. 2015 [cit. 2016-05-18]. Dostupné z: https: //cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8660
40
A Plné znění dotazníků Výsledky dotazníků jsou v elektronické podobě na přiloženém CD.
A.1 Dotazník A 1.
Vyplňte ID:
2.
Kolik je vám let? (a)
< 20
(b) 20–29 (c)
30–39
(d) 40–49 (e) 3.
> 50
Jaký je vás nejvyšší dosažený akademický titul? (a)
Žádný.
(b) Bakalářský. (c)
Magisterský.
(d) Doktorský a vyšší. (e) 4.
Jiný.
Jaké máte zkušenosti s operačním systémem Linux? (a)
Žádné.
(b) Uživatelská úroveň. (c)
Administrátorská úroveň.
(d) Vývojářská úroveň. (e)
Jiné.
5.
Jaké máte zkušenosti se síťovou bezpečností na škále 0-5? Hodnota 0 odpovídá nulovým zkušenostem. Hodnota 5 odpovídá zkušenostem na úrovni penetračního testování.
6.
Máte zkušenosti s prací systémového administrátora, nebo člena bezpečnostního oddělení? (a)
Ne.
(b) Ano, v rozsahu 1-5 let. (c)
Ano, v rozsahu 6-10 let.
(d) Ano, více než 10 let. 41
A. Plné znění dotazníků 7.
Slyšeli jste už o některých z následujících zranitelností (hodící se zaškrtněte)? (a)
Injektování.
(b) Cross site scripting (XSS). (c)
Arbitrary file upload.
(d) Path traversal. (e)
Eskalace práv.
(f)
Prolamování hesla.
(g) Neslyšel(a) jsem o žádné ze zmíněných. 8.
Znáte nějaký konkrétní nástroj který je schopen (hodící se zaškrtněte)? (a)
Skenování portů.
(b) Exploitace zranitelností. (c)
Útoku hrubou silou nebo slovníkovou metodou.
(d) Útoku odmítnutí služby. (e) 9.
Neznám žádné takové nástroje.
Hráli už jste již nějakou bezpečnostní hru? (a)
Ano.
(b) Ne, ale vím o co se jedná. (c)
Nikdy jsem o ničem podobném neslyšel(a).
A.2 Dotazník B A.2.1 Dotazy pro jednotlivé úrovně 1.
Vyplňte ID:
2.
Jak byla pro vás tato úroveň obtížná na škále 0-5? Hodnota 0 znamená „lehká“, hodnota 5 znamená „velmi obtížná“.
3.
Museli jste využít nápovědu? (a)
Ne
(b) Ano, použil(a) jsem malé nápovědy a pomohly mi. (c)
Ano, použil(a) jsem malé nápovědy, ale nepomohly mi.
(d) Ano, použil(a) jsem malé nápovědy i vzorové řešení a pomohly mi. (e)
Nezvládl jsem tuto úroveň.
42
A. Plné znění dotazníků 4.
Byl vymezený čas pro úroveň dostatečný? (a)
Ano, nějaký čas mi zbyl.
(b) Čas vyšel přesně. (c) 5.
Potřeboval(a) jsem více času.
Naučil(a) jste se něco nového? (a)
Jednoznačně ano.
(b) Něco málo. (c) 6.
Vůbec ne.
Máte nějaké další připomínky nebo komentáře?
A.2.2 Dotazy pro hru jako celek 1.
Jak byla pro vás hra obtížná na škále 0-10? Hodnota 0 znamená „lehká“, hodnota 10 znamená „velmi obtížná“.
2.
Hra byla: (a)
Příliš dlouhá.
(b) Přiměřeně dlouhá. (c) 3.
Příliš krátká.
Hra byla (hodící se zaškrtněte): (a)
Zábavná.
(b) Nudná. (c)
Poučná.
(d) Neinformativní. (e)
Frustrující/Iritující.
(f)
Motivující/Hodnotná.
(g) Zajímavá. (h) Ztráta času. (i) 4.
Jiné.
Motivovala vás hra ke hraní jiné hry? (a)
Jednoznačně ano, hra se mi líbila.
(b) Zvážím to. (c) 5.
Ne.
Máte nějaké další připomínky nebo komentáře?
43
B Konfigurační scénář hry { " sandbox " : { " name " : "CTF " , " document path " : " " }, " networks " : { // d e f i n e s l o c a l a r e a networks (LANs) " networks " : [ { " name " : " l a n 1 " , " ip " : " 1 0 . 1 0 . 1 0 . 0 " , " prefix " : 24 , " maxHosts " : 3 }, { " name " : " l a n 2 " , " ip " : " 1 0 . 1 0 . 2 0 . 0 " , " prefix " : 24 , " maxHosts " : 1 } ] }, " r o u t e s " : { // d e f i n e s r o u t e s between LANs " routes " : [ { " name " : " lan1 −l a n 2 " , " lan1 " : " lan2 " , " lan2 " : " lan1 " } ] }, " h o s t s " : { // d e f i n e s h o s t s and t h e i r LANs, t h e i r IP and r o l e " hosts " : [ { " name " : " Kali − a t t a c k e r " , " lan " : " lan2 " , " ip " : " 1 0 . 1 0 . 2 0 . 2 " , " physRole " : " desktop " , " logicalRole " : " attacker " , " imageId " : 3608 }, { " name " : " mysql−s e r v e r " , " lan " : " lan1 " , " ip " : " 1 0 . 1 0 . 1 0 . 4 " , " physRole " : " desktop " , " logicalRole " : " victim " , " imageId " : 3 6 1 0 , " vncPassword " : " * * * * " }, { " name " : " h t t p s −s e r v e r " , " lan " : " lan1 " ,
44
B. Konfigurační scénář hry " ip " : " 1 0 . 1 0 . 1 0 . 3 " , " physRole " : " desktop " , " logicalRole " : " victim " , " imageId " : 3 6 0 9 , " vncPassword " : " * * * * " }, { " name " : " http −s e r v e r " , " lan " : " lan1 " , " ip " : " 1 0 . 1 0 . 1 0 . 2 " , " physRole " : " desktop " , " logicalRole " : " victim " , " imageId " : 3 5 7 7 , " vncPassword " : " * * * * " } ] }, " l i n k s P r o p e r t i e s " : { // d e f i n e s p r o p e r t i e s between r o u t e r s and h o s t s " linksProperties " : [ { " lanName " : " l a n 1 " , " hostName " : " http −s e r v e r " , " d i r e c t i o n " : " duplex " , " p r o p e r t i e s " : " r a t e 800000 k b i t delay 7ms 2ms d i s t r i b u t i o n normal }, { " lanName " : " l a n 1 " , " hostName " : " mysql−s e r v e r " , " d i r e c t i o n " : " duplex " , " p r o p e r t i e s " : " r a t e 800000 k b i t delay 7ms 2ms d i s t r i b u t i o n normal }, { " lanName " : " l a n 1 " , " hostName " : " h t t p s −s e r v e r " , " d i r e c t i o n " : " duplex " , " p r o p e r t i e s " : " r a t e 800000 k b i t delay 7ms 2ms d i s t r i b u t i o n normal }, { " lanName " : " l a n 2 " , " hostName " : " Kali − a t t a c k e r " , " d i r e c t i o n " : " duplex " , " p r o p e r t i e s " : " r a t e 800000 k b i t delay 7ms 2ms d i s t r i b u t i o n normal } ] } }
45
l o s s 1%"
l o s s 1%"
l o s s 1%"
l o s s 1%"
1
1
1
1
1
1
1
1
1
1
44336
45407
45430
45453
45476
45601
45674
45699
45820
45868
2
2
3
:10
2
3
:15
2
2
3
4
3
3
2
2
:20
1
44095
2
2
3
3
00:00 :05
1
43841
2
2
2
3
3
3
3
1
43815
2
2
2
2
1
43792
1
24206
1
1
17280
28455
1
17158
1
1
16046
25780
1
15360
2
2
3
2
:25
4
2
3
3
:30
3
4
3
4
3
:35
3
3
4
4
:40
4
4
4
4
3
:45
:50
4
4
5
4
4
:55 01:00 :05
4
4
3
:10
5
5
5
5
6
:15
4
:20
6
4
5
:25
6
5
5
:30
6
4
5
5
:35
4
5
5
5
:40
6
6
:45
6
6
6
:50
6
6
6
5 5
5
:55 02:00 :05
6
:10
4
6
6
:15
5
:20
:25
5
6
6
:30
:35
6
6
:40
:45
:50
:55
C Časy hráčů v jednotlivých úrovních
Vodorovná osa je rozdělena podle ID jednotlivých hráčů, na ose svislé je vynesen logický čas od spuštění hry. Jednotlivé barevné obdélníky reprezentují délku trvání jednotlivých úrovní pro každého hráče: modrá odpovídá 1. úrovni, červená 2. úrovni atd.
Obrázek C.1: Graf časů všech hráčů
46
D Obsah přiloženého CD ∙
Text práce ve formátu tex a pdf.
∙
Dokumentace instalace virtuálních strojů.
∙
Zdrojový kód portletu hry.
∙
Popis úrovní hry.
∙
Výsledky dotazníků z testovacích běhů hry.
∙
Zdrojové kódy skriptů pracující s daty z dotazníků.
47