Como funciona o Capture The Flag de segurança da informação?

Neste artigo você vai ver:

Capture the Flag ou “Capture a Bandeira” em português, é um jogo popular que envolve dois times tentando capturar a bandeira do adversário e trazê-la de volta para a sua própria base. 

Embora seja comumente jogado por crianças e jovens em parques e escolas, o jogo também é popular entre equipes de segurança da informação, que adaptaram o conceito para uma competição conhecida como Capture the Flag (CTF). Neste artigo, vamos conhecer mais sobre esse jogo!

Como funciona o Capture the Flag?

Um Capture the Flag de segurança da informação é uma competição onde participantes recebem o desafio de encontrar e explorar vulnerabilidades em sistemas de computadores e redes. 

A ideia é buscar informações e soluções para uma série de problemas, que variam em nível de dificuldade, para obter pontos. Quem conseguir acumular a maior quantidade de pontos dentro do tempo determinado vence.

Dentre algumas características estão: 

  1. a competição pode ser realizada em vários formatos, como eventos presenciais ou on-line; 
  2. participantes podem jogar individualmente ou em equipes; 
  3. o jogo também é frequentemente dividido em categorias, como web, criptografia, engenharia reversa, exploração de binários, etc.

Os desafios em um Capture the Flag geralmente envolvem a descoberta de vulnerabilidades em sistemas operacionais, aplicativos da web, protocolos de rede e outros componentes de TI. Essas vulnerabilidades podem permitir que atacantes comprometam o sistema, obtenham acesso a informações confidenciais ou executem um código malicioso. 

Quem participa do jogo precisa usar suas habilidades em segurança cibernética para explorar essas vulnerabilidades e encontrar maneiras de proteger o sistema contra possíveis ataques.

As equipes podem usar uma variedade de ferramentas e técnicas para resolver os desafios. Isso inclui o uso de scanners de vulnerabilidades, técnicas de engenharia reversa, análise de tráfego de rede e exploração de falhas de segurança. 

Dessa forma, a competição requer uma combinação de habilidades técnicas e criatividade para resolver os problemas e encontrar a solução mais eficaz.

Para que serve?

Além de ser um jogo divertido e desafiador, o Capture the Flag também é uma ferramenta valiosa para aprimorar as habilidades em segurança da informação. Cada pessoa pode aprender a pensar como atacantes, entender melhor as vulnerabilidades em sistemas de computadores e redes, e desenvolver habilidades práticas em segurança.

O CTF também pode ser usado para promover a conscientização sobre segurança, além de avaliar a competência de profissionais nas empresas. Assim, a realização de jogos internos em organizações pode ajudar a identificar pontos fortes de pessoas desenvolvedoras e reforçar a importância de um código seguro, mostrando na prática os problemas gerados pelo desenvolvimento de aplicações sem levar em consideração a segurança. 

Por fim, a realização de CTFs internos nas empresas também é útil para incentivar mais pessoas a seguir carreira em segurança da informação e formar profissionais já dentro da empresa, sem precisar contratar gente de fora nessa área, que é bastante escassa no mercado.

CTF na Zup

Aqui na Zup, nós organizamos periodicamente um CTF, onde cerca de 3 mil zuppers podem participar e com premiação para quem ficou nas primeiras colocações. Além disso, temos um CTF exclusivo para os zuppers que participam do Security Champions, nosso programa de treinamento de desenvolvimento seguro.

Para se ter ideia, todos os desafios são criados pela nossa equipe de segurança e geralmente são utilizadas tecnologias adotadas nos projetos desenvolvidos dentro da empresa. Dessa forma, incentivamos pessoas desenvolvedoras a conhecer falhas de segurança que podem lidar no dia a dia em seus projetos.

Diagrama que exemplifica um Capture the flag que acontece na Zup. Como título do diagrama está a palavra Challenges, abaixo existem três categorias com tópicos em cada uma delas. A primeira é Insecure Deserialization com dois tópicos: Blocked RCE DoS 1000 e Sucessful RCE DoS 1350. O segundo é Injection com três tópicos: Login Admin 250, Database Schema 450 e SSTi 1350. No último está Broken Access Control com três tópicos: Admin Section 250, CSRF 450 e SSRF 1350.
Imagem 1 – Exemplo de um CTF para zuppers.

Nossa experiência mostrou que a quantidade de falhas de segurança nos programas desenvolvidos internamente diminuiu bastante depois que os CTFs passaram a ser incentivados. 

Inclusive, vale destacar que profissionais de outras áreas da empresa migraram para nossos times de Red Team e AppSec após participarem de uma edição do Capture The Flag, ressaltando a identificação de talentos para o time de segurança da informação dentro da própria Zup. 

Para seguir acompanhando o tema, temos um vídeo no YouTube que reflete sobre a importância de evitar desastres de segurança em uma empresa. Acompanhe:

Exemplo de desafio

Para mostrar na prática a resolução de um desafio de CTF, vamos imaginar que estamos participando de uma competição de CTF e encontramos um site vulnerável. Ao inspecionar o site, descobrimos que ele contém um formulário de login que parece suspeito, então decidimos testar a segurança do site usando injeção de SQL.

Primeiro, precisamos entender como o formulário de login funciona. Ao inspecionar o código-fonte da página, descobrimos que o formulário envia as credenciais de login para um arquivo PHP chamado “login.php”. Abrimos o arquivo e observamos que ele contém uma consulta SQL para verificar se as credenciais de login são válidas.

$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = mysqli_query($connection, $query);
if(mysqli_num_rows($result) > 0) {
    // credenciais válidas, redirecionar para a página inicial
} else {
    // credenciais inválidas, exibir mensagem de erro
}

Percebemos que a consulta SQL usa as credenciais de login diretamente em uma string concatenada. Isso significa que se pudermos inserir uma string maliciosa como username ou password, podemos alterar a consulta SQL e obter acesso não autorizado.

A primeira coisa que tentamos é inserir uma aspa simples (‘), que é usada para delimitar strings em SQL. Ao enviar uma aspa simples, como username ou password, recebemos uma mensagem de erro indicando que ocorreu um problema de sintaxe na consulta SQL. Isso significa que o site está protegido contra injeção de SQL simples usando caracteres especiais.

Em seguida, tentamos inserir uma string maliciosa usando a técnica de injeção de SQL baseada em booleanos. Usando essa técnica, tentamos fazer com que a consulta SQL retorne verdadeira, mesmo que não tenhamos inserido credenciais de login válidas. Para fazer isso, usamos a string “1′ OR ‘1’=’1′–” como username e uma senha qualquer. Essa string será interpretada pela consulta SQL como:

SELECT * FROM users WHERE username='1' OR '1'='1'-- AND password='senha'

A condição “1’=’1” sempre será verdadeira e tudo o que vem depois do “–” será interpretado como um comentário, o que significa que a consulta SQL retorna todas as linhas da tabela “users”. Como resultado, conseguimos contornar a autenticação e obter acesso não autorizado.

Acessando a página conseguimos a flag e ganhamos os pontos dessa questão.

Portanto, esse foi o exemplo de um desafio considerado fácil. Em geral, os CTFs têm vários níveis de desafios para todas as pessoas que estão participando.

Conclusão

Capture The Flag é uma atividade valiosa para qualquer pessoa interessada em segurança da informação. Por meio de desafios divertidos, participantes podem testar seus conhecimentos e praticar habilidades essenciais relacionadas à segurança da informação. 

O desenvolvimento de habilidades em áreas como criptografia, engenharia reversa e análise de malware se torna mais acessível ao usar ferramentas de gamificação. Os desafios também ajudam quem está jogando a desenvolver habilidades críticas, como resolver problemas, pensar de forma estratégica e trabalhar em equipe. 

Além disso, a gamificação pode ser usada para recompensar as pessoas por suas realizações, dando-lhes uma sensação de realização e motivando-as a seguir em frente. 

Aqui, as pessoas desenvolvedoras têm se beneficiado deste cenário ao ingressar no programa de conscientização Security Champion, onde participam de um CTF no final do curso para perceberem na prática o que aprenderam. Seja experiente ou iniciante, participar de um CTF pode ser uma oportunidade emocionante e desafiadora para testar suas habilidades e aprender novas técnicas.

Participou de algum Capture The Flag? Compartilhe a sua experiência abaixo nos comentários e continue acompanhando nossos conteúdos sobre segurança da informação por aqui!

Referências

Beginner’s Guide to Capture the Flag (CTF)

Imagem capa do conteúdo sobre "Capture the flag". Proteção de dados de segurança cibernética Negócios trabalhando em computação digital tablet digital conexão de rede global marketing digital de ciência de dados, investimento global no escritório.
igor-gomes
Especialista em Segurança da Informação
Formado em Ciências da Computação pela UFPE e entusiasta da segurança da informação. Possui as certificações OSCP, OSWE, eMAPT e Security+.

Artigos relacionados

Imagem capa do conteúdo "Pentest", onde possui um notebook com a imagem de um cadeado representando segurança, confiabilidade. O notebook está em cima da mesa e uma pessoa está mexendo nele. Na imagem, é possível ver uma mão sobre o cursor.
Segurança da Informação
Postado em:
Imagem que representa o conteúdo "Ferramentas SSDLC: SAST, DAST e SCA": Homem mexendo em um notebook, com um código aberto em sua tela em uma mesa de madeira em frente à janela no escuro com vista para as luzes da cidade a noite, iluminação colorida na sala, decoração da casa
Segurança da Informação
Postado em:

Este site utiliza cookies para proporcionar uma experiência de navegação melhor. Consulte nossa Política de Privacidade.