Este invierno, o mejor dicho, en uno de los días entre la Navidad católica y el Año Nuevo, los ingenieros de soporte técnico de Veeam estaban ocupados con tareas inusuales: buscaban a un grupo de hackers llamado "Veeamonymous".

Contó cómo los propios muchachos idearon y llevaron a cabo una búsqueda real en su trabajo, con tareas "cercanas al combate". Kirill Stetsko, Ingeniero de escalamiento.
- ¿Por qué empezaste esto?
- Más o menos lo mismo que se les ocurrió a las personas en aquel entonces. Linux – solo por diversión, para el propio placer.
Queríamos movimiento y al mismo tiempo queríamos hacer algo útil, algo interesante. Además, era necesario brindar un cierto alivio emocional a los ingenieros en su trabajo diario.
- ¿Quién sugirió esto? ¿De quién fue la idea?
— La idea fue de nuestra manager Katya Egorova, y luego el concepto y todas las ideas posteriores surgieron gracias a los esfuerzos conjuntos. Inicialmente pensamos en hacer un hackathon. Pero durante el desarrollo del concepto, la idea se convirtió en una búsqueda; después de todo, un ingeniero de soporte técnico es un tipo de actividad diferente a la programación.
Entonces llamamos a amigos, camaradas, conocidos, diferentes personas nos ayudaron con el concepto: una persona de T2 (la segunda línea de apoyo es Nota del editor), una persona con T3, un par de personas del equipo SWAT (equipo de respuesta rápida para casos particularmente urgentes - Nota del editor). Nos reunimos todos, nos sentamos y tratamos de pensar en tareas para nuestra búsqueda.
— Fue muy inesperado enterarme de todo esto, porque, hasta donde yo sé, las mecánicas de búsqueda generalmente las elaboran guionistas especializados, es decir, no solo te enfrentaste a algo tan complejo, sino también en relación con tu trabajo. , a su campo de actividad profesional.
— Sí, queríamos que no fuera sólo entretenimiento, sino también “incrementar” las habilidades técnicas de los ingenieros. Una de las tareas de nuestro departamento es el intercambio de conocimientos y formación, pero esta búsqueda es una excelente oportunidad para que las personas "toquen" algunas técnicas nuevas para ellos en vivo.
— ¿Cómo se te ocurrieron las tareas?
— Tuvimos una sesión de lluvia de ideas. Teníamos entendido que teníamos que hacer algunas pruebas técnicas, que fueran interesantes y al mismo tiempo aportaran nuevos conocimientos.
Por ejemplo, pensamos que se debería dar a la gente la oportunidad de intentar analizar el tráfico, usar editores hexadecimales y hacer algo para Linuxy algunos aspectos un poco más profundos relacionados con nuestros productos (Veeam Backup & Replication y otros).
El concepto también fue una parte importante. Decidimos basarnos en el tema de los piratas informáticos, el acceso anónimo y una atmósfera de secreto. La máscara de Guy Fawkes se convirtió en un símbolo y el nombre surgió de forma natural: Veeamonymous.
"En el principio era la palabra"
Para despertar el interés, decidimos organizar una campaña de relaciones públicas con el tema de la misión antes del evento: colgamos carteles con el anuncio en nuestra oficina. Y a los pocos días, a escondidas de todos, los pintaron con sprays y empezaron un “pato”, dicen que unos asaltantes arruinaron los carteles, incluso adjuntaron una foto con una prueba….
- ¡¿Entonces lo hiciste tú mismo, es decir, el equipo de organizadores?!
— Sí, el viernes, alrededor de las 9 en punto, cuando todos ya se habían ido, fuimos y dibujamos la letra “V” en verde de los globos.) Muchos participantes en la búsqueda nunca adivinaron quién lo hizo: la gente se acercó a nosotros. y preguntó quién arruinó los carteles. Alguien tomó este tema muy en serio y realizó una investigación completa sobre este tema.
Para la misión, también escribimos archivos de audio, sonidos "arrancados": por ejemplo, cuando un ingeniero inicia sesión en nuestro sistema [CRM de producción], hay un robot contestador que dice todo tipo de frases, números... Aquí estamos. A partir de esas palabras que grabó, compuso frases más o menos significativas, bueno, tal vez un poco torcidas; por ejemplo, tenemos "No hay amigos que te ayuden" en un archivo de audio.
Por ejemplo, representamos la dirección IP en código binario y nuevamente, usando estos números [pronunciados por el robot], agregamos todo tipo de sonidos aterradores. Filmamos el video nosotros mismos: en el video tenemos a un hombre sentado con una capucha negra y una máscara de Guy Fawkes, pero en realidad no hay una persona, sino tres, porque detrás de él hay dos que sostienen un "telón de fondo" hecho de una manta :).
- Bueno, estás confundido, para decirlo sin rodeos.
- Sí, nos incendiamos. En general, primero elaboramos nuestras especificaciones técnicas y luego redactamos un resumen literario y lúdico sobre el tema de lo que supuestamente sucedió. Según el escenario, los participantes estaban cazando a un grupo de hackers llamado "Veeamonymous". La idea también era que, por así decirlo, "romperíamos la cuarta pared", es decir, trasladaríamos los eventos a la realidad: pintamos con una lata de aerosol, por ejemplo.
Uno de los hablantes nativos de inglés de nuestro departamento nos ayudó con el procesamiento literario del texto.
- Espera, ¿por qué un hablante nativo? ¡¿También lo hiciste todo en inglés?!
— Sí, lo hicimos para las oficinas de San Petersburgo y Bucarest, así que todo estaba en inglés.
Para la primera experiencia intentamos que todo funcionara, por lo que el guión era lineal y bastante simple. Agregamos más entornos: textos secretos, códigos, imágenes.

También usamos memes: había un montón de imágenes sobre temas de investigación, ovnis, algunas historias de terror populares; algunos equipos se distraían con esto, tratando de encontrar algunos mensajes ocultos allí, aplicar sus conocimientos de esteganografía y otras cosas... pero, por supuesto, no había nada parecido.
Sobre espinas
Sin embargo, durante el proceso de preparación, también enfrentamos desafíos inesperados.
Luchamos mucho con ellos y resolvimos todo tipo de problemas inesperados, y aproximadamente una semana antes de la misión pensábamos que todo estaba perdido.
Probablemente valga la pena contar un poco sobre la base técnica de la misión.
Todo se hizo en nuestro laboratorio interno de ESXi. Teníamos 6 equipos, lo que significa que teníamos que asignar 6 grupos de recursos. Entonces, para cada equipo implementamos un grupo separado con las máquinas virtuales necesarias (misma IP). Pero como todo esto estaba ubicado en servidores que están en la misma red, la configuración actual de nuestras VLAN no nos permitía aislar máquinas en diferentes pools. Y, por ejemplo, durante una prueba, recibimos situaciones en las que una máquina de un grupo se conectaba a una máquina de otro.
— ¿Cómo pudiste corregir la situación?
— Al principio lo pensamos durante mucho tiempo, probamos todo tipo de opciones con permisos, VLAN separadas para las máquinas. Como resultado, hicieron esto: cada equipo ve solo el servidor Veeam Backup, a través del cual se realiza todo el trabajo adicional, pero no ve el subgrupo oculto, que contiene:
- varios Windows de autos
- Windows servidor principal
- coche con Linux
- par VTL (Biblioteca de cintas virtuales)
A todos los grupos se les asigna un grupo separado de puertos en el conmutador vDS y su propia VLAN privada. Este doble aislamiento es exactamente lo que se necesita para eliminar por completo la posibilidad de interacción en la red.
Sobre los valientes
— ¿Alguien podría participar en la búsqueda? ¿Cómo se formaron los equipos?
— Esta fue nuestra primera experiencia en la realización de un evento de este tipo y las capacidades de nuestro laboratorio estaban limitadas a 6 equipos.
Primero, como ya dije, llevamos a cabo una campaña de relaciones públicas: mediante carteles y correos anunciamos que se realizaría una búsqueda. Incluso teníamos algunas pistas: las frases estaban cifradas en código binario en los propios carteles. De esta manera conseguimos que la gente se interesara y la gente ya llegó a acuerdos entre ellos, con amigos, con amigos y cooperaron. Como resultado, respondieron más personas que grupos, por lo que tuvimos que realizar una selección: se nos ocurrió una tarea de prueba simple y se la enviamos a todos los que respondieron. Era un problema de lógica que debía resolverse rápidamente.
Un equipo podía tener hasta 5 personas. No se requería un capitán; la idea era la cooperación y la comunicación entre ellos. Alguien era fuerte, digamos, en LinuxAlguien tenía experiencia con cintas (copias de seguridad en cintas), y todos, al ver la tarea, pudieron aportar sus esfuerzos para encontrar la solución. Todos se comunicaron entre sí y hallaron una solución.

— ¿En qué momento comenzó este evento? ¿Tuviste algún tipo de “hora X”?
— Sí, teníamos un día estrictamente designado, lo elegimos para que hubiera menos carga de trabajo en el departamento. Naturalmente, los líderes del equipo fueron notificados con anticipación que tal o cual equipo estaba invitado a participar en la misión, y necesitaban recibir algo de alivio [con respecto a la carga] ese día. Parecía que debería ser fin de año, viernes 28 de diciembre. Esperábamos que tomara unas 5 horas, pero todos los equipos lo completaron más rápido.
— ¿Estaban todos en igualdad de condiciones, tenían todos las mismas tareas basándose en casos reales?
— Bueno, sí, cada uno de los compiladores tomó algunas historias de su experiencia personal. Sabíamos que esto podría suceder en la realidad, y sería interesante para una persona "sentirlo", mirarlo y resolverlo. También tomaron algunas cosas más específicas, por ejemplo, la recuperación de datos de cintas dañadas. Algunos con pistas, pero la mayoría de los equipos lo hicieron por su cuenta.
O era necesario usar la magia de los scripts rápidos; por ejemplo, teníamos una historia de que una "bomba lógica" "dividió" un archivo de varios volúmenes en carpetas aleatorias a lo largo del árbol, y fue necesario recopilar los datos. Puede hacerlo manualmente: busque y copie [archivos] uno por uno, o puede escribir un script usando una máscara.
En general, intentamos mantener el punto de vista de que un problema se puede resolver de diferentes maneras. Por ejemplo, si tiene un poco más de experiencia o quiere confundirse, entonces puede resolverlo más rápido, pero existe una forma directa de resolverlo de frente, pero al mismo tiempo dedicará más tiempo al problema. Es decir, casi todas las tareas tenían varias soluciones y era interesante qué caminos elegirían los equipos. Entonces la no linealidad estaba precisamente en la elección de la opción de solución.
Por cierto, el más difícil resultó ser Linux- La tarea - solo un equipo la resolvió de forma independiente, sin pistas.
— ¿Podrías captar pistas? ¿Como en una búsqueda real?
— Sí, fue posible tomarlo, porque entendimos que las personas son diferentes, y aquellos que carecen de algunos conocimientos pueden entrar en el mismo equipo, así que para no retrasar el paso y no perder el interés competitivo, decidimos que daría consejos. Para ello, cada equipo fue observado por una persona de los organizadores. Bueno, nos aseguramos de que nadie hiciera trampa.

sobre las estrellas
— ¿Hubo premios para los ganadores?
— Sí, intentamos hacer los premios más agradables tanto para todos los participantes como para los ganadores: los ganadores recibieron sudaderas de diseñador con el logo de Veeam y una frase cifrada en código hexadecimal, negro). Todos los participantes recibieron una máscara de Guy Fawkes y una bolsa personalizada con el logo y el mismo código.
- Es decir, ¡todo fue como en una búsqueda real!
"Bueno, queríamos hacer algo genial y adulto, y creo que lo logramos".
- ¡Esto es cierto! ¿Cuál fue la reacción final de quienes participaron en esta búsqueda? ¿Has logrado tu objetivo?
— Sí, mucha gente se me acercó después y me dijo que habían identificado claramente sus puntos débiles y que querían mejorarlos. Algunos dejaron de tener miedo a ciertas tecnologías, por ejemplo, a volcar bloques de cintas e intentar extraer información de ellas… Otros se dieron cuenta de que necesitaban mejorar. Linuxy así sucesivamente. Intentamos ofrecer una gama bastante amplia de tareas, pero no del todo triviales.

El equipo ganador
“¡Quien quiera, lo logrará!”
— ¿Requirió mucho esfuerzo por parte de quienes prepararon la misión?
- De hecho sí. Pero lo más probable es que esto se debiera al hecho de que no teníamos experiencia en la preparación de este tipo de misiones, este tipo de infraestructura. (Hagamos una reserva de que esta no es nuestra infraestructura real; simplemente se suponía que debía realizar algunas funciones del juego).
Fue una experiencia muy interesante para nosotros. Al principio estaba escéptico, porque la idea me parecía demasiado buena y pensé que sería muy difícil de implementar. Pero empezamos a hacerlo, empezamos a arar, todo empezó a incendiarse y al final lo logramos. Y prácticamente no hubo superposiciones.
En total estuvimos 3 meses. En su mayor parte, se nos ocurrió un concepto y discutimos lo que podríamos implementar. En el proceso, naturalmente, algunas cosas cambiaron, porque nos dimos cuenta de que no teníamos la capacidad técnica para hacer algo. Tuvimos que rehacer algo en el camino, pero de tal manera que todo el esquema, la historia y la lógica no se rompieran. Intentamos no sólo dar una lista de tareas técnicas, sino hacerla encajar en la historia, para que fuera coherente y lógica. El trabajo principal se desarrolló durante el último mes, es decir, 3-4 semanas antes del día X.
— Entonces, además de tu actividad principal, ¿dedicaste tiempo a la preparación?
— Lo hicimos en paralelo con nuestro trabajo principal, sí.
- ¿Te piden que hagas esto otra vez?
- Sí, tenemos muchas peticiones que repetir.
- ¿Y tú?
- Tenemos nuevas ideas, nuevos conceptos, queremos atraer a más gente y alargarlo en el tiempo, tanto el proceso de selección como el proceso del juego en sí. En general, nos inspira el proyecto "Cicada", puedes buscarlo en Google: es un tema de TI muy interesante, personas de todo el mundo se unen allí, inician hilos en Reddit, en foros, usan traducciones de códigos, resuelven acertijos. , y todo eso.
— La idea fue genial, solo respeto por la idea y su implementación, porque realmente vale mucho. Deseo sinceramente que no pierdas esta inspiración y que todos tus nuevos proyectos también tengan éxito. ¡Gracias!

— Sí, ¿puedes ver un ejemplo de una tarea que definitivamente no reutilizarás?
"Sospecho que no reutilizaremos ninguno de ellos". Por lo tanto, puedo contarles sobre el progreso de toda la misión.
Pista extraAl principio, los jugadores tienen el nombre de la máquina virtual y las credenciales de vCenter. Al iniciar sesión, ven esta máquina, pero no se inicia. Aquí debes adivinar que algo anda mal con el archivo .vmx. Una vez que lo descargan, ven el mensaje necesario para el segundo paso. Básicamente, dice que la base de datos utilizada por Veeam Backup & Replication está cifrada.
Después de eliminar el mensaje, descargar nuevamente el archivo .vmx y encender exitosamente la máquina, ven que uno de los discos en realidad contiene una base de datos cifrada en base64. En consecuencia, la tarea es descifrarlo y obtener un servidor Veeam completamente funcional.
Un poco sobre la máquina virtual en la que se desarrolla todo esto. Como recordamos, el protagonista de la misión es un personaje bastante turbio y está involucrado en algo decididamente ilegal. Por lo tanto, su ordenador de trabajo debía tener una apariencia bastante propia de un hacker, la cual tuvimos que crear, a pesar de que... WindowsPrimero, añadieron un montón de información falsa sobre ciberataques, ataques DDoS y cosas por el estilo. Luego instalaron todo tipo de software típico y esparcieron por todas partes volcados de datos, archivos hash, etc. Parecía una película. Entre otras cosas, había carpetas llamadas "closed-case***" y "open-case***".
Para seguir avanzando, los jugadores deben restaurar las pistas de los archivos de respaldo.
Cabe señalar aquí que al principio, a los jugadores se les proporcionaba muy poca información, y la mayor parte de los datos (como direcciones IP, nombres de usuario y contraseñas) se obtenían durante la misión, encontrando pistas en copias de seguridad o archivos dispersos en diferentes máquinas. Inicialmente, los archivos de copia de seguridad se encontraban en Linux-repositorios, pero la carpeta en sí está en servidor montado con una bandera noexec, por lo que el agente responsable de la recuperación de archivos no puede iniciarse.
Al arreglar el repositorio, los participantes obtienen acceso a todo el contenido y finalmente pueden restaurar cualquier información. Queda por entender cuál es. Y para hacer esto, solo necesitan estudiar los archivos almacenados en esta máquina, determinar cuáles de ellos están "rotos" y qué es exactamente lo que necesita ser restaurado.
En este punto, el escenario se aleja del conocimiento general de TI hacia las características específicas de Veeam.
En este ejemplo particular (cuando se conoce el nombre del archivo pero no se sabe dónde buscarlo), es necesario utilizar la función de búsqueda en Enterprise Manager, y así sucesivamente. Finalmente, después de restaurar toda la cadena lógica, los jugadores tienen otro nombre de usuario/contraseña y salida de nmap. Esto los lleva a Windows Servidor principal, y vía RDP (para que la vida no parezca un camino de rosas).
La característica principal de este servidor: con la ayuda de un script simple y varios diccionarios, se formó una estructura de carpetas y archivos absolutamente sin sentido. Y cuando inicias sesión, recibes un mensaje de bienvenida como "Ha explotado una bomba lógica aquí, por lo que tendrás que reunir las pistas para seguir adelante".
La siguiente pista se dividió en un archivo de varios volúmenes (40-50 piezas) y se distribuyó aleatoriamente entre estas carpetas. Nuestra idea era que los jugadores deberían mostrar su talento escribiendo scripts simples de PowerShell para poder armar un archivo de varios volúmenes usando una máscara conocida y obtener los datos requeridos. (Pero resultó como en ese chiste: algunos de los sujetos resultaron tener un desarrollo físico inusual).
El archivo contenía una fotografía de un casete (con la inscripción "La última cena - Mejores momentos"), lo que daba una idea del uso de una biblioteca de cintas conectada, que contenía un casete con el mismo nombre. Sólo había un problema: resultó tan inoperable que ni siquiera fue catalogado. Aquí es donde probablemente comenzó la parte más difícil de la búsqueda. Borramos el encabezado del casete, por lo que para recuperar datos del mismo, solo necesita desechar los bloques "sin procesar" y revisarlos en un editor hexadecimal para encontrar marcadores de inicio de archivo.
Encontramos el marcador, miramos el desplazamiento, multiplicamos el bloque por su tamaño, sumamos el desplazamiento y, usando la herramienta interna, intentamos recuperar el archivo de un bloque específico. Si todo se hace correctamente y las matemáticas están de acuerdo, los jugadores tendrán un archivo .wav en sus manos.
En él, mediante un generador de voz, se dicta, entre otras cosas, un código binario que se expande a otra IP.
Resulta que se trata de un nuevo servidor de Windows, donde todo apunta a la necesidad de utilizar Wireshark, pero no está ahí. El truco principal es que hay dos sistemas instalados en esta máquina: solo el disco del segundo se desconecta a través del administrador de dispositivos fuera de línea y la cadena lógica conduce a la necesidad de reiniciar. Entonces resulta que, de forma predeterminada, debería iniciarse un sistema completamente diferente, donde está instalado Wireshark. Y todo este tiempo estuvimos en el sistema operativo secundario.
No es necesario hacer nada especial aquí, simplemente habilite la captura en una única interfaz. Un examen relativamente detenido del volcado revela un paquete claramente dirigido a zurdos enviado desde la máquina auxiliar a intervalos regulares, que contiene un enlace a un vídeo de YouTube en el que se pide a los jugadores que llamen a un número determinado. La primera persona que llame escuchará las felicitaciones por el primer lugar, el resto recibirá una invitación a Recursos Humanos (broma)).
Por cierto, estamos abiertos. para ingenieros y aprendices de soporte técnico. ¡Bienvenido al equipo!
Fuente: habr.com
