Haaukins is a highly accessible and automated virtualization platform for security education, it has three main components (Docker, Virtualbox and Golang), the communication and orchestration between the components managed using Go programming language. The main reason of having Go environment to manage and deploy something on Haaukins platform is that Go’s easy concurrency and parallelism mechanism.
After creating an account you can see the challenges page. Based on the your event request the challenges can vary on different topics: Cryptology, Forensics, Web Exploitation, Binary and Reverse Engineering. More information can be found on the dedicated page for challenges.
Docker is primarily used to create closed network with specified challenges, each challenge has its own docker container, in this sense no one can interfer in others network even they share same server.
In Haaukins, for each event, a unique network is created, to prevent any abuse over other teams’ labs. For example, if an event is created and a team is signed up for the event, then the team is assigned to a group of docker containers which are sharing the same network with Kali Linux. Since they are sharing the same network, the exercises on the platform can be solved on Kali over browser connection. The corresponding illustration summarizes how docker networking structured for four teams for an event.
Docker is primarily used to create a closed network with specified challenges, each challenge has its docker container, in this sense, no one can alter other networks even they share the same server
To illustrate the components of the dockerized environment following example could be useful, let’s assume we had network scanning and MITM (which are well-known challenges on cybersecurity field) with two teams connected to the event, then following docker environment for this event will be created:
Each component of the event lives in a docker container, which provides better stability and management. Spinning up containers is cheap compared to other methods, in addition, docker ensures environment isolation and separation.