haaukins v2.4.2 releases: Automated Virtualization Platform for Security Education
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 the Go environment to manage and deploy something on the Haaukins platform is that Go’s easy concurrency and parallelism mechanism.
Our primary aim to involve anyone who desires to learn capturing the flag concept in cybersecurity which is a widely accepted approach to learn how to find vulnerability on a system. Despite of all existing platform, Haaukins provides its own virtualized environment to you with the operating system which designed to find vulnerabilities.
- Docker is primarily used to create a closed network with specified challenges, each challenge has its own docker container, in this sense, no one can involve others network even they share the same server. To illustrate the components of the dockerized environment following example could be useful, let’s assume we had scan and middle in the man exercises (-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 live 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.
- In Haaukins, docker containers should share their unique network in order to prevent any abuse over other teams’ labs. To give an example, if an event is created and a team is signed up for the event, then the team is assigned to group of docker containers which are sharing the same network with Kali Linux. Since they are sharing 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.
- Virtualbox is used to manage virtual machines which are one of the main components of the Haaukins platform, we have created a pre-configured ova file of the Kali operating system, which contains all related tools to solve challenges that are existing on Haaukins platform over browser by connecting to Kali machine. In addition to the docker environment described under the docker subtitle, VMs automatically connect to GUAC container to give access to the user to the Kali machine over the browser by creating an RDP connection. The illustrated diagram will have additional part regarding VMs ;
Go Programming Language
- Go programming language is primarily used to deploy, release and manage all components of Haaukins, since Go has built-in concurrency and parallelism capacity, managing Docker containers and virtual machines smooth compared to other programming languages.
Communication flow within Haaukins
There is a number of cases where different types of protocols used to make communication reliable and consistent between components in the Haaukins platform. Mainly used protocols are;
- HTTP(s), to give access a user to the web interface (CTFd) of Haaukins,
- RDP, is used to communicate virtual machine and apache guacamole module
- gRPC, it is mainly used to create communication client and daemon, in this concept, the client means the administrator of the event. So, a client can delete, modify, list and get information about the event by command line.
The corresponding diagram illustrates how these communication protocols took place in the Haaukins platform.
In this section, the relationship between different components within the Haaukins platform will be illustrated and explained.
- An event can have non or multiple teams but should have at least one exercise within it.
- A team under an event will have just one virtual machine assigned to the team particularly, however, the team could have multiple exercises which is directly inherited from event configuration which means that if an event created with three exercises them team will have automatically assigned to three exercises within it. Each team has its own isolated environment within the Haaukins platform.
Illustration of the relationship between, event, team, and exercises are shown below
Copyright (c) 2019-present, Haaukins