Quest'anno, e più precisamente in uno dei giorni tra il Natale cattolico e Capodanno, gli ingegneri del supporto tecnico di Veeam erano impegnati in compiti un po' insoliti: inseguivano un gruppo di hacker chiamato 'Veeamonymous'.

Ciò che i ragazzi hanno ideato e portato avanti al lavoro come un vero e proprio quest nella realtà, con missioni 'simulate' di combattimento, è stato raccontato da Kirill Stec'ko, Escalation Engineer.
— Perché avete intrapreso questa iniziativa?
— Un po' come quando le persone hanno creato Linux, giusto per divertimento, per puro piacere.
Volevamo un po' di movimento e allo stesso tempo volevamo fare qualcosa di utile, qualcosa di interessante. Inoltre, volevamo fornire un certo rilascio emotivo agli ingegneri dalla loro routine quotidiana.
— Chi ha proposto l'idea? Da chi è nata?
— L'idea è stata della nostra manager Katia Egorova, e poi il concetto e tutte le idee successive sono nate congiuntamente. Inizialmente pensavamo di organizzare un hackathon. Ma durante lo sviluppo del concetto, l'idea è cresciuta in un quest, dal momento che l'ingegnere del supporto tecnico è un'attività diversa rispetto alla programmazione.
Dunque, abbiamo coinvolto amici, colleghi e conoscenti; varie persone ci hanno aiutato con il concetto – una persona con T2 (secondo livello di supporto – nota redazionale.), una persona con T3, un paio di persone dal team SWAT (squadra di risposta rapida per casi particolarmente urgenti – nota redazionale.). Ci siamo riuniti, ci siamo seduti e abbiamo cercato di inventare le missioni per il nostro quest.
— È stato davvero inaspettato scoprire tutto ciò, perché, per quanto ne sappia, di solito le meccaniche dei quest sono sviluppate da esperti sceneggiatori, quindi non solo vi siete occupati di qualcosa di così complesso, ma anche in relazione al vostro lavoro e campo professionale.
— Sì, volevamo fare qualcosa di più di un semplice intrattenimento, ma «potenziare» le competenze tecniche degli ingegneri. Uno degli obiettivi del nostro dipartimento è lo scambio di conoscenze e la formazione, e un quest del genere è un’ottima opportunità per permettere alle persone di «toccare» alcune tecniche nuove per loro in prima persona.
— Come avete ideato le missioni?
— Abbiamo organizzato un brainstorming. Avevamo chiaro che dovevamo creare alcune sfide tecniche, in modo che fossero interessanti e allo stesso tempo trasmettessero nuove conoscenze.
Ad esempio, abbiamo pensato che fosse importante dare alle persone la possibilità di provare a sniffare il traffico, utilizzare editor esadecimali, fare qualcosa per Linux, e intraprendere attività leggermente più approfondite legate ai nostri prodotti (Veeam Backup & Replication e altri).
Anche il concetto è stato una parte fondamentale. Abbiamo deciso di partire dal tema degli hacker, accesso anonimo e atmosfera di segretezza. Abbiamo scelto la maschera di Guy Fawkes come simbolo, mentre il nome è venuto da sé: Veeamonymous.
«In principio era la parola»
Per alimentare l'interesse, abbiamo deciso di avviare una campagna di PR a tema quest prima dell'evento: abbiamo affisso manifesti con l'annuncio nel nostro ufficio. E dopo pochi giorni, di nascosto, li abbiamo ridisegnati con delle bombolette spray e abbiamo lanciato una 'fake news', dicendo che alcuni criminali avevano rovinato i manifesti, perfino allegando una foto come prova....
— Quindi siete stati voi a farlo, cioè il team degli organizzatori?!
— Sì, venerdì, intorno alle 9, quando tutti se ne erano già andati, siamo andati a dipingere con le bombolette la lettera «V» di colore verde.) Molti partecipanti al quest non si sono mai resi conto di chi fosse il colpevole – la gente si avvicinava a noi chiedendo chi avesse rovinato i manifesti? Qualcuno ha preso la questione molto sul serio e ha avviato una vera e propria indagine in merito.
Per il quest abbiamo registrato anche file audio, «estraendo» suoni: per esempio, quando un ingegnere accede al nostro sistema [produzione CRM], c'è un robot risponditore automatico che dice varie frasi, numeri... Abbiamo composto frasi più o meno sensate con quelle parole che ha registrato, magari un po' distorte – per esempio, abbiamo ottenuto «No friends to help you» in un file audio.
L'indirizzo IP, ad esempio, lo rappresentavamo in codice binario, tutto, di nuovo, con l'aiuto di questi numeri [pronunciati dal robot], aggiungendo suoni inquietanti. Abbiamo anche girato video: nel video abbiamo una persona seduta con un cappuccio nero e una maschera di Guy Fawkes, ma in realtà non c'è solo una persona, ma tre, perché due stanno dietro di lui e tengono un «sfondo» di coperte:).
— Beh, vi siete dati da fare, per dirla in breve.
— Sì, ci siamo eccitati. Inizialmente abbiamo creato i nostri requisiti tecnici e poi abbiamo scritto una trama letteraria-giocosa su cosa sarebbe effettivamente successo. Secondo il copione, i partecipanti cacciavano un gruppo di hacker chiamato "Veeamonymous". L'idea era anche quella di "rompere la quarta parete", cioè trasferire gli eventi nella realtà – per esempio, disegnavamo con una bomboletta.
Nella lavorazione letteraria del testo ci ha aiutato uno dei madrelingua inglesi del nostro reparto.
— Aspetta, perché un madrelingua? Lo avete fatto anche in inglese?!
— Sì, abbiamo organizzato eventi per gli uffici di San Pietroburgo e Bucarest, quindi tutto era in inglese.
Per la nostra prima esperienza abbiamo cercato di far funzionare tutto semplicemente, quindi il copione era lineare e piuttosto semplice. Abbiamo aggiunto un po' di atmosfera: testi segreti, cifrature, immagini.

Abbiamo anche utilizzato meme: c'erano un sacco di immagini su indagini, UFO, alcune storie dell'orrore popolari – alcune squadre si distraevano persino con queste, cercando di trovare messaggi nascosti, applicando le loro conoscenze di steganografia e altro… ma, ovviamente, non c'era nulla di simile.
Informazioni sulle spine
Tuttavia, durante la preparazione, ci siamo imbattuti in compiti inaspettati anche per noi stessi.
Ci siamo impegnati molto in essi e abbiamo risolto varie domande improvvisamente emerse; circa una settimana prima del quest, abbiamo pensato che fosse tutto perduto.
Probabilmente vale la pena raccontare un po' la base tecnica del quest.
Tutto è stato fatto nel nostro laboratorio interno ESXi. Avevamo 6 squadre, quindi era necessario allocare 6 pool di risorse. Così, per ogni squadra, abbiamo distribuito un pool separato con le macchine virtuali necessarie (IP identici). Ma poiché tutto questo si trovava su server che risiedono nella stessa rete, la configurazione attuale dei nostri VLAN non permetteva di isolare le macchine in diversi pool. Durante il test, ci siamo trovati ad affrontare situazioni in cui una macchina di un pool si connetteva a una macchina di un altro.
— Come siete riusciti a risolvere la situazione?
— Inizialmente abbiamo pensato a lungo, testato varie opzioni con permessi e VLAN separate per le macchine. Alla fine abbiamo fatto in modo che ogni squadra vedesse solo il server di backup Veeam, attraverso il quale avveniva tutto il lavoro successivo, ma non vedeva il sottopool nascosto, in cui si trovano:
- alcuni server Windows
- server Windows core
- server con Linux
- coppia VTL (Virtual Tape Library)
Ogni pool ha un gruppo di porte dedicato sullo switch vDS e il proprio Private VLAN. Questa doppia isolamento è esattamente ciò di cui abbiamo bisogno per escludere completamente la possibilità di interazione di rete.
Riguardo agli audaci
— Qualsiasi persona poteva partecipare al quest? Come sono state formate le squadre?
— Questa è stata la nostra prima esperienza nell'organizzazione di un evento del genere e le capacità del nostro laboratorio erano limitate a 6 squadre.
Inizialmente, come ho già detto, abbiamo condotto una campagna di PR: usando poster e mailing, abbiamo annunciato che si sarebbe tenuto un quest. Abbiamo persino fornito alcuni indizi – sui poster c'erano frasi codificate in codice binario. In questo modo abbiamo suscitato l'interesse delle persone, che hanno poi iniziato a contattare amici e conoscenti per unirsi. Alla fine, ci sono stati più interessati di quanti pool avessimo, quindi abbiamo dovuto fare una selezione: abbiamo creato un semplice compito di prova e lo abbiamo inviato a tutti coloro che si erano fatti avanti. Era un rompicapo logico che doveva essere risolto rapidamente.
Nel team erano ammessi fino a 5 membri. Non era necessario un capitano; l'idea era basata sulla cooperazione e sulla comunicazione tra di noi. Qualcuno era forte in Linux, qualcun altro nelle tape (backup su nastro), e ognuno, vedendo il compito, poteva contribuire con i propri sforzi alla soluzione comune. Tutti comunicavano tra loro, trovando la soluzione.

— E in quale momento è iniziato questo evento? Avevate un 'ora X'?
— Sì, avevamo una data prestabilita, l'abbiamo scelta in modo da avere meno carico nel dipartimento. Ovviamente, abbiamo informato in anticipo i team leader che tali squadre erano invitate a partecipare alla sfida, e che dovevano essere concessi alcuni alleggerimenti [rispetto al carico] in quel giorno. Si prevedeva che dovesse essere alla fine dell'anno, il 28 dicembre, un venerdì. Pensavamo che ci sarebbero volute circa 5 ore, ma tutte le squadre hanno fatto prima.
— Tutti erano in condizioni uguali, tutti avevano gli stessi compiti basati su casi reali?
— Certo, ciascuno dei redattori ha attinto dalle proprie esperienze personali alcune storie. Sapevamo che ci sono cose che possono realmente accadere e sarebbe interessante che la persona potesse "toccarle" con mano, osservare e comprendere. Abbiamo incluso anche elementi più specifici — ad esempio, il recupero di dati da nastri danneggiati. Qualcuno ha dato suggerimenti, ma la maggior parte dei team ha risolto da sola.
O dovevamo applicare la magia degli script rapidi – ad esempio, c'è stata una storia in cui una "bomba logica" ha "frantumato" un archivio multivolume in cartelle casuali nell'albero, e dovevamo raccogliere i dati. Questo si può fare manualmente – trovando e copiando [file] uno alla volta, oppure si può scrivere uno script secondo una maschera.
In generale, abbiamo cercato di mantenere la prospettiva che un compito possa essere risolto in diversi modi. Ad esempio, se sei un po' più esperto o vuoi "essere preciso", puoi risolverlo più rapidamente, mentre esiste un approccio diretto che richiede più tempo. Quindi, quasi ogni compito aveva diverse opzioni di soluzione, ed era interessante vedere quali strade avrebbero scelto le squadre. Pertanto, la non linearità era proprio nella scelta dell'opzione di soluzione.
A proposito, il compito più difficile è stato quello su Linux: solo un team è riuscito a risolverlo da solo, senza suggerimenti.
— Era possibile chiedere suggerimenti? Come in un vero quest??
— Sì, era possibile, perché capivamo che le persone sono diverse e che potevano trovarsi nella stessa squadra coloro che non possedevano alcune conoscenze, quindi per non allungare il tempo di gioco e mantenere alto l'interesse competitivo, abbiamo deciso di fornire suggerimenti. Per questo, c'era una persona degli organizzatori che osservava ogni squadra. E noi ci assicuravamo anche che nessuno barasse.

Riguardo alle stelle
— C'erano premi per i vincitori?
— Sì, abbiamo cercato di rendere i premi il più piacevoli possibile sia per tutti i partecipanti che per i vincitori: i vincitori hanno ricevuto felpe di design con il logo di Veeam e una frase codificata in codice esadecimale, di colore nero. Tutti i partecipanti hanno ricevuto una maschera di Guy Fawkes e una borsa brandizzata con il logo e lo stesso codice.
— Quindi, era tutto come in un vero quest!
— Beh, volevamo creare qualcosa di cool e maturo, e credo che ci siamo riusciti.
— È proprio così! Qual è stata la reazione di chi ha partecipato a questo quest? Avete raggiunto i vostri obiettivi?
— Sì, molti sono venuti a dirci che hanno chiaramente visto i loro punti deboli e hanno voluto migliorarsi. Alcuni hanno smesso di avere paura di certe tecnologie; ad esempio, di estrarre blocchi da nastri e cercare di recuperare qualcosa... Alcuni hanno capito che dovevano migliorare in Linux e così via. Abbiamo cercato di dare un ampio raggio di compiti, ma non del tutto banali.

Squadra vincitrice
«Chi vuole, ce la fa!»
— Richiese molti sforzi da parte di chi preparava il quest?
— Sì, in generale. Ma questo era probabilmente dovuto al fatto che non avevamo alcuna esperienza nella preparazione di questo tipo di quest e di infrastrutture. (Precisiamo che questa non è la nostra reale infrastruttura – doveva semplicemente svolgere alcune funzioni di gioco.)
Per noi è stata un'esperienza molto interessante. All'inizio ero scettico, perché l'idea mi sembrava persino troppo audace, pensavo che sarebbe stato molto difficile realizzarla. Ma abbiamo iniziato a lavorare, ci siamo messi d'impegno e alla fine ce l'abbiamo fatta. E ci siamo riusciti praticamente senza problemi.
In totale abbiamo impiegato 3 mesi. Per la maggior parte del tempo abbiamo lavorato sul concetto, discutendo cosa potessimo realizzare. Durante il processo, naturalmente, alcune cose sono cambiate, perché ci siamo resi conto che non avevamo la possibilità tecnica di fare certe cose. Abbiamo dovuto apportare modifiche in corsa, ma senza compromettere l'intera trama, la storia e la logica. Abbiamo cercato di non fornire solo un elenco di requisiti tecnici, ma di fare in modo che tutto si integrasse nella storia, in modo che fosse coerente e logico. Il lavoro principale è avvenuto nell'ultimo mese, dunque nelle 3-4 settimane prima del giorno X.
— Quindi, oltre alla tua attività principale, hai trovato il tempo per prepararti?
— Sì, ci siamo dedicati a questo parallelamente al lavoro principale.
— Ti chiedono di organizzare di nuovo qualcosa di simile?
— Sì, abbiamo molte richieste per ripetere l'evento.
— E tu che ne pensi?
— Abbiamo nuove idee, nuovi concetti; vogliamo coinvolgere più persone e organizzare tutto su un periodo più lungo – sia il processo di selezione che il gioco stesso. In generale, ci ispiriamo al progetto "Cicada", che puoi cercare; è una tematica IT molto interessante, con persone da tutto il mondo che si riuniscono, creano discussioni su Reddit, sui forum... ci sono anche traduzioni di codici e risoluzioni di enigmi, e così via.
— L'idea era fantastica; rispetto per l'idea e la realizzazione, perché questo ha un grande valore. Ti auguro sinceramente di non perdere mai questo entusiasmo, e che i tuoi nuovi progetti abbiano altrettanto successo. Grazie!

— Sì, sarebbe possibile vedere un esempio di una domanda che sicuramente non riutilizzerete?
— Sospetto che non ne riutilizzeremo nemmeno uno. Pertanto, posso parlarti dello sviluppo dell'intero gioco.
Traccia bonusAll'inizio, i giocatori hanno il nome della macchina virtuale e le credenziali di vCenter. Accedendo a quest'ultimo, vedono questa macchina, ma non si avvia. Qui devono intuire che qualcosa non va con il file .vmx. Scaricandolo, trovano un suggerimento necessario per il secondo passo. Fondamentalmente, c'è scritto che il database utilizzato da Veeam Backup & Replication è criptato.
Rimuovendo il suggerimento, caricando nuovamente il file .vmx e accendendo con successo la macchina, vedono che su uno dei dischi c'è effettivamente un database criptato in base64. Pertanto, l'obiettivo è decrittarlo e ottenere un server Veeam completamente funzionante.
Un po' sulla macchina virtuale su cui accade tutto questo. Come ricordiamo, il protagonista del quest è una figura piuttosto oscura e si occupa chiaramente di attività non del tutto legali. Pertanto, il suo computer di lavoro deve avere un aspetto piuttosto hacker, che dovevamo creare noi, nonostante si trattasse di Windows. Innanzitutto, sono stati aggiunti molti elementi di scenografia come informazioni su grandi hack, attacchi DDoS e simili. Poi abbiamo installato vari software tipici e sparso diversi dump, file con hash, ecc. Tutto come al cinema. Tra le altre cose, c'erano cartelle intitolate secondo il principio closed-case*** e open-case***.
Per andare oltre, i giocatori devono recuperare gli indizi dai file nei backup.
Qui bisogna dire che all'inizio ai giocatori veniva fornita un'informazione piuttosto scarsa, e la maggior parte dei dati (come IP, login e password) veniva ricevuta durante il quest, trovando indizi nei backup o nei file sparsi sui computer. Inizialmente, i file di backup si trovano in un repository Linux, ma la cartella stessa è server montata (mounted) con il flag noexec, quindi l'agente responsabile del recupero dei file non può avviarsi.
Ripristinato il repository, i partecipanti hanno accesso a tutto il contenuto e possono finalmente recuperare qualsiasi informazione. Resta solo da capire quale. E per questo devono esaminare i file memorizzati su questa macchina, identificare quali di essi siano "rotti" e cosa esattamente sia necessario recuperare.
A questo punto, lo scenario si sposta dalle conoscenze IT generali alle funzionalità specifiche di Veeam.
In questo caso specifico (quando sai il nome del file, ma non sai dove cercarlo) devi utilizzare la funzione di ricerca in Enterprise Manager, e così via. Alla fine, dopo il ripristino dell'intera catena logica, i giocatori hanno un altro login/password e l'output di nmap. Questo li porta a un server Windows Core, e attraverso RDP (per rendere le cose più difficili).
La caratteristica principale di questo server: con un semplice script e alcuni dizionari, è stata creata una struttura di cartelle e file completamente priva di senso. E durante il login viene visualizzato un messaggio di benvenuto del tipo "Qui è esplosa una bomba logica, quindi dovrai raccogliere gli indizi per i passaggi successivi pezzo per pezzo".
Il suggerimento successivo è stato suddiviso in un archivio multi-volume (di 40-50 pezzi) e distribuito casualmente in queste cartelle. La nostra idea era che i giocatori dovessero dimostrare le proprie abilità nella scrittura di semplici script PowerShell per ricomporre l'archivio multi-volume seguendo un modello noto e ottenere i dati desiderati. (Ma è andata come nella barzelletta: alcuni dei soggetti si sono rivelati estremamente sviluppati fisicamente.)
Nell'archivio c'era una foto di una cassetta (con la scritta «Last Supper — Best Moments»), che suggeriva l'uso di una biblioteca a nastro con una cassetta dal nome simile. Peccato però che fosse talmente inoperabile da non essere nemmeno catalogata. Qui iniziava probabilmente la parte più hardcore del quest. Abbiamo cancellato il titolo dalla cassetta, quindi per recuperare i dati da essa è necessario semplicemente eseguire il dump dei blocchi «raw» e visualizzarli in un editor hex alla ricerca dei marcatori di inizio file.
Troviamo il marker, esaminiamo l'offset, moltiplichiamo il blocco per la sua dimensione, aggiungiamo l'offset e cerchiamo di ripristinare il file da un determinato blocco utilizzando uno strumento interno. Se tutto è stato fatto correttamente e i calcoli sono giusti, i giocatori si ritrovano con un file .wav.
In questo file, con l'aiuto di un generatore vocale, viene inoltre dettato un codice binario, che si rivela essere un ulteriore IP.
Si scopre che si tratta di un nuovo server Windows, dove tutto suggerisce la necessità di utilizzare Wireshark, ma non è presente. Il punto principale è che su questa macchina sono installati due sistemi — solo che il disco del secondo è disabilitato tramite il gestore dispositivi in modalità offline, e la catena logica richiede un riavvio. Dopo di che, risulta che dovrebbe avviarsi un sistema completamente diverso, dove è installato Wireshark. E noi eravamo stati tutto il tempo sul sistema secondario.
Non c'è davvero nulla di particolare da fare qui, basta attivare la cattura sull'unico interfaccia. Con una scrupolosa attenzione al dump, si nota chiaramente un pacchetto sospetto, inviato da una macchina ausiliaria a intervalli regolari, contenente un link a un video di YouTube in cui si chiede ai giocatori di chiamare un numero specifico. Il primo che chiama ascolterà un messaggio di congratulazioni per il primo posto, mentre gli altri riceveranno un invito per l'HR (è uno scherzo)).
A proposito, abbiamo aperto per ingegneri di supporto tecnico e per tirocinanti. Benvenuti nel team!
Fonte: habr.com
