Cyber Range Light, Steps for PoC
Here are the steps for playing in crl:
-
Student provides their student-id when logging into a web interface. -
To generate unique flags, their student-id is concatenated with flag-id + salt and then hashed/encrypted. These are stored in a file on the server side. (fc4b0ba3) - [/] The range is built according to a blueprint/template either:
-
Provided by a teacher (course lab) (fc4b0ba3) -
Randomly generated using some parameters
-
-
The flags are deployed to the containers based on flag-id, using environment variables and a two-stage boot-up script to also clean up the traces. (fc4b0ba3) -
The server-side flag-file is also loaded into an instance of CTFd as valid answers. -
When the range is built and the flags have been deployed, the student can download a generated wireguard config. (fc4b0ba3) -
The student connects to their unique cyber range using wireguard. (fc4b0ba3) -
The student solves the challenge and finds the flag, submitting it to the CTFd platform and gets points. -
If student-A and student-B submit the same flag they will both get points in CTFd, however, a teacher can detect that the flag is identical, decrypt it, and see who the flag really belongs to. (fc4b0ba3) --- no encryption only random flags
I will start experimenting with the two-step bootup script for setting the flags in containers.
best regards Jonathan Magnusson
Edited by Jonas Karlsson