Tento zimski čas, natančneje - v enem od dni med božičem in novim letom - so inženirji tehnične podpore Veeam bili zaposleni z nenavadnimi nalogami: lovili so skupino hekerjev z imenom „Veeamonymous“.

O tem, kako so fantje sami zasnovali in izpeljali pravi resnični lov na zaklade v svojem delu, z nalogami, „približanimi bojnim“, je povedal Kirill Stecko, Inženir za eskalacijo.
— Zakaj ste se sploh tega lotili?
— Približno tako, kot so ljudje v preteklosti razvili Linux – just for fun, za lastno zabavo.
Želeli smo malo akcije, hkrati pa smo želeli narediti nekaj koristnega in zanimivega. Poleg tega smo želeli inženirjem nuditi čustveno olajšanje od njihove vsakodnevne naloge.
— Kdo je to predlagal? Kdo je imel idejo?
— Ideja je bila naše menedžerke Katje Jigorove, nato pa so koncept in vse nadaljnje ideje nastale s skupnimi močmi. Sprva smo razmišljali o hackathonu. Vendar se je med razvojem koncepta ideja preoblikovala v lov na zaklad, saj je delo inženirja tehnične podpore drugačno od programiranja.
Torej, povabili smo prijatelje, znance, različni ljudje so nam pomagali s konceptom – ena oseba iz T2 (druga linija podpore — op. ur.), ena oseba iz T3, nekaj ljudi iz ekipe SWAT (ekipa hitrega odziva na nujne primere — op. ur.). Zbrali smo se skupaj, sedli in poskušali izvesti naloge za naš lov na zaklad.
— Bilo je zelo presenetljivo izvedeti o tem, ker po mojih informacijah običajno mehaniko lova na zaklad razvijajo scenaristi, torej ste se poleg tega, da ste se ukvarjali s tako zahtevno zadevo, ukvarjali še v zvezi s svojim poklicnim področjem.
— Da, želeli smo narediti ne le zabavo, pač pa „izboljšati“ tehnične veščine inženirjev. Ena od nalog v našem oddelku je izmenjava znanja in usposabljanje, tak lov na zaklad pa je odlična priložnost, da ljudje „prijemajo“ nekatere nove tehnike v živo.
— Kako ste izumili naloge?
— Organizirali smo brain storming. Imeli smo razumevanje, da moramo ustvariti tehnične izzive, ki so zanimivi in hkrati prinašajo nova znanja.
Na primer, pomislili smo, da bi bilo prav, da ljudem omogočimo preizkušanje analize prometa, uporabo hex urejevalnikov, delo s sistemom Linux ter raziskovanje nekoliko globljih stvari, povezanih z našimi izdelki (Veeam Backup & Replication in drugi).
Pomemben del je bila tudi konceptualizacija. Odločili smo se, da se osredotočimo na temo hekerskih napadov, anonimni dostop in vzdušje skrivnosti. Simbol je postala Guy Fawkes maska, ime pa se je samo ponudilo — Veeamonymous.
»Na začetku je bilo besedo«
Da bi pritegnili zanimanje, smo pred dogodkom organizirali PR kampanjo v stilu iskalne igre: po našem uradu smo obesili plakate z napovedmi. Po nekaj dneh smo v skrivnosti od vseh sami poslikali te plakate s spreji in lansirali »govorico«, da naj bi nekateri nepridipravi pokvarili plakate, celo sliko dokazila smo priložili....
— Torej, to ste naredili sami, ekipa organizatorjev?!
— Da, v petek okoli devete ure, ko je že vse odšlo, smo hodili in s pršicami risali črko »V« zelene barve.) Številni udeleženci iskalne igre niso nikoli uganili, kdo je to storil – ljudje so prihajali do nas in spraševali, kdo je pokvaril plakate? Nekdo je zelo resno pristopil k tej zadevi in organiziral celo preiskavo v tej zvezi.
Za iskalno igro smo pisali in ustvarjali avdio datoteke, »izvlekli« zvoke: na primer, ko se inženir prijavi v naš [proizvodni CRM] sistem, tam deluje avto odgovarjalnik, ki izgovarja različne fraze, številke ... Iz teh besed, ki jih ima posnete, smo sestavljali bolj ali manj smiselne fraze, morda nekoliko krive - na primer, uspeli smo ustvariti »No friends to help you« v avdio datoteki.
IP naslov smo na primer predstavili v binarnem kodu, vse, spet, s pomočjo teh številk [izgovorenih s strani robota], smo dodali razne strašljive zvoke. Sami smo snemali video: v videu imamo osebo, ki sedi v črni kapuci in z masko Guy Fawkesa, a v resnici tam ni ena oseba, ampak tri, saj dve stojita za njo in držita »ozadje« iz odeje:).
— No, res ste se potrudili, da tako rečem.
— Da, zagoreli smo. Uglavnom, prvo smo osmislili naše tehničke zadatke, a zatim smo stvorili književno-igreću priču o tome šta se navodno dogodilo. Prema scenariju, učesnici su lovili grupu hakerâ pod nazivom „Veeamonymous“. Ideja je bila i u tome da „razbijamo četvrtu zid“, tj. prenosimo događaje u stvarnost – na primer, slikali smo iz sprej boce.
U književnoj obradi teksta pomogao nam je jedan od izvornih govornika engleskog jezika iz našeg odeljenja.
— Čekaj, a izvorni govornik zašto? To ste sve radili i na engleskom jeziku?!
— Da, mi smo organizovali za kancelarije u Sankt Peterburgu i Bukureštu, pa je sve bilo na engleskom.
Za prvo iskustvo pokušali smo da sve jednostavno funkcioniše, pa je scenarij bio linearan i dovoljno jednostavan. Dodali smo više atmosfere: tajne tekstove, šifre, slike.

Takođe smo koristili meme: bilo je mnogo slika na teme istraga, NLO, nekih popularnih strašila – neka su se timovi na to odvratili, pokušavali da pronađu skrivene poruke, primene svoje znanje steganografije i slično... ali, naravno, tamo nije bilo ničega sličnog.
O trnovima
Međutim, tokom pripreme suočili smo se i sa nepredviđenim zadacima.
Mnogo smo se trudili oko njih i rešavali razne iznenada nastale probleme, a negde nedelju dana pre kvestu pomislili smo da je sve izgubljeno.
Verovatno bi bilo dobro malo pričati o tehničkoj osnovi kvestu.
Sve je rađeno na našem internom ESXi laboratoriju. Imali smo 6 timova, što znači da je bilo potrebno odvojiti 6 resursnih pool-ova. Tako smo za svaki tim postavili poseban pool sa potrebnim virtuelnim mašinama (isti IP-ovi). Ali pošto je sve to bilo na serverima koji su u jednoj mreži, trenutna konfiguracija naših VLAN-ova nije dopuštala izolaciju mašina u različitim pool-ovima. I, na primer, tokom testnog probnog rada, dešavale su se situacije u kojima se mašina iz jednog pool-a povezivala sa mašinom iz drugog.
— Kako ste uspeli da ispravite situaciju?
— Prvo smo dugo razmišljali, testirali razne opcije sa dozvolama, posebnim vLAN-ima za mašine. Na kraju smo napravili tako da svaki tim vidi samo Veeam Backup server, kroz koji se odvija sav dalji rad, ali ne vidi skrivenu podpoolu, u kojoj se nalaze:
- nekoliko Windows mašina
- Windows core strežnik
- stroj z Linuxom
- par VTL (Virtual Tape Library)
Vsem plavajem je bila dodeljena ločena skupina priključkov na vDS stikalo in svoj Private VLAN. Takšna dvojna izolacija je ravno to, kar potrebujemo, da popolnoma izključimo možnost omrežne interakcije.
O pogumnih
— Ali je lahko vsakdo sodeloval v iskanju? Kako so se oblikovale ekipe?
— To je bila naša prva izkušnja pri organizaciji takega dogodka, možnosti naše laboratorijske so bile omejene na 6 ekip.
Najprej smo, kot sem že omenil, izvedli PR kampanjo: z uporabo plakatov in pošiljk smo sporočili, da se bo odvijal iskalni dogodek. Imeli smo celo nekaj namigov – na samih plakatih so bile zakodirane fraze v binarnem kodeksu. Tako smo pritegnili ljudi, ki so se nato sami dogovarjali s prijatelji, sodelovali. Na koncu se je prijavilo več željnih, kot smo imeli ekip, zato smo morali izvesti izbor: izmislili smo si preprosto testno nalogo in jo poslali vsem, ki so se odzvali. To je bila logična naloga, ki jo je bilo treba rešiti na hitrost.
V ekipi je bilo dovolj do 5 oseb. Kapitan ni bil potreben, ideja je bila v sodelovanju in komunikaciji med seboj. Nekdo je močan v Linuxu, nekdo močan v trakovih (varnostnih kopijah na traku), in vsak, ki je videl nalogo, je lahko prispeval svoja prizadevanja za skupno rešitev. Vsi so med seboj komunicirali, iskanje rešitev.

— Kdaj se je ta dogodek začel? Imeli ste kakšen 'čas X'?
— Da, imeli smo natančno določen dan, izbrali smo ga tako, da je bilo manj obremenitev v oddelku. Seveda smo vnaprej obvestili timske vodje, da so take ekipe vabljene k sodelovanju v iskanju, in da morajo ta dan zagotoviti določeno olajšanje [glede obremenitve]. Na splošno bi to moral biti konec leta, 28. december, petek. Oceno smo imeli, da bi trajalo približno 5 ur, a so se vse ekipe odrezale hitreje.
— Vsi so bili v enakih pogojih, vse ekipe so imele enake naloge na podlagi realnih primerov?
— No, each of the creators drew on personal experiences for some stories. We were aware that certain things could happen in reality and that it would be interesting for a person to 'feel' it, look at it, and understand it. We also included some more specific elements, for example, data recovery from damaged tapes. Some used hints, but most teams managed independently.
Or we had to apply the magic of quick scripts – for example, we had a case where a so-called 'logic bomb' 'shattered' a multi-volume archive into random folders in the tree, and we needed to gather the data. This can be done manually, finding and copying [files] one by one, or you can write a script based on a mask.
In general, we tried to stick to the view that one task can be solved in different ways. For instance, if you're a bit more experienced or want to 'get creative,' you can solve it faster, while there's a straightforward 'direct' solution – but you will spend more time on the task. So, almost every assignment had several solution options, and it was interesting to see which paths the teams would choose. Thus, the non-linearity lay in the choice of the solution method.
By the way, the toughest task was the Linux one — only one team managed to solve it independently, without hints.
— Could you take hints? Like in a real quest??
— Yes, hints were allowed because we understood that people are different, and those who might lack certain knowledge could end up on the same team, so to avoid prolonging the process and to maintain competitive interest, we decided that hints would be available. For this, there was a person from the organizers watching over each team. And we also kept an eye to ensure no one cheated.

About the stars
— Were there prizes for the winners?
— Yes, we tried to make the prizes as enjoyable as possible for both all participants and the winners: the winners received designer sweatshirts with the Veeam logo and a phrase encrypted in hexadecimal code, in black color). All participants got a Guy Fawkes mask and a branded bag with the logo and the same code.
— So everything was like in a real quest!
— Well, we wanted to create something cool and adult, and I think we succeeded.
— Tako je! Kakva je na kraju bila reakcija onih koji su učestvovali u ovom kvestu? Da li ste postigli ciljeve?
— Da, mnogi su nakon toga prišli i rekli da su jasno videli svoja slaba mesta i želeli su da ih poboljšaju. Neki su prestali da se plaše određenih tehnologija – na primer, da dumpuju blokove sa tape-ova i pokušavaju da nešto uhvate... Neki su shvatili da treba da poboljšaju Linux i tako dalje. Potrudili smo se da damo dovoljno širok spektar zadataka, ali ne baš trivijalnih.

Tim pobednika
«Ko želi, taj će uspeti!»
— Da li je to od onih koji su pripremali quest zahtevalo mnogo truda?
— U suštini, da. Ali to je verovatno bilo zbog toga što nismo imali nikakvog iskustva u pripremi takvih kvestova, takve vrste infrastrukture. (Da napomenem, ovo nije naša stvarna infrastruktura – jednostavno je trebala da obavlja neke igre slučajnosti.)
Za nas je ovo bilo veoma zanimljivo iskustvo. Isprva sam bio skeptičan, jer mi se ideja činila previše sjajnom i mislio sam da je jako teško sprovesti je u delo. Ali smo počeli da radimo, počeli da se trudimo, svi su se zapalili i na kraju smo uspeli. I prošlo je gotovo bez ikakvih problema.
Sve u svemu, potrošili smo 3 meseca. U većoj meri smo smišlali koncept, razgovarali o tome šta možemo realizovati. U procesu, naravno, nešto se menjalo, jer smo shvatili da nemamo tehničku mogućnost da nešto uradimo. Na licu mesta smo morali nešto prepraviti, ali tako da cela struktura, priča i logika ne budu poremećeni. Nismo pokušavali samo da damo spisak tehničkih zadataka, već da sve bude povezano i logično. Glavni rad je obavljen poslednjeg meseca, tj. 3-4 nedelje pre dana D.
— Da li ste pored svojih glavnih aktivnosti odvajali vreme za pripremu?
— Time smo se bavili paralelno sa našim glavnim poslom, da.
— Da li vas mole da ponovo organizujete nešto ovako?
— Da, imamo mnogo zahteva za ponavljanje.
— A šta vi?
Imamo nove ideje, nove koncepte, želimo privući više ljudi i rasporediti to tijekom vremena – i proces odabira, i sam proces igre. Općenito, inspiriramo se projektom 'Cikada', to se može guglati – to je doista super IT tema, ljudi iz cijelog svijeta se okupljaju, na Redditu otvaraju teme, na forumima, koriste šifre, rješavaju zagonetke i sve tako.
Ideja je bila odlična, stvarno zaslužuje pohvalu za ideju i realizaciju, jer to zaista puno vrijedi. Iskreno želim da vam ta inspiracija ne nestane, da su svi vaši novi projekti također uspješni. Hvala!

Da, je li moguće vidjeti primjer zadatka koji sigurno nećete ponovno koristiti?
Sumnjam da ćemo ijedan ponovno koristiti. Stoga mogu ispričati o tijeku cijelog kvest.
Bonus trakaNa početku, igrači imaju naziv virtualnog stroja i vjerodajnice za vCenter. Kada se prijave, vide taj stroj, ali se ne pokreće. Ovdje moraju shvatiti da nešto nije u redu s .vmx datotekom. Preuzimanjem iste, vide trag potreban za drugi korak. U suštini, piše da je baza koju koristi Veeam Backup & Replication šifrirana.
Uklanjanjem tragova, ponovnim slanjem .vmx datoteke i uspješnim pokretanjem stroja, vide da se na jednom od diskova nalazi baza, šifrirana base64. Prema tome, zadatak je dešifrirati je i dobiti potpuno funkcionalni Veeam server.
Malo o virtualnom stroju na kojem se sve ovo odvija. Kao što se sjećamo, prema priči, glavni junak kvestua je prilično zamračena ličnost i bavi se nečim očito nezakonitim. Stoga njegov radni računar treba imati pravi hakerski izgled, koji smo trebali stvoriti, unatoč tome što je Windows. Prvo smo dodali hrpu rekvizita poput informacija o velikim provalama, DDoS napadima i slično. Zatim smo instalirali razne tipične softvere i posvuda razbacali razne dumpove, datoteke s hashovima itd. Sve kao u filmu. Među ostalim, tu su bili folderi s imenima zatvorenih slučajeva *** i otvorenih slučajeva ***.
Da bi napredovali, igrači moraju obnoviti tragove iz datoteka u backupima.
Tuk je treba reči, da so sprva igralci dobili zelo malo informacij, večina podatkov (kot so IP naslovi, logini in gesla) pa so pridobili med questom tako, da so našli namige v varnostnih kopijah ali datotekah, raztresenih po računalnikih. Sprva so bile varnostne kopije shranjene na Linux repozitoriju, vendar je sama mapa na strežnikom priklopljena (mounted) s flagom noexec, zato se agent, ki je zadolžen za obnovo datotek, ne more zagnati.
Po popravilu repozitorija pridobijo udeleženci dostop do vsebine in končno lahko obnovijo kakršnekoli informacije. Ostane jim le še ugotoviti, katere informacije. Za to morajo preučiti datoteke, shranjene na tej napravi, določiti, katere od njih so 'poškodovane' in kaj točno je potrebno obnoviti.
Na tej točki se scenarij premakne od splošnih IT znanj k specifičnim funkcijam Veeam.
V tem specifičnem primeru (ko poznaš ime datoteke, a ne veš, kje jo poiskati) moraš uporabiti funkcijo iskanja v Enterprise Manager, in tako naprej. Na koncu, po obnovitvi celotne logične verige, imajo igralci v rokah še en login/geslo in izpis nmap-a. To jih pripelje do Windows Core strežnika, in to prek RDP (da življenje ne bo prelahko).
Glavna posebnost tega strežnika: s pomočjo enostavnega skripta in nekaj slovarjev je bila oblikovana popolnoma brezsmiselna struktura map in datotek. Ob prijavi je prikazano dobrodošlo sporočilo, kot je 'Tukaj je eksplodirala logična bomba, zato boste morali namige za nadaljnje korake zbirati po delih'.
Naslednji namig je bil razdeljen na večdelni arhiv (približno 40-50 kosov) in naključno razporejen po teh mapah. Naš načrt je bil, da morajo igralci pokazati svoje talente pri pisanju preprostih PowerShell skript, da bi po znani predlogi zbrali večdelni arhiv in pridobili iskane podatke. (A je bilo kot v tistem vicu — del udeležencev se je izkazal za izjemno fizično razvitega.)
V arhivu je bila slika kasete (z oznako „Last Supper — Best Moments“), kar je namigovalo na uporabo priključene trake, kjer je bila kaseta s podobnim naslovom. A ena težava — ni bila operabilna do te mere, da niti ni bila katalogizirana. Tu se je verjetno začel najbolj zahteven del misije. Iz naslova kasete smo izbrisali napis, zato, da bi obnovili podatke, moramo le dumpati „surove“ bloke in jih pregledati v hex urejevalniku za iskanje oznak začetka datotek.
Najdemo oznako, pogledamo ofsset, pomnožimo blok z njegovo velikostjo, dodamo ofsset in z notranjim orodjem poskušamo obnoviti datoteko od določenega bloka. Če je vse pravilno narejeno in se matematika izide, imajo igralci .wav datoteko.
V njej je z generatorjem glasu med drugim nadiktirana binarna koda, ki se razkriva v še eno IP.
To se izkaže za nov Windows strežnik, kjer vse nakazuje na potrebo po uporabi Wireshark, le da ga tam ni. Glavna ideja je, da na tem stroju delujeta dva sistema — le disk z drugim je izklopljen prek upravljalnika naprav v načinu brez povezave, in logična veriga pripelje do potrebe po ponovnem zagonu. Po tem se izkaže, da bi se po privzetku morala zagnati povsem drugačen sistem, kjer je nameščen Wireshark. In mi smo cel čas bili v sekundarnem OS.
Tukaj ni več potrebnih posebnih dejanj, dovolj je, da začnemo zajem na edinem vmesniku. Pri relativno pozornem pregledu dumpa je opazen očitno sumljiv paket, ki ga pošilja pomožni stroj v enakih časovnih presledkih, v katerem je povezava na youtube video, kjer igralce prosijo, naj pokličejo določen številko. Prvi, ki pokliče, bo slišal čestitke za prvo mesto, ostali pa vabilo v HR (šala)).
Mimogrede, imamo odprte za inženirje tehnične podpore in za pripravnike. Dobrodošli v ekipo!
Izvor: habr.com
