Кібер-квест від команди техпідтримки Veeam

Цієї зими, а точніше — одного дня між католицьким Різдвом і Новим Роком — інженери технічної підтримки Veeam були зайняті не зовсім звичайними завданнями: вони полювали за групою хакерів під назвою «Veeamonymous».

Кібер-квест від команди техпідтримки Veeam

Про те, як хлопці самі вигадали і провели у себе на роботі справжній квест у реальності, із завданнями, «наближеними до бойових», розповів Кирило Стецько, Escalation Engineer.

— Навіщо ви це взагалі затіяли?

— Приблизно так, як люди придумали свого часу Linux – just for fun, для власного задоволення.

Нам хотілося движухи, і водночас ми хотіли зробити щось корисне, щось цікаве. Плюс треба було дати деяке емоційне розвантаження інженерам від їхньої щоденної роботи.

- Хто це запропонував? Чия була ідея?

— Ідея була нашого менеджера Каті Єгорової, а потім уже концепт і всі подальші ідеї народжені спільними зусиллями. Спочатку думали зробити хакатон. Але під час розробки концепту ідея переросла в квест, проте інженер технічної підтримки — це інший вид діяльності, ніж програмування.

Отже, ми покликали друзів-товаришів-знайомих, різні люди нам допомагали з концепцією – одна людина з Т2 (друга лінія підтримки прим.ред.), одна людина з Т3, пара чоловік із команди SWAT (команда швидкого реагування на особливо термінові кейси прим.ред.). Зібралися всі разом, сіли та спробували придумати завдання для нашого квесту.

— Було дуже несподівано про це все дізнатися, бо, наскільки я знаю, зазвичай квестову механіку проробляють спеці-сценаристи, тобто ви мало того, що займалися такою складною річчю, так ще й стосовно своєї роботи, свого професійного поля діяльності.

— Так, ми хотіли зробити не просто розвагу, а прокачати технічні навички інженерів. Одне із завдань у нашому відділі – це обмін знаннями та навчання, а ось такий квест – це відмінна можливість дати людям «потрогати» якісь нові для них техніки наживо.

- Як ви завдання вигадували?

— Влаштували мозковий штурм. У нас було розуміння, що ми повинні зробити якісь технічні випробування, причому такі, щоб вони були цікавими і одночасно несли нові знання.
Наприклад, ми подумали, що людям треба дати спробувати посніфати трафік, скористатися hex-редакторами, щось поробити для Linux, якісь трохи глибші речі, пов'язані з нашими продуктами (Veeam Backup & Replication та інші).

Також важливою частиною був концепт. Ми вирішили відштовхуватися від теми хакерів, anonymous access та атмосфери секретності. Символом зробили маску Гая Фокса, а назва прийшла сама собою - Veeamonymous.

«На початку було слово»

Щоб підігріти інтерес, ми вирішили до початку заходу влаштувати PR-компанію у тематиці квесту: розвісили плакати з анонсом у нашому офісі. А за кілька днів потай від усіх їх розмалювали балончиками і запустили «качку», мовляв, деякі зловмисники зіпсували плакати, навіть фотку з пруфом приклали….

— То ви самі це робили, тобто команда організаторів?!

— Так, у п'ятницю, годині о 9, коли всі вже пішли ми ходили і малювали з балонів букву «V» зеленого кольору.) Багато учасників квесту так і не здогадалися, хто це зробив – люди підходили до нас і питали, хто зіпсував плакати ? Хтось дуже серйозно підійшов до цього питання та влаштував ціле розслідування на цю тему.

Для квесту ми писали і аудіо-файли, «видирали» звуки: наприклад, коли інженер логіниться в нашу [виробничу CRM] систему, то там є робот-автовідповідач, який каже всякі фрази, цифри… Ось ми з тих слів, які в нього записані, становили більш-менш осмислені фрази, ну, може, трохи криві – наприклад, у нас вийшло No friends to help you в аудіо-файлі.

IP-адресу, наприклад, ми представляли в двійковому коді, все, знову ж таки, за допомогою цих цифр [вимовлених роботом], всякі лякаючі звуки додавали. Самі знімали відео: на відео у нас людина сидить у чорному капюшоні та в масці Гая Фокса, але насправді там не одна людина, а три, бо двоє стоять за нею та тримають «фон» з ковдри:).

— Ну, ви заморочилися, прямо сказати.

— Так, ми спалахнули. Загалом спочатку придумали наші технічні завдання, а потім склали літературно-ігрову канву на тему того, що ж нібито сталося. За сценарієм, учасники полювали на групу хакерів під назвою Veeamonymous. Ідея була ще й у тому, що ми хіба що «ламаємо 4-ту стіну», тобто переносимо події в реальність – ось із балончика малювали, наприклад.

З літературною обробкою тексту нам допоміг один із носіїв англійської мови з нашого відділу.

— Стривай, а носій мови навіщо? Ви це ще й англійською мовою все робили?

— Так, ми ж проводили для пітерського та бухарестського офісів, тому все було англійською.

Для першого досвіду ми намагалися зробити, щоби все просто спрацювало, тому сценарій був лінійний і досить простий. Додали більше антуражу: секретні тексти, шифри, картинки.

Кібер-квест від команди техпідтримки Veeam

Ще ми використовували меми: була купа картинок на теми розслідувань, НЛО, якихось популярних страшилок – деякі команди і на це відволікалися, намагалися знайти там якісь приховані послання, застосувати свої знання про стеганографію іншого… але, звичайно, там нічого такого не було.

Про терни

Однак у процесі підготовки ми зіткнулися і з несподіваними для себе завданнями.

Багато билися над ними і вирішували всі питання, що раптово виникали, а десь за тиждень до квесту взагалі подумали, що все пропало.

Напевно, варто трохи розповісти про технічну основу квесту.

Все робилося на нашій внутрішній ESXi лабі. У нас було 6 команд, тож треба було виділити 6 ресурсних пулів. Отже, для кожної команди ми розгорнули окремий пул із необхідними віртуальними машинами (однакові IP). Але оскільки все це знаходилося на серверах, які лежать в одній мережі, поточна конфігурація наших VLAN не дозволяла ізолювати машини в різних пулах. І, наприклад, під час тестового прогону ми отримували такі ситуації, коли машина з одного пулу коннектилась до машини з іншого.

- Як змогли виправити ситуацію?

— Спочатку довго думали, тестували різні варіанти з пермісіями, окремими vLAN-ами на машини. У результаті зробили так — кожна команда бачить тільки Veeam Backup сервер, через який відбувається вся подальша робота, але не бачить прихованого підплула, в якому знаходяться:

  • кілька Windows машин
  • Windows core сервер
  • машина з Linux
  • пара VTL (Virtual Tape Library)

Всім пулам призначено окрему групу портів на vDS switch і свій Private VLAN. Така подвійна ізоляція потрібна, щоб повністю виключити можливість мережевої взаємодії.

Про відважних

— Взяти участь у квесті міг будь-хто охочий? Як формувалися команди?

— Це був наш перший досвід проведення такого заходу і можливості нашої лабораторії були обмежені шістьма командами.

Спочатку ми, як я вже сказав, провели PR-компанію: використовуючи плакати та розсилку, повідомили, що проводитиметься квест. У нас навіть були якісь підказки – на самих плакатах було зашифровано фрази у двійковому коді. Таким чином, ми зацікавили людей, а люди вже самі між собою домовлялися з друзями, з приятелями, кооперувалися. У результаті відгукнулося більше бажаючих, ніж у нас було пулів, тому довелося проводити відбір: ми вигадали нескладне тестове завдання та розіслали його всім, хто відгукнувся. Це було логічне завдання, її треба було вирішити на швидкість.

У команді допускалось до 5 осіб. Капітан там не був потрібний, ідея була в кооперації, у спілкуванні між собою. Хтось сильний, припустимо, в Linux, хтось сильний у тейпах (бекапах на стрічки), і кожен, бачачи завдання, міг вкласти свої зусилля у загальне рішення. Усі між собою спілкувалися, знаходили рішення.

Кібер-квест від команди техпідтримки Veeam

— А в який момент цей захід розпочався? У вас була якась «година Х»?

— Так, у нас був суворо призначений день, ми його обирали так, щоби було менше навантаження у відділі. Звичайно, заздалегідь сповістили тим-лідів, що такі команди запрошуються до участі в квесті, і їм потрібно дати деяке послаблення [щодо завантаження] цього дня. З усього виходило, що це має бути кінець року, 28 грудня, п'ятниця. Розраховували приблизно 5 годин зайняти, але всі команди впоралися швидше.

— Усі були в рівних умовах, у всіх були ті самі завдання на основі реальних кейсів?

— Ну так, кожен із укладачів брав із особистого досвіду якісь історії. Про щось ми знали, що таке може бути насправді, і буде цікаво, щоб людина «помацала» це, подивилася, розібралася. Брали й якісь речі, специфічніші — наприклад, відновлення даних із пошкоджених стрічок. Хтось із підказками, але більшість команд упоралися самостійно.

Або треба було застосувати магію швидких скриптів – наприклад, ми мали історію, що якась «логічна бомба» «розірвала» багатотомний архів у рандомні папки по дереву, і треба було зібрати дані. Можна це зробити вручну – по одному знаходити та копіювати [файли], а можна написати скрипт по масці.

Загалом ми намагалися дотримуватися тієї точки зору, що одне завдання можна вирішити у різний спосіб. Наприклад, якщо ти трохи досвідченіший чи захочеш «заморочитися», то ти можеш її вирішити швидше, а є прямий шлях вирішення «в лоб» – але при цьому ти витратиш на завдання більше часу. Тобто майже кожен завдання мав кілька варіантів рішення, і було цікаво, які шляхи оберуть команди. Тож нелінійність була саме у виборі варіанта рішення.

До речі, найважчим виявилося Linux-завдання - лише одна команда вирішила її самостійно, без підказок.

— А чи можна було брати підказки? Як у справжньому квесті?

— Так, можна було брати, тому що ми розуміли, що люди різні, і могли потрапити в одну команду ті, кому не вистачає якихось знань, тому щоб і проходження не затягувати, і змагальний інтерес не зник, ми вирішили, що будуть підказки. Для цього за кожною командою спостерігала людина із організаторів. Ну й ми стежили, щоб ніхто не читав.

Кібер-квест від команди техпідтримки Veeam

Про зірки

— А чи були призи для переможців?

— Так, ми намагалися зробити максимально приємні призи як для всіх учасників, так і для переможців: переможці отримали дизайнерські толстовки з логотипом Veeam та фразою, зашифрованою у 16-річному коді, чорного кольору). Усі учасники отримали за маскою Гая Фокса та фірмовою сумкою з логотипом і тим же кодом.

— Тобто у вас все, як у реальному квесті, було!

— Ну, ми хотіли зробити круту, дорослу річ, і мені здається, що вийшло.

- Так і є! А яка реакція зрештою була у тих, хто брав участь у цьому квесті? Цілі ви досягли?

— Так, багато хто потім підходив, казав, що вони явно побачили свої слабкі місця і захотіли їх підтягнути. Хтось перестав боятися певних технологій – наприклад, дампити блоки з тейпів і намагатися там щось вичепити… Хтось зрозумів, що йому треба підтягнути Linux і таке інше. Ми ж постаралися дати досить широке коло завдань, але не зовсім очевидних.

Кібер-квест від команди техпідтримки Veeam
Команда переможців

Хто хоче, той доб'ється!

— Від тих, хто готував квест, це багато зусиль вимагало?

- Взагалі так. Але це було пов'язано, швидше за все, з тим, що ми не мали досвіду підготовки таких квестів, такого роду інфраструктур. (Обмовимося, що це не реальна наша інфраструктура – ​​вона просто мала виконувати якісь ігрові функції.)

Для нас це був дуже цікавий досвід. Я спочатку скептично сприйняв, бо ідея мені здалася навіть надто крутою, подумав, що це дуже складно реалізувати. Але почали робити, почали орати, почали все спалахувати, і в результаті у нас вийшло. І обійшлося навіть майже без накладок.

Загалом ми витратили 3 місяці. Здебільшого ми вигадували концепт, обговорювали, що ми можемо продати. У процесі, звичайно, дещо змінювалося, тому що ми розуміли, що в нас для чогось немає технічної можливості, щоб це зробити. На ходу доводилося щось переробляти, але так, щоби не зламалася вся канва, історія та логіка. Ми ж намагалися не просто дати список технічних завдань, а щоб це лягало в історію, щоб було складно та логічно. Основна робота тривала останній місяць, тобто 3-4 тижні до дня Х.

— Тобто це, крім своєї основної діяльності, ви виділяли час на підготовку?

— Цим ми займалися паралельно до основної роботи, так.

— Вас ще просять таке провести?

— Так, у нас багато прохань повторити.

- А ви що?

— Ми маємо нові ідеї, нові концепти, ми хочемо залучити більше людей і розтягнути це в часі – і процес відбору, і сам процес гри. Загалом ми надихаємося проектом «Цікада», це можна погуглити – це дуже крута тема, там люди з усього світу об'єднуються, на реддиті заводять гілки, на форумах, там і переклад шифрів використовують, і розгадують загадки, і таке інше.

— Ідея була чудова, просто респект за ідею та реалізацію, бо це реально дороге. Щиро бажаю, щоб у вас не зникло це наснаги, щоб усі ваші нові проекти були також успішними. Дякую!

Кібер-квест від команди техпідтримки Veeam

— Так, а можна буде подивитися на приклад завдання, яке ви точно не перевикористовуватимете?

— Я підозрюю, що ми жодну не використовуватимемо. Тому можу розповісти про перебіг усього квесту.

Бонус-трекНа самому початку гравці мають назву віртуальної машини і credentials від vCenter. Залогінившись у нього, вони бачать цю машину, але вона не запускається. Тут треба здогадатися, що щось не так з файлом .vmx. Скачавши його, вони бачать підказку, необхідну другого кроку. По суті, там написано, що база, яку використовує Veeam Backup & Replication, зашифрована.
Забравши підказку, закачавши .vmx файл назад і успішно ввімкнувши машину, вони бачать, що на одному з дисків дійсно лежить база, зашифрована base64. Відповідно, завдання – розшифрувати її та отримати повнофункціональний Veeam сервер.

Трохи про віртуалку, де це все відбувається. Як ми пам'ятаємо, за сюжетом головний герой квесту — особистість досить темна і займається чимось не надто законним. Тому його робочий комп'ютер повинен мати цілком собі хакерський вигляд, який мав створити нам, незважаючи на те, що це Windows. Насамперед була додана маса бутафорії на кшталт інформації з великих зламів, DDoS атак і т.п. Потім встановили будь-якого типового софту і розклали скрізь різних дампів, файлів з хеш і т.д. Все як у кіно. Серед іншого там були папки, іменовані за принципом closed-case*** та open-case***
Щоб пройти далі, гравцям треба відновити підказки із файлів у бекапах.

Тут треба сказати, що на початку гравцям давалося досить мало інформації, і більшість даних (на зразок IP, логінів і паролів) вони отримують по ходу квесту, знаходячи підказки в бекапах або файлах, розкиданих на машинах. Спочатку файли бекапів лежать на Linux-репозиторії, але сама папка на сервері замонтована (mounted) з прапором Noexecтому відповідальний за відновлення файлів агент не може запуститися.

Полагодивши репозиторій, учасники отримують доступ до всього вмісту і нарешті можуть відновити будь-яку інформацію. Залишилося зрозуміти яку саме. А для цього їм якраз і треба вивчити файли, що зберігаються на цій машині, визначити, які з них «биті» і що саме необхідно відновлювати.

На цьому етапі сценарій зміщується у бік від загальних IT-знань до специфічних функцій Veeam.

У даному конкретному прикладі (коли ти знаєш ім'я файлу, але не знаєш, де його шукати) треба скористатися функцією пошуку в Enterprise Manager і так далі. У результаті після відновлення всього логічного ланцюжка у гравців на руках виявляється ще один логін/пароль та виведення nmap'a. Це наводить їх на Windows Core сервер, причому по RDP (щоб життя медом не здавалося).

Головна фішка цього сервера: за допомогою нехитрого скрипту та кількох словників там була сформована абсолютно безглузда структура папок та файлів. А за логіни видається вітальне повідомлення виду «Тут вибухнула логічна бомба, тому підказки для подальших кроків вам доведеться збирати по шматках».

Наступна підказка була розбита на багатотомний архів (шматків 40-50) і рандомно розкладена цими папками. Наш задум був у тому, що гравці повинні виявити свої таланти в написанні простеньких PowerShell скриптів, щоб за відомою маскою зібрати багатотомний архів і отримати шукані дані. (Але вийшло як у тому анекдоті - частина піддослідних виявилася надзвичайно фізично розвиненою.)

В архіві лежало фото касети (з написом «Last Supper — Best Moments»), що давало натяк використання підключеної стрічкової бібліотеки, де була касета зі схожою назвою. Ось тільки одне лихо — воно виявлялося неоперабельним настільки, що навіть не каталогізувалося. Тут починалася, мабуть, найхардкорніша частина квесту. Ми стерли у касети заголовок, тому щоб відновити з неї дані, треба всього-на-всього здампити «сирі» (raw) блоки і переглянути їх в hex-редакторі на предмет знаходження маркерів початку файлів.
Знаходимо маркер, дивимося офсет, множимо блок його розмір, додаємо офсет і з допомогою внутрішньої тулли намагаємося відновити файл з певного блоку. Якщо зроблено все правильно і математика зійшлася, то на руках у гравців виявляється файл .wav.

У ньому за допомогою генератора голосу також надиктований двійковий код, який відкривається в ще один IP.

Це, виявляється, новий віндовий сервер, де все натякає на необхідність використання Wireshark, тільки його там немає. Основний фокус у тому, що на цій машині встановлено дві системи — лише диск з другої вимкнений через device manager в офлайн, і логічний ланцюжок призводить до необхідності перезавантаження. Після чого виявляється, що по дефолту має завантажуватися зовсім інша система, де встановлено Wireshark. А ми весь цей час перебували на вторинній ОС.

Тут уже нічого особливо робити не треба, достатньо включити захоплення на єдиному інтерфейсі. При відносно уважному розгляді дампа помічається лівий пакет, що розсилається з допоміжної машини через рівні проміжки часу, в якому лежить посилання на youtube-ролик, де гравців просять зателефонувати на певний номер. Перший, хто зателефонував, прослухає привітання з першим місцем, решта — запрошення в HR (жарт).

До речі, у нас відкриті вакансії для інженерів техпідтримки та для стажистів. Ласкаво просимо до команди!

Джерело: habr.com

Додати коментар або відгук