Skip to main content

Threat Model

Attack SurfaceThreatMitigation
API endpointsUnauthorized accessAuth middleware on all routes except /api/v1/health
API endpointsBrute forceRate limiting per token and per IP
Master keyExtraction from memoryNever stored as string (use []byte, zeroize after use), envelope encryption via KMS
Master keyExtraction from diskNever stored on disk in plaintext — KMS reference only
Plugin packageSupply chain attack (malicious plugin)Ed25519 signature verification before loading
Plugin packageTampered after downloadSHA-256 checksum verification on every load
Plugin runtimeRogue plugin accesses network/filesystemSandboxed execution — plugins can ONLY call host functions, no direct I/O
Plugin runtimePlugin accesses other plugins' dataStore scoping — plugin_data filtered by engine_id + realm_id
Plugin runtimePlugin escalates privilegesCapability model — core grants only declared capabilities
Stored secretsDatabase compromiseAES-256-GCM encryption at rest, key never stored in DB
Stored secretsMemory dumpSecrets decrypted only at point of use, not cached in memory
Audit logTamperingAppend-only table, optional HMAC chain, SIEM export for external copy
Activation keyPiracy / key sharingBound to org fingerprint (hardware ID + org name), periodic heartbeat
Config fileCredential leakageNo plaintext secrets in config — env vars or KMS references only
API in transitMan-in-the-middleTLS required in ALL modes (auto-generated self-signed if not configured), mTLS option for Multi-node
CLI credentialsToken theft from diskToken file at ~/.arcan/token with 0600 permissions, token expiry