Кібер-квест ад каманды тэхпадтрымкі 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. Такая падвойная ізаляцыя як раз патрэбна, каб цалкам выключыць магчымасць сеткавага ўзаемадзеяння.

Пра адважных

- Прыняць удзел у квэсты мог любы жадаючы? Як фармаваліся каманды?

- Гэта быў наш першы вопыт правядзення такога мерапрыемства, і магчымасці нашай лабараторыі былі абмежаваныя 6 камандамі.

Спачатку мы, як я ўжо сказаў, правялі 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) c сцягам поехес, таму які адказвае за аднаўленне файлаў агент не можа запусціцца.

Паправіўшы рэпазітар, удзельнікі атрымліваюць доступ да ўсяго змесціва і нарэшце могуць аднавіць любую інфармацыю. Засталося зразумець, якую менавіта. А для гэтага ім як раз і трэба вывучыць якія захоўваюцца на гэтай машыне файлы, вызначыць, якія з іх "бітыя" і што менавіта неабходна аднаўляць.

На гэтым этапе сцэнар ссоўваецца ў бок ад агульных 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

Дадаць каментар