Ciber-quest de la echipa de suport tehnic Veeam

În această iarnă, adică într-una dintre zilele dintre Crăciunul catolic și Anul Nou, inginerii de asistență tehnică de la Veeam au fost ocupați cu sarcini nu tocmai obișnuite: vânătoarea unei grupări de hackeri numiți „Veeamonymous”.

Ciber-quest de la echipa de suport tehnic Veeam

Despre cum băieții au creat și au desfășurat un adevărat quest în realitate, cu misiuni „aproape de război”, ne-a povestit Kiril Stețko, Inginer de escaladare.

— De ce ați inițiat totul asta?

— Aproape la fel cum oamenii au creat Linux odată – just for fun, pentru propria plăcere.

Ne doream ceva dinamic și în același timp voiam să facem ceva util, ceva interesant. Plus că trebuia să oferim o descărcare emoțională inginerilor de la munca lor zilnică.

— Cine a propus asta? A cui a fost ideea?

— Ideea a fost a managerului nostru, Katia Egorova, iar apoi conceptul și toate ideile de mai departe au fost generate în efort comun. Inițial ne gândisem să facem un hackathon. Dar pe parcursul dezvoltării conceptului, ideea s-a transformat într-un quest, până la urmă, un inginer de asistență tehnică se ocupă de un domeniu diferit decât programarea.

Așadar, am chemat prieteni-cunoștințe, diferite persoane ne-au ajutat cu concepția – o persoană de la T2 (linia a doua de suport – nota red.), o persoană de la T3, câțiva oameni din echipa SWAT (echipa de reacție rapidă la cazuri deosebit de urgente – nota red.). Ne-am adunat cu toții, ne-am așezat și am încercat să ne gândim la misiuni pentru questul nostru.

— A fost foarte neașteptat să aflu toate aceste detalii, pentru că, din câte știu, de obicei mecanica questurilor este elaborată de specialiști-scenariști, adică nu doar că ați tratat o astfel de activitate complexă, dar ați aplicat-o și specific domeniului vostru profesional.

— Da, am dorit să facem nu doar o distracție, ci să „îmbunătățim” abilitățile tehnice ale inginerilor. Una dintre sarcinile din departamentul nostru – este schimbul de cunoștințe și formarea, iar un astfel de quest este o oportunitate excelentă de a oferi oamenilor „ocazia” de a experimenta în mod direct noi tehnici.

— Cum ați venit cu misiunile?

— Am organizat o sesiune de brainstorming. Aveam o idee clară că trebuie să creăm niște teste tehnice, și anume, să fie interesante și în același timp să ofere cunoștințe noi.
De exemplu, ne-am gândit că ar fi bine ca oamenii să aibă ocazia să experimenteze cu traficul, să folosească editori hexazecimali, să facă ceva pentru Linux, lucruri puțin mai profunde legate de produsele noastre (Veeam Backup & Replication și altele).

De asemenea, o parte importantă a fost conceptul. Am decis să ne inspirăm din tema hackerilor, accesul anonim și atmosfera de secret. Simbolul ales a fost masca lui Guy Fawkes, iar numele a venit de la sine — Veeamonymous.

Începutul a fost cuvântul.

Pentru a stârni interesul, am decis să organizăm o campanie de PR în tematica jocului de evadare înainte de eveniment: am afișat afișe cu anunțurile în biroul nostru. Apoi, după câteva zile, în secret, le-am pictat noi înșine cu spray-uri și am lansat o „știre falsă”, cum că anumiți răufăcători ar fi distrus afișele, chiar am atașat o fotografie ca dovadă…

— Deci, ați fost voi cei care le-ați făcut, echipa organizatorilor?!

— Da, vinerea, pe la 9 seara, când toți au plecat, noi am ieșit și am pictat cu spray-uri litera „V” de culoare verde.) Mulți participanți la jocul de evadare nu și-au dat seama cine a făcut asta – oamenii veneau la noi și ne întrebau cine a stricat afișele? Cineva s-a apropiat foarte serios de acest subiect și a organizat o adevărată investigație.

Pentru jocul de evadare am creat și fișiere audio, „am extras” sunete: de exemplu, când un inginer se loghează în sistemul nostru [CRM de producție], există un robot care răspunde automat, care spune diverse fraze, cifre… Așa că am folosit acele cuvinte înregistrate de el pentru a forma fraze oarecum sensibile, poate puțin ciudate – de exemplu, am avut „No friends to help you” în fișierul audio.

Adresa IP, de exemplu, am reprezentat-o în cod binar, totul, din nou, cu ajutorul acestor cifre [pronunțate de robot], am adăugat diverse sunete înfricoșătoare. Noi am filmat videoclipul: în videoclip avem o persoană îmbrăcată în negru, cu glugă și masca lui Guy Fawkes, dar de fapt nu este o singură persoană, ci trei, deoarece doi stau în spatele lui și țin un „fundal” dintr-o pătură:).

— V-ați complicat, să spunem așa.

— Da, ne-am aprins. În general, mai întâi ne-am gândit la sarcinile tehnice, iar apoi am creat o pânză literară și de joc pe tema a ceea ce s-ar fi întâmplat. Conform scenariului, participanții au vânat un grup de hackeri numit „Veeamonymous”. Ideea a fost, de asemenea, aceea că, în mod figurat, „spargem zidul al patrulea”, adică relocăm evenimentele în realitate – de exemplu, am pictat din spray.

La prelucrarea literară a textului ne-a ajutat un vorbitor nativ de engleză din departamentul nostru.

— Așteaptă, de ce un vorbitor nativ? Ați făcut asta și în limba engleză?!

— Da, am organizat pentru birourile din Sankt Petersburg și București, așa că totul a fost în engleză.

Pentru prima experiență am încercat să facem totul să funcționeze simplu, așa că scenariul a fost liniar și destul de simplu. Am adăugat mai multă atmosferă: texte secrete, coduri, imagini.

Ciber-quest de la echipa de suport tehnic Veeam

De asemenea, am folosit meme-uri: au fost o grămadă de imagini pe teme de investigații, OZN-uri, diverse povești înfricoșătoare – unele echipe s-au lăsat distrase și au încercat să găsească mesaje ascunse, să-și aplice cunoștințele de steganografie și altele… dar, desigur, nu era nimic de genul acesta.

Despre spini

Cu toate acestea, în procesul de pregătire ne-am confruntat cu sarcini neașteptate pentru noi înșine.

Am muncit mult la ele și am rezolvat diverse întrebări care apăreau brusc, iar cu o săptămână înainte de quest, ne-am gândit că totul este pierdut.

Probabil că ar trebui să spunem puțin despre baza tehnică a quest-ului.

Totul s-a realizat pe laboratoarele noastre interne ESXi. Am avut 6 echipe, deci a trebuit să creăm 6 pool-uri de resurse. Așadar, pentru fiecare echipă am desfășurat un pool separat cu mașinile virtuale necesare (IP-uri identice). Dar, având în vedere că toate acestea se aflau pe servere care sunt în aceeași rețea, configurația actuală a VLAN-urilor noastre nu permitea izolarea mașinilor în diferite pool-uri. Și, de exemplu, în timpul testului, întâmpinam situații în care o mașină dintr-un pool se conecta la o mașină din alt pool.

— Cum ați reușit să corectați situația?

— La început, am gândit mult, am testat diverse variante cu permisiuni, VLAN-uri separate pentru mașini. În final, am făcut așa — fiecare echipă vede doar serverul Veeam Backup, prin care se desfășoară toată activitatea ulterioară, dar nu vede pool-ul ascuns, în care se află:

  • câteva mașini Windows
  • Server Windows core
  • Mașină cu Linux
  • Pereche VTL (Virtual Tape Library)

Fiecărui pool i s-a atribuit un grup separat de porturi pe switch-ul vDS și propriul său VLAN privat. Această dublă izolare este exact ceea ce este necesar pentru a elimina complet posibilitatea interacțiunii rețelei.

Despre curajoși

— A putut oricine să participe la quest? Cum s-au format echipele?

— Aceasta a fost prima noastră experiență în organizarea unui astfel de eveniment și capacitățile laboratorului nostru au fost limitate la 6 echipe.

La început, așa cum am spus, am desfășurat o campanie PR: folosind pliante și trimiterea de emailuri, am informat că se va desfășura questul. Chiar am avut niște indicii – pe pliantele în sine erau criptate fraze în cod binar. Astfel, am stârnit interesul oamenilor, iar aceștia au început să se organizeze între ei, cu prietenii, cooperând. În cele din urmă, au fost mai mulți doritori decât pool-uri, așa că a fost necesar să facem o selecție: am creat o sarcină de testare simplă și am trimis-o tuturor celor care au răspuns. A fost o problemă de logică, care trebuia rezolvată rapid.

În echipă erau permise până la 5 persoane. Nu era necesar un căpitan, ideea era de cooperare, de comunicare între ei. Cineva era puternic în Linux, cineva era bun în tape-uri (backup-uri pe benzi), iar fiecare, văzând sarcina, putea contribui la soluția comună. Toți comunicau între ei, găseau soluții.

Ciber-quest de la echipa de suport tehnic Veeam

— Și când a început acest eveniment? Ați avut un „ora X”?

— Da, am avut o zi strict stabilită, am ales-o astfel încât să fie o încărcătură mai mică în departament. Ei bine, am anunțat din timp liderii echipelor, că anumite echipe sunt invitate să participe la quest, și că trebuie să le ofere oarecare relaxare [în ceea ce privește încărcarea] în acea zi. Totul s-a aranjat pentru sfârșitul anului, 28 decembrie, vineri. Ne-am propus să dureze aproximativ 5 ore, dar toate echipele s-au descurcat mai repede.

— Toți au fost în condiții egale, au avut cu toții aceleași sarcini bazate pe cazuri reale?

— Da, fiecare dintre organizatori a folosit din experiența personală anumite povești. Despre unele lucruri știai că ar putea fi reale și ar fi interesant ca oamenii să le „experimenteze”, să le observe, să le analizeze. Am explorat și unele aspecte mai specifice — de exemplu, recuperarea datelor de pe benzi deteriorate. Unii au avut indicii, dar majoritatea echipelor s-au descurcat singure.

Sau a trebuit să aplicăm magia scripturilor rapide – de exemplu, am avut o poveste în care o „bombă logică” a „rupt” un arhiv multivolum pe diverse foldere ale structurii, și a fost nevoie să adunăm datele. Poate fi făcut manual – găsind și coporând [fișiere] unul câte unul, sau poate scrie un script pe bază de masca.

În general, am încercat să ne menținem perspectiva că o problemă poate fi rezolvată în moduri diferite. De exemplu, dacă ești puțin mai experimentat sau vrei să „te complici”, atunci poți găsi o soluție mai rapid, iar există o cale directă de soluționare „în față” – dar în acest caz, vei petrece mai mult timp la problemă. Asta înseamnă că aproape fiecare sarcină avea mai multe variante de soluționare, și a fost interesant de văzut ce căi aleg echipele. Deci non-liniaritatea a fost tocmai în alegerea variantei de soluționare.

Apropo, cea mai dificilă a fost sarcina Linux — doar o echipă a rezolvat-o singură, fără indicii.

— Era posibil să utilizați indicii? Ca într-un adevărat quest??

— Da, a fost posibil pentru că înțelegeam că oamenii sunt diferiți, și ar putea să se afle în aceeași echipă cei care nu au anumite cunoștințe, așa că pentru a nu întârziat progresul și a nu pierde interesul competitiv, am decis că vor fi indicii. Fiecare echipă a fost supravegheată de un organizator. Și am avut grijă să ne asigurăm că nimeni nu trișează.

Ciber-quest de la echipa de suport tehnic Veeam

Despre stele

— Dar au fost premii pentru câștigători?

— Da, ne-am străduit să oferim premii cât mai plăcute atât pentru toți participanții, cât și pentru câștigători: câștigătorii au primit hanorace de designer cu logo-ul Veeam și o frază criptată în cod hexadecimal, de culoare neagră). Toți participanții au primit câte o mască a lui Guy Fawkes și câte o geantă branduită cu logo-ul și același cod.

— Deci, totul a fost ca într-un adevărat quest!

— Da, am vrut să facem ceva grozav, pentru adulți, și mi se pare că am reușit.

— Așa este! Care a fost reacția celor care au participat la această provocare? Ați reușit să atingeți obiectivele?

— Da, mulți au venit ulterior și au spus că au observat clar slăbiciunile lor și au vrut să le îmbunătățească. Cineva a încetat să se teamă de anumite tehnologii – de exemplu, de extragerea blocurilor de pe tape și de încercarea de a scoate ceva de acolo... Cineva a realizat că trebuie să îmbunătățească Linux-ul și așa mai departe. Ne-am străduit să oferim un set variat de sarcini, dar nu chiar triviale.

Ciber-quest de la echipa de suport tehnic Veeam
Echipa câștigătoare

„Cine vrea, reușește!”

— A fost un efort considerabil din partea celor care au organizat provocarea?

— Da, a fost. Dar asta a fost mai mult legat de faptul că nu aveam experiență în pregătirea astfel de provocări, de acest tip de infrastructură. (Să precizăm că aceasta nu este infrastructura noastră reală – ea trebuia doar să îndeplinească anumite funcții de joc.)

Pentru noi a fost o experiență foarte interesantă. La început am fost sceptic, deoarece ideea mi s-a părut chiar prea sofisticată, am crezut că este foarte greu de realizat. Dar am început să lucrăm, toți s-au implicat și, în cele din urmă, am reușit. Și a fost chiar fără probleme majore.

În total, am petrecut 3 luni. În mare parte, ne-am concentrat pe concepție, discutând despre ce putem realiza. În proces, desigur, au intervenit anumite schimbări, deoarece am realizat că nu avem capacitatea tehnică de a face anumite lucruri. A trebuit să adaptăm pe parcurs, dar astfel încât întreaga poveste și logică să nu fie afectată. Am încercat să nu oferim doar o listă de sarcini tehnice, ci să incluzi totul într-o poveste, să fie coerent și logic. Activitatea principală a avut loc în ultima lună, adică în ultimele 3-4 săptămâni înainte de ziua H.

— Deci, ați alocat timp pentru pregătire în afara activității principale?

— Ne-am ocupat de asta paralel cu muncă principală, da.

— Vi se mai cer asemenea evenimente?

— Da, avem multe cereri să repetăm.

— Și voi ce ați spus?

— Avem idei noi, concepte noi, dorim să atragem mai multe persoane și să întindem acest proces în timp – atât procesul de selecție, cât și procesul de joc. În general, suntem inspirați de proiectul „Cikada”, pe care îl puteți găsi pe Google – este o temă IT foarte tare, unde oameni din întreaga lume se unesc, creează fire pe Reddit, pe forumuri, folosește traducerea codurilor și descifră enigme și tot felul de astfel de lucruri.

— Ideea a fost grozavă, pur și simplu respect pentru idee și realizare, deoarece asta valorează cu adevărat mult. Îmi doresc sincer să nu vă pierdeți acest entuziasm, să fie la fel de de succes toate proiectele voastre noi. Mulțumesc!

Ciber-quest de la echipa de suport tehnic Veeam

— Da, ar fi posibil să vedem un exemplu de sarcină pe care cu siguranță nu o veți reutiliza?

— Suspectez că nu vom reutiliza niciuna. Așa că pot să vorbesc despre desfășurarea întregului quest.

Bonus trackLa început, jucătorii au o denumire a mașinii virtuale și credențiale pentru vCenter. Conectându-se, ei văd această mașină, dar aceasta nu pornește. Trebuie să își dea seama că ceva nu este în regulă cu fișierul .vmx. Descărcându-l, ei văd indiciul necesar pentru al doilea pas. Practic, acolo este scris că baza utilizată de Veeam Backup & Replication este criptată.
Eliminând indiciul, încărcând din nou fișierul .vmx și pornind cu succes mașina, ei văd că pe unul dintre discuri se află într-adevăr o bază, criptată în base64. Prin urmare, sarcina este de a o decripta și a obține un server Veeam complet funcțional.

Puțin despre virtuala pe care se desfășoară totul. Cum ne amintim, în poveste, protagonistul quest-ului este o personalitate destul de întunecată și se ocupă cu ceva evident ilegal. De aceea, computerul său de muncă trebuie să aibă un aspect destul de hackeresc, pe care trebuia să-l creăm noi, deși este Windows. În primul rând, am adăugat o mulțime de elemente scenografice, cum ar fi informații despre mari hack-uri, atacuri DDoS și similar. Apoi am instalat tot felul de software tipic și am împrăștiat diverse dump-uri, fișiere cu hash-uri etc. Totul ca în filme. Printre altele, erau foldere denumite conform principiului closed-case*** și open-case***.
Pentru a merge mai departe, jucătorii trebuie să recupereze indiciile din fișierele din backup-uri.

Este trebuie să menționăm că, la început, jucătorii primeau destul de puține informații, iar majoritatea datelor (cum ar fi IP-urile, numele de utilizator și parolele) le obțin pe parcursul misiunii, găsind indicii în copiile de rezervă sau fișierele dispersate pe mașini. Inițial, fișierele de rezervă sunt stocate pe un depozit Linux, dar folderul în sine este server montat (mounted) cu flagul noexec, prin urmare, agentul responsabil pentru recuperarea fișierelor nu poate fi lansat.

După repararea depozitului, participanții obțin acces la tot conținutul și, în sfârșit, pot recupera orice informație. Rămâne să înțeleagă exact ce anume. Pentru aceasta, trebuie să studieze fișierele stocate pe această mașină, să determine care dintre ele sunt „corupte” și ce anume trebuie restaurat.

În această etapă, scenariul se abate de la cunoștințele IT generale către funcții specifice Veeam.

În acest exemplu specific (când știi numele fișierului, dar nu știi unde să-l cauți) trebuie să folosești funcția de căutare din Enterprise Manager, și așa mai departe. În cele din urmă, după recuperarea întregii logici, jucătorii se trezesc cu un alt nume de utilizator/parolă și cu rezultatul de la nmap. Aceasta îi conduce la un server Windows Core, prin RDP (ca viața să nu fie chiar atât de ușoară).

Principala caracteristică a acestui server: cu ajutorul unui script simplu și câteva dicționare, a fost creată o structură absolut absurdă de foldere și fișiere. La autentificare, se afișează un mesaj de bun venit care spune: „Aici a explodat o bombă logică, așa că indicii pentru pașii următori va trebui să-i adunați pe bucăți”.

Următorul indiciu a fost împărțit într-un arhiv multivoi (aproximativ 40-50 de bucăți) și dispersat aleatoriu prin aceste foldere. Intenția noastră a fost ca jucătorii să-și demonstreze talentele în scrierea unor scripturi PowerShell simple, pentru a aduna arhivă multivoi într-o singură unitate conform unui tipar cunoscut și a obține datele dorite. (Dar a ieșit ca în aceea glumă — o parte dintre subiecți s-au dovedit a fi neobișnuit de dezvoltati fizic.)

În arhivă se afla o fotografie a unei casete (cu inscripția „Last Supper — Best Moments”), care sugera utilizarea unei biblioteci de bandă conectate, unde era o casetă cu un nume similar. Numai că o problemă era că aceasta nu funcționa deloc, astfel că nu putea fi catalogată. Aici începea, probabil, cea mai hardcore parte a misiunii. Am șters titlul de pe casetă, așa că, pentru a recupera datele de pe ea, trebuie doar să extragem blocurile „raw” și să le vizualizăm în hex-editor pentru a găsi markerii de început ai fișierelor.
Găsim markerul, verificăm offsetul, înmulțim blocul cu dimensiunea sa, adăugăm offsetul și cu ajutorul unei unelte interne încercăm să recuperăm fișierul de la un anumit bloc. Dacă totul este făcut corect și matematica se leagă, atunci jucătorii au un fișier .wav în mâini.

În acesta, cu ajutorul generatorului de voci, alături de alte lucruri, a fost dictat un cod binar, care se dezvăluie într-un alt IP.

Se pare că acesta este un nou server Windows, unde totul sugerează necesitatea utilizării Wireshark, doar că nu este disponibil acolo. Principalul punct este că pe această mașină sunt instalate două sisteme — doar că discul cu al doilea este dezactivat prin device manager în offline, iar logica duce la necesitatea de a reporni. După care se dovedește că, în mod implicit, ar trebui să pornească un alt sistem, unde este instalat Wireshark. Și noi am fost tot timpul pe al doilea OS.

Aici nu mai trebuie să facem nimic special, este suficient să activăm captura pe singurul interface. La o examinare relativ atentă a dump-ului se observă un pachet clar străin, trimis de pe o mașină auxiliară la intervale regulate, care conține un link către un videoclip youtube, unde jucătorii sunt invitați să sune un anumit număr. Primul care sună va asculta un mesaj de felicitare pentru primul loc, ceilalți — o invitație la HR (glumă)).

Apropo, avem deschise posturi vacante pentru ingineri de suport tehnic și pentru stagiari. Bun venit în echipă!

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster