Choose the sandbox option that best fits your needs. The Secure Architecture Sandbox Testing Environment is recommended for comprehensive security testing with automated reporting.
Prerequisites
Before setting up any sandbox environment, ensure you have:- A secure, updated browser (Chromium or Microsoft Edge)
- Basic understanding of command-line interfaces
- Git installed (for most options)
- Sufficient system resources for your chosen sandbox method
Secure Architecture Sandbox
Recommended Solution
The Secure Architecture Sandbox Testing Environment has been specifically designed for sandbox testing of the Unsecure PWA.
Key Features
Multi-Layer Isolation
Authentic containerized architecture with multiple isolation layers for maximum security.
Automated Reporting
Generates SAST, DAST, network, and penetration testing reports automatically.
Pre-Installed Apps
Sample vulnerable applications pre-installed for immediate testing.
Custom App Upload
Upload and test your own Flask applications within the secure environment.
Educational Pen Testing
Ethically designed penetration testing tools specifically for education context.
Network Analysis
Built-in network monitoring and analysis capabilities.
Setup Instructions
Follow Installation Guide
Refer to the repository’s README for detailed installation and configuration instructions specific to your operating system.
Deploy Normo Unsecure PWA
Upload or clone the Normo Unsecure PWA within the sandbox environment according to the sandbox documentation.
Access Testing Tools
Use the integrated SAST, DAST, and penetration testing tools provided by the environment.
GitHub Codespaces
GitHub Codespaces provides a cloud-based development environment with built-in isolation, perfect for quick setup without local installation.Setup Instructions
Navigate to Repository
Go to the Normo Unsecure PWA repository on GitHub.
Create Codespace
Click the green Code button, select the Codespaces tab, and click Create codespace on main.
Wait for Environment Setup
GitHub will automatically provision a containerized development environment with VSCode in your browser.
Run the Application
Benefits: No local setup required, automatic environment teardown, built-in VSCode integration, and free tier available for students.
Important Notes for GitHub Codespaces
Important Notes for GitHub Codespaces
- Port Forwarding: Codespaces automatically handles port forwarding with HTTPS encryption
- Resource Limits: Free tier includes 60 hours/month of usage
- Persistence: Your codespace persists between sessions but can be deleted when not in use
- Isolation: Each codespace runs in its own container, isolated from your local machine
- Testing URLs: When testing, use the forwarded URL provided by Codespaces instead of localhost
CodeSandbox
CodeSandbox.io offers a browser-based development environment suitable for quick testing without any local installation.Setup Instructions
Create Account
Sign up at CodeSandbox.io using your GitHub account.
Import Repository
Use the “Import from GitHub” feature and enter the Normo Unsecure PWA repository URL.
Configure Environment
CodeSandbox will detect the Python Flask application and set up the environment automatically.
Docker Containers
Docker provides lightweight containerization for consistent, isolated environments across different host systems.Prerequisites
- Docker Desktop installed on your system
- Basic familiarity with Docker commands
Setup Instructions
Access Application
Open your browser and navigate to:
Advanced Docker Configuration
Advanced Docker Configuration
Network Isolation:Volume Mounting (for development):Stop and Remove Container:
Benefits: Lightweight, portable, consistent environments, easy cleanup, and native isolation from host system.
Virtual Machines
Virtual machines provide complete OS virtualization with full isolation from your host system, ideal for comprehensive security testing.Recommended VM Software
VirtualBox
Free, open-source virtualization for Windows, macOS, and Linux.
VMware Workstation
Professional-grade virtualization with advanced features.
Hyper-V
Built-in virtualization for Windows Pro and Enterprise.
Setup Instructions
Install VM Software
Download and install your preferred VM software (e.g., VirtualBox).
Download Ubuntu ISO
Download the latest Ubuntu Desktop ISO from ubuntu.com.
Create New VM
- Allocate at least 2GB RAM and 20GB disk space
- Set network adapter to NAT or Host-only for isolation
- Mount the Ubuntu ISO
Access from Host
If using NAT with port forwarding:
- Configure port forwarding: Host port 5000 → Guest port 5000
- Access via http://localhost:5000 on your host machine
- Access via VM’s IP address (check with
ip addr)
VM Snapshot Management
VM Snapshot Management
Take snapshots before testing to easily restore a clean state:
- Create baseline snapshot after initial setup
- Take snapshot before each major test
- Restore snapshot if system becomes compromised
- Delete old snapshots to save disk space
Specialized Options
Ubuntu on USB
Run Ubuntu directly from a USB drive for complete hardware isolation from your main system.Boot from USB
Restart your computer and select the USB drive from the boot menu (usually F12, F2, or DEL during startup).
Run in Try Mode or Install
Choose “Try Ubuntu” for temporary use or install to the USB for persistent storage.
Benefits: Complete hardware isolation, no VM overhead, portable between machines, and leaves no trace on host system when powered off.
Qubes OS
Qubes OS is a security-focused operating system that uses virtualization to create isolated compartments (qubes) for different tasks.Install Qubes OS
Download and install Qubes OS in a virtual machine or on dedicated hardware. Review system requirements.
Verifying Your Setup
After setting up your sandbox, verify it’s working correctly:Check Application Access
Navigate to the appropriate URL:
- http://localhost:5000
- http://127.0.0.1:5000
- http://:5000 (for VMs with specific IP addresses)
Verify Network Isolation
Ensure the sandbox cannot access your local network or external resources unless intended.
Test Basic Functionality
Try registering a user and logging in to confirm the application is running correctly.
URL Considerations for Testing
Local vs Remote Testing URLs
Local vs Remote Testing URLs
Many resources in
.student_resources assume the app is running locally at http://127.0.0.1:5000.If you’re testing remotely (e.g., teacher-hosted app for black-box testing):- Update HTML/JS examples to use the remote URL
- Adjust CORS settings if testing cross-origin requests
- Ensure proper network access between tester and hosted app
- Local:
http://127.0.0.1:5000 - LAN:
http://10.185.x.x:5000(where x.x is the LAN IP) - Codespaces:
https://{random-name}.app.github.dev - VM with NAT:
http://localhost:5000(with port forwarding)
Next Steps
Best Practices
Learn essential safety guidelines and testing methodologies for your sandbox environment.
Security Testing
Begin your security assessment with SAST, DAST, and penetration testing approaches.
