Skip to content

OmShrikhande/Karmeus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›‘οΈ Comprehensive Security System Documentation

Overview

This application implements a multi-layered security system designed to protect against various threats and vulnerabilities. The security system is modular, configurable, and includes both client-side and server-side security measures.

πŸ”§ Security Components

Key Security Features Explained

πŸ” Generate Secure Password

Purpose: Creates cryptographically strong passwords that meet all security requirements.

How it works:

  1. Uses crypto.getRandomValues() for true randomness
  2. Supports customizable length (8-64 characters)
  3. Multiple character set options (uppercase, lowercase, numbers, symbols)
  4. Excludes similar characters (0, O, 1, l) to prevent confusion
  5. Ensures password meets all selected requirements
  6. Provides real-time strength analysis
  7. One-click copy to clipboard functionality

Security Benefits:

  • Eliminates weak user-generated passwords
  • Prevents password reuse across sites
  • Meets enterprise security standards
  • Reduces human error in password creation

Usage:

// Basic usage
const password = securityManager.generateSecurePassword(16);

// Advanced usage with options
const password = securityManager.generateSecurePassword(20, {
  includeUppercase: true,
  includeLowercase: true,
  includeNumbers: true,
  includeSymbols: false,
  excludeSimilar: true
});

πŸšͺ Force Logout System

Purpose: Immediately terminates all active sessions and clears sensitive data.

What it clears:

  1. Authentication Data: User email, session tokens, password hashes
  2. Session Storage: All temporary session data
  3. Local Storage: User preferences, cached data, form data
  4. Rate Limiting Data: Login attempts, request counters
  5. Browser Cookies: Authentication cookies, tracking cookies
  6. Browser Cache: Cached pages, resources, API responses
  7. Security State: CSRF tokens, rate limit counters

Types of Logout:

  1. Standard Force Logout (performSecureLogout()):

    • User-initiated with confirmation
    • Comprehensive data cleanup
    • Detailed progress display
    • Audit trail logging
  2. Emergency Logout (emergencyLogout()):

    • Automatic threat response
    • No user confirmation required
    • Immediate execution
    • Preserves security logs for investigation

Security Benefits:

  • Prevents session hijacking
  • Clears sensitive data exposure
  • Maintains audit trail
  • Enables threat response
  • Ensures complete state reset

Usage:

// Standard logout
securityManager.performSecureLogout('user_initiated', {
  clearCookies: true,
  clearCaches: true,
  keepSecurityLogs: false
});

// Emergency logout
securityManager.emergencyLogout('suspicious_activity');

πŸ”§ Security Components

1. Core Security Manager (security.js)

The main security orchestrator that coordinates all security features.

Features:

  • CSRF Protection
  • Session Management
  • Input Sanitization
  • Rate Limiting
  • Login Attempt Monitoring
  • Security Event Logging
  • Content Security Policy
  • Security Headers

2. Security Configuration (security-config.js)

Centralized configuration for all security settings.

Configurable Areas:

  • Session timeouts and limits
  • Login security policies
  • Rate limiting thresholds
  • CSP directives
  • Input validation rules
  • Monitoring settings
  • Feature flags

3. Security Utilities (security-utils.js)

Advanced security utilities and threat detection.

Features:

  • Device Fingerprinting
  • Behavioral Analysis
  • Threat Detection (SQL Injection, XSS, Command Injection)
  • Encryption/Decryption utilities
  • Network security checks
  • Bot detection

πŸ”’ Security Features Implemented

Authentication & Session Security

1. Strong Password Requirements

  • Minimum 8 characters
  • Must contain uppercase, lowercase, numbers, and special characters
  • No common patterns (123, abc, password, qwerty)
  • No repeating characters

2. Account Lockout Protection

  • Maximum 5 failed login attempts
  • 15-minute lockout duration
  • Automatic unlock after timeout
  • Security event logging

3. Session Management

  • 30-minute session timeout
  • Activity-based session renewal
  • Secure session storage
  • Multi-tab session handling
  • Automatic logout on suspicious activity

4. CSRF Protection

  • Unique tokens for each session
  • Token validation on form submissions
  • Automatic token refresh

Input Security

1. Real-time Input Validation

  • SQL Injection detection and blocking
  • XSS attack prevention
  • Command injection protection
  • Malicious pattern recognition
  • Automatic input sanitization

2. Content Security Policy (CSP)

  • Strict script execution policies
  • Whitelisted domains for resources
  • Prevention of inline script execution
  • Frame-ancestors protection

3. Security Headers

  • X-Frame-Options: DENY
  • X-Content-Type-Options: nosniff
  • X-XSS-Protection: 1; mode=block
  • Referrer-Policy: strict-origin-when-cross-origin

Monitoring & Detection

1. Behavioral Analysis

  • Mouse movement patterns
  • Keystroke timing analysis
  • Scroll behavior monitoring
  • Click pattern analysis
  • Bot detection algorithms

2. Device Fingerprinting

  • Browser characteristics
  • Screen resolution and color depth
  • Available fonts detection
  • WebGL fingerprinting
  • Hardware information
  • Network connection details

3. Threat Detection

  • Suspicious activity monitoring
  • Rapid form submission detection
  • Developer tools usage detection
  • Extension monitoring
  • Screen recording detection

4. Rate Limiting

  • 60 requests per minute (configurable)
  • 5 login attempts per minute
  • 10 form submissions per minute
  • IP-based and user-based limiting

Data Protection

1. Encryption

  • Local storage encryption
  • Session data encryption
  • Secure token generation
  • RSA key pair generation for sensitive data

2. Secure Storage

  • Encrypted local storage wrapper
  • Secure session management
  • Automatic data cleanup on logout

🚨 Security Events & Logging

The system logs various security events for monitoring and analysis:

Event Types:

  • USER_LOGIN / USER_LOGOUT
  • LOGIN_FAILED / ACCOUNT_LOCKED
  • SESSION_EXPIRED / SESSION_INVALID
  • MALICIOUS_INPUT_DETECTED
  • RAPID_FORM_SUBMISSION
  • DEVTOOLS_OPENED
  • SUSPICIOUS_EXTENSION
  • BOT_DETECTED
  • SECURITY_THREAT_DETECTED
  • CLIPBOARD_COPY / CLIPBOARD_PASTE
  • SCREEN_SHARE_ATTEMPT

Log Structure:

{
  type: "EVENT_TYPE",
  timestamp: 1640995200000,
  userAgent: "Mozilla/5.0...",
  url: "https://example.com/page",
  email: "user@example.com",
  // Additional event-specific data
}

πŸ”§ Configuration

Basic Configuration Example:

const SECURITY_CONFIG = {
  SESSION: {
    TIMEOUT: 30 * 60 * 1000, // 30 minutes
    MAX_CONCURRENT_SESSIONS: 3
  },
  LOGIN: {
    MAX_ATTEMPTS: 5,
    LOCKOUT_DURATION: 15 * 60 * 1000 // 15 minutes
  },
  RATE_LIMIT: {
    REQUESTS_PER_MINUTE: 60
  }
};

Feature Flags:

FEATURES: {
  ADVANCED_THREAT_DETECTION: true,
  BEHAVIORAL_ANALYSIS: true,
  DEVICE_FINGERPRINTING: true,
  CLIPBOARD_MONITORING: true,
  SCREEN_RECORDING_DETECTION: true
}

πŸ§ͺ Testing

Security Test Page

Access /test-security.html to test all security features:

  1. Core Security Tests

    • Security manager initialization
    • Email/password validation
    • Input sanitization
    • CSRF token generation
  2. Input Validation Tests

    • Try malicious inputs to test blocking
    • SQL injection attempts
    • XSS attack vectors
  3. Rate Limiting Tests

    • Rapid clicking to trigger limits
    • Form submission flooding
  4. Behavioral Analysis

    • Mouse movement tracking
    • Keystroke pattern analysis
  5. Device Fingerprinting

    • Unique device identification
    • Browser characteristic analysis

πŸš€ Implementation Guide

1. Include Security Scripts

<script src="./js/security-config.js"></script>
<script src="./js/security-utils.js"></script>
<script src="./js/security.js"></script>

2. Initialize Security

// Security manager auto-initializes
// Access via window.securityManager

3. Validate Forms

// Automatic validation on all forms
// Manual validation:
const isValid = window.securityManager.secureFormSubmit(form);

4. Check Sessions

if (!window.securityManager.validateUserSession()) {
  // Redirect to login
}

5. Monitor Security Events

// Events are automatically logged
// Access logs:
const logs = JSON.parse(localStorage.getItem('securityLog') || '[]');

πŸ” Security Dashboard

Access the security dashboard at /src/security-dashboard.html to:

  • View real-time security status
  • Monitor failed login attempts
  • Check session information
  • Review security event logs
  • Generate secure passwords
  • Manage security settings

⚠️ Security Considerations

Client-Side Limitations

  • Client-side security is not foolproof
  • Always validate on server-side as well
  • Use HTTPS in production
  • Implement proper server-side CSP headers

Privacy Considerations

  • Device fingerprinting may raise privacy concerns
  • Behavioral tracking should comply with privacy laws
  • Consider user consent for monitoring features

Performance Impact

  • Behavioral analysis may impact performance
  • Adjust monitoring frequency based on needs
  • Consider disabling features on low-end devices

πŸ› οΈ Customization

Adding Custom Security Rules

// Extend SecurityManager
window.securityManager.addCustomRule = function(input) {
  // Your custom validation logic
  return { isValid: true, threats: [] };
};

Custom Event Handlers

// Listen for security events
document.addEventListener('securityEvent', (e) => {
  console.log('Security event:', e.detail);
});

Configuration Override

// Override specific settings
window.SECURITY_CONFIG.LOGIN.MAX_ATTEMPTS = 3;

πŸ“Š Security Metrics

The system tracks various security metrics:

  • Failed login attempts per user/IP
  • Session duration and activity
  • Input validation blocks
  • Rate limiting triggers
  • Behavioral analysis scores
  • Device fingerprint changes
  • Security event frequency

πŸ”„ Maintenance

Regular Tasks:

  1. Review security logs weekly
  2. Update threat detection patterns
  3. Adjust rate limiting based on usage
  4. Monitor false positive rates
  5. Update security configurations
  6. Test security features regularly

Security Updates:

  • Keep security scripts updated
  • Review and update CSP policies
  • Monitor for new threat vectors
  • Update encryption methods as needed

πŸ“ž Support

For security-related issues or questions:

  1. Check the security logs first
  2. Test with /test-security.html
  3. Review configuration settings
  4. Check browser console for errors
  5. Verify all security scripts are loaded

🎯 Best Practices

  1. Defense in Depth: Multiple security layers
  2. Principle of Least Privilege: Minimal permissions
  3. Regular Updates: Keep security measures current
  4. Monitoring: Continuous security monitoring
  5. User Education: Train users on security practices
  6. Incident Response: Have a plan for security incidents

Note: This security system provides comprehensive client-side protection but should be complemented with robust server-side security measures for complete protection.

About

No description, website, or topics provided.

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published