-
Notifications
You must be signed in to change notification settings - Fork 39
Architecture of Haaukins (until version 1.8.1)
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.
Our primary aim to involve anyone who desire to learn capturing the flag concept in cyber security which is 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 operating system which designed to find vulnerabilities
- Docker is primarily used to create closed network with specified challenges, each challenge has its own docker container, in this sense no one can involve others network even they share same server. To illustrate the compoenents of 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 cyber security 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 same network with Kali Linux. Since they are sharing same network, the exercises on the platform can be solved on Kali over browser connection. Corresponding illustration summarizes how docker networking structured for four teams for an event.
- Virtualbox is used to manage virtual machines which are one of main component of Haaukins platform, we have created preconfigured ova file of 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 docker environment described under docker subtitle, VMs automatically connect to GUAC container to give access the user to Kali machine over browser by creating RDP connection. The illustrated diagram will have additional part regarding to VMs ;
- 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.
There are number of cases where different types of protocols used to make communication reliable and consistent between componenets in Haaukins platform. Mainly used protocols are;
- HTTP(s), to give access a user to 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, client means administrator of the event. So, a client can delete, modify , list and get information about event by command line.
Corresponding diagram illustrates how these communication protocols took place in Haaukins platform.
In this section, relationship between different components within 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 Haaukins platform.
Illustration of relationship between, event, team and exercises shown below