Tej zimy, a dokładniej — w jeden z dni między katolickimi Świętami Bożego Narodzenia a Nowym Rokiem — inżynierowie wsparcia technicznego Veeam zajmowali się dość nietypowymi zadaniami: polowali na grupę hakerów o nazwie «Veeamonymous».

O tym, jak zespół sam wymyślił i przeprowadził prawdziwy quest w rzeczywistości, z zadaniami «bliskimi bojowym», opowiedział Kirył Stecko, Inżynier ds. eskalacji.
— Po co w ogóle to zrobiliście?
— Praktycznie tak, jak ludzie wymyślili kiedyś Linux – just for fun, dla własnej przyjemności.
Chcieliśmy trochę ruchu, a jednocześnie chcieliśmy zrobić coś użytecznego, coś interesującego. Poza tym należało dać emocjonalną odnowę inżynierom od codziennej pracy.
— Kto to zaproponował? Czyj to był pomysł?
— Pomysł był od naszej menedżerki Katji Jegorowej, a potem koncept i wszystkie dalsze pomysły powstały wspólnymi siłami. Początkowo planowaliśmy zorganizować hackathon. Ale podczas opracowywania konceptu pomysł przerodził się w quest, w końcu inżynier wsparcia technicznego to inny rodzaj działalności niż programowanie.
Tak więc zaprosiliśmy znajomych i przyjaciół, różne osoby pomagały nam z koncepcją – jedna osoba z T2 (druga linia wsparcia — przyp. red.), jedna osoba z T3, пара osób z zespołu SWAT (zespół szybkiego reagowania na szczególnie pilne przypadki — przyp. red.). Zebraliśmy się wszyscy razem, usiedliśmy i próbowaliśmy wymyślić zadania do naszego questa.
— Było to bardzo zaskakujące, aby dowiedzieć się o tym wszystkim, ponieważ, o ile wiem, zwykle mechanikę questów opracowują specjaliści-scenarzyści, to znaczy że zajmowaliście się czymś tak skomplikowanym, a jeszcze w kontekście swojej pracy, w swoim polu zawodowym.
— Tak, chcieliśmy zrobić nie tylko rozrywkę, ale również «podnieść» umiejętności techniczne inżynierów. Jednym z zadań w naszym dziale jest wymiana wiedzy i szkolenie, a taki quest to świetna okazja, aby dać ludziom możliwość «dotknięcia» nowych dla nich technik w rzeczywistości.
— Jak wymyślaliście zadania?
— Zorganizowaliśmy burzę mózgów. Mieliśmy świadomość, że musimy stworzyć pewne techniczne wyzwania, takie, aby były interesujące i jednocześnie przynosiły nowe wiadomości.
Na przykład, pomyśleliśmy, że warto dać ludziom możliwość spróbowania sniffowania ruchu, korzystania z edytorów hex, zrobienia czegoś dla Linuksa, zrealizowania nieco bardziej zaawansowanych działań związanych z naszymi produktami (Veeam Backup & Replication i innymi).
Również istotnym elementem był koncept. Zdecydowaliśmy się oprzeć na tematyce hakerów, dostępu anonimowego oraz atmosferze tajemniczości. Symbolem uczyniliśmy maskę Guy'a Fawkesa, a nazwa powstała sama z siebie — Veeamonymous.
„Na początku było słowo”
Aby podgrzać zainteresowanie, postanowiliśmy przed wydarzeniem przeprowadzić kampanię PR w klimacie questów: powiesiliśmy plakaty z zapowiedzią po naszym biurze. A kilka dni później, w tajemnicy przed wszystkimi, sami je pomalowaliśmy sprayami i puściliśmy „fake news”, że jacyś przestępcy zniszczyli plakaty, nawet dołączyliśmy zdjęcie jako dowód....
— Więc to wy to zrobiliście, czyli zespół organizatorów?!
— Tak, w piątek, około 9, kiedy wszyscy już poszli, chodziliśmy i malowaliśmy ze sprayów literkę „V” w zielonym kolorze. :) Wielu uczestników questów nawet nie domyśliło się, kto to zrobił – ludzie podchodzili do nas i pytali, kto zniszczył plakaty? Ktoś bardzo poważnie rozwiązał tę sprawę i urządził całe dochodzenie na ten temat.
Na quest pisaliśmy także pliki audio, 'wyciągając' dźwięki: na przykład, kiedy inżynier loguje się do naszej [produkcji CRM], to tam jest robot-automatyczny odpowiedzi, który mówi różne frazy, cyfry…. Z tych słów, które ma nagrane, układaliśmy bardziej lub mniej sensowne zdania, może trochę krzywe – na przykład, udało nam się uzyskać „Brak przyjaciół, którzy mogliby Ci pomóc” w pliku audio.
Adres IP, na przykład, przedstawialiśmy w kodzie binarnym, wszystko znów, z pomocą tych cyfr [wypowiedzianych przez robota], dodawaliśmy różne przerażające dźwięki. Sami nagrywaliśmy wideo: na wideo mamy osobę w czarnej kapture i w masce Guy'a Fawkesa, ale w rzeczywistości jest tam nie jedna osoba, a trzy, ponieważ dwie stoją za nim i trzymają 'tło' z koca.:)
— No, naprawdę się postaraliście.
— Tak, zapaliliśmy się. Ogólnie najpierw wymyśliliśmy nasze techniczne zadania, a potem stworzyliśmy literacką i grywalną fabułę na temat tego, co rzekomo miało miejsce. Zgodnie ze scenariuszem uczestnicy ścigali grupę hakerów o nazwie „Veeamonymous”. Idea polegała również na tym, że w pewien sposób „łamaliśmy czwartą ścianę”, czyli przenosiliśmy wydarzenia do rzeczywistości – na przykład malowaliśmy z aerozolu.
Z literackim opracowaniem tekstu pomógł nam jeden z native speakerów języka angielskiego z naszego działu.
— Czekaj, a po co native speaker? Robiliście to także po angielsku?!
— Tak, przeprowadzaliśmy to dla biur w Petersburgu i Bukareszcie, więc wszystko było po angielsku.
Na pierwsze doświadczenie staraliśmy się, aby wszystko po prostu zadziałało, dlatego scenariusz był liniowy i dosyć prosty. Dodaliśmy więcej otoczenia: tajne teksty, szyfry, obrazki.

Użyliśmy też memów: było mnóstwo obrazków na tematy śledztw, UFO, jakichś popularnych straszaków – niektóre zespoły nawet się na tym rozpraszały, próbując znaleźć tam jakieś ukryte wiadomości, zastosować swoją wiedzę o steganografii i tym podobne… ale oczywiście, nie było tam nic takiego.
O cierniach
Jednak w trakcie przygotowań napotkaliśmy nieoczekiwane dla nas samych zadania.
Długo nad nimi pracowaliśmy i rozwiązywaliśmy różne nagle pojawiające się pytania, a na tydzień przed questem pomyśleliśmy, że wszystko poszło na marne.
Prawdopodobnie warto trochę opowiedzieć o technicznej podstawie quest’u.
Wszystko działało w naszej wewnętrznej labie ESXi. Mieliśmy 6 zespołów, więc musieliśmy przydzielić 6 pul zasobów. Tak więc dla każdego zespołu utworzyliśmy oddzielną pulę z odpowiednimi maszynami wirtualnymi (te same IP). Ale ponieważ wszystko to znajdowało się na serwerach, które leżały w jednej sieci, aktualna konfiguracja naszych VLAN-ów nie pozwalała na izolowanie maszyn w różnych pulach. I, na przykład, podczas testowego biegu mieliśmy sytuacje, w których maszyna z jednej puli łączyła się z maszyną z drugiej.
— Jak udało się naprawić sytuację?
— Najpierw długo myśleliśmy, testowaliśmy różne opcje z uprawnieniami, oddzielnymi VLAN-ami dla maszyn. Ostatecznie zrobiliśmy tak — każdy zespół widzi tylko serwer Veeam Backup, przez który odbywa się dalsza praca, ale nie widzi ukrytej podpuli, w której znajdują się:
- kilka maszyn Windows
- Serwer Windows core
- maszyna z Linuxem
- para VTL (Virtual Tape Library)
Każdej puli przypisano oddzielną grupę portów na przełączniku vDS i własny prywatny VLAN. Taka podwójna izolacja jest potrzebna, aby całkowicie wykluczyć możliwość interakcji sieciowej.
O odważnych
— Czy każdy chętny mógł wziąć udział w teście? Jak formowane były zespoły?
— To było nasze pierwsze doświadczenie w organizacji takiego wydarzenia, a możliwości naszej laboratorium były ograniczone do 6 zespołów.
Najpierw, jak już powiedziałem, przeprowadziliśmy kampanię PR: wykorzystując plakaty i mailing, poinformowaliśmy, że odbędzie się test. Mieliśmy nawet podpowiedzi – na samych plakatach zaszyfrowane były frazy w kodzie binarnym. W ten sposób zainteresowaliśmy ludzi, którzy zawiązywali drużyny między sobą, umawiali się z przyjaciółmi. Ostatecznie zgłosiło się więcej chętnych, niż mieliśmy pul, więc musieliśmy przeprowadzić selekcję: wymyśliliśmy proste zadanie testowe i rozesłaliśmy je do wszystkich, którzy odpowiedzieli. To była logiczna zagadka, którą trzeba było rozwiązać na czas.
W zespole mogło być do 5 osób. Kapitan nie był wymagany, pomysł opierał się na współpracy, komunikacji między sobą. Ktoś jest silny w Linuxie, ktoś inny w taśmach (backupach na taśmy), a każdy, widząc zadanie, mógł wnieść swoje wysiłki w ogólne rozwiązanie. Wszyscy ze sobą rozmawiali, znajdowali rozwiązanie.

— A kiedy to wydarzenie się rozpoczęło? Mieliście jakiś «godzinę X»?
— Tak, mieliśmy ściśle wyznaczony dzień, wybieraliśmy go tak, aby obciążenie w dziale było mniejsze. Oczywiście z wyprzedzeniem poinformowaliśmy team liderów, że takie a takie zespoły są zapraszane do udziału w teście i że w tym dniu potrzebują pewnego poluzowania [w zakresie obciążenia]. Ostatecznie ustaliliśmy, że powinien to być koniec roku, 28 grudnia, piątek. Liczyliśmy, że zajmie to około 5 godzin, ale wszystkie zespoły poradziły sobie szybciej.
— Wszyscy byli w równych warunkach, mieli tą samą zestaw zadań na podstawie rzeczywistych przypadków?
– Tak, każdy z uczestników czerpał ze swojego osobistego doświadczenia, dzieląc się różnymi historiami. O czymś wiedzieliśmy, że może się zdarzyć w rzeczywistości i będzie interesujące, aby osoba mogła to "zobaczyć", przyjrzeć się temu, zrozumieć. Sięgnęliśmy też po bardziej specyficzne zagadnienia – na przykład odzyskiwanie danych z uszkodzonych taśm. Ktoś podpowiadał, ale większość zespołów poradziła sobie samodzielnie.
Lub trzeba było zastosować magię szybkich skryptów – na przykład mieliśmy historię o tym, jak "logical bomb" "rozdzieliła" wielotomowy archiwum na losowe foldery w drzewie, i trzeba było zebrać dane. Można to zrobić ręcznie – znajdować i kopiować [pliki] jeden po drugim, albo można napisać skrypt na wzór.
Generalnie staraliśmy się trzymać założenia, że jedno zadanie można rozwiązać na różne sposoby. Na przykład, jeśli masz nieco więcej doświadczenia lub chcesz się "bawić", możesz je rozwiązać szybciej, a jest też bezpośrednia droga "na wprost" – ale wtedy spędzisz więcej czasu na zadaniu. Czyli prawie każde zadanie miało kilka wariantów rozwiązania, a interesujące było, jakie ścieżki wybiorą zespoły. Tak więc nielinearność polegała na wyborze metody rozwiązania.
Przy okazji, najtrudniejszym zadaniem okazało się to z Linuxa – tylko jeden zespół rozwiązał je samodzielnie, bez podpowiedzi.
– A czy można było brać podpowiedzi? Jak w prawdziwym questie??
– Tak, można było, bo rozumieliśmy, że ludzie są różni i mogą trafić do jednego zespołu osoby, którym brakuje niektórej wiedzy, dlatego aby nie przedłużać rozgrywki i nie zniechęcać rywalizacji, zdecydowaliśmy, że będą podpowiedzi. Przy każdej drużynie czuwała osoba z organizatorów. No i pilnowaliśmy, żeby nikt nie oszukiwał.

O gwiazdach
– A były nagrody dla zwycięzców?
– Tak, staraliśmy się zrobić maksymalnie przyjemne nagrody zarówno dla wszystkich uczestników, jak i dla zwycięzców: zwycięzcy otrzymali designerskie bluzy z logo Veeam i frazą zaszyfrowaną w kodzie szesnastkowym, w kolorze czarnym). Wszyscy uczestnicy dostali maski Guya Fawkesa oraz firmowe torby z logo i tym samym kodem.
– Więc mieliście wszystko jak w prawdziwym questie!
– Cóż, chcieliśmy stworzyć coś wyjątkowego, dorosłego, i myślę, że nam się to udało.
— Tak jest! A jaka była reakcja tych, którzy uczestniczyli w tym teście? Osiągnęliście swoje cele?
— Tak, wielu później podchodziło, mówiło, że wyraźnie dostrzegli swoje słabe punkty i chcieli je poprawić. Ktoś przestał bać się pewnych technologii – na przykład, dumpować bloki z taśm i próbować coś wyciągnąć… Ktoś zrozumiał, że musi poprawić znajomość Linuxa, i tak dalej. Staraliśmy się dać wystarczająco szeroki zakres zadań, ale nie całkiem trywialnych.

Zespół zwycięzców
„Kto chce, ten osiągnie sukces!”
— Czy przygotowanie testu wymagało dużo wysiłku od tych, którzy go organizowali?
— Generalnie tak. Ale to było prawdopodobnie związane z tym, że nie mieliśmy żadnego doświadczenia w przygotowywaniu takich testów, takiego rodzaju infrastruktury. (Zaznaczmy, że to nie była nasza rzeczywista infrastruktura – miała jedynie realizować pewne funkcje gry.)
To był dla nas bardzo interesujący doświadczenie. Na początku byłem sceptyczny, bo pomysł wydawał mi się zbyt ambitny, pomyślałem, że to bardzo trudne do zrealizowania. Ale zaczęliśmy działać, zaczęliśmy pracować, wszyscy się zaangażowali i w rezultacie się udało. I odbyło się to praktycznie bez komplikacji.
Ogólnie spędziliśmy na tym 3 miesiące. Przede wszystkim wymyślaliśmy koncepcję, omawialiśmy, co możemy zrealizować. W trakcie, oczywiście, kilka rzeczy się zmieniało, ponieważ rozumieliśmy, że nie mamy możliwości technicznych, aby to zrealizować. Na bieżąco trzeba było coś przerabiać, ale tak, aby nie zepsuć całej struktury, historii i logiki. Staraliśmy się nie tylko dać listę zadań technicznych, ale żeby to mieściło się w historii, było spójne i logiczne. Główna praca szła w ostatnim miesiącu, czyli 3-4 tygodnie przed dniem X.
— Więc, oprócz swojej głównej działalności, poświęcaliście czas na przygotowania?
— Tak, zajmowaliśmy się tym równolegle z główną pracą.
— Czy jeszcze prosi was się o powtórzenie czegoś takiego?
— Tak, mamy wiele próśb o powtórzenie.
— A wy co?
Mamy nowe pomysły, nowe koncepcje, chcemy przyciągnąć więcej ludzi i rozciągnąć to w czasie – zarówno proces selekcji, jak i sam proces gry. Ogólnie inspirowaliśmy się projektem „Cykada”, to można sobie wyszukać – to bardzo cool temat IT, tam ludzie z całego świata się jednoczą, zakładają wątki na Redicie, na forach, tam także używają tłumaczenia szyfrów, rozwiązują zagadki i tym podobne.
Pomysł był świetny, szacun za ideę i realizację, bo to naprawdę coś kosztuje. Sz sincerely życzę, aby to zapał Wam nie opadł, aby wszystkie Wasze nowe projekty były tak samo udane. Dziękuję!

Czy można zobaczyć przykład zadania, którego na pewno nie będziecie ponownie używać?
Przypuszczam, że żadnego nie będziemy ponownie używać. Dlatego mogę opowiedzieć o przebiegu całego quest.
Bonusowy utwórNa samym początku gracze mają nazwę maszyny wirtualnej i dane do logowania do vCenter. Po zalogowaniu widzą tę maszynę, ale nie można jej uruchomić. Trzeba się domyślić, że coś jest nie tak z plikiem .vmx. Pobierając go, widzą wskazówkę niezbędną do drugiego kroku. W zasadzie jest tam napisane, że baza używana przez Veeam Backup & Replication jest zaszyfrowana.
Usuwając wskazówkę, wgrywając plik .vmx z powrotem i pomyślnie uruchamiając maszynę, widzą, że na jednym z dysków faktycznie znajduje się baza, zaszyfrowana w base64. W związku z tym, zadanie polega na jej odszyfrowaniu i uzyskaniu w pełni funkcjonalnego serwera Veeam.
Trochę o wirtualce, na której to wszystko się dzieje. Jak pamiętamy, w fabule głównym bohaterem quest jest osoba dość mroczna i zajmuje się czymś zdecydowanie nielegalnym. W związku z tym jego komputer roboczy powinien mieć dość hakerski wygląd, co mieliśmy stworzyć, mimo że to Windows. Najpierw dodano masę rekwizytów, takich jak informacje na temat dużych włamań, ataków DDoS i podobnych. Następnie zainstalowano typowe oprogramowanie i rozłożono wszędzie różne zrzuty, pliki z haszami itp. Jak w filmie. Wśród innych rzeczy były foldery nazwane według zasady closed-case*** i open-case***.
Aby przejść dalej, gracze muszą przywrócić wskazówki z plików w kopiach zapasowych.
Należy zaznaczyć, że na początku gracze otrzymywali bardzo mało informacji, a większość danych (jak IP, loginy i hasła) uzyskiwali w trakcie misji, znajdując wskazówki w kopiach zapasowych lub plikach rozrzuconych na maszynach. Początkowo pliki kopii zapasowych znajdują się w repozytorium Linux, ale sam folder na serwerze jest zamontowany (mounted) z flagą noexec, dlatego agent odpowiedzialny za przywracanie plików nie może się uruchomić.
Naprawiając repozytorium, uczestnicy uzyskują dostęp do całej zawartości i w końcu mogą przywrócić dowolne informacje. Muszą jedynie ustalić, które z nich są potrzebne. A w tym celu muszą przeanalizować pliki znajdujące się na tej maszynie, określić, które z nich są „uszkodzone” i co dokładnie należy odzyskać.
Na tym etapie scenariusz przesuwa się od ogólnej wiedzy IT do specyficznych funkcji Veeam.
W tym konkretnym przypadku (gdy znasz nazwę pliku, ale nie wiesz, gdzie go znaleźć) należy skorzystać z funkcji wyszukiwania w Enterprise Managerze itd. Ostatecznie po przywróceniu całego ciągu logicznego gracze otrzymują kolejny login/hasło oraz wynik nmap’a. To prowadzi ich na serwer Windows Core, a konkretnie przez RDP (żeby życie nie było zbyt proste).
Główną cechą tego serwera jest to, że za pomocą prostego skryptu i kilku słowników stworzono absolutnie bezsensowną strukturę folderów i plików. Po zalogowaniu pojawia się wiadomość powitalna w stylu: „Tutaj wybuchła logiczna bomba, więc wskazówki do kolejnych kroków będziesz musiał zbierać kawałek po kawałku.”
Następna wskazówka została podzielona na wielotomowy archiwum (około 40-50 kawałków) i losowo rozłożona po tych folderach. Naszym zamysłem było to, że gracze powinni wykazać się swoimi umiejętnościami w pisaniu prostych skryptów PowerShell, aby zebrać w całość wielotomowy archiwum według znanego wzoru i uzyskać poszukiwane dane. (Jednak wyszło jak w dowcipie — część uczestników okazała się nadzwyczaj rozwinięta fizycznie.)
W archiwum znajdowało się zdjęcie kasety (z napisem „Last Supper — Best Moments”), co sugerowało użycie podłączonej biblioteki taśmowej, gdzie była kaseta o podobnej nazwie. Tylko że był jeden problem — okazała się tak nieoperacyjna, że nawet nie była katalogowana. Tu zaczynała się prawdopodobnie najbardziej hardcore'owa część quest'u. Z kasety usunęliśmy nagłówek, więc aby odzyskać z niej dane, trzeba było tylko zrzucić „surowe” bloki i przejrzeć je w edytorze hex w poszukiwaniu znaczników początku plików.
Znajdujemy znacznik, patrzymy na offset, mnożymy blok przez jego rozmiar, dodajemy offset i za pomocą wewnętrznego narzędzia próbujemy odzyskać plik z określonego bloku. Jeśli wszystko zrobiono poprawnie, a matematyka się zgadza, gracze będą mieli plik .wav.
W nim za pomocą generatora głosu, oprócz innych informacji, nagrany jest kod binarny, który kieruje do kolejnego IP.
Okazuje się, że to nowy serwer Windows, gdzie wszystko sugeruje konieczność użycia Wireshark, ale nie ma go tam. Główna uwaga polega na tym, że na tej maszynie zainstalowane są dwa systemy — tylko dysk z drugim jest wyłączony przez menedżera urządzeń w trybie offline, a logiczny ciąg prowadzi do konieczności ponownego uruchomienia. Po czym okazuje się, że domyślnie powinien ładować się zupełnie inny system, na którym jest zainstalowany Wireshark. A my przez cały ten czas znajdowaliśmy się na drugorzędnym OS.
Tutaj nie trzeba już nic szczególnego robić, wystarczy włączyć przechwytywanie na jedynym interfejsie. Przy względnie uważnym przyjrzeniu się zrzutowi dostrzega się wyraźnie fałszywy pakiet, wysyłany z pomocniczej maszyny w równych odstępach czasu, w którym znajduje się link do filmu na YouTube, w którym graczy proszą o telefon na określony numer. Pierwszy dzwoniący usłyszy gratulacje za pierwsze miejsce, pozostali — zaproszenie do HR (żart)).
Przy okazji, mamy otwarte dla inżynierów wsparcia technicznego oraz dla stażystów. Witamy w zespole!
Źródło: habr.com
