The Secure Vault Challenge
A comprehensive Linux-based security project designed for junior cybersecurity teams to learn file permissions, access control, and security monitoring fundamentals.
The Secure Vault System is a shell-based application that demonstrates core cybersecurity principles through practical implementation. It creates a secure storage environment for sensitive data with proper access controls, monitoring capabilities, and operational security measures.
- File System Security: Understanding Linux file permissions and access control
- Data Protection: Implementing secure storage for sensitive information
- Security Monitoring: Automated detection of security risks and vulnerabilities
- Operational Security: Safe handling of secrets and confidential data
- Shell Scripting: Advanced bash programming for security applications
secure-vault/
├── vault_setup.sh # Step 1: Initial vault creation
├── vault_permissions.sh # Step 2: Permission management
├── vault_ops.sh # Step 3: Operational interface
├── vault_monitor.sh # Step 4: Security monitoring
└── README.md # This file
~/secure_vault/ # Created by scripts
├── keys.txt # Encryption keys (600 permissions)
├── secrets.txt # Confidential data (640 permissions)
├── logs.txt # System activity logs (644 permissions)
└── vault_report.txt # Security monitoring reports
Creates the foundational vault structure with secure defaults.
Features:
- Automated directory and file creation in
~/secure_vault
- Welcome message initialization using I/O redirection
- File listing verification with
ls -l
- Home directory integration
Usage:
./vault_setup.sh
Interactive permission management system for fine-grained access control.
Features:
- Pre-flight directory validation
- Interactive permission configuration for each file
- Default security settings application:
keys.txt
: 600secrets.txt
: 640logs.txt
: 644
- Permission verification display
- Input validation and error handling
Usage:
./vault_permissions.sh
Menu-driven operational interface for secure data management.
Menu Options:
- Add Secret: Append new confidential data to
secrets.txt
- Update Secret: Replace existing entries using
sed -i
- Add Log Entry: Add timestamped activity logs
- Access Keys: Security barrier (always returns "ACCESS DENIED 🚫")
- Exit: Clean session termination
Usage:
./vault_ops.sh
Automated security assessment and reporting system.
Features:
- File metadata analysis (size, modification date, permissions)
- Security risk detection for files with permissions more open than 644
- Comprehensive report generation saved to
vault_report.txt
- Visual security status indicators
Usage:
./vault_monitor.sh
- Linux/Unix environment
- Bash shell (version 4.0+)
- Standard Unix utilities (
chmod
,stat
,sed
,date
)
-
Create project directory and add script files:
mkdir secure-vault cd secure-vault
-
Create the four script files with the provided code:
vault_setup.sh
vault_permissions.sh
vault_ops.sh
vault_monitor.sh
-
Make all scripts executable:
chmod +x vault_setup.sh vault_permissions.sh vault_ops.sh vault_monitor.sh
-
Verify installation:
ls -l *.sh
Run the scripts in order for full system setup:
# Step 1: Create the vault structure
./vault_setup.sh
# Step 2: Configure file permissions
./vault_permissions.sh
# Step 3: Perform vault operations
./vault_ops.sh
# Step 4: Monitor security status
./vault_monitor.sh
Each script can be run independently after the initial setup:
Adding new secrets:
./vault_ops.sh
# Select option 1 from menu
Checking security status:
./vault_monitor.sh
Reconfiguring permissions:
./vault_permissions.sh
keys.txt
: 600 (owner read/write only)secrets.txt
: 640 (owner read/write, group read)logs.txt
: 644 (owner read/write, group/others read)
- Risk Detection: Files with permissions more open than 644
- Access Control: Complete denial for encryption keys
- Audit Trail: All operations timestamped and logged
Component | Owner | Group | Others | Security Level |
---|---|---|---|---|
Keys | rw | - | - | Maximum |
Secrets | rw | r | - | High |
Logs | rw | r | r | Standard |
- ✅ Principle of Least Privilege: Minimal required permissions
- ✅ Defense in Depth: Multiple security layers
- ✅ Access Denial: Protected key storage
- ✅ Audit Logging: Complete activity tracking
- ✅ Risk Monitoring: Automated threat detection
- ✅ Input Validation: Secure user interaction
The monitoring script generates detailed security reports including:
- File integrity metrics
- Permission analysis
- Security risk assessments
- Activity timestamps
- Compliance verification
Sample Report Output:
SECURE VAULT MONITORING REPORT
===============================
Generated on: 2025-01-15 14:30:45
📄 File: keys.txt | Size: 52 bytes | Modified: 2025-01-15 14:25:30 | Permissions: 600
📄 File: secrets.txt | Size: 128 bytes | Modified: 2025-01-15 14:28:15 | Permissions: 640
📄 File: logs.txt | Size: 245 bytes | Modified: 2025-01-15 14:29:50 | Permissions: 644
✅ No security risks detected - All file permissions are appropriate
- File contents stored in plaintext (educational purposes)
- No encryption implementation
- Local storage only (no network security)
- Basic access control (no advanced authentication)
- Secure file permissions
- Input sanitization
- Error handling
- Audit trail maintenance
- Risk assessment automation
"Directory does not exist" error:
# Ensure vault setup has been run first
./vault_setup.sh
Permission denied when running scripts:
# Make scripts executable
chmod +x *.sh
Invalid permission format in vault_permissions.sh:
# Use 3-digit octal notation (e.g., 600, 755)
# Valid range: 000-777
Cannot find secure_vault directory:
# Check if it was created in home directory
ls -la ~/secure_vault
# If not, run setup again
./vault_setup.sh
This project demonstrates:
- Systems Administration: File management and permissions
- Security Engineering: Access control implementation
- Risk Management: Threat detection and assessment
- Operational Security: Secure procedures and protocols
- Compliance: Security standard adherence
- Modular Design: Separation of concerns across multiple scripts
When submitting this project, include:
- ✅ All four script files (
vault_setup.sh
,vault_permissions.sh
,vault_ops.sh
,vault_monitor.sh
) - ✅ This README.md file
- ✅ A generated
vault_report.txt
as evidence of execution
This project is designed for educational purposes. Feel free to modify and extend for learning objectives.