generated from Labyricorn/labyricorn-project-template
129 lines
6.5 KiB
Markdown
129 lines
6.5 KiB
Markdown
# CyberSim OS
|
|
|
|
**Phase 1 MVP: Scriptable CS End User Teaching Environment with Certificate Verification**
|
|
|
|
CyberSim OS is an offline-first, browser-native cybersecurity simulation platform designed for ordinary end users. Learners enter a convincing fictional enterprise desktop, perform routine workplace activities, investigate ambiguous events, encounter realistic threats (credential phishing, malicious attachments) and legitimate false flags, receive a 7-axis behavioral after-action assessment, and earn cryptographically verifiable completion certificates (`*.cybercert`).
|
|
|
|
---
|
|
|
|
## Key Features
|
|
|
|
- **Convincing Fictional Desktop**: Original Windows-like theme with draggable/resizable windows, active/inactive focus states, taskbar, Start launcher, simulation clock, and system toast notifications with audio cues.
|
|
- **Core Simulated Workplace Applications**:
|
|
- **Inlook**: Email client with header inspector (RFC sender vs. friendly name), link hover destination tooltips, phishing report workflow, and reply/delete actions.
|
|
- **Navigator**: Web browser supporting intranet directories, policy hubs, and external spoofed credential-harvesting portals.
|
|
- **Files**: Virtual filesystem managing Documents, Downloads, and Company Shared folders.
|
|
- **Doc Viewer**: Lightweight renderer for spreadsheets (`.xlsx`), policies (`.pdf`), and memos.
|
|
- **Security Center**: Endpoint protection dashboard, real-time alert logs, incident report confirmations, and delayed alert triggers.
|
|
- **Realistic Decision Model**: Teaches *"Observe → Investigate → Verify → Decide → Act"* rather than *"Strange = Malicious"*. False flags and legitimate urgent notices test discernment.
|
|
- **Delayed Consequences Engine**: Unsafe actions (e.g. submitting credentials on a phishing page) trigger delayed consequence alerts in Security Center without giving immediate arcade-like game-over feedback.
|
|
- **7-Axis Behavioral Scoring**:
|
|
1. *Threat Detection* (20 pts)
|
|
2. *Investigation & Evidence Gathering* (20 pts)
|
|
3. *Safe Handling* (15 pts)
|
|
4. *Independent Verification* (15 pts)
|
|
5. *Incident Reporting* (15 pts)
|
|
6. *False Positive Control* (15 pts)
|
|
7. *Operational Judgment* (Passing threshold: 80 / 100)
|
|
- **Verifiable Cryptographic Certificates**:
|
|
- Web Crypto SHA-256 scenario fingerprinting.
|
|
- Portable, structured `*.cybercert` JSON credential export.
|
|
- Standalone offline certificate validator (`verify.html`).
|
|
- **100% Offline-First & Zero Dependencies**: Runs directly from any static web server, GitHub Pages, or the bundled `launcher.py` with 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`:
|
|
|
|
```bash
|
|
python launcher.py
|
|
```
|
|
|
|
Your default web browser will open automatically.
|
|
|
|
### Option 2: Static Web Server
|
|
Serve the `src/` directory with any static HTTP server:
|
|
|
|
```bash
|
|
cd src
|
|
python -m http.server 8000
|
|
```
|
|
Open [http://127.0.0.1:8000](http://127.0.0.1:8000) in your browser.
|
|
|
|
### Option 3: Direct Static Hosting
|
|
Host the repository on GitHub Pages or any static file host pointing to `src/index.html`.
|
|
|
|
---
|
|
|
|
## Certificate Verification
|
|
|
|
To verify a `*.cybercert` certificate issued by CyberSim OS:
|
|
|
|
1. Open `src/verify.html` in your web browser.
|
|
2. Drag and drop the `*.cybercert` file into the verification area.
|
|
3. The offline verifier recalculates the SHA-256 integrity hash, verifies the scenario fingerprint, and confirms the passing score and learner identity.
|
|
|
|
---
|
|
|
|
## Architecture & Directory Structure
|
|
|
|
```
|
|
CyberSim-OS/
|
|
├── .labyricorn/ # Labyricorn exhibition & devlog publishing records
|
|
├── src/
|
|
│ ├── index.html # Main desktop simulation interface
|
|
│ ├── verify.html # Standalone offline certificate verifier
|
|
│ ├── css/
|
|
│ │ ├── theme-windows.css # Fictional Windows-like enterprise theme tokens
|
|
│ │ ├── desktop.css # Window manager, taskbar, start menu, tray, toasts
|
|
│ │ ├── components.css # Modals, form inputs, buttons, badges, tabs
|
|
│ │ └── apps.css # Inlook, Navigator, Files, DocViewer, SecurityCenter
|
|
│ ├── js/
|
|
│ │ ├── main.js # Application bootstrapper & scenario loader
|
|
│ │ ├── core/
|
|
│ │ │ ├── window_manager.js# Window lifecycle, stacking, drag, min/max/close
|
|
│ │ │ ├── desktop.js # Desktop shell, launcher, clock, simulation controls
|
|
│ │ │ └── notifications.js # Toast notifications & Web Audio synth audio chime
|
|
│ │ ├── apps/
|
|
│ │ │ ├── inlook.js # Email client with RFC header/link inspection
|
|
│ │ │ ├── navigator.js # Simulated browser with intranet & phishing pages
|
|
│ │ │ ├── files.js # Virtual filesystem explorer
|
|
│ │ │ ├── docviewer.js # Spreadsheet and document viewer
|
|
│ │ │ └── security_center.js # Endpoint status & incident report dashboard
|
|
│ │ ├── engine/
|
|
│ │ │ ├── event_bus.js # Behavioral telemetry logger
|
|
│ │ │ └── consequence.js # Delayed consequence scheduler
|
|
│ │ ├── scenario/
|
|
│ │ │ ├── scenario_ref1.js # Reference scenario ("NexaCore Shift 1")
|
|
│ │ │ └── fingerprint.js # Web Crypto SHA-256 scenario fingerprinting
|
|
│ │ ├── scoring/
|
|
│ │ │ ├── scorer.js # Multi-axis behavioral scoring engine
|
|
│ │ │ └── aar.js # After-Action Report modal with pedagogical feedback
|
|
│ │ └── cert/
|
|
│ │ ├── cert_generator.js# *.cybercert JSON generator & printable certificate
|
|
│ │ └── cert_verifier.js # Offline cryptographic certificate verifier
|
|
│ └── assets/ # Embedded SVG icons and media
|
|
├── launcher.py # Zero-dependency local 127.0.0.1 web server
|
|
├── devlog_editor.py # Labyricorn devlog validation & editing tool
|
|
└── README.md # Project documentation
|
|
```
|
|
|
|
---
|
|
|
|
## Validation & Devlog Maintenance
|
|
|
|
Run the validation suite to ensure `.labyricorn/` records and devlog entries adhere to the schema:
|
|
|
|
```bash
|
|
python devlog_editor.py --validate
|
|
```
|
|
|
|
---
|
|
|
|
## License
|
|
|
|
MIT License. See `LICENSE` for details.
|