Zážitky z Locked Shields 2017

Locked Shields je největší mezinárodní cvičení věnující se kybernetické bezpečnosti. Je pravidelně organizováno od roku 2010 NATO CCDOE (Cooperative Cyber Defence Centre of Excellence),V rámci tohoto cvičení jde hlavně o souboj mezi dvěma týmy. Červený tým útočí na modrý, který zastává roli obránců. Letos se tohoto cvičení zúčastnilo celkem 19 modrých týmů. Ti dostali na starost rozmanitou počítačovou infrastrukturu vojenské základny fiktivní země sestávající z různých serverů, nemalého počtu pracovních stanic a SCADA systémů apod. Proti obráncům stojí útočníci, kteří mají za cíl co nejvíce škodit, kompromitovat, potažmo zcela odstavit bráněnou síť či její prvky nebo to alespoň obráncům pěkně zkomplikovat. Cvičení je kromě technické části zaměřeno také na strategické rozhodování, (spolu)práci s tiskem a řešení legislativních záležitostí. My jsme byli pozváni kolegy z GovCertu a byli jsme zařazeni do týmu „linuxáků”.

Akce byla rozložena do dvou týdnů, a to po dvou a třech dnech. První týden nám sloužil především pro seznámení se s členy týmu, s infrastrukturou a se systémy. Během těchto prvních dvou dnů bylo důležité najít nejrozmanitější zranitelnosti a identifikovat nastražený škodlivý software či běžící nepotřebné služby. Poté byl přístup k tzv. Gamenetu uzavřen a u všech strojů bylo nastavení uvedeno do původního stavu.

Druhý týden jsme měli na otestování připravených oprav jen první den a poté byly znovu všechny stroje vráceny do počátečního stavu. Druhý den to všechno odstartovalo. Po otevření Gamenetu jsme měli ještě 30 minut „hájení“, než spustil červený tým své útoky. Počáteční půlhodina nám musela stačit na aplikování všeho, co jsme připravovali předešlé dny. Automatizace se zde ukázala v celé kráse. Útoky pak již probíhaly bez omezení po zbytek druhého dne i celý třetí den – dohromady tedy 15 a půl hodiny.

Celkově panovala velice napjatá atmosféra, na chodbách se ozývaly IP adresy, ze kterých červený tým útočil a bylo je potřeba neprodleně zablokovat, a v místnosti, kde jsme seděli (tedy s linuxáky) se kolegové radili a různě si pomáhali. Protože jsme měli každý na starosti jiné systémy, pokusíme se tu popsat alespoň naše dva pohledy:

Radka:
V prvním týdnu, po rozdělení serverů, potažmo služeb, jsem už věděla, že se budu starat o server, na kterém běžel e-shop s armádními doplňky. Zjišťovala jsem tedy, co všechno je špatně v nastavení Tomcatu, ve kterém e-shop běžel. Dále co se děje se zdejší databází, jestli nejsou pozměněné systémové binárky, neběží zde zbytečné služby, popř. nejsou otevřené porty, které být otevřené nemají. Zároveň jsem obdivovala, jak zkušeně si vedou přítomní kolegové se svými službami. Mnozí z nich měli již zkušenost z předchozích let, takže mnohem lépe zvládali průchod materiály a pravidla hry nebo měli prostě více praktických zkušeností z dotčených oblastí. Nejednou mě napadla otázka, jestli jim tam k něčemu vůbec budu :-). I když jsme se večer rozešli, mnozí z nás včetně mě doma dále studovali, co a jak zlepšit.

Druhý den jsme opět zkoušeli na přidělených serverech všelijakou magii. Den na podobné testy jsme měli i druhý týden, ale tentokrát na čistě revertovaných strojích, takže jsem si mohla přesně vyzkoušet, co jsem si zapomněla předešlý týden zapsat.

A další den to začalo. V devět ráno nás pustili do GameNetu a my měli půl hodiny všechno „spravit”. Právě tady se ukázaly přednosti automatizace. Kolegové, kteří měli tuhle část na starosti, vyrobili za předchozí dny mnoho užitečných Ansible playbooků, které aplikovali hned jak mohli a měli jsme krásný základ. Kolem třicátépáté minuty mi moje počáteční nadšení překazil defacement, pro který bylo zneužito fórum neošetřené proti SQL Injection útoku v jedné části e-shopu. Chybu jsem po nějaké době našla, opravila a k incidentu jsem poskytla, co nejpřesnější podrobnosti.

Blogpost_LS

Nic horšího už se mi naštěstí s e-shopem, ani třetí den nestalo (nebo je to jen sladká nevědomost), i když při sledování logů byly nějaké další pokusy ještě vidět. U samotného průzkumu „vlastních” problémů, jsem pozorně sledovala ostatní, pokud to šlo, vypomohla jsem, kde se dalo, a často obdivovala, jak si dokázali pod tlakem hravě poradit s řešením mnohem zapeklitějších případů.

Ke konci posledního dne byla atmosféra už uvolněnější, ale zase stoupalo napětí při pohledu na skóre, protože náš tým se pohyboval na předních příčkách. V 16 hodin byl GameNet uzavřen a my jsme s napětím sledovali dobíhající body za reporty či komunikaci s uživateli. Kolem páté jsme už začali tušit, že je opravdu možné, že jsme první, ale od druhého místa nás dělilo jen velice málo bodů. Další den se konal webinář, ve kterém s námi vedoucí různých týmů (červených a také podpůrných týmů zelených a bílých) v Talinnu sdíleli své dojmy, ale hlavně, kde se vyhlašovaly výsledky, ze kterých jsme se konečně s jistotou dozvěděli, že jsme opravdu PRVNÍ.

Celkově to pro mě byla skvělá zkušenost, zábava, spoustu jsem se toho naučila díky radám zkušenějších kolegů a zároveň jsem měla možnost poznat další odborníky z oboru a vidět naživo, jací jsou to machři.

Martin:
Mým úkolem bylo postarat se o chod tří serverů. První dva sloužily jako DNS resolvery včetně autoritativních serverů pro naši doménu a navíc měly na starosti i synchronizaci času přes NTP. Třetí byl VPN server pro vzdálené připojení uživatelů. Zde byl první zádrhel. Těšil jsem se na klasické OpenVPN, ale čekalo mne OpenVPN Access Server, což je komerčnější varianta, která se liší od klasické volně distribuované verze, takže jsem se měl s čím seznamovat.

Kromě výše zmíněného, co je třeba všechno zjistit/ověřit případně i smazat hned na začátku, jenom dodám, že v rámci naší linuxové skupiny slavily úspěch balíky debsums a rkhunter. U DNS serverů byla oprava konfigurace relativně snadná – v konfiguračních souborech byl například povolen zone transfer. U VPN serveru už to bylo malinko složitější, protože veškerá konfigurace, včetně logování, byla v SQLite, takže seznámení se se strukturou nebylo tak přímočaré, ale i přesto se mi povedlo mít na začátek cvičení připraven skript pro smazání nepotřebných účtů a nepovolených způsobů autentizací. Smazaní SUID bitu u /bin/nano už pak byla jen třešnička na dortu.

Během „bitvy” samotné byl na mých serverech relativně klid. Občas se „na chodbách” kromě IP adresy ozvala i nějaká ta doména. Takovou doménu pak bylo nutno zablokovat na DNS serveru.

Nakonec odbyla šestnáctá hodina a naše oči se odvrátily ke skóre, které ještě tou dobou nebylo uzavřené a body se stále přičítaly/odčítaly. Napětí se dalo krájet a v jednu chvíli se skóre zastavilo ve stavu, kdy nás od prvního místa dělil jediný bod (což bylo při skóre přesahující číslo 30 000 opravdu smutné). Pak se ale bodování rozběhlo a nakonec i v neoficiálním vyhlášení zaznělo, že první tři místa se už měnit nebudou. V té době jsme již byli první! Nutno dodat, že druhé místo mělo jen o přibližně 400 bodů méně a to opravdu není mnoho (gratulace Estonsku).

Závěrem už jen dodáme,že celkově pro nás byla účast na Locked Shields opravdu skvělá zkušenost. Chtěli bychom tímto tedy ještě jednou poděkovat všem našim týmovým kolegům a také GovCERTu za pozvání. Jsme rádi, že jsme mohli být součástí takového úspěchu.

Blogpost_LS_2

Radka Nepejchalová, Martin Kunc

Autor:

Komentáře (2)

  1. robert říká:

    byla s vama sranda:) už se těším na další rok. tentokrát RT zatopime my:)

  2. Radka říká:

    To rozhodne doufame :) mame spoustu casu na zlepsovani!

Zanechte komentář

Všechny údaje jsou povinné. E-mail nebude zobrazen.