Skip to content

Glossary ​

Terms used across this documentation and the platform. Product and tool names link to their role in the system.

Platform terms ​

Lab (pod) : One student's disposable environment: three containers (Kali, meta, DVWA) on a private OVN network. Called a "pod" in the code (pod_id, pods table). See Containers & Networks.

Scenario : A guided exercise. Four exist, with internal IDs 01, 06, 09, 11, shown to students as Scenarios 1 to 4. See Lab Scenarios.

Milestone : A scored step within a scenario. A milestone is PASS or FAIL; passing all of a scenario's milestones completes it.

Manual Check : The student-triggered scoring call (POST /pods/{id}/verify/...), as opposed to the automatic 3-second poller. One per task: a failed check locks the task to instructor review (manual_check_attempts).

Flag task : A final task that scores on a correct flag typed into the lab page alone (Scenario 1 and 2 Task 5, PURE_FLAG_MILESTONES).

Lab surface : The right-hand pane of the two-pane lab page: terminal, dvwa (embedded DVWA) or siem (terminal plus SIEM modal), chosen per scenario.

MFA / TOTP : Multi-factor authentication with time-based one-time passwords: a 6-digit code from an authenticator app, required for every account at sign-in since SEC-03.

STUCK (release) : The state where the host keeps skipping a release commit that failed to apply before; recorded in ~/cyberrange-data/rollback/STUCK and cleared with pull_release.sh --retry-bad.

Golden image : A prebuilt LXD image (kali-base, meta-base, dvwa-base) that every lab is cloned from, so each student gets an identical clean environment.

Reaper : The background task that destroys labs past their scenario's time limit (30 to 60 minutes, checked every 60 seconds) and cleans up stuck ones. See Provisioning.

Flag : A per-student secret string planted in a lab, generated as an HMAC keyed by COHORT_FLAG_SECRET. Used by the flag-submission scoring path; the flag-only tasks use a readable per-student code (for Scenario 1, a personal FLAG{S01_M5_…} token in a file planted on Kali; see Scenario 1).

Rubric : The criteria, points, MITRE technique and NIST phase for a milestone, seeded in milestone_rubrics.

Detection evidence : Optional Wazuh confirmation attached to a score (only Scenario 3 Milestone 1, rule 5710), recorded as detection_score.

Roles ​

Student : Runs labs and is scored. Default role. See Student.

Instructor : Monitors labs, reviews student submissions, grades. See Instructor.

Admin : Manages users and platform health, can force-destroy labs. See Admin.

App role : One of student, instructor, admin (Keycloak realm roles). Distinct from Keycloak's internal roles, which never grant platform access.

Components and products ​

Portal : The Next.js web application students and staff use. See Frontend.

BFF (backend-for-frontend) : The portal's server-side proxy (proxyToApi) that calls the API with the user's token so the browser never calls the API directly.

Provisioning API : The FastAPI service that creates and scores labs and manages users. See Backend.

Bridge : The Python WebSocket service that gives the browser a shell via lxc exec. See Terminal Access.

Keycloak : The identity provider (authentication and roles). Runs inside the guacamole container.

Wazuh : The SIEM. A manager-only deployment; agents run on meta and dvwa. Students triage its alerts in Scenario 3.

DVWA : Damn Vulnerable Web Application, the deliberately insecure web target for Scenario 2, run at security level Low.

Kali / meta / dvwa : The three lab machines: the Kali attacker box, the meta vulnerable Linux target (Tomcat, SSH, FTP; user msfadmin), and the DVWA web target.

"guacamole" container : The HTTP gateway container running nginx and Keycloak. The name is historical; it does not run Apache Guacamole. See Open Questions D12.

Cloudflare Tunnel : The outbound connection (cloudflared) that publishes the site without opening any inbound port on the host.

Infrastructure ​

LXD : The container/VM manager that runs all containers. Controlled through its API and lxc CLI.

OVN : Open Virtual Network, the SDN that provides each lab's isolated network and the peering to monitoring.

lxdbr0 / vmbr1 : The host LXD bridge (10.115.77.0/24) and the OVN uplink bridge (10.93.10.0/24).

mon-net / mgmt-net / pod-N-net : The monitoring network (Wazuh), the management network (gateway), and the per-lab networks (10.0.(50+N).0/24).

OCI : Oracle Cloud Infrastructure, the hosting provider. The VM is an Ampere A1 (aarch64) on the Always Free tier. See Oracle Cloud Setup.

Ampere A1 : The ARM-based OCI instance shape the platform runs on (2 OCPU, 12 GiB).

Security and standards ​

RBAC : Role-based access control, here the mapping of the three app roles to allowed routes and actions. See Roles & RBAC.

Introspection : OAuth2 token introspection (RFC 7662): the API asks Keycloak whether a token is active on every request, rather than verifying a signature locally.

PKCE : Proof Key for Code Exchange, an OAuth2 protection used in the portal's authorization-code login.

Owner check : A guard (require_owner) that returns 404 for a lab the caller does not own, hiding its existence.

MITRE ATT&CK : The adversary technique catalog; scenarios carry a technique tag (for example T1046, T1190).

STRIDE : A threat-modeling framework (Spoofing, Tampering, Repudiation, Information disclosure, Denial of service, Elevation of privilege) used on the Threat Model page.

OWASP Top 10 : A standard list of web risks; not tagged in the code, referenced on scenario pages only as the closest fit.

Documentation conventions ​

Needs Verification / Unknown : A claim that cannot be confirmed from the repository and depends on the live host. Collected in Open Questions.

Discrepancy (D1 to D17) : A place where older documentation and the code disagree; the code is treated as the source of truth. Listed in Open Questions.

Finding (F1 to F18) : A security weakness from the defensive review, with severity and a fix. Listed in Findings.

Planned / Not Yet Implemented : A capability that is designed or partially present but not wired up (for example hybrid flag submission for non-final milestones, which has no portal UI).

Cyber Range capstone documentation (Capstone 2 · Group 2 · A4102). Documents main at commit 6971373.