CTF BETA foi um sucesso – apesar de algumas pequenas falhas! Agora, vem o OFICIAL!

Domingo passado houve o BETA do evento Capture the Flag focado em redes que estou organizando. O objetivo era o teste da plataforma – como ela se comportaria com usuários reais interagindo com ela. E – neste quesito – foi um enorme sucesso.

30 participantes simultâneos geraram nada menos de 19 Gigas de dados em cerca de 2 horas – a duração do jogo. Foram mais de 14 mil conexões TCP e 162 mil requisições HTTP durante o período de jogo (veja abaixo).

Estes números mostram por que criar este tipo de evento acaba sendo tão desafiador. Mas o lado positivo é que os servidores se comportaram super bem. Em nenhum momento a plataforma falhou ou gerou latência acima do esperado e, isso por si só, já é uma vitória enorme.

Com relação ao jogo em si, tudo correu conforme o esperado, salvo algumas falhas que foram minha responsabilidade (ex: Colocar que a senha para acesso aos routers estaria na Alemanha, quando na verdade estava na Arábia Saudita). Na parte técnica, o único problema percebido foi que quando uma base era tomada, o sistema não estava computando os pontos automaticamente – como deveria ocorrer. Então, tive que manualmente aferir os pontos corretos aos jogadores que iam conquistando as bases (3 no total). Esta falha já está corrigida, por sinal. De resto, tudo correu muito bem. Abaixo, a tela de um dos jogadores (Max).

O CTF contemplou 6 desafios de múltipla escolha, 6 do tipo Quiz, 3 do tipo Flags (onde é necessário examinar um documento ou output externo para chegar à resposta) e 3 do tipo Base (que eu vou detalhar mais adiante, neste post). O nível de dificuldade variou de básico, CCNA e mesmo CCNP.

Bases

Em uma competição CTF, Bases são – normalmente – desafios de cunho prático. É preciso interagir com alguns componentes (como servidores, redes e outros) com o objetivo final de conquistar um sistema que se encontra na outra ponta. Em CTFs de segurança (os mais comuns), as Bases são servidores rodando Linux ou outro sistema operacional que precisam ser comprometidas por meio da exploração de vulnerabilidades para, então, serem conquistadas.

Em um CTF focado em redes, a abordagem precisava ser diferente. Assim, criei ambientes de redes com problemas e o objetivo dos participantes era acessar os elementos de rede, identificarem e corrigirem os problemas encontrados para, então, conseguir acessar o servidor na outra ponta e resgistrar o nome da equipe nele. Uma vez registrado, nenhum outro time pode alterar a entrada, o que garante os pontos apenas para quem resolver os problemas e chegar até a Base primeiro. Abaixo, a topologia que usei para as Bases (no EVE).

As Bases (em verde) precisam se comunicar com os servidores do jogo, de modo a enviar as informações de captura. Assim, ao criar a topologia do jogo no EVE existe, na verdade, a necessidade de se criar uma relação entre 2 ou mais topologias. A de cima cobre apenas as Bases. A de baixo, parte da infra do jogo.

E não está tudo aqui. Existem ainda elementos fora do EVE como servidores rodando no ProxMox e um BIG-IP pegando o tráfego da Internet e balanceando entre os elementos. Ou seja, tem de tudo!

O acesso às Bases era feito pelos competidores via VPN, cujo acesso apenas era possível se outro desafio fosse respondido (a resposta do desafio dava as credenciais para acesso à VPN). De forma análoga, para ter acesso aos roteadores era preciso a senha, e esta era dada após o participante responder corretamente a outro desafio. E assim por diante. Existia um encadeamento de diversos desafios, tornando o jogo parecido com uma “caça ao tesouro”.

Eu estou disponibilizando os PDFs das Bases, para quem tiver curiosidade de ver. Basta clicar nos links abaixo:

 

Fiquei feliz de ver que todas as bases foram capturadas – sendo que a Base 3 era a mais complicada. O CTF versão final ocorrerá (à princípio) em Agosto. Existem, porém, uma série de entraves que tenho que resolver até lá. Um deles é conseguir um patrocínio… se souberem de alguém / alguma empresa interessado em conversar, por favor, peça que me envie um e-mail em [email protected]

O patrocínio ajudará a bancar os prêmios, divulgação e mesmo organização do evento. Eu não tenho como fazer isso do meu bolso, infelizmente.

Antes de encerrar, gostaria de parabenizar os 3 primeiros colocados:

Nickname Pontos
jvelk 1410
Janjao 850
csalles 845

Estes serão adicionados posteriormente ao Hall of Fame do Blog 🙂

Aos que participaram, o meu muito obrigado! Graças a vocês, consegui testar a plataforma e corrigir eventuais problemas. E aos 3 primeiro colocados, parabéns! Alguns desafios eram bem complexos, e ganhar um jogo destes, certamente, tem seu mérito!

Até o de Agosto!!

Abraço

Marco

2 comentários

  1. Parabéns Marco.
    Muito bom o projeto. Foi bem desafiador e mostra que não sabemos tudo e, além disso, vamos aprendendo a cada dia.

    1. Obrigado Pasteur!!! Abraço!

Deixe um comentário