Neste inverno, mais especificamente em um dos dias entre o Natal católico e o Ano Novo, os engenheiros de suporte técnico da Veeam estavam ocupados com tarefas nada comuns: eles estavam caçando um grupo de hackers chamado "Veeamonymous".

Sobre como a equipe mesmo criou e conduziu um verdadeiro escape game no trabalho, com tarefas "aproximadas a combates", contou Kirill Stetsko, Engenheiro de Escalonamento.
— Por que vocês decidiram fazer isso?
— Mais ou menos da mesma forma que as pessoas inventaram o Linux um dia – just for fun, para o próprio prazer.
Queríamos agitação e, ao mesmo tempo, queríamos fazer algo útil, algo interessante. Além disso, era necessário proporcionar algum alívio emocional aos engenheiros em meio ao trabalho diário.
— Quem sugeriu isso? De quem foi a ideia?
— A ideia foi da nossa gerente Katya Egorova, e depois o conceito e todas as ideias seguintes foram concebidos em conjunto. Inicialmente, pensávamos em fazer um hackathon. Mas durante o desenvolvimento do conceito, a ideia evoluiu para um escape game, afinal, o trabalho de um engenheiro de suporte técnico é bem diferente de programar.
Então, chamamos amigos e conhecidos, várias pessoas nos ajudaram com o conceito – uma pessoa da T2 (segunda linha de suporte — Nota do editor), uma pessoa da T3, alguns do time SWAT (equipe de resposta rápida para casos urgentes — Nota do editor). Nos reunimos, sentamos e tentamos criar tarefas para o nosso escape game.
— Foi muito inesperado descobrir tudo isso, pois, pelo que sei, normalmente, a mecânica de escape games é elaborada por roteiristas especialistas, ou seja, vocês não só lidaram com algo tão complexo, mas também adaptaram isso ao seu trabalho, ao seu campo profissional.
— Sim, queríamos fazer não apenas um entretenimento, mas "aprimorar" as habilidades técnicas dos engenheiros. Um dos objetivos do nosso departamento é a troca de conhecimento e o aprendizado, e um escape game é uma excelente oportunidade para dar às pessoas a chance de "tocar" algumas novas técnicas ao vivo.
— Como vocês criaram as tarefas?
— Fizemos uma tempestade de ideias. Tínhamos em mente que deveríamos fazer alguns testes técnicos, e que fossem interessantes e ao mesmo tempo proporcionassem novos conhecimentos.
Por exemplo, pensamos que as pessoas deveriam ter a oportunidade de experimentar o tráfego, usar editores hexadecimais, fazer algo relacionado ao Linux, algumas coisas um pouco mais profundas ligadas aos nossos produtos (Veeam Backup & Replication e outros).
Outra parte importante foi o conceito. Decidimos nos basear no tema dos hackers, acesso anônimo e uma atmosfera de segredo. Escolhemos a máscara de Guy Fawkes como símbolo, e o nome surgiu naturalmente — Veeamonymous.
No princípio era a palavra
Para aumentar o interesse, decidimos organizar uma campanha de PR com o tema do quebra-cabeça antes do evento: penduramos cartazes com o anúncio em nosso escritório. E alguns dias depois, secretamente, desenhamos sobre eles com spray e espalhamos o boato de que alguns criminosos tinham estragado os cartazes, até anexamos uma foto como prova....
— Então foi vocês que fizeram, ou seja, a equipe organizadora?!
— Sim, na sexta-feira, por volta das 9, quando todos já tinham saído, fomos lá e desenhamos com spray a letra "V" de cor verde.) Muitos participantes do quebra-cabeça não conseguiram adivinhar quem fez isso – as pessoas se aproximavam de nós e perguntavam quem tinha estragado os cartazes? Alguém se dedicou seriamente a essa questão e fez uma investigação completa sobre o assunto.
Para o quebra-cabeça, gravamos e editamos arquivos de áudio, ‘extraímos’ sons: por exemplo, quando um engenheiro faz login no nosso sistema [CRM de produção], há um robô que diz várias frases, números… A partir dessas palavras gravadas, montamos frases mais ou menos coerentes, talvez um pouco estranhas – por exemplo, conseguimos "No friends to help you" em um arquivo de áudio.
O endereço IP, por exemplo, era representado em código binário, tudo isso, novamente, com a ajuda desses números [pronunciados pelo robô], adicionamos vários sons assustadores. Filmamos o vídeo: nele, temos uma pessoa sentada com um capuz preto e a máscara de Guy Fawkes, mas na verdade não era uma só pessoa, mas três, porque duas estavam atrás dela segurando um ‘fundo’ feito de um cobertor:).
— Bem, vocês se dedicaram bastante, para dizer o mínimo.
— Sim, nós ficamos empolgados. Em geral, primeiro elaboramos nossas especificações técnicas e depois criamos uma narrativa literária-lúdica sobre o que supostamente aconteceu. No roteiro, os participantes caçavam um grupo de hackers chamado "Veeamonymous". A ideia também era que nós, de certa forma, "quebramos a quarta parede", ou seja, transferimos os eventos para a realidade – por exemplo, pintamos com spray.
Um dos falantes nativos de inglês do nosso departamento nos ajudou com o tratamento literário do texto.
— Espera, por que um falante nativo? Vocês ainda fizeram isso em inglês?!
— Sim, estávamos realizando para os escritórios de São Petersburgo e Bucareste, então tudo foi em inglês.
Para a nossa primeira experiência, tentamos fazer com que tudo funcionasse simplesmente, então o roteiro era linear e bastante simples. Adicionamos mais elementos de atmosfera: textos secretos, cifras, imagens.

Também usamos memes: havia uma tonelada de imagens sobre investigações, OVNIs, algumas lendas populares – algumas equipes até se distraiam com isso, tentando encontrar mensagens ocultas e aplicar seus conhecimentos de esteganografia e outras coisas... mas, claro, não havia nada disso.
Sobre espinhos
No entanto, durante o processo de preparação, encontramos algumas tarefas inesperadas para nós mesmos.
Fizemos muitas discussões e resolvemos várias questões que surgiram de repente, e cerca de uma semana antes do evento, pensamos que tudo estava perdido.
Talvez seja bom contar um pouco sobre a base técnica do evento.
Tudo foi feito em nosso laboratório interno de ESXi. Tínhamos 6 equipes, então precisávamos alocar 6 pools de recursos. Assim, para cada equipe, configuramos um pool separado com as máquinas virtuais necessárias (IPs iguais). Mas como tudo isso estava em servidores que estão na mesma rede, a configuração atual dos nossos VLANs não permitia isolar as máquinas em diferentes pools. E, por exemplo, durante o teste, enfrentamos situações em que uma máquina de um pool se conectava a uma máquina de outro.
— Como conseguiram corrigir a situação?
— Primeiro, pensamos durante muito tempo, testando várias opções com permissões, VLANs separadas para as máquinas. No final, fizemos da seguinte maneira — cada equipe vê apenas o servidor Veeam Backup, através do qual todo o trabalho posterior é realizado, mas não vê o subpool oculto, onde estão:
- várias máquinas Windows
- Servidor Windows Core
- Máquina com Linux
- Par VTL (Virtual Tape Library)
Todos os pools foram atribuídos a um grupo separado de portas no switch vDS e seu próprio VLAN Privado. Essa dupla isolação é necessária para eliminar completamente a possibilidade de interação em rede.
Sobre os aventureiros
— Qualquer pessoa poderia participar do evento? Como as equipes foram formadas?
— Essa foi a nossa primeira experiência em realizar um evento desse tipo, e as capacidades do nosso laboratório estavam limitadas a 6 equipes.
Primeiro, como já mencionei, realizamos uma campanha de PR: usando cartazes e e-mails, informamos que um evento estava sendo organizado. Tivemos até algumas dicas – nas próprias placas havia frases codificadas em código binário. Dessa forma, despertamos o interesse das pessoas, que começaram a se organizar com amigos e conhecidos. No final, houve mais interessados do que tínhamos de pools, portanto tivemos que fazer uma seleção: criamos uma tarefa de teste simples e a enviamos para todos que se manifestaram. Era um quebra-cabeça lógico que precisava ser resolvido rapidamente.
Na equipe, era permitido um máximo de 5 pessoas. Não era necessário um capitão, a ideia era a cooperação e a comunicação entre si. Alguém é forte, por exemplo, em Linux, outro é forte em fitas (backups em fitas), e cada um, ao ver a tarefa, poderia contribuir com seus esforços para a solução comum. Todos se comunicavam entre si, encontrando a solução.

— Em que momento esse evento começou? Vocês tinham alguma "hora H"?
— Sim, tínhamos um dia marcado estritamente, escolhemos de forma a haver menos carga no departamento. Naturalmente, informamos com antecedência os líderes de equipe de que determinadas equipes estavam convidadas a participar do evento, e que precisavam conceder alguma tolerância [quanto à carga] nesse dia. Calculamos que o evento deveria ser no final do ano, 28 de dezembro, uma sexta-feira. Esperávamos que durasse cerca de 5 horas, mas todas as equipes conseguiram acabar mais rápido.
— Todos estavam em condições iguais, e todos receberam as mesmas tarefas baseadas em cases reais?
— Sim, cada um dos organizadores trouxe algumas histórias de suas experiências pessoais. Sabíamos que algumas coisas poderiam realmente acontecer, e seria interessante fazer com que as pessoas "sentissem" isso, vissem e analisassem. Também incluímos algumas questões mais específicas — por exemplo, a recuperação de dados de fitas danificadas. Alguém poderia receber dicas, mas a maioria das equipes conseguiu resolver por conta própria.
Ou era preciso aplicar a mágica de scripts rápidos – por exemplo, tivemos uma situação em que uma "bomba lógica" "destruiu" um arquivo em vários volumes, espalhando-o em pastas aleatórias na árvore, e era necessário recuperar os dados. Isso poderia ser feito manualmente – encontrando e copiando [arquivos] um a um, ou você poderia escrever um script com uma máscara.
No geral, tentamos seguir a ideia de que uma tarefa pode ser resolvida de diferentes maneiras. Por exemplo, se você tiver um pouco mais de experiência ou quiser 'se aprofundar', poderá resolvê-la mais rapidamente, enquanto há um caminho direto para uma solução "frontal" – mas isso exigirá mais tempo. Ou seja, quase cada tarefa tinha várias opções de solução, e era interessante ver quais caminhos as equipes escolhiam. Assim, a não linearidade estava exatamente na escolha da abordagem.
A propósito, a tarefa sobre Linux foi a mais difícil — apenas uma equipe conseguiu resolvê-la sozinha, sem dicas.
— E era possível pedir dicas? Como em um verdadeiro jogo de escape??
— Sim, era possível pedir, porque entendíamos que as pessoas são diferentes e poderiam estar em uma mesma equipe aquelas que não têm certos conhecimentos. Portanto, para que a progressão não se arrastasse e o interesse pela competição não desaparecesse, decidimos que haveria dicas. Para isso, uma pessoa da organização acompanhava cada equipe. E também garantimos que ninguém trapaceasse.

Sobre as estrelas
— E houve prêmios para os vencedores?
— Sim, nos esforçamos para oferecer prêmios agradáveis tanto para todos os participantes quanto para os vencedores: os vencedores receberam moletons personalizados com o logotipo da Veeam e uma frase codificada em hexadecimal, na cor preta). Todos os participantes receberam uma máscara de Guy Fawkes e uma bolsa personalizada com o logotipo e o mesmo código.
— Ou seja, tudo foi como em um verdadeiro jogo de escape!
— Bem, queríamos criar algo incrível e sério, e acredito que conseguimos.
— Isso mesmo! E qual foi a reação das pessoas que participaram desse desafio? Vocês conseguiram atingir seus objetivos?
— Sim, muitos depois vieram falar que perceberam claramente suas fraquezas e quiseram melhorá-las. Alguns deixaram de ter medo de certas tecnologias – por exemplo, de fazer dump de blocos com tape e tentar sacar algo… Outros perceberam que precisavam melhorar no Linux, e assim por diante. Nós tentamos oferecer um leque amplo de tarefas, mas não muito triviais.

Equipe vencedora
«Quem quer, consegue!»
— Isso demandou muito esforço de quem organizou o desafio?
— De fato sim. Mas isso se deveu, provavelmente, ao fato de que não tínhamos experiência em preparar esse tipo de desafio, esse tipo de infraestrutura. (Salientamos que essa não é a nossa infraestrutura real – ela apenas deveria desempenhar algumas funções de jogo.)
Para nós, foi uma experiência muito interessante. No começo, fui cético, porque a ideia me pareceu até demais, achei que seria muito difícil de implementar. Mas começamos a fazer, começamos a trabalhar duro, todos se animaram, e no final deu certo. E tudo aconteceu praticamente sem percalços.
De maneira geral, levamos 3 meses. Grande parte do tempo foi dedicada à criação do conceito, discutindo o que poderíamos implementar. No processo, claro, algumas coisas mudaram, porque percebemos que não tínhamos a capacidade técnica para fazer certas coisas. Tivemos que refazer algo às pressas, mas sem quebrar toda a estrutura, a narrativa e a lógica. Tentamos não apenas fornecer uma lista de tarefas técnicas, mas que isso se encaixasse na história, que fosse coerente e lógica. O trabalho principal ocorreu no último mês, ou seja, 3-4 semanas antes do dia H.
— Então, além de suas atividades principais, vocês dedicaram tempo à preparação?
— Fizemos isso paralelamente ao trabalho principal, sim.
— Pedem para vocês realizarem outro evento assim?
— Sim, temos muitos pedidos para repetir.
— E vocês, o que acham?
— Temos novas ideias, novos conceitos, queremos atrair mais pessoas e estender isso ao longo do tempo – tanto o processo de seleção quanto o próprio processo do jogo. No geral, nos inspiramos no projeto "Cicada", que pode ser pesquisado – é um tema de TI muito interessante, onde pessoas de todo o mundo se unem, criam discussões no Reddit, em fóruns, utilizam traduções de códigos e resolvem enigmas, e coisas desse tipo.
— A ideia foi excelente, simplesmente respeito pela ideia e pela implementação, porque isso realmente vale muito. Desejo sinceramente que você não perca essa inspiração, que todos os seus novos projetos tenham igualmente sucesso. Obrigado!

— Sim, seria possível ver um exemplo de tarefa que vocês com certeza não vão reutilizar?
— Suspeito que não reutilizaremos nenhuma. Portanto, posso falar sobre o andamento de toda a missão.
Faixa bônusLogo no início, os jogadores têm o nome da máquina virtual e as credenciais do vCenter. Após logarem, eles veem essa máquina, mas ela não liga. Aqui é necessário perceber que algo está errado com o arquivo .vmx. Baixando-o, eles veem a dica necessária para a segunda etapa. Basicamente, está escrito que o banco de dados usado pelo Veeam Backup & Replication está criptografado.
Removendo a dica, fazendo o upload do arquivo .vmx de volta e ligando a máquina com sucesso, eles veem que em um dos discos realmente está o banco de dados, criptografado em base64. Assim, a tarefa é descriptografá-lo e obter um servidor Veeam totalmente funcional.
Um pouco sobre a máquina virtual onde tudo isso acontece. Como lembramos, de acordo com a trama, o protagonista da missão é uma pessoa bastante sombria e envolve-se em algo claramente ilegal. Portanto, seu computador de trabalho deve ter uma aparência bem hacker, que tivemos que criar, apesar de ser Windows. A primeira coisa foi adicionar uma série de adereços, como informações sobre grandes hacks, ataques DDoS e similares. Em seguida, instalamos diversos softwares típicos e espalhamos vários arquivos, dumps, hashes, etc. Tudo como em um filme. Entre outras coisas, havia pastas nomeadas pelo princípio closed-case*** e open-case***.
Para avançar, os jogadores precisam restaurar as dicas dos arquivos nos backups.
É necessário mencionar que, no início, os jogadores tinham pouca informação, e a maior parte dos dados (como IPs, logins e senhas) era obtida durante a missão, encontrando pistas em backups ou arquivos espalhados nas máquinas. Inicialmente, os arquivos de backup estão em um repositório Linux, mas a própria pasta está servidor montada com a flag noexec, portanto, o agente responsável pela recuperação dos arquivos não pode ser iniciado.
Após consertar o repositório, os participantes têm acesso a todo o conteúdo e finalmente podem recuperar qualquer informação. Resta entender qual delas. Para isso, eles precisam estudar os arquivos armazenados nesta máquina, identificar quais estão "corrompidos" e o que realmente precisa ser recuperado.
Neste ponto, o cenário muda de conhecimentos gerais de TI para funções específicas do Veeam.
Neste exemplo específico (quando você sabe o nome do arquivo, mas não sabe onde procurá-lo), deve-se usar a função de busca no Enterprise Manager, e assim por diante. Ao final, após recuperar toda a cadeia lógica, os jogadores têm em mãos mais um login/senha e a saída do nmap. Isso os leva a um servidor Windows Core, e ainda por RDP (para apimentar a situação).
A grande sacada desse servidor: com um script simples e alguns dicionários, foi criada uma estrutura de pastas e arquivos absolutamente sem sentido. E ao logar, é exibida uma mensagem de boas-vindas como "Aqui explodiu uma bomba lógica, então você terá que coletar as pistas para os próximos passos em pedaços."
A próxima pista foi dividida em um arquivo zip de multivolumes (cerca de 40-50 partes) e aleatoriamente distribuída entre essas pastas. Nossa intenção era que os jogadores demonstrassem suas habilidades em escrever scripts simples em PowerShell para, usando uma máscara conhecida, juntar o arquivo zip de multivolumes e obter os dados desejados. (Mas acabou sendo como naquela piada — alguns dos participantes eram surpreendentemente fisicamente desenvolvidos.)
No arquivo havia uma foto de uma fita (com a inscrição "Last Supper — Best Moments"), o que indicava o uso de uma biblioteca de fitas conectada, onde havia uma fita com um nome similar. O único problema é que ela estava tão danificada que nem mesmo era catalogada. Aqui começava, provavelmente, a parte mais hardcore do desafio. Nós apagamos o título da fita, então, para recuperar os dados dela, precisamos apenas despejar os blocos "brutos" e visualizá-los em um editor hex para encontrar os marcadores de início dos arquivos.
Encontramos o marcador, olhamos o offset, multiplicamos o bloco pelo seu tamanho, somamos o offset e, com a ajuda de uma ferramenta interna, tentamos recuperar o arquivo a partir do determinado bloco. Se tudo for feito corretamente e a matemática estiver certa, os jogadores terão um arquivo .wav.
Dentro dele, com a ajuda de um gerador de voz, além de outras coisas, foi ditado um código binário, que revela outro IP.
Isso, ao que parece, é um novo servidor Windows, onde tudo indica a necessidade de usar o Wireshark, mas ele não está lá. O foco principal é que essa máquina possui dois sistemas — apenas o disco com o segundo está desligado pelo gerenciador de dispositivos em modo offline, e a lógica leva à necessidade de reinicialização. Após isso, descobre-se que a outra sistema que deve inicializar por padrão, onde está instalado o Wireshark. E nós estávamos o tempo todo no sistema secundário.
Aqui não há muito o que fazer, basta ativar a captura na única interface. Com uma análise relativamente atenta do dump, percebe-se um pacote claramente suspeito, que está sendo enviado de uma máquina auxiliar em intervalos regulares, no qual há um link para um vídeo no youtube, onde os jogadores são convidados a ligar para um determinado número. O primeiro a ligar ouvirá uma mensagem de congratulação por ter alcançado o primeiro lugar, os demais — um convite para a HR (brincadeira)).
A propósito, temos abertas para engenheiros de suporte técnico e estagiários. Bem-vindo à equipe!
Fonte: habr.com
