Haaukernetes

Bachelor Project: Building a Capture the Flag platform using Kubernetes

Github Repository

Technologies: Go, Docker, Kubernetes, Shell, R

This project examined whether it is feasible to manage user connections and challenges for a CTF platform using Kubernetes. To answer this question, we developed the prototype Haaukernetes. The motivation behind the project was to improve Haaukins, an open-source CTF platform developed by Aalborg University.

In Haaukernetes it is possible to for users to connect to challenges via the Wireguard VPN and in-browser Kali Linux via Apache Guacamole while still keeping users isolated from each other and the internet. After setting up a Kubernetes cluster, adding Apache Guacamole, and running the Go program, the user can interact with an API to create users that can access CTF challenges via the two connection methods. The project consists of different parts:

  • Scripts for installing a Kubernetes cluster with the Calico network plugin.
  • Scripts for installing Apache Guacamole, a remote desktop gateway, on the cluster.
  • Scripts for installing the Kube-prometheus stack for monitoring the cluster.
  • Source program written in Go.
  • R code used for generating performance test graphs.