Sel talvel, täpsemalt katoliku jõulude ja uue aasta vahelisel ajal, olid Veeami tehnilise toe insenerid hõivatud üsna ebatavaliste ülesannetega: nad jahtisid häkkerigruppi nimega „Veeamonymous”.

Kuidas poisid suutsid oma töökohal korraldada tõelise reaalsuse quest'i, ülesannetega, mis olid „lähedased lahingule”, jutustab Kirill Stetsko, Escalation Engineer.
— Miks te seda üldse korraldasite?
— Umbes nii, nagu inimesed kunagi lõid Linuxi – just for fun, enda lõbuks.
Soovisime mingit elevust ja samas teha midagi kasulikku, midagi huvitavat. Pealegi oli vaja anda inseneridele emotsionaalset laadimist nende igapäevasest tööst.
— Kes seda ette pani? Kellest oli idee?
— Idee oli meie juht Kati Jegorova oma, kuid seejärel sündis kontseptsioon ja kõik järgmised ideed ühiste pingutuste kaudu. Alguses mõtlesime teha hackatoni. Kuid kontsepti arendamise käigus kasvas idee kvestiks, sest tehnilise toe insener on ikkagi teistsugune amet, kui programmeerimine.
Nii et me kutsusime sõpru, tuttavaid, erinevaid inimesi, kes aitasid meil ideed välja mõelda - üks inimene T2-st (teise taseme tugi - toimetaja märkus), üks inimene T3-st, mõned inimesed SWAT-meeskonnast (hädaolukordadele kiiresti reageerimise meeskond - toimetaja märkus). Kogunesime kõik koos, istusime maha ja proovisin välja mõelda ülesandeid meie mängu jaoks.
— Oli väga ootamatu sellest kõigest teada saada, sest niipalju kui mina tean, töötavad tavaliselt mängumehaanikat välja stsenaristid, see tähendab, et te mitte ainult ei tegelenud nii keerulise asjaga, vaid ka oma töö ja professionaalse valdkonna kontekstis.
— Jah, me soovisime teha mitte lihtsalt meelelahutust, vaid "arendada" inseneride tehnilisi oskusi. Meie osakonna üks eesmärk on teadmiste vahetamine ja koolitus, ja selline mäng on suurepärane võimalus anda inimestele võimalus "kogeda" elusaid tehnikatehnikaid.
— Kuidas te ülesandeid välja mõtlesite?
— Korraldasime ajurünnaku. Meil oli selge, et peame looma mingid tehnilised katsed, mis oleksid huvitavad ja samal ajal tooksid uusi teadmisi.
Näiteks arutasime, et inimestele oleks kasulik proovida liiklust sniffida, kasutada hex-redaktoreid, midagi Linuxi jaoks teha, mõned sügavamad tegevused, mis on seotud meie toodetega (Veeam Backup & Replication ja teised).
Samuti oli oluline osa kontseptsioon. Otsustasime lähtuda häkkerite teemast, anonüümsest juurdepääsust ja saladuse atmosfäärist. Sümboliks sai Guy Fawkesi mask ja nimi tuli iseenesest — Veeamonymous.
„Alguses oli sõna“
Et huvi üles kerkida, otsustasime enne ürituse algust korraldada PR-kampaania, mis järgneb mängu temaatikale: riputasime oma kontorisse plakateid teadetega. Mõne päeva pärast värvisime neid ise salaja spray-purkidega ja lansseerisime „kuuldusi“, nagu oleksid mingid kurikaelad plakateid rikkunud, isegi fotod tõestuseks lisasime....
— Nii et te ise tegite, see tähendab, korraldajatest meeskond?!
— Jah, reedel kell 9, kui kõik olid juba läinud, käisime ja joonistasime suruõhupüstolitest roheline täht 'V'.) Paljud seikluse osalejad ei saanudki aru, kes seda tegi – inimesed tulid meie juurde ja küsisid, kes plakatid rikkus? Keegi lähenes sellele küsimusele väga tõsiselt ja korraldas tõelise uurimise selle teema ümber.
Mängu jaoks salvestasime audiofaile, 'väljavõtsime' helisid: näiteks, kui insener logib meie [tootmis-CRM] süsteemi, siis seal on robot-sisestaja, kes ütleb igasuguseid fraase, numbreid… Nii et me koostasime tema salvestatud sõnadest kõigi mõtetega fraase, noh, võib-olla veidi kõveraid – näiteks saime 'Ükski sõber ei aita sind' audiofailis.
IP-aadressi, näiteks, kujutasime ette kahendsüsteemis, jälle, kõik nende numbritega [robotist rääkides], lisasime igasuguseid hirmutavaid helisid. Me filmisime video: videos istub meil musta kapuutsiga inimene ja Guy Fawkes'i maskis, aga tegelikult ei ole seal mitte üks inimene, vaid kolm, sest kaks seisavad tema taga ja hoiavad 'tausta' tekist :)).
— Te olete küll vaeva nähtud, otse öeldes.
— Jah, meeldisime väga. Alustasime meie tehniliste ülesannete väljamõtlemisest ja seejärel koostasime kirjandus-mängulise loo sellest, mis justkui toimus. Skripti kohaselt jahtisid osalejad häkkeride gruppi nimega "Veeamonymous". Idee oli ka selles, et me võiksime "murdma neljandat seina", kandes sündmused reaalsusesse – näiteks joonistasime spray-purgist.
Teksti kirjalikku vormi aitas vormida meie osakonna üks inglise keele rääkija.
— Oota, miks rääkija? Te tegite seda ka inglise keeles?!
— Jah, me korraldasime seda Peterburi ja Bukaresti kontoritele, seetõttu oli kõik inglise keeles.
Esimese kogemuse jaoks üritasime teha nii, et kõik lihtsalt toimiks, seetõttu oli stsenaarium lineaarne ja piisavalt lihtne. Lisatasime rohkem atmosfääri: salajased tekstid, koodid, pildid.

Kasutagem ka meme: oli palju pilte uurimiste, UFO-de, mõningate populaarsete õuduslugude teemadel – mõned meeskonnad segasid end sellega, üritasid leida mõningaid varjatud sõnumeid, rakendada oma teadmisi steganograafia kohta… aga loomulikult ei olnud seal midagi sellist.
Tehnilistest probleemidest
Kuid ettevalmistamise käigus seisime silmitsi enesestmõistetavate ülesannetega.
Me olime nende kallal palju vaeva näinud ja lahendanud erinevaid ootamatult tekkivaid küsimusi, ning nädal enne mängu mõtlesime, et kõik on kadunud.
Tõenäoliselt on tahtmine rääkida veidi mängu tehnilisest põhialusest.
Kõik toimus meie sise-ESXi laboris. Meil oli 6 meeskonda, mis tähendas, et pidime eraldama 6 ressursipoolt. Nii et igale meeskonnale käivitasime eraldi ala vajalike virtuaalmasinate (samad IP-d) jaoks. Kuid kuna kõik need asusid serverites, mis olid ühes võrgus, ei võimaldanud meie VLANide praegune konfiguratsioon eraldada masinaid erinevatesse basseinidesse. Näiteks testimise ajal saime olukordi, kus masina üks bassein ühendas masina teisega.
— Kuidas suutsite olukorda parandada?
— Esiteks mõtlesime kaua, testisime erinevaid variante lubadustega, eraldi VLAN-ide jaoks seadmetele. Lõpuks tegime nii — iga meeskond näeb ainult Veeam Backup serverit, mille kaudu toimub kogu edasine töö, kuid ei näe varjatud alam-basseini, kus asuvad:
- mõned Windows masinad
- Windows core server
- masin Linuxiga
- VTL (Virtual Tape Library) paar
Kõigile rühmadele on määratud eraldi portide grupp vDS lülitile ja oma Private VLAN. Selline kahekordne isolatsioon on vajalik, et täielikult välistada võrguvahetus.
Julgetest
— Kas kes iganes võis osaleda seiklusmängus? Kuidas meeskonnad moodustati?
— See oli meie esimene kogemus sellise ürituse korraldamisel, ja meie laboratooriumi võimalused olid piiratud 6 meeskonnaga.
Esmalt korraldasime, nagu ma juba ütlesin, PR-kampaania: plakatite ja e-kirjade abil teatasime, et seiklusmäng toimub. Meil olid isegi mingid vihjed – plakateid kaunistatud koodis binaarsed fraasid. Sel viisil köitsime inimesi ja nemad omakorda leppisid omavahel kokku, sidudes end sõpradega. Tulemusena oli rohkem soovijaid, kui meil oli gruppe, seega tuli valik teha: mõtlesime välja lihtsa testülesande ja saatsime selle kõigile, kes vastasid. See oli loogiline ülesanne, mida tuli lahendada kiirusel.
Meeskonnas tohtis olla kuni 5 inimest. Kaptenit seal ei nõutud, idee oli kooperatsioonis ja omavahelises suhtlemises. Keegi on tugev Linuxis, keegi teine tugevas tagasi kirjutamises (bäkkapide puhul), ja igaühel, nähes ülesannet, oli võimalus panustada oma jõud ühisesse lahendusse. Kõik suhtlesid omavahel ja leidsid lahenduse.

— Millal see üritus algas? Kas teil oli mingi 'X tund'?
— Jah, meil oli rangelt määratud päev, valisime selle nii, et osakonnas oleks vähem koormust. Loomulikult teavitati ette timeliid paikades, et sellised meeskonnad kutsutakse mängu osalema ja neile tuleb anda teatud leevendus [koormuse suhtes] sellel päeval. Kõik näitas, et see peab olema aasta lõpp, 28. detsember, reede. Arvutasime, et see peaks võtma umbes 5 tundi, kuid kõik meeskonnad said hakkama kiiremini.
— Kas kõik olid võrdses seisus, kõigil olid samad ülesanded, mis põhinesid reaalsetel juhtudel?
— Jah, iga koostaja jagas oma isiklikest kogemustest mõningaid lugusid. Teatud asjadest olime teadlikud, et need võivad reaalses elus juhtuda ning see oleks huvitav, et inimene saaks seda "käsitseda", vaadata ja uurida. Võtsime lisaks ka mõned spetsiifilisemad asjad — näiteks andmete taastamine kahjustatud lintidelt. Keegi andis nõu, kuid enamik meeskondi lahendasid probleemid iseseisvalt.
Või tuli rakendada kiirete skriptide maagiat – näiteks oli meil lugu, kus mingisugune "loogiline pomm" "rebis" mitmeosalise arhiivi juhuslikesse kaustadesse puu struktuuris ja andmeid tuli koguda. Seda saab teha käsitsi – leida ja kopeerida [failid] üksikult, või on võimalik kirjutada skript mustri järgi.
Üldiselt üritasime jääda seisukohale, et ühte ülesannet saab lahendada erinevate viisidega. Näiteks, kui oled natuke kogenum või soovid 'tuunida', saad selle kiiremini lahendada, kuid on otse lahendus, mis on 'frontaalne' – aga sel juhul kulutad ülesandele rohkem aega. Seega oli peaaegu igaühel ülesandel mitu lahendusvarianti ja oli huvitav, milliseid teid meeskonnad valivad. Seega, mitte-lineaarsus seisnes just lahenduse valikus.
Muide, kõige raskem ülesanne oli Linuxi ülesanne — ainult üks meeskond lahendas selle iseseisvalt, ilma vihjeteta.
— Kas vihjeid sai võtta? Nagu päris questis??
— Jah, võis võtta, sest me mõistsime, et inimesed on erinevad ja ühte meeskonda võivad sattuda need, kellel puuduvad teatud teadmised, seetõttu, et mitte venitada üleminekute aega ja mitte kaotada võistlusliku huvi, otsustasime, et vihjed on olemas. Selleks jälgis igat meeskonda üks korraldajatest. Ja me jälgisime, et keegi ei petaks.

Tähtede kohta
— Kas võitjatele olid auhinnad?
— Jah, me püüdsime teha maksimaalselt meeldivaid auhindu nii kõigile osalejatele kui ka võitjatele: võitjad said disainitud kapuutsiga särgid Veeami logoga ja fraasiga, mis on kodeeritud 16-realiseks koodiks, mustas värvuses). Kõik osalejad said Gaio Fokksi maski ja firmakoti logoga ja sama koodiga.
— Nii et teil oli kõik nagu tõeliselt seiklusmängus!
— No, me tahtsime luua ägeda, täiskasvanutele mõeldud asja, ja mulle tundub, et meil õnnestus.
— Täpselt nii! Milline oli lõpuks osalejate reaktsioon? Kas saavutasite oma eesmärgid?
— Jah, paljud tulid hiljem juurde, ütlesid, et nad nägid kindlalt oma nõrku kohti ja soovisid neid parandada. Mõned lakusid muret teatud tehnoloogiate ees – näiteks, kui nad hakkasid ketaste koode purki panema ja proovides seal midagi kätte saada… Mõned mõistsid, et nad peavad Linuxit paremini oskama, ja nii edasi. Me püüdsime anda piisavalt laia ülesannete ringi, kuid mitte täiesti triviaalsete.

Võitjate meeskond
„Kes tahab, see saavutab!”
— Kas see nõudis palju pingutust nende käest, kes mängu valmistasid?
— Jah, üldiselt. Kuid see oli tõenäoliselt tingitud sellest, et meil ei olnud mingit kogemust selliste ülesannete ettevalmistamisel ja selle tüüpi infrastruktuuril. (Teeme selgeks, et see ei olnud meie reaalne infrastruktuur – see pidi lihtsalt täitma teatud mängu funktsioone.)
See oli meie jaoks väga huvitav kogemus. Alguses olin skeptiline, sest idee näis isegi liiga äge, arvasin, et see on väga keeruline ellu viia. Aga hakkasime tegema, hakkasime vaeva nägema ja lõpuks saime hakkama. Ja see õnnestus peaaegu ilma probleemideta.
Kokkuvõttes kulus meil 3 kuud. Peamiselt mõtlesime välja kontseptsiooni, arutasime, mida me saame ellu viia. Loomulikult muutus protsessi käigus mõni asi, kuna me saime aru, et meil pole tehnilisi võimalusi teatud asjade teostamiseks. Oli vaja jooksvalt midagi ümber teha, kuid niimoodi, et kogu narratiiv, lugu ja loogika ei laguneks. Proovisime mitte lihtsalt esitada tehniliste ülesannete loendit, vaid et see mahuks narratiivi, et see oleks sidus ja loogiline. Peamine töö toimus viimasel kuul, st 3–4 nädalat enne päev X.
— See, in addition to your main activity, did you allocate time for preparation?
— We worked on this alongside our main job, yes.
— Are you being asked to do this again?
— Yes, we have many requests to repeat it.
— And what about you?
— We have new ideas, new concepts; we want to engage more people and stretch this over time – both the selection process and the game itself. Overall, we are inspired by the project 'Cicada', it's something you can Google – it's a really cool IT topic, where people from all over the world unite, creating threads on Reddit, on forums, using cipher translations and solving puzzles, and all that.
— The idea was excellent; just respect for the idea and execution, because that really costs a lot. I sincerely wish that you don't lose this enthusiasm, and that all your new projects are equally successful. Thank you!

— Yes, can we see an example of a task that you definitely won't be reusing?
— I suspect that we won't reuse any of them. So I can talk about the course of the entire quest.
Bonus trackAlguses saavad mängijad endale virtuaalse masina nime ja sisenemise andmed vCenterisse. Kui nad logivad sisse, näevad nad seda masinat, kuid see ei käivitu. Siin tuleb mõista, et .vmx faili puhul on midagi valesti. Kui nad selle alla laadivad, näevad nad vihjet, mis on vajalik teiseks sammuks. Sisuliselt on seal kirjutatud, et Veeam Backup & Replication'i kasutatav andmebaas on krüpteeritud.
Vihje eemaldades, laadides .vmx faili uuesti üles ja masinat edukalt käivitades, näevad nad, et ühel ketastest on tõepoolest andmebaas, mis on base64 vormingus krüpteeritud. Seega on ülesanne dekrüpteerida see ja saada täisfunktsionaalne Veeam server.
Veidi virtuaalsest masinast, kus see kõik toimub. Kuidas me mäletame, on peategelane, keskse stsenaariumi kohaselt, üsna tumeda iseloomuga ja tegeleb millegagi, mis on ilmselgelt mitte eriti seaduslik. Seetõttu peab tema tööarvuti nägema välja tõeliselt häkkeri moodi, mida pidime looma, hoolimata sellest, et see on Windows. Esmalt lisasime hulga rekvisiite, nagu teave suurte häkkimiste, DDoS rünnakute ja sarnaste kohta. Siis installisime erinevat tüüpi tarkvara ja laotasime igal pool erinevaid dump'e, faile hash'idega jne. Just nagu filmis. Sealhulgas olid ka kaustad, nimega closed-case*** ja open-case***.
Edasi liikuda saamiseks peavad mängijad taastama vihjed failidest varukoopiatest.
Siinkohal tuleb öelda, et alguses anti mängijatele üsna vähe teavet, ja enamik andmeid (nagu IP, sisse logimise ja paroolide kohta) saavad nad kvesti käigus, leidnud vihjeid varukoopiatest või failidest, mis on hajutatud masinatesse. Alguses asuvad varukoopiate failid Linuxi hoidlas, kuid kaust on serveril mountitud (mounted) koos lipuga noexec, seetõttu ei saa failide taastamise eest vastutav agent käivituda.
Remonditud repod, osalejad saavad ligipääsu kõigile sisule ja saavad lõpuks taastada igasugust teavet. Jäänud on ainult välja selgitada, millist neist. Selleks peavad nad uurima sellel masinal hoitavaid faile, määrama, millised on 'rikkis' ja mida tuleks taastada.
Sel etapil nihkub stsenaarium üldistest IT-teadmistest Veeami spetsiifiliste funktsioonide poole.
Antud konkreetses näites (kui tead faili nime, aga mitte seda, kust seda otsida) tuleb kasutada Enterprise Manageri otsingu funktsiooni ja nii edasi. Lõpuks, taastades kogu loogilise ahela, on mängijatel käes veel üks sisselogimisinfo/ salasõna ja nmap'i väljund. See viib nad Windows Core serverisse, kasutades RDP'd (et elu oleks vähem magus).
Selle serveri peamine joon: lihtsa skripti ja mitme sõnastiku abil on loodud täiesti mõttetu kaustade ja failide struktuur. Ja sisselogimisel kuvatakse tervitussõnum, mis ütleb: 'Siin plahvatas loogiline pomm, seetõttu peate järgmiste sammude vihjed kokku koguma. '
Järgmine vihje oli jagatud mitmeosaliseks arhiviks (40-50 tükki) ja juhuslikult paigutatud nende kaustade vahel. Meie plaan oli, et mängijad peaksid näitama oma oskusi lihtsate PowerShell skriptide kirjutamises, et kindla mustri järgi kokku koguda mitmeosaline arhiv ja saada soovitud andmed. (Aga juhtus nagu selles anekdootis — osa katsealustest osutusid erakordselt füüsiliselt arenenud.)
Arhivis oli kasseti foto (kirjaga „Viimane õhtusöömaaeg — Parimad hetked”), mis vihjas sellele, et peaks kasutama ühendatud lintbiblioteegi, kus oli kassett sarnase pealkirjaga. Ainult et üks mure — see osutus nii mittetöötavaks, et isegi ei olnud kataloogitud. Siit algas tõenäoliselt kõige raskem osa ülesandest. Me eemaldasime kasseti pealkirja, seega andmete taastamiseks piisab lihtsalt „toores” (raw) blokkide välja andmisest ja nende kontrollimisest hex-redaktoris, et leida failide alguse markereid.
Otsime markerit, vaatame offsetit, korrutame ploki selle suurusega, lisame offseti ja proovime sisevahendi abil taastada faili kindlast plokist. Kui kõik on õigesti tehtud ja matemaatika klapib, siis mängijatel on käes .wav fail.
Selles on hääl genereerija abil muu hulgas dikteeritud binaarkood, mis avatakse veel ühe IP-ni.
Selgub, et see on uus Windowsi server, kus kõik viitab Wiresharki kasutamise vajadusele, aga seda pole seal. Peamine fookus on see, et sellesse masinasse on installitud kaks süsteemi — teise ketas on lihtsalt seadme halduris offline välja lülitatud, ja loogiline ahel viib vajaduseni süsteemi taaskäivitamiseks. Pärast seda selgub, et vaikimisi peaks laadima hoopis teise süsteemi, kus on installitud Wireshark. Ja me olime kogu aeg teisel OS-il.
Siin ei ole eriti midagi teha, piisab, kui aktiveerida püüdmine ainukesel liidesel. Suhteliselt hoolikat vaatlemist kasutades on dump'is selgelt näha vale pakett, mille saadab abimasin regulaarsete ajavahemike järel, kus on link youtube-videole, kus mängijad paluvad helistada kindlale numbrile. Esimene helistaja kuuleb õnnitlust esikoha puhul, teised — kutse HR-le (nalja pärast).
Üksipulgi avatud tehnilise toe inseneridele ja praktikantidele. Tere tulemast meeskonda!
Allikas: habr.com
