5.7 KiB
CyberSim OS
Phase 2.5: Localization, Corporate Branding, and Immersive Login
CyberSim OS is an offline-first, browser-native cybersecurity simulation platform designed for enterprise organizations and end-user learners. Learners enter a convincing fictional enterprise workstation, perform routine workplace activities, investigate ambiguous communications, encounter realistic threats (credential harvesting, malicious attachments) alongside legitimate false flags, receive a multi-axis behavioral after-action assessment, and earn cryptographically verifiable completion certificates (*.cybercert).
Phase 2.5 adds organizational readiness through runtime multilingual localization, configuration-driven corporate branding, an immersive workstation login experience, learner first-name personalization, and cross-locale cryptographic verification.
Key Features
- Immersive CyberSim OS Login: Fictional enterprise workstation login and dynamic network/workplace selection without requesting passwords or sensitive employee credentials.
- Runtime Multilingual & Localization (I18n):
- CyberSim OS user interface localization with deterministic fallback chain (Selected Locale
\toDeployment Default Locale\toEnglish\to[missing: key]). - Working demonstration locales: English (
en) and Spanish (es). - Independent scenario content localization (
scenarios/<id>/locales/<lang>.json).
- CyberSim OS user interface localization with deterministic fallback chain (Selected Locale
- Configuration-Driven Corporate Branding:
- Customize organization name, short name, logo, desktop wallpaper, accent color, and service desk name via
src/config/deployment.json. - Automatic fallback to CyberSim default enterprise theme when branding fields are omitted.
- Preserves simulation safety boundaries (CyberSim identity remains visible).
- Customize organization name, short name, logo, desktop wallpaper, accent color, and service desk name via
- Learner Personalization:
- First-name input is passed into scenario state (
learner.firstName). - Safe template interpolation (
{{learner.firstName}},{{learner.name}}) in emails, notifications, alerts, web pages, documents, and certificates with strict HTML entity escaping.
- First-name input is passed into scenario state (
- Scenario-Driven Architecture: Complete simulations are defined through declarative JSON scenario packages without application source code modification.
- Verifiable Cryptographic Certificates:
- Canonical Web Crypto SHA-256 scenario fingerprinting unaffected by display translations.
- Portable, structured
*.cybercertJSON credential export. - Standalone offline certificate validator (
verify.html) supporting localized verification.
- 100% Offline-First & Zero Dependencies: Runs directly from any static web server, GitHub Pages, or the bundled
launcher.pywith zero npm/node/external CDN requirements.
Quick Start
Option 1: Standalone Local Launcher (Python 3)
Run the lightweight local launcher to start the server at http://127.0.0.1:8080:
python launcher.py
Your default web browser will open automatically with the CyberSim OS Login interface.
Option 2: Static Web Server
Serve the src/ directory with any static HTTP server:
cd src
python -m http.server 8000
Open http://127.0.0.1:8000 in your browser.
Deployment Configuration
Deployments are customized via src/config/deployment.json:
{
"organization": {
"name": "NexaCore Technologies",
"shortName": "NexaCore",
"logo": "",
"wallpaper": "",
"accentColor": "#2563eb",
"supportName": "NexaCore Service Desk"
},
"localization": {
"defaultLocale": "en",
"enabledLocales": ["en", "es"]
},
"scenarios": [
{
"id": "nexacore-orientation",
"path": "scenarios/nexacore-orientation/scenario.json",
"networkName": "NexaCore Corporate",
"networkDescription": "Corporate Workplace Network",
"networkIcon": "corporate",
"supportedLocales": ["en", "es"]
},
{
"id": "quickstart-example",
"path": "scenarios/quickstart-example/scenario.json",
"networkName": "Meridian Health Partners",
"networkDescription": "Clinical & Administrative Network",
"networkIcon": "health",
"supportedLocales": ["en", "es"]
}
]
}
Included Scenarios
| Scenario | Description | Supported Languages |
|---|---|---|
NexaCore Orientation (nexacore-orientation) |
Full-featured scenario: 5 emails, 3 web pages, 3 documents, 6 scoring categories, credential phishing + malicious attachment threats, 2 false flags. | English (en), Español (es) |
Meridian Health Quickstart (quickstart-example) |
Minimal scenario: 3 emails, 1 web page, 2 documents, 3 scoring categories, 1 credential phishing threat. | English (en), Español (es) |
Scenario Localization & Personalization
Scenarios declare supported languages in scenario.json:
{
"formatVersion": "1.0",
"id": "my-scenario",
"supportedLocales": ["en", "es"],
"login": {
"networkName": "My Enterprise",
"networkDescription": "Corporate Network",
"networkIcon": "corporate"
}
}
Scenario translations are placed in locales/<lang>.json (e.g. locales/es.json):
{
"title": "Título en español",
"description": "Descripción en español",
"messages": {
"email_welcome": {
"sender": "Nombre del Remitente",
"subject": "Asunto traducido",
"body": "Hola {{learner.firstName}},\n\n¡Bienvenido a su turno!"
}
}
}
Automated Tests
Run the headless automated test suite with Node.js:
node tests/run_tests.js
Devlog Validation
Run the validation suite to ensure .labyricorn/ records and devlog entries adhere to the schema:
python devlog_editor.py --validate
License
MIT License. See LICENSE for details.