Skip to main content

πŸ”’ Security

"In the insurance industry, customer data is not just an asset β€” it is a trust relationship."


Why Security Is Priority One​

Ingenium systems contain data for millions of insurance customers β€” personal information, policy contracts, payment history. A security breach can result in:

  • πŸ’Έ Regulatory fines under GDPR, local data protection laws, and insurance regulations
  • πŸ“° Reputational damage that cannot be quantified in a spreadsheet
  • βš–οΈ Legal liability toward millions of customers

Nexus was designed from the ground up with a security-first mindset β€” security is not a feature bolted on after the fact; it is the foundation of the architecture.


πŸ” Credential Encryption​

AES-256-GCM β€” Military-Grade Standard​

All credentials (DB2 passwords, SSH keys, API keys) are encrypted with AES-256-GCM before being stored anywhere.

Enter passphrase
β”‚
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Derive encryption β”‚ ← scrypt (CPU/memory-hard)
β”‚ key from passphrase β”‚ Computationally infeasible to brute force
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ AES-256-GCM Encrypt β”‚ ← NIST 800-38D
β”‚ Random 96-bit IV β”‚ New IV generated per encryption operation
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Secure Storage β”‚ ← File system (ciphertext only)
β”‚ (Ciphertext + Auth β”‚ Plaintext never written to disk
β”‚ Tag + IV) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Credential Lifecycle​

  • Lazy decryption: Only decrypted at the precise moment of use
  • Zero plaintext persistence: Plaintext credential exists only in RAM, scoped to the consuming function
  • Secure drop: Memory overwritten with zeros immediately after use (Rust zeroize)
  • Never logged: The logging system actively prevents credentials from appearing in any log output

πŸ›‘οΈ OWASP Top 10 Protections​

Injection Attack Prevention​

SQL Injection β€” Zero Risk:

// Built-in sql_escape() in Core library
// Escapes all special characters before query construction
let safe_query = format!(
"SELECT * FROM policies WHERE id = '{}'",
sql_escape(&user_input)
);

Command Injection β€” Architecture-Level Prevention:

  • User input is never passed directly to shell commands
  • All parameters go through whitelist validation before use
  • Parameterized commands with full argument escaping

Access Control​

Protection LayerMechanism
AuthenticationEncrypted credential verification before every operation
AuthorizationRole-based access, principle of least privilege
Audit trailImmutable log of all sensitive operations
Rate limitingRequest throttling to prevent brute force attacks

πŸ¦€ Rust β€” Memory Safety by Language Design​

Unlike traditional C/C++, Rust prevents memory vulnerabilities at compile time β€” no runtime checks, no overhead.

Common VulnerabilityC/C++Rust
Buffer overflow❌ Undetectedβœ… Compile error
Use-after-free❌ Crash/exploitβœ… Borrow checker prevents it
Null pointer dereference❌ Segfaultβœ… Option<T> forces handling
Race condition❌ Hard to detectβœ… Send/Sync traits block compilation
Memory leak❌ Commonβœ… RAII auto-releases memory

Practical outcome: No high-severity CVEs related to memory bugs in Nexus's history.


🌐 Network Connection Security​

SSH Security​

  • Key-based authentication recommended; password authentication can be disabled
  • Known hosts verification β€” prevents MITM attacks
  • Connection pooling with periodic health checks

HTTP API Security (isman)​

  • All requests go through authentication middleware
  • Input validation on every endpoint
  • Error responses do not leak system internals

πŸ“Š Monitoring and Anomaly Detection​

EventAction
Repeated login failuresIncreasing delay, alert, lockout after N attempts
Abnormal DB2 query volume (above threshold)Warning log, operator notification
Ingenium server unresponsiveImmediate alert, failover if configured
Credential decryption failureSecurity alert β€” specific reason not disclosed in response

βœ… Deployment Security Checklist​

ItemDefault Status
Credentials stored as AES-256-GCM ciphertextβœ… Mandatory
No plaintext in any log outputβœ… Mandatory
SSH using key pairs instead of passwordsπŸ”Ά Recommended
Restrictive file permissions on credential storeβœ… Mandatory
Audit log for sensitive operationsβœ… Mandatory
Network segmentation (isman not publicly exposed)πŸ”Ά Recommended
Regular credential rotationπŸ”Ά Recommended
Encrypted backup of credential storeπŸ”Ά Recommended

This document is provided for informational and advisory purposes only. All trademarks are the property of their respective owners. This project has no affiliation with DXC Technology, Sun Life, or any other third parties mentioned herein.