Session 6.3 – Security & Protection

Understanding operating system security models, access control mechanisms, and protection against threats and attacks

2 Hours Module 6 Storage Management & Security

Learning Objectives

By the end of this session, you will be able to:

  • Understand fundamental security principles and models in operating systems
  • Analyze different access control mechanisms (DAC, MAC, RBAC)
  • Implement cryptographic techniques for data protection
  • Identify common security threats and attack vectors
  • Design and implement comprehensive defense mechanisms

Security Models

CIA Triad - Foundation of Security

CIA Security Model
CIA Triad Components:

┌─ CONFIDENTIALITY ─────────────────────────────────────────┐
 Definition: Information is accessible only to authorized entities 
                                                           
 Implementation Mechanisms:                                
   • Encryption (symmetric & asymmetric)                   
   • Access control lists (ACLs)                           
   • Authentication and authorization                       
   • Data classification and labeling                       
                                                           
 Threats: Eavesdropping, unauthorized access, data theft 
└───────────────────────────────────────────────────────────┘

┌─ INTEGRITY ───────────────────────────────────────────────┐
 Definition: Information is accurate and unaltered          
                                                           
 Implementation Mechanisms:                                
   • Cryptographic hashes (SHA-256, SHA-3)                
   • Digital signatures and certificates                   
   • Version control and audit trails                      
   • Input validation and sanitization                     
                                                           
 Threats: Data tampering, unauthorized modification       
└───────────────────────────────────────────────────────────┘

┌─ AVAILABILITY ────────────────────────────────────────────┐
 Definition: Information is accessible when needed          
                                                           
 Implementation Mechanisms:                                
   • Redundancy and fault tolerance                        
   • Load balancing and clustering                         
   • Backup and disaster recovery                          
   • DDoS protection and rate limiting                     
                                                           
 Threats: DoS attacks, hardware failures, power outages   
└───────────────────────────────────────────────────────────┘

Extended Security Models:

AAA Model (Authentication, Authorization, Accounting):
  ┌─────────────────┬─────────────────┬─────────────────┐
  │ AUTHENTICATION  │  AUTHORIZATION  │   ACCOUNTING    │
  ├─────────────────┼─────────────────┼─────────────────┤
  │ Who are you?    │ What can you do?│ What did you do?│
  │                 │                 │                 │
  │ • Passwords     │ • Permissions   │ • Audit logs    │
  │ • Biometrics    │ • Roles         │ • Access logs   │
  │ • Certificates  │ • Policies      │ • Billing info  │
  │ • Multi-factor  │ • Capabilities  │ • Usage stats   │
  └─────────────────┴─────────────────┴─────────────────┘

Bell-LaPadula Security Model

Multi-Level Security Model
Bell-LaPadula Model - Confidentiality Focused:

Security Levels (Hierarchical):
  ┌─────────────────────────────────────────────────────┐
  │ TOP SECRET    (Level 4) - Highest Classification    │
  │ SECRET        (Level 3) - Restricted Information    │
  │ CONFIDENTIAL  (Level 2) - Limited Access Required   │
  │ UNCLASSIFIED  (Level 1) - Public Information       │
  └─────────────────────────────────────────────────────┘

Algorithm Bell_LaPadula_Access_Control:
Input: subject_clearance, object_classification, access_type
Output: ALLOW/DENY decision

BEGIN
    // Simple Security Property (No Read Up)
    IF access_type == READ THEN
        IF subject_clearance >= object_classification THEN
            read_permission = ALLOW
        ELSE
            read_permission = DENY
        END IF
    END IF
    
    // *-Property (No Write Down)
    IF access_type == WRITE THEN
        IF subject_clearance <= object_classification THEN
            write_permission = ALLOW
        ELSE
            write_permission = DENY
        END IF
    END IF
    
    RETURN permission_decision
END

Security Properties:
┌──────────────────────────────────────────────────────────────┐
│ Simple Security Property: "No Read Up"                    │
│   • Subjects cannot read objects at higher security levels   │
│   • Prevents unauthorized information disclosure             │
│                                                              │
│ *-Property: "No Write Down"                              │
│   • Subjects cannot write to objects at lower levels        │
│   • Prevents classified information from being downgraded   │
│                                                              │
│ Discretionary Security Property:                          │
│   • Access control matrix must be respected                 │
│   • Additional restrictions beyond mandatory controls       │
└──────────────────────────────────────────────────────────────┘

Example Access Scenarios:
Subject: Alice (SECRET clearance)
┌─────────────────┬─────────────┬──────────────┬────────────┐
│    Operation    │   Object    │ Classification│   Result   │
├─────────────────┼─────────────┼──────────────┼────────────┤
│ READ            │ File1.txt   │ CONFIDENTIAL │ ✓ ALLOW    │
│ READ            │ File2.doc   │ TOP SECRET   │ ✗ DENY     │
│ WRITE           │ File3.log   │ CONFIDENTIAL │ ✗ DENY     │
│ WRITE           │ File4.dat   │ SECRET       │ ✓ ALLOW    │
└─────────────────┴─────────────┴──────────────┴────────────┘

Biba Integrity Model

Integrity-Focused Security Model
Biba Model - Dual to Bell-LaPadula (Integrity Focus):

Integrity Levels (Hierarchical):
  ┌─────────────────────────────────────────────────────┐
  │ CRITICAL     (Level 4) - Highest Integrity          │
  │ IMPORTANT    (Level 3) - High Integrity Required    │
  │ ROUTINE      (Level 2) - Standard Integrity         │
  │ UNVERIFIED   (Level 1) - Lowest/Unknown Integrity   │
  └─────────────────────────────────────────────────────┘

Algorithm Biba_Integrity_Control:
Input: subject_integrity_level, object_integrity_level, access_type
Output: ALLOW/DENY decision

BEGIN
    // Simple Integrity Property (No Read Down)
    IF access_type == READ THEN
        IF subject_integrity >= object_integrity THEN
            read_permission = ALLOW
        ELSE
            read_permission = DENY  // Prevent contamination
        END IF
    END IF
    
    // *-Integrity Property (No Write Up)
    IF access_type == WRITE THEN
        IF subject_integrity >= object_integrity THEN
            write_permission = ALLOW
        ELSE
            write_permission = DENY  // Prevent corruption
        END IF
    END IF
    
    RETURN permission_decision
END

Bell-LaPadula vs Biba Comparison:
┌─────────────────────┬─────────────────┬─────────────────┐
│      Property       │  Bell-LaPadula  │      Biba       │
├─────────────────────┼─────────────────┼─────────────────┤
│ Primary Concern     │ Confidentiality │ Integrity       │
│ Read Rule           │ No Read Up      │ No Read Down    │
│ Write Rule          │ No Write Down   │ No Write Up     │
│ Information Flow    │ Upward Only     │ Downward Only   │
│ Trust Direction     │ Higher = Trusted│ Lower = Trusted │
└─────────────────────┴─────────────────┴─────────────────┘
Security Model Visualization
Physical Security
Network Security
OS Security
Application Security
Data Security

Defense in Depth - Layered Security Approach

Access Control Mechanisms

Discretionary Access Control (DAC)

Owner-Based Access Control
DAC Implementation Algorithm:

Data Structures:
    access_control_matrix[subject][object] = permissions[]
    object_owner[object] = owner_subject
    user_groups[subject] = group_list[]

Algorithm DAC_Access_Check:
Input: subject, object, requested_permission
Output: ALLOW/DENY decision

BEGIN
    // Owner has full control
    IF subject == object_owner[object] THEN
        RETURN ALLOW
    END IF
    
    // Check direct permissions
    IF requested_permission IN access_control_matrix[subject][object] THEN
        RETURN ALLOW
    END IF
    
    // Check group permissions
    FOR EACH group IN user_groups[subject] DO
        IF requested_permission IN access_control_matrix[group][object] THEN
            RETURN ALLOW
        END IF
    END FOR
    
    // Check default permissions
    IF requested_permission IN access_control_matrix[ALL_USERS][object] THEN
        RETURN ALLOW
    END IF
    
    RETURN DENY
END

UNIX File Permissions Example:
┌──────────────────────────────────────────────────────────────┐
│ File: /home/alice/document.txt                               │
│ Permissions: -rw-r--r-- (644 in octal)                      │
│                                                              │
│ Breakdown:                                                   │
│   - : Regular file                                           │
│   rw- : Owner (alice) can read and write                    │
│   r-- : Group can read only                                 │
│   r-- : Others can read only                                │
│                                                              │
│ Permission Bits:                                             │
│   r (read)    = 4                                           │
│   w (write)   = 2                                           │
│   x (execute) = 1                                           │
└──────────────────────────────────────────────────────────────┘

Access Control List (ACL) Structure:
ACL for /secure/database.db:
┌─────────────────────────────────────────────────────────────┐
│ user:alice:rw-     # Alice can read and write              │
│ user:bob:r--       # Bob can only read                     │
│ group:dba:rwx      # Database admins have full access     │
│ group:users:r--    # Regular users can read               │
│ other::---         # No access for others                 │
│ mask::rw-          # Maximum effective permissions        │
└─────────────────────────────────────────────────────────────┘

Mandatory Access Control (MAC)

System-Enforced Access Control
MAC Implementation Algorithm:

Data Structures:
    security_labels[subject] = classification_level
    security_labels[object] = classification_level
    compartments[subject] = compartment_set[]
    compartments[object] = compartment_set[]

Algorithm MAC_Access_Check:
Input: subject, object, access_mode
Output: ALLOW/DENY decision

BEGIN
    subject_level = security_labels[subject]
    object_level = security_labels[object]
    subject_compartments = compartments[subject]
    object_compartments = compartments[object]
    
    IF access_mode == READ THEN
        // Subject must dominate object (can read down)
        IF subject_level >= object_level AND 
           object_compartments ⊆ subject_compartments THEN
            RETURN ALLOW
        ELSE
            RETURN DENY
        END IF
    END IF
    
    IF access_mode == write THEN
        // Object must dominate subject (can write up)
        IF object_level >= subject_level AND 
           subject_compartments ⊆ object_compartments THEN
            RETURN ALLOW
        ELSE
            RETURN DENY
        END IF
    END IF
END

SELinux MAC Example:
┌─────────────────────────────────────────────────────────────┐
│ Security Context Format: user:role:type:level               │
│                                                             │
│ Process: alice:user_r:user_t:s0-s15:c0.c1023              │
│   • User: alice                                            │
│   • Role: user_r (user role)                              │
│   • Type: user_t (user process type)                      │
│   • Level: s0-s15 (sensitivity levels 0-15)               │
│   • Categories: c0.c1023 (categories 0-1023)              │
│                                                             │
│ File: system_u:object_r:admin_home_t:s15:c100.c200        │
│   • High security level (s15)                             │
│   • Limited categories (c100-c200)                        │
│   • Admin home type                                        │
└─────────────────────────────────────────────────────────────┘

Type Enforcement Rules:
allow user_t user_home_t:file { read write create };
allow admin_t admin_home_t:file { read write create delete };
deny user_t admin_home_t:file *;  # Users cannot access admin files

Role-Based Access Control (RBAC)

Role-Centric Access Control
RBAC Model Implementation:

Data Structures:
    user_roles[user] = role_set[]
    role_permissions[role] = permission_set[]
    role_hierarchy[role] = parent_roles[]
    session_roles[session] = active_roles[]

Algorithm RBAC_Access_Check:
Input: user, object, operation, session
Output: ALLOW/DENY decision

BEGIN
    required_permission = create_permission(object, operation)
    active_roles = session_roles[session]
    
    FOR EACH role IN active_roles DO
        // Check direct role permissions
        IF required_permission IN role_permissions[role] THEN
            RETURN ALLOW
        END IF
        
        // Check inherited permissions from role hierarchy
        inherited_permissions = get_inherited_permissions(role)
        IF required_permission IN inherited_permissions THEN
            RETURN ALLOW
        END IF
    END FOR
    
    RETURN DENY
END

Algorithm Activate_Role:
Input: user, role, session
Output: SUCCESS/FAILURE

BEGIN
    // Check if user is assigned to role
    IF role NOT IN user_roles[user] THEN
        RETURN FAILURE
    END IF
    
    // Check cardinality constraints
    IF |session_roles[session]| >= max_roles_per_session THEN
        RETURN FAILURE
    END IF
    
    // Check separation of duty constraints
    FOR EACH active_role IN session_roles[session] DO
        IF conflicts(role, active_role) THEN
            RETURN FAILURE
        END IF
    END FOR
    
    session_roles[session].add(role)
    RETURN SUCCESS
END

RBAC Example - Hospital System:
┌─────────────────────────────────────────────────────────────┐
│ Users:           Roles:            Permissions:             │
│                                                             │
│ Dr. Smith  ──→   Doctor      ──→   read_patient_record     │
│ Nurse Jane ──→   Nurse       ──→   write_patient_notes     │
│ Admin Bob  ──→   HR_Manager  ──→   manage_staff_schedules  │
│            ──→   IT_Admin    ──→   system_administration   │
│                                                             │
│ Role Hierarchy:                                             │
│   Senior_Doctor ──→ Doctor ──→ Medical_Staff               │
│   Head_Nurse ──→ Nurse ──→ Medical_Staff                  │
│   System_Admin ──→ IT_Admin                                │
│                                                             │
│ Constraints:                                                │
│   • Doctors and Auditors are mutually exclusive            │
│   • Maximum 3 active roles per session                     │
│   • IT_Admin cannot access patient records                 │
└─────────────────────────────────────────────────────────────┘
Access Control Matrix Example
Subject\Object File1.txt Database.db Config.ini Log.txt
Alice RW R - R
Bob R RWX RW RW
Admin RWX RWX RWX RWX

Cryptography in Operating Systems

Symmetric Encryption

Single-Key Cryptography
AES (Advanced Encryption Standard) Implementation:

Algorithm AES_Encrypt:
Input: plaintext, key, mode
Output: ciphertext

BEGIN
    // Key expansion
    round_keys = expand_key(key)  // Generate 11 round keys from 128-bit key
    
    // Initial round
    state = add_round_key(plaintext, round_keys[0])
    
    // Main rounds (9 rounds for AES-128)
    FOR round = 1 TO 9 DO
        state = substitute_bytes(state)    // S-box substitution
        state = shift_rows(state)          // Row shifting
        state = mix_columns(state)         // Column mixing
        state = add_round_key(state, round_keys[round])
    END FOR
    
    // Final round (no mix_columns)
    state = substitute_bytes(state)
    state = shift_rows(state)
    ciphertext = add_round_key(state, round_keys[10])
    
    RETURN ciphertext
END

Block Cipher Modes of Operation:

1. Electronic Codebook (ECB) - NOT RECOMMENDED
   C[i] = E(K, P[i])
   • Each block encrypted independently
   • Identical plaintext blocks → identical ciphertext blocks
   • Vulnerable to pattern analysis

2. Cipher Block Chaining (CBC) - SECURE
   C[0] = IV (Initialization Vector)
   C[i] = E(K, P[i] ⊕ C[i-1])
   • Each block depends on previous ciphertext
   • Same plaintext produces different ciphertext

3. Counter Mode (CTR) - SECURE & PARALLEL
   C[i] = P[i] ⊕ E(K, IV + i)
   • Converts block cipher to stream cipher
   • Parallelizable encryption/decryption
   • No error propagation

Performance Comparison:
┌─────────────┬──────────────┬───────────────┬─────────────────┐
│    Mode     │  Encryption  │  Decryption   │   Parallelism   │
├─────────────┼──────────────┼───────────────┼─────────────────┤
│ ECB         │ Parallel     │ Parallel      │ Full            │
│ CBC         │ Sequential   │ Parallel      │ Decrypt only    │
│ CTR         │ Parallel     │ Parallel      │ Full            │
│ GCM         │ Parallel     │ Parallel      │ Full + Auth     │
└─────────────┴──────────────┴───────────────┴─────────────────┘

Asymmetric Encryption

Public-Key Cryptography
RSA Algorithm Implementation:

Algorithm RSA_Key_Generation:
Output: public_key (n, e), private_key (n, d)

BEGIN
    // Step 1: Generate two large primes
    p = generate_large_prime(1024 bits)
    q = generate_large_prime(1024 bits)
    
    // Step 2: Compute n and φ(n)
    n = p × q                    // Modulus
    phi_n = (p - 1) × (q - 1)   // Euler's totient
    
    // Step 3: Choose public exponent
    e = 65537                    // Common choice: 2^16 + 1
    
    // Step 4: Compute private exponent
    d = modular_inverse(e, phi_n)  // ed ≡ 1 (mod φ(n))
    
    public_key = (n, e)
    private_key = (n, d)
    
    RETURN public_key, private_key
END

Algorithm RSA_Encrypt:
Input: message m, public_key (n, e)
Output: ciphertext c

BEGIN
    // Ensure message is smaller than modulus
    IF m >= n THEN
        RETURN ERROR
    END IF
    
    c = fast_modular_exponentiation(m, e, n)  // c = m^e mod n
    RETURN c
END

Algorithm RSA_Decrypt:
Input: ciphertext c, private_key (n, d)
Output: message m

BEGIN
    m = fast_modular_exponentiation(c, d, n)  // m = c^d mod n
    RETURN m
END

Digital Signature with RSA:
Algorithm RSA_Sign:
Input: message, private_key
Output: digital_signature

BEGIN
    hash_value = SHA256(message)
    signature = RSA_Decrypt(hash_value, private_key)  // Using private key
    RETURN signature
END

Algorithm RSA_Verify:
Input: message, signature, public_key
Output: VALID/INVALID

BEGIN
    hash_value = SHA256(message)
    decrypted_hash = RSA_Encrypt(signature, public_key)  // Using public key
    
    IF hash_value == decrypted_hash THEN
        RETURN VALID
    ELSE
        RETURN INVALID
    END IF
END

Elliptic Curve Cryptography (ECC) Advantages:
┌──────────────────────────────────────────────────────────────┐
│ Security Level Comparison:                                   │
│                                                              │
│ RSA Key Size    ECC Key Size    Security Bits               │
│ ─────────────   ─────────────   ──────────────               │
│ 1024 bits       160 bits        80 bits                     │
│ 2048 bits       224 bits        112 bits                    │
│ 3072 bits       256 bits        128 bits                    │
│ 7680 bits       384 bits        192 bits                    │
│ 15360 bits      512 bits        256 bits                    │
│                                                              │
│ ECC Benefits:                                                │
│ • Smaller key sizes for equivalent security                 │
│ • Faster computation                                         │
│ • Lower memory usage                                         │
│ • Reduced bandwidth requirements                             │
└──────────────────────────────────────────────────────────────┘

Cryptographic Hash Functions

One-Way Hash Functions
SHA-256 (Secure Hash Algorithm) Implementation:

Algorithm SHA256_Hash:
Input: message
Output: 256-bit hash digest

BEGIN
    // Initialize hash values (first 32 bits of fractional parts)
    h[0] = 0x6a09e667    h[1] = 0xbb67ae85    h[2] = 0x3c6ef372    h[3] = 0xa54ff53a
    h[4] = 0x510e527f    h[5] = 0x9b05688c    h[6] = 0x1f83d9ab    h[7] = 0x5be0cd19
    
    // Initialize round constants (first 32 bits of cube roots)
    k[0..63] = [0x428a2f98, 0x71374491, 0xb5c0fbcf, ...]
    
    // Pre-processing: padding message
    padded_message = message + '1' + zeros + length_in_bits
    
    // Process message in 512-bit chunks
    FOR EACH 512-bit chunk DO
        // Break chunk into sixteen 32-bit words
        w[0..15] = chunk_words
        
        // Extend to 64 words
        FOR i = 16 TO 63 DO
            s0 = right_rotate(w[i-15], 7) XOR right_rotate(w[i-15], 18) XOR (w[i-15] >> 3)
            s1 = right_rotate(w[i-2], 17) XOR right_rotate(w[i-2], 19) XOR (w[i-2] >> 10)
            w[i] = w[i-16] + s0 + w[i-7] + s1
        END FOR
        
        // Initialize working variables
        a, b, c, d, e, f, g, h = h[0], h[1], h[2], h[3], h[4], h[5], h[6], h[7]
        
        // Main compression loop
        FOR i = 0 TO 63 DO
            S1 = right_rotate(e, 6) XOR right_rotate(e, 11) XOR right_rotate(e, 25)
            ch = (e AND f) XOR ((NOT e) AND g)
            temp1 = h + S1 + ch + k[i] + w[i]
            S0 = right_rotate(a, 2) XOR right_rotate(a, 13) XOR right_rotate(a, 22)
            maj = (a AND b) XOR (a AND c) XOR (b AND c)
            temp2 = S0 + maj
            
            h = g
            g = f  
            f = e
            e = d + temp1
            d = c
            c = b
            b = a
            a = temp1 + temp2
        END FOR
        
        // Add compressed chunk to current hash value
        h[0] += a    h[1] += b    h[2] += c    h[3] += d
        h[4] += e    h[5] += f    h[6] += g    h[7] += h
    END FOR
    
    // Produce final hash value
    hash = concatenate(h[0], h[1], h[2], h[3], h[4], h[5], h[6], h[7])
    RETURN hash
END

Hash Function Properties:
┌─────────────────────────────────────────────────────────────┐
│ 1. Deterministic: Same input → Same output               │
│    hash("hello") = always the same 256-bit value           │
│                                                             │
│ 2. Fast Computation: Efficient to compute                │
│    Modern CPU: ~1 GB/s hashing speed                       │
│                                                             │
│ 3. Pre-image Resistance: One-way function                │
│    Given hash(x), computationally infeasible to find x     │
│                                                             │
│ 4. Collision Resistance: Hard to find duplicates          │
│    Infeasible to find x ≠ y such that hash(x) = hash(y)   │
│                                                             │
│ 5. Avalanche Effect: Small input change → Large output change │
│    hash("hello") vs hash("Hello") differ significantly     │
└─────────────────────────────────────────────────────────────┘

Common Hash Functions Comparison:
┌─────────────┬───────────┬─────────────┬─────────────────────┐
│  Algorithm  │ Hash Size │ Block Size  │ Security Status     │
├─────────────┼───────────┼─────────────┼─────────────────────┤
│ MD5         │ 128 bits  │ 512 bits    │ ✗ Broken           │
│ SHA-1       │ 160 bits  │ 512 bits    │ ⚠ Deprecated        │
│ SHA-256     │ 256 bits  │ 512 bits    │ ✓ Secure           │
│ SHA-3       │ Variable  │ Variable    │ ✓ Secure (Latest)  │
│ BLAKE2      │ Variable  │ Variable    │ ✓ Fast & Secure    │
└─────────────┴───────────┴─────────────┴─────────────────────┘
Plaintext
🔐
Encryption
Algorithm
🔐
Ciphertext

Security Threats & Attacks

Common Attack Vectors

System Vulnerabilities and Exploits
Buffer Overflow Attack:

Vulnerable Code Example:
```c
void vulnerable_function(char* input) {
    char buffer[100];           // Fixed-size buffer
    strcpy(buffer, input);      // No bounds checking!
    printf("Input: %s\n", buffer);
}
```

Attack Mechanism:
┌────────────────────────────────────────────────────────────┐
│ Normal Stack Frame:                                        │
│ ┌──────────────┬─────────────┬────────────────────────┐   │
│ │ Return Addr  │   Buffer    │    Other Variables     │   │
│ │   (4 bytes)  │  (100 bytes)│                        │   │
│ └──────────────┴─────────────┴────────────────────────┘   │
│                                                            │
│ After Buffer Overflow:                                     │
│ ┌──────────────┬─────────────┬────────────────────────┐   │
│ │ OVERWRITTEN  │ AAAAAAAAAA  │      AAAAAAAAAA       │   │
│ │ RETURN ADDR  │ AAAAAAAAAA  │      AAAAAAAAAA       │   │
│ └──────────────┴─────────────┴────────────────────────┘   │
│                                                            │
│ Result: Control flow hijacked to attacker's code          │
└────────────────────────────────────────────────────────────┘

Algorithm Buffer_Overflow_Prevention:
BEGIN
    // 1. Input Validation
    IF input_length > BUFFER_SIZE - 1 THEN
        truncate_input() OR reject_input()
    END IF
    
    // 2. Use Safe Functions
    strncpy(buffer, input, BUFFER_SIZE - 1)
    buffer[BUFFER_SIZE - 1] = '\0'  // Ensure null termination
    
    // 3. Stack Canaries (Compiler-generated)
    stack_canary = random_value()
    // Place canary between buffer and return address
    // Check canary before function return
    
    // 4. Address Space Layout Randomization (ASLR)
    randomize_memory_layout()  // OS-level protection
    
    // 5. Non-Executable Stack (NX bit)
    mark_stack_non_executable()  // Hardware-supported
END

SQL Injection Attack:

Vulnerable Query:
query = "SELECT * FROM users WHERE username='" + username + 
        "' AND password='" + password + "'"

Attack Input:
username = "admin"
password = "' OR '1'='1' --"

Resulting Query:
SELECT * FROM users WHERE username='admin' AND password='' OR '1'='1' --'
                                                          ↑
                                              Always true condition

Algorithm SQL_Injection_Prevention:
BEGIN
    // 1. Parameterized Queries (Best Practice)
    prepared_statement = "SELECT * FROM users WHERE username=? AND password=?"
    execute_query(prepared_statement, [username, password])
    
    // 2. Input Sanitization
    username = escape_sql_characters(username)
    password = escape_sql_characters(password)
    
    // 3. Stored Procedures
    call_stored_procedure("authenticate_user", username, password)
    
    // 4. Whitelist Validation
    IF NOT matches_pattern(username, "^[a-zA-Z0-9_]+$") THEN
        reject_input()
    END IF
END

Cross-Site Scripting (XSS) Attack:

Attack Vector:
User Input: <script>alert('XSS');</script>
Reflected in HTML: <div>Welcome <script>alert('XSS');</script>!</div>

Algorithm XSS_Prevention:
BEGIN
    // 1. Output Encoding
    user_input = html_encode(user_input)
    // < becomes <, > becomes >
    
    // 2. Content Security Policy (CSP)
    set_header("Content-Security-Policy", 
               "script-src 'self'; object-src 'none';")
    
    // 3. Input Validation
    IF contains_script_tags(user_input) THEN
        sanitize_input() OR reject_input()
    END IF
    
    // 4. HttpOnly Cookies
    set_cookie("session_id", value, {httpOnly: true, secure: true})
END

Threat Classification

Threat Category Examples Impact Likelihood Mitigation
Malware Viruses, Trojans, Ransomware HIGH HIGH Antivirus, Sandboxing, Code Signing
Network Attacks DDoS, Man-in-Middle, Packet Sniffing HIGH MEDIUM Firewalls, IDS/IPS, Encryption
Social Engineering Phishing, Pretexting, Baiting MEDIUM HIGH User Training, Email Filtering
Physical Attacks Theft, Tampering, Shoulder Surfing MEDIUM LOW Physical Security, Encryption
Insider Threats Malicious Employee, Data Theft CRITICAL LOW Access Controls, Monitoring, Background Checks

Advanced Persistent Threats (APT)

Multi-Stage Attack Analysis
APT Attack Lifecycle:

Phase 1: Initial Compromise
┌─────────────────────────────────────────────────────────────┐
│ Attack Vectors:                                             │
│ • Spear phishing emails with malicious attachments         │
│ • Watering hole attacks on trusted websites                │
│ • Supply chain compromises                                  │
│ • Zero-day exploits                                         │
│                                                             │
│ Goals:                                                      │
│ • Establish initial foothold in target network             │
│ • Deploy persistent backdoors                              │
│ • Avoid detection by security systems                      │
└─────────────────────────────────────────────────────────────┘

Phase 2: Establish Foothold
┌─────────────────────────────────────────────────────────────┐
│ Techniques:                                                 │
│ • Install rootkits and stealthy malware                    │
│ • Create legitimate-looking services                        │
│ • Modify system files and registry entries                 │
│ • Establish command and control (C2) channels              │
│                                                             │
│ Persistence Mechanisms:                                     │
│ • Registry autostart locations                             │
│ • Scheduled tasks and services                             │
│ • DLL hijacking and process injection                      │
│ • Boot sector modifications                                 │
└─────────────────────────────────────────────────────────────┘

Phase 3: Escalate Privileges
┌─────────────────────────────────────────────────────────────┐
│ Techniques:                                                 │
│ • Exploit local vulnerabilities                            │
│ • Steal credentials from memory                            │
│ • Pass-the-hash attacks                                    │
│ • Token manipulation and impersonation                     │
│                                                             │
│ Tools:                                                      │
│ • Mimikatz for credential extraction                       │
│ • PowerShell Empire for post-exploitation                  │
│ • Cobalt Strike for adversary simulation                   │
└─────────────────────────────────────────────────────────────┘

Phase 4: Internal Reconnaissance
┌─────────────────────────────────────────────────────────────┐
│ Information Gathering:                                      │
│ • Network topology mapping                                 │
│ • Active Directory enumeration                             │
│ • File share discovery                                     │
│ • Database and system identification                       │
│                                                             │
│ Techniques:                                                 │
│ • LDAP queries for user and group information             │
│ • Network scanning from compromised hosts                  │
│ • Living off the land with built-in tools                 │
└─────────────────────────────────────────────────────────────┘

Phase 5: Lateral Movement
┌─────────────────────────────────────────────────────────────┐
│ Movement Techniques:                                        │
│ • Remote desktop protocol (RDP)                           │
│ • Windows Management Instrumentation (WMI)                 │
│ • PowerShell remoting                                      │
│ • SSH tunneling and port forwarding                       │
│                                                             │
│ Credential Attacks:                                         │
│ • Pass-the-hash                                           │
│ • Pass-the-ticket (Kerberos)                              │
│ • Golden ticket attacks                                    │
│ • Silver ticket attacks                                    │
└─────────────────────────────────────────────────────────────┘

Algorithm APT_Detection:
BEGIN
    // Behavioral Analysis
    monitor_network_traffic()
    analyze_process_behavior()
    track_file_system_changes()
    
    // Indicators of Compromise (IoCs)
    IF detect_unusual_outbound_traffic() THEN
        flag_potential_c2_communication()
    END IF
    
    IF detect_privilege_escalation_attempts() THEN
        alert_security_team()
    END IF
    
    IF detect_lateral_movement_patterns() THEN
        isolate_affected_systems()
    END IF
    
    // Threat Hunting
    correlate_events_across_systems()
    analyze_timeline_of_activities()
    investigate_anomalous_behaviors()
END
Security Vulnerability Assessment

Scenario: Web application security testing

SQL Injection
XSS
Missing HTTPS
Weak Passwords
Session Fixation
No CSP Header
Directory Traversal
Information Disclosure
Command Injection

Defense Mechanisms

Intrusion Detection and Prevention

Real-Time Security Monitoring
Algorithm Network_Intrusion_Detection:
Input: network_packet_stream
Output: intrusion_alerts[]

BEGIN
    signature_database = load_attack_signatures()
    anomaly_baseline = establish_network_baseline()
    
    FOR EACH packet IN network_packet_stream DO
        // Signature-based Detection
        FOR EACH signature IN signature_database DO
            IF packet_matches_signature(packet, signature) THEN
                generate_alert("Known Attack Pattern", signature.name, HIGH)
                block_traffic(packet.source_ip) // IPS function
            END IF
        END FOR
        
        // Anomaly-based Detection
        packet_features = extract_features(packet)
        deviation_score = calculate_deviation(packet_features, anomaly_baseline)
        
        IF deviation_score > ANOMALY_THRESHOLD THEN
            generate_alert("Anomalous Behavior", packet_features, MEDIUM)
            IF deviation_score > CRITICAL_THRESHOLD THEN
                quarantine_source(packet.source_ip)
            END IF
        END IF
        
        // Behavioral Analysis
        update_connection_state(packet)
        IF detect_port_scan(packet.source_ip) THEN
            generate_alert("Port Scan Detected", packet.source_ip, HIGH)
        END IF
        
        IF detect_ddos_pattern(packet_stream) THEN
            activate_ddos_mitigation()
            generate_alert("DDoS Attack", "Multiple Sources", CRITICAL)
        END IF
    END FOR
END

Host-based Intrusion Detection Algorithm:
Algorithm HIDS_Monitor:
BEGIN
    baseline_state = create_system_baseline()
    
    WHILE system_running DO
        // File Integrity Monitoring
        FOR EACH critical_file IN monitored_files DO
            current_hash = calculate_hash(critical_file)
            IF current_hash != baseline_hash[critical_file] THEN
                generate_alert("File Modified", critical_file, HIGH)
                log_modification_details(critical_file)
            END IF
        END FOR
        
        // Process Monitoring
        current_processes = get_running_processes()
        FOR EACH process IN current_processes DO
            IF is_suspicious_process(process) THEN
                analyze_process_behavior(process)
                IF is_malicious_behavior() THEN
                    terminate_process(process)
                    generate_alert("Malicious Process", process.name, CRITICAL)
                END IF
            END IF
        END FOR
        
        // Registry Monitoring (Windows)
        IF detect_registry_changes() THEN
            analyze_registry_modifications()
            IF is_unauthorized_change() THEN
                revert_registry_change()
                generate_alert("Registry Tampering", modified_key, HIGH)
            END IF
        END IF
        
        // Network Connection Monitoring
        active_connections = get_network_connections()
        FOR EACH connection IN active_connections DO
            IF is_suspicious_connection(connection) THEN
                analyze_traffic_patterns(connection)
                IF is_c2_communication() THEN
                    block_connection(connection)
                    generate_alert("C2 Communication", connection.remote_ip, CRITICAL)
                END IF
            END IF
        END FOR
        
        sleep(monitoring_interval)
    END WHILE
END

Security Information and Event Management (SIEM):
Algorithm SIEM_Event_Correlation:
Input: security_events[]
Output: correlated_incidents[]

BEGIN
    event_buffer = initialize_circular_buffer(BUFFER_SIZE)
    correlation_rules = load_correlation_rules()
    
    FOR EACH event IN security_events DO
        event_buffer.add(event)
        normalize_event(event)  // Standardize format
        enrich_event(event)     // Add context information
        
        FOR EACH rule IN correlation_rules DO
            matching_events = find_matching_events(event_buffer, rule)
            
            IF rule.condition_met(matching_events) THEN
                incident = create_incident(matching_events, rule)
                calculate_risk_score(incident)
                assign_priority(incident)
                
                IF incident.priority >= AUTO_RESPONSE_THRESHOLD THEN
                    execute_automated_response(incident)
                END IF
                
                notify_security_analysts(incident)
                correlated_incidents.add(incident)
            END IF
        END FOR
    END FOR
    
    RETURN correlated_incidents
END

Security Hardening

System Security Configuration
Operating System Hardening Checklist:

Algorithm OS_Security_Hardening:
BEGIN
    // 1. Update Management
    enable_automatic_security_updates()
    install_latest_patches()
    configure_update_schedule("daily", "critical_patches")
    
    // 2. Service Management
    unnecessary_services = identify_unnecessary_services()
    FOR EACH service IN unnecessary_services DO
        disable_service(service)
        log_hardening_action("Service Disabled", service.name)
    END FOR
    
    // 3. Network Security
    configure_firewall_rules([
        "DENY ALL incoming by default",
        "ALLOW specific required ports",
        "DENY unused protocols",
        "ENABLE connection logging"
    ])
    
    disable_unused_network_protocols()
    configure_network_segmentation()
    
    // 4. User Account Security
    enforce_password_policy({
        minimum_length: 12,
        complexity_required: true,
        password_history: 24,
        max_age_days: 90,
        account_lockout: {
            threshold: 5,
            duration: 30,
            reset_time: 30
        }
    })
    
    disable_default_accounts()
    remove_unused_user_accounts()
    configure_privileged_access_management()
    
    // 5. File System Security
    set_secure_file_permissions()
    encrypt_sensitive_directories()
    configure_file_integrity_monitoring()
    
    // 6. Audit Configuration
    enable_comprehensive_logging([
        "Authentication events",
        "Privilege escalation attempts", 
        "File access attempts",
        "Network connections",
        "System configuration changes"
    ])
    
    configure_log_retention(365)  // days
    setup_log_forwarding("central_siem_server")
    
    // 7. Application Security
    install_endpoint_protection()
    configure_application_whitelisting()
    enable_data_execution_prevention()
    configure_address_space_layout_randomization()
    
    // 8. Physical Security
    configure_screen_lock_timeout(300)  // 5 minutes
    disable_usb_autorun()
    encrypt_full_disk()
    configure_secure_boot()
END

Network Security Architecture:
Algorithm Network_Segmentation_Design:
BEGIN
    // DMZ Configuration
    dmz = create_network_segment("DMZ", "192.168.10.0/24")
    place_in_dmz([web_servers, email_servers, dns_servers])
    
    // Internal Network Segmentation
    user_network = create_segment("Users", "10.0.1.0/24")
    server_network = create_segment("Servers", "10.0.2.0/24") 
    admin_network = create_segment("Admin", "10.0.3.0/24")
    guest_network = create_segment("Guest", "10.0.4.0/24")
    
    // Firewall Rules Configuration
    configure_inter_segment_rules([
        "Users → Internet: HTTP/HTTPS only",
        "Users → Servers: Specific application ports",
        "Admin → All: Full access with logging",
        "Guest → Internet: HTTP/HTTPS with content filtering",
        "Guest → Internal: DENY ALL",
        "DMZ → Internal: DENY ALL",
        "Servers → Internet: Updates and backups only"
    ])
    
    // Intrusion Prevention System
    deploy_ips_sensors([
        dmz.gateway,
        internal_network.gateway,
        critical_server_segment.gateway
    ])
    
    // Network Access Control (NAC)
    configure_802_1x_authentication()
    implement_device_profiling()
    enforce_compliance_policies()
END

Zero Trust Architecture Implementation:
Algorithm Zero_Trust_Access_Control:
Input: access_request
Output: access_decision

BEGIN
    // Never Trust, Always Verify
    user_identity = authenticate_user(access_request.user)
    IF user_identity == NULL THEN
        RETURN DENY
    END IF
    
    device_trust = assess_device_trust(access_request.device)
    location_risk = calculate_location_risk(access_request.location)
    behavior_score = analyze_user_behavior(user_identity, access_request)
    
    // Least Privilege Access
    required_permissions = get_minimum_required_permissions(access_request.resource)
    user_permissions = get_user_permissions(user_identity)
    
    IF NOT has_sufficient_permissions(user_permissions, required_permissions) THEN
        RETURN DENY
    END IF
    
    // Risk Assessment
    total_risk_score = calculate_risk_score(device_trust, location_risk, behavior_score)
    
    IF total_risk_score > HIGH_RISK_THRESHOLD THEN
        require_additional_authentication()
        IF NOT additional_auth_successful() THEN
            RETURN DENY
        END IF
    ELSE IF total_risk_score > MEDIUM_RISK_THRESHOLD THEN
        apply_additional_monitoring(access_request)
    END IF
    
    // Grant Conditional Access
    access_token = create_conditional_access_token(
        user_identity, 
        required_permissions,
        time_limit,
        network_restrictions
    )
    
    log_access_grant(access_request, total_risk_score)
    RETURN GRANT(access_token)
END

Incident Response

Security Incident Response Playbook
Phase 1: Preparation
• Establish incident response team
• Create communication procedures  
• Develop response playbooks
• Set up monitoring and detection tools
• Conduct regular training exercises

Phase 2: Identification
• Monitor security alerts and logs
• Analyze potential security events
• Determine if incident occurred
• Document initial findings
• Classify incident severity

Phase 3: Containment
• Isolate affected systems
• Preserve evidence
• Implement short-term containment
• Develop long-term containment strategy
• Update stakeholders

Phase 4: Eradication  
• Remove malware and threats
• Close attack vectors
• Apply security patches
• Strengthen security controls
• Verify threat elimination

Phase 5: Recovery
• Restore systems from clean backups
• Gradually restore services
• Monitor for signs of reinfection
• Validate system integrity
• Return to normal operations

Phase 6: Lessons Learned
• Conduct post-incident review
• Document lessons learned
• Update procedures and policies
• Improve detection capabilities
• Share threat intelligence

Advanced Security Topics

Sandboxing and Isolation

Process Isolation Mechanisms
Container-Based Sandboxing Algorithm:

Algorithm Container_Sandbox_Creation:
Input: application_binary, security_policy, resource_limits
Output: isolated_container

BEGIN
    // Create new namespace for isolation
    container_namespace = create_namespace([
        PID_NAMESPACE,     // Process isolation
        NET_NAMESPACE,     // Network isolation  
        MNT_NAMESPACE,     // File system isolation
        IPC_NAMESPACE,     // Inter-process communication isolation
        UTS_NAMESPACE,     // Hostname isolation
        USER_NAMESPACE     // User ID isolation
    ])
    
    // Set up cgroup resource limits
    cgroup_config = {
        memory_limit: resource_limits.memory,
        cpu_quota: resource_limits.cpu_percent,
        io_bandwidth: resource_limits.io_rate,
        network_bandwidth: resource_limits.network_rate
    }
    
    container_cgroup = create_cgroup(cgroup_config)
    
    // Configure security constraints
    seccomp_filter = create_seccomp_filter([
        "SCMP_ACT_ALLOW: read, write, open, close",
        "SCMP_ACT_DENY: ptrace, mount, reboot",
        "SCMP_ACT_KILL: execve /bin/sh"  // Prevent shell access
    ])
    
    // Set up capabilities
    capabilities = drop_capabilities([
        CAP_SYS_ADMIN,     // System administration
        CAP_NET_ADMIN,     // Network administration
        CAP_SYS_MODULE,    // Load kernel modules
        CAP_SYS_RAWIO,     // Raw I/O access
        CAP_SYS_TIME       // Set system time
    ])
    
    // Create read-only root filesystem
    rootfs = create_overlay_filesystem(
        base_image,
        writable_layer,
        READ_ONLY_BASE
    )
    
    // Launch container process
    container_process = fork_process()
    
    IF container_process == CHILD THEN
        // Child process - becomes the container
        setns(container_namespace)
        join_cgroup(container_cgroup)
        apply_seccomp_filter(seccomp_filter)
        set_capabilities(capabilities)
        chroot(rootfs)
        exec(application_binary)
    ELSE
        // Parent process - monitor container
        monitor_container_health(container_process)
        enforce_resource_limits(container_cgroup)
        log_container_events(container_process.pid)
    END IF
    
    RETURN container_process.pid
END

Virtual Machine-Based Isolation:
Algorithm VM_Sandbox_Creation:
BEGIN
    // Hypervisor-based isolation
    vm_config = {
        memory_size: "512MB",
        disk_size: "2GB", 
        network_mode: "NAT_ISOLATED",
        cpu_count: 1,
        enable_nested_virtualization: false
    }
    
    // Create minimal VM image
    base_image = create_minimal_image([
        "kernel_image",
        "init_system", 
        "basic_utilities",
        "target_application"
    ])
    
    // Configure security policies
    vm_security_policy = {
        disable_usb: true,
        disable_cd_rom: true,
        disable_floppy: true,
        enable_secure_boot: true,
        disable_debug_interfaces: true
    }
    
    // Launch isolated VM
    vm_instance = hypervisor.create_vm(vm_config, base_image)
    hypervisor.apply_security_policy(vm_instance, vm_security_policy)
    hypervisor.start_vm(vm_instance)
    
    // Monitor VM behavior
    setup_vm_monitoring(vm_instance, [
        "network_traffic",
        "file_system_changes", 
        "process_creation",
        "system_calls"
    ])
    
    RETURN vm_instance
END

Application Sandboxing Comparison:
┌─────────────────────┬─────────────────┬─────────────────────┬──────────────┐
│     Technology      │   Performance   │    Isolation Level  │  Use Cases   │
├─────────────────────┼─────────────────┼─────────────────────┼──────────────┤
│ Containers          │ Low overhead    │ Process-level       │ Microservices│
│ Virtual Machines    │ High overhead   │ Hardware-level      │ Legacy apps  │
│ seccomp-bpf         │ Minimal         │ System call filter  │ Browsers     │
│ AppArmor/SELinux    │ Low overhead    │ Mandatory AC        │ System daemons│
│ Windows Sandbox     │ Medium overhead │ Lightweight VM      │ Document viewers│
└─────────────────────┴─────────────────┴─────────────────────┴──────────────┘

Secure Boot and Trusted Computing

Boot Process Security
Secure Boot Process Algorithm:

Algorithm Secure_Boot_Process:
BEGIN
    // Phase 1: Hardware Root of Trust
    cpu_microcode = verify_cpu_microcode_signature()
    IF NOT cpu_microcode.valid THEN
        halt_boot("Invalid CPU microcode")
    END IF
    
    // Phase 2: UEFI Firmware Verification
    uefi_firmware = load_uefi_firmware()
    firmware_signature = extract_signature(uefi_firmware)
    
    IF NOT verify_signature(firmware_signature, platform_key) THEN
        halt_boot("UEFI firmware signature invalid")
    END IF
    
    // Phase 3: Boot Loader Verification  
    bootloader_candidates = scan_for_bootloaders()
    
    FOR EACH bootloader IN bootloader_candidates DO
        bootloader_signature = extract_signature(bootloader)
        
        IF verify_signature(bootloader_signature, key_exchange_key) THEN
            trusted_bootloader = bootloader
            BREAK
        END IF
    END FOR
    
    IF trusted_bootloader == NULL THEN
        halt_boot("No trusted bootloader found")
    END IF
    
    // Phase 4: OS Kernel Verification
    kernel_image = load_kernel_from_bootloader()
    kernel_signature = extract_signature(kernel_image)
    
    IF NOT verify_signature(kernel_signature, authorized_db) THEN
        IF signature_in_forbidden_db(kernel_signature) THEN
            halt_boot("Kernel in forbidden signature database")
        ELSE
            prompt_user_for_override()
        END IF
    END IF
    
    // Phase 5: Initialize Trusted Platform Module (TPM)
    tpm_initialize()
    pcr_values = extend_pcr_measurements([
        firmware_hash,
        bootloader_hash,
        kernel_hash,
        kernel_command_line_hash
    ])
    
    store_measurements_in_tpm(pcr_values)
    
    // Phase 6: Transfer Control to Kernel
    setup_secure_memory_regions()
    enable_memory_protection()
    transfer_control_to_kernel(kernel_image)
END

Trusted Platform Module (TPM) Integration:
Algorithm TPM_Attestation:
Input: attestation_request
Output: attestation_report

BEGIN
    // Collect Platform Configuration Registers (PCR) values
    pcr_values = read_pcr_registers([0, 1, 2, 3, 4, 5, 6, 7])
    
    // Create attestation identity key
    aik = tpm_create_attestation_identity_key()
    
    // Generate quote (signed PCR values)
    nonce = attestation_request.nonce
    quote = tpm_quote(pcr_values, nonce, aik)
    
    // Collect additional system information
    system_info = {
        firmware_version: get_firmware_version(),
        os_version: get_os_version(),
        security_patches: get_installed_patches(),
        running_processes: get_critical_processes(),
        loaded_drivers: get_loaded_drivers()
    }
    
    // Create comprehensive attestation report
    attestation_report = {
        quote: quote,
        pcr_values: pcr_values,
        system_information: system_info,
        timestamp: get_current_timestamp(),
        tpm_public_key: aik.public_key
    }
    
    // Sign the report with TPM
    report_signature = tpm_sign(attestation_report, aik.private_key)
    attestation_report.signature = report_signature
    
    RETURN attestation_report
END

Remote Attestation Verification:
Algorithm Verify_Remote_Attestation:
Input: attestation_report, trusted_pcr_baseline
Output: trust_decision

BEGIN
    // Verify TPM quote signature
    IF NOT verify_tpm_signature(attestation_report.quote, attestation_report.tpm_public_key) THEN
        RETURN UNTRUSTED("Invalid TPM signature")
    END IF
    
    // Verify TPM certificate chain
    IF NOT verify_tpm_certificate_chain(attestation_report.tpm_public_key) THEN
        RETURN UNTRUSTED("Invalid TPM certificate")
    END IF
    
    // Compare PCR values against known good baseline
    FOR EACH pcr_index IN [0, 1, 2, 3, 4, 5, 6, 7] DO
        measured_value = attestation_report.pcr_values[pcr_index]
        baseline_value = trusted_pcr_baseline[pcr_index]
        
        IF measured_value != baseline_value THEN
            log_pcr_deviation(pcr_index, measured_value, baseline_value)
            
            IF pcr_index IN critical_pcrs THEN
                RETURN UNTRUSTED("Critical PCR deviation detected")
            END IF
        END IF
    END FOR
    
    // Verify system configuration
    IF NOT verify_system_configuration(attestation_report.system_information) THEN
        RETURN CONDITIONAL_TRUST("System configuration concerns")
    END IF
    
    RETURN TRUSTED("Attestation verified successfully")
END

Security Monitoring and Analytics

Behavioral Analysis and Threat Detection
Machine Learning-Based Anomaly Detection:

Algorithm ML_Anomaly_Detection_Training:
Input: historical_network_traffic, normal_behavior_labels
Output: trained_anomaly_model

BEGIN
    // Feature extraction from network traffic
    features = extract_features(historical_network_traffic, [
        "packet_size_distribution",
        "inter_arrival_times", 
        "protocol_distribution",
        "source_destination_patterns",
        "payload_entropy",
        "connection_duration",
        "bytes_per_session"
    ])
    
    // Normalize features for ML processing
    normalized_features = standardize_features(features)
    
    // Train isolation forest for anomaly detection
    isolation_forest = IsolationForest(
        n_estimators=100,
        contamination=0.1,  // Expected anomaly rate
        random_state=42
    )
    
    isolation_forest.fit(normalized_features, normal_behavior_labels)
    
    // Train autoencoder for reconstruction-based detection
    autoencoder = create_autoencoder_model(
        input_dimension=normalized_features.shape[1],
        hidden_layers=[64, 32, 16, 32, 64],
        activation="relu"
    )
    
    autoencoder.train(
        training_data=normalized_features,
        epochs=100,
        batch_size=32,
        validation_split=0.2
    )
    
    // Calculate reconstruction error threshold
    reconstruction_errors = autoencoder.predict(normalized_features)
    anomaly_threshold = calculate_percentile(reconstruction_errors, 95)
    
    trained_model = {
        isolation_forest: isolation_forest,
        autoencoder: autoencoder,
        feature_normalizer: get_normalizer_params(),
        anomaly_threshold: anomaly_threshold
    }
    
    RETURN trained_model
END

Algorithm Real_Time_Anomaly_Detection:
Input: live_network_stream, trained_model
Output: anomaly_alerts[]

BEGIN
    alert_buffer = initialize_buffer()
    
    FOR EACH network_packet IN live_network_stream DO
        // Extract features from current packet/flow
        current_features = extract_real_time_features(network_packet)
        normalized_features = apply_normalization(current_features, trained_model.feature_normalizer)
        
        // Isolation Forest scoring
        isolation_score = trained_model.isolation_forest.decision_function(normalized_features)
        
        // Autoencoder reconstruction error
        reconstructed = trained_model.autoencoder.predict(normalized_features)
        reconstruction_error = calculate_mse(normalized_features, reconstructed)
        
        // Combine scores for final anomaly decision
        combined_score = 0.6 * isolation_score + 0.4 * reconstruction_error
        
        IF combined_score > trained_model.anomaly_threshold THEN
            anomaly_alert = {
                timestamp: get_current_time(),
                source_ip: network_packet.source,
                destination_ip: network_packet.destination,
                anomaly_score: combined_score,
                suspicious_features: identify_contributing_features(current_features),
                raw_packet_data: network_packet,
                confidence_level: calculate_confidence(combined_score)
            }
            
            alert_buffer.add(anomaly_alert)
            
            // Trigger immediate response for high-confidence anomalies
            IF anomaly_alert.confidence_level > HIGH_CONFIDENCE_THRESHOLD THEN
                trigger_immediate_response(anomaly_alert)
            END IF
        END IF
        
        // Update model with recent data (online learning)
        IF should_update_model() THEN
            retrain_model_incrementally(normalized_features)
        END IF
    END FOR
    
    RETURN alert_buffer.get_all()
END

User and Entity Behavior Analytics (UEBA):
Algorithm UEBA_Profile_Creation:
Input: user_activity_logs, time_window
Output: user_behavior_baseline

BEGIN
    user_profiles = {}
    
    FOR EACH user IN get_all_users() DO
        user_activities = filter_activities_by_user(user_activity_logs, user)
        
        // Temporal patterns
        login_patterns = analyze_login_patterns(user_activities, [
            "login_times",
            "login_frequency", 
            "session_duration",
            "source_locations"
        ])
        
        // Access patterns
        access_patterns = analyze_access_patterns(user_activities, [
            "files_accessed",
            "applications_used",
            "network_resources",
            "permission_escalations"
        ])
        
        // Behavioral metrics
        behavioral_metrics = calculate_behavioral_metrics(user_activities, [
            "typing_patterns",
            "mouse_movement_patterns",
            "application_usage_sequences",
            "data_volume_transferred"
        ])
        
        // Risk scoring
        baseline_risk_score = calculate_baseline_risk(user, [
            "role_permissions",
            "access_to_sensitive_data",
            "administrative_privileges",
            "historical_incidents"
        ])
        
        user_profile = {
            user_id: user,
            login_patterns: login_patterns,
            access_patterns: access_patterns, 
            behavioral_metrics: behavioral_metrics,
            baseline_risk_score: baseline_risk_score,
            profile_creation_date: get_current_date(),
            confidence_level: calculate_profile_confidence(user_activities.length)
        }
        
        user_profiles[user] = user_profile
    END FOR
    
    RETURN user_profiles
END
AI-Powered Threat Detection Demo

Scenario: Real-time behavioral anomaly detection

Normal User Behavior
Login Pattern: 85% Match
Access Pattern: 92% Match
Behavioral Metrics: 78% Match
Anomalous Behavior Detected
User: john.doe
Unusual login time: 3:47 AM
Accessing sensitive files outside normal pattern
Multiple failed authentication attempts
Risk Score: 94/100

Security Best Practices

Secure Development Lifecycle (SDL)

Requirements & Design
  • Security requirements analysis
  • Threat modeling
  • Architecture security review
  • Privacy impact assessment
Implementation
  • Secure coding practices
  • Static code analysis
  • Code reviews
  • Unit security tests
Testing & Verification
  • Dynamic security testing
  • Penetration testing
  • Vulnerability scanning
  • Security integration testing
Deployment & Maintenance
  • Secure deployment procedures
  • Security monitoring setup
  • Incident response planning
  • Regular security updates

Security Configuration Guidelines

System Hardening Checklist
Component Security Control Implementation Risk Mitigation
Network Firewall Configuration Default deny, specific allow rules Unauthorized network access
Authentication Multi-Factor Authentication Something you know + have + are Credential compromise
Encryption Data-at-Rest Protection AES-256, key management Data theft, privacy breach
Updates Patch Management Automated critical updates Known vulnerability exploitation
Monitoring Security Information Event Management Centralized log analysis Undetected security incidents
Backup Disaster Recovery 3-2-1 backup strategy Data loss, ransomware

Compliance and Governance

GDPR
General Data Protection Regulation
  • Data Protection: By design and default
  • Consent: Explicit and informed
  • Rights: Access, portability, erasure
  • Breach Notification: 72-hour rule
SOX
Sarbanes-Oxley Act
  • Financial Controls: Internal controls over financial reporting
  • Audit Trail: Complete transaction records
  • Segregation: Duties separation
  • Documentation: Process documentation
ISO 27001
Information Security Management
  • ISMS: Information Security Management System
  • Risk Assessment: Systematic approach
  • Controls: 114 security controls
  • Continuous Improvement: Plan-Do-Check-Act cycle

Summary

This session provided comprehensive coverage of operating system security and protection mechanisms including:

  • Security Models: CIA triad, Bell-LaPadula, Biba models and defense-in-depth approaches
  • Access Control: DAC, MAC, and RBAC implementation with practical algorithms
  • Cryptography: Symmetric/asymmetric encryption, hash functions, and digital signatures
  • Threat Analysis: Common attack vectors, APTs, and vulnerability assessment techniques
  • Defense Mechanisms: IDS/IPS, SIEM, security hardening, and incident response
  • Advanced Security: Sandboxing, isolation, secure boot, TPM, and ML-based threat detection
  • Best Practices: Secure development lifecycle, system hardening, and compliance frameworks
Key Security Principles
  • Defense in Depth: Multiple layers of security controls
  • Least Privilege: Grant minimum necessary access rights
  • Fail Secure: Systems should fail to a secure state
  • Security by Design: Build security into systems from the start
  • Continuous Monitoring: Ongoing threat detection and response