|
| 1 | +# LumaTrace — Public Evidence Index |
| 2 | + |
| 3 | +**Version:** 1.0 |
| 4 | +**Classification:** Public |
| 5 | +**Audience:** CISO, InfoSec Auditors, Procurement Teams, Legal Counsel |
| 6 | +**Maintained by:** LumaTrace Security & Engineering Team |
| 7 | +**Contact:** enterprise@lumatrace.es |
| 8 | + |
| 9 | +> This document is the single entry point for enterprise due diligence. |
| 10 | +> It enumerates all publicly available security controls, compliance artifacts, |
| 11 | +> and engineering evidence. Sensitive materials (full pentest reports, internal |
| 12 | +> control matrices, SBOM archives) are available under a signed NDA. |
| 13 | +
|
| 14 | +--- |
| 15 | + |
| 16 | +## 1. Supply Chain Security |
| 17 | + |
| 18 | +| Control | Evidence | Status | |
| 19 | +|:---------------------------------------|:--------------------------------------------------------|:------------| |
| 20 | +| Automated SAST (CodeQL) | GitHub Actions CI — every commit | ✅ Active | |
| 21 | +| Dependency vulnerability scan (Trivy) | CI Pipeline — blocks on CRITICAL CVEs | ✅ Active | |
| 22 | +| Software Bill of Materials (CycloneDX) | `bom.json` generated per release | ✅ Active | |
| 23 | +| License compliance check | No GPL/AGPL in proprietary modules | ✅ Verified | |
| 24 | +| Container supply chain | c2patool binary hash validated at startup (`LT-SEC-05`) | ✅ Active | |
| 25 | +| Secret scanning | Trivy filesystem scan — no hardcoded secrets | ✅ Active | |
| 26 | + |
| 27 | +--- |
| 28 | + |
| 29 | +## 2. Identity, Authentication & Multi-Tenant Isolation |
| 30 | + |
| 31 | +| Control | Evidence | Status | |
| 32 | +|:------------------------------------|:----------------------------------------------------------------------------------|:---------| |
| 33 | +| Multi-tenant login isolation | `tenantId + username` composite lookup — prevents cross-tenant identity collision | ✅ Active | |
| 34 | +| JWT Zero-Trust claims | Strict `iss`, `aud`, `exp`, `nbf`, `jti` validation on every request | ✅ Active | |
| 35 | +| Active session revocation | Redis-backed JWT blocklist (`LT-SEC-02`) | ✅ Active | |
| 36 | +| Tenant data isolation | `findByIdAndTenantId` — DB-level scoping on all asset queries | ✅ Active | |
| 37 | +| RBAC enforcement | Spring `@EnableMethodSecurity` — `ROLE_USER / ROLE_AUDITOR / ROLE_ADMIN` | ✅ Active | |
| 38 | +| Rate limiting (Fail-Closed) | Redis distributed token-bucket — fails closed if Redis unavailable | ✅ Active | |
| 39 | +| X-Forwarded-For spoofing protection | CIDR-trusted proxy whitelist in `LoginRateLimitFilter` | ✅ Active | |
| 40 | + |
| 41 | +Reference: [Architecture & Trust Boundaries](./ARCHITECTURE.md) · [SOC2 Control Mapping](./SOC2_MAPPING.md) |
| 42 | + |
| 43 | +--- |
| 44 | + |
| 45 | +## 3. Cryptographic Integrity |
| 46 | + |
| 47 | +| Control | Evidence | Status | |
| 48 | +|:----------------------------|:-----------------------------------------------------------------------------|:---------| |
| 49 | +| Watermark seed derivation | RFC 5869 strict HKDF (HmacSHA256) with tenant + user + asset + nonce + keyId | ✅ Active | |
| 50 | +| Key rotation support | `keyId` parameter in HKDF info string — verifiable across key generations | ✅ Active | |
| 51 | +| C2PA hard-binding | JUMBF manifest signed with X.509 v3 PKI (RSA ps384) | ✅ Active | |
| 52 | +| Time-stamping authority | DigiCert TSA over **HTTPS** — temporal non-repudiation | ✅ Active | |
| 53 | +| PKI fail-closed | Self-signed certificates prohibited in `prod` profile | ✅ Active | |
| 54 | +| CSPRNG | AES-CTR deterministic PRNG (replaces `java.util.Random`) | ✅ Active | |
| 55 | +| Payload integrity | SHA-256 content hash verified before processing | ✅ Active | |
| 56 | +| Certificate rotation policy | 90-day C2PA signing key rotation | ✅ Active | |
| 57 | + |
| 58 | +Reference: [Security Whitepaper](./SECURITY_WHITEPAPER.md) · [Security Assurance](./ASSURANCE.md) |
| 59 | + |
| 60 | +--- |
| 61 | + |
| 62 | +## 4. Data Governance & Zero-Retention |
| 63 | + |
| 64 | +| Control | Evidence | Status | |
| 65 | +|:----------------------------|:--------------------------------------------------------------------|:---------| |
| 66 | +| Zero image retention | Processing on ephemeral `tmpfs` RAM-disk (`LT-SEC-04`) | ✅ Active | |
| 67 | +| No persistent binary assets | Only cryptographic metadata (hash, nonce, tenantId) persisted in DB | ✅ Active | |
| 68 | +| GDPR compliance | Erasure-by-design architecture — no PII in image pipeline | ✅ Active | |
| 69 | +| Data residency | Processing buffers: Spain/EU | ✅ Active | |
| 70 | + |
| 71 | +Reference: [Data Privacy Policy](./DATA_PRIVACY.md) · [Subprocessors](./SUBPROCESSORS.md) |
| 72 | + |
| 73 | +--- |
| 74 | + |
| 75 | +## 5. Infrastructure Hardening |
| 76 | + |
| 77 | +| Control | Evidence | Status | |
| 78 | +|:-------------------------------|:--------------------------------------------------------------|:---------| |
| 79 | +| Read-only container filesystem | `read_only: true` in docker-compose (`LT-SEC-05`) | ✅ Active | |
| 80 | +| Capability dropping | `cap_drop: ALL` + `no-new-privileges:true` | ✅ Active | |
| 81 | +| Non-root execution | Dockerfile runs as user `luma` | ✅ Active | |
| 82 | +| PostgreSQL SSL | `sslmode=require` on JDBC connection | ✅ Active | |
| 83 | +| Redis AUTH | `requirepass` enforced — no unauthenticated connections | ✅ Active | |
| 84 | +| Secret management | `MASTER_KEY` + `JWT_SECRET` via Docker Secrets (not env vars) | ✅ Active | |
| 85 | +| CORS policy | Explicit origin whitelist — wildcard `*` rejected at startup | ✅ Active | |
| 86 | +| TLS 1.3 | Enforced at API Gateway / Load Balancer | ✅ Active | |
| 87 | +| Certificate pinning (mobile) | `network_security_config.xml` — production domain pinned | ✅ Active | |
| 88 | + |
| 89 | +Reference: [STRIDE Threat Model](./docs/THREAT_MODEL_STRIDE.md) · [Compliance Matrix](./docs/COMPLIANCE_MATRIX.md) |
| 90 | + |
| 91 | +--- |
| 92 | + |
| 93 | +## 6. Observability & Resilience |
| 94 | + |
| 95 | +| Control | Evidence | Status | |
| 96 | +|:--------------------|:----------------------------------------------------------------------|:---------| |
| 97 | +| Distributed tracing | `x-request-id` + MDC `trace_id` / `tenant_id` on all responses | ✅ Active | |
| 98 | +| SLA commitments | 99.9% availability, P95 latency < 800ms (`/verify`) | ✅ Active | |
| 99 | +| Prometheus metrics | `/actuator/prometheus` — protection latency, success/failure counters | ✅ Active | |
| 100 | +| Anti-DoS pre-flight | Pixel count (16MP) + payload size (25MB) checked before memory load | ✅ Active | |
| 101 | + |
| 102 | +Reference: [SLA & Incident Response](./SLA_AND_INCIDENTS.md) · [Operations Runbook](./docs/OPERATIONS_RUNBOOK.md) |
| 103 | + |
| 104 | +--- |
| 105 | + |
| 106 | +## 7. Penetration Testing & Audit |
| 107 | + |
| 108 | +| Engagement | Scope | Result | Availability | |
| 109 | +|:--------------------------------------|:-------------------------------------------------|:-----------------------------------------------------|:-------------------------------------------------------------------------------------------------------| |
| 110 | +| Grey-Box API Pentest (2026-01) | Cloud API, Auth flows, Tenant Isolation | 0 Critical · 0 High · Medium/Low resolved within SLA | Redacted summary: [PENTEST_SUMMARY_TEMPLATE.md](./PENTEST_SUMMARY_TEMPLATE.md) · Full report under NDA | |
| 111 | +| External Architecture Audit (2026-03) | All 4 repositories — server, core, mobile, cloud | All P0 blockers resolved (H-01, H-02, H-03, B1, B2) | Available under NDA | |
| 112 | + |
| 113 | +--- |
| 114 | + |
| 115 | +## 8. Publicly Available Artifacts |
| 116 | + |
| 117 | +All documents below are published at **[https://cyrah2r.github.io/lumatrace-cloud/](https://cyrah2r.github.io/lumatrace-cloud/)** |
| 118 | + |
| 119 | +| Document | Purpose | |
| 120 | +|:----------------------------------------------------------------------------|:-----------------------------------------| |
| 121 | +| [Trust Center](./TRUST_CENTER.md) | Master index of all governance documents | |
| 122 | +| [Security Policy](./SECURITY.md) | Vulnerability disclosure & SLAs | |
| 123 | +| [Security Whitepaper](./SECURITY_WHITEPAPER.md) | Architecture & cryptographic controls | |
| 124 | +| [SOC2 / ISO27001 Mapping](./SOC2_MAPPING.md) | Control-to-implementation matrix | |
| 125 | +| [Data Privacy Policy](./DATA_PRIVACY.md) | GDPR · Zero-Retention · Data residency | |
| 126 | +| [SLA & Incident Response](./SLA_AND_INCIDENTS.md) | Uptime SLA · RTO/RPO · Severity matrix | |
| 127 | +| [Evidence Pack Summary](./EVIDENCE_PACK_SUMMARY.md) | Pentest status · SBOM · Key management | |
| 128 | +| [Pentest Summary (Redacted)](./PENTEST_SUMMARY_TEMPLATE.md) | Methodology · Findings summary | |
| 129 | +| [OpenAPI Specification](./api/openapi.yaml) | Full API contract v1.1.0 | |
| 130 | +| [Postman Collection](./postman/LumaTrace_Cloud_API.postman_collection.json) | Enterprise integration test suite | |
| 131 | + |
| 132 | +--- |
| 133 | + |
| 134 | +## 9. NDA Data Room |
| 135 | + |
| 136 | +Available to qualified enterprise prospects under a signed Mutual NDA: |
| 137 | + |
| 138 | +- Full unredacted Penetration Test report with CVSS scores and remediation evidence |
| 139 | +- Complete SOC2 Type II audit report |
| 140 | +- ISO 27001 internal control matrix with implementation owners |
| 141 | +- SBOM archive (CycloneDX JSON) for all production releases |
| 142 | +- Full C2PA cryptographic profile and PKI hierarchy documentation |
| 143 | +- Internal STRIDE threat model with risk scoring |
| 144 | + |
| 145 | +**Request access:** enterprise@lumatrace.es |
| 146 | + |
| 147 | +--- |
| 148 | + |
| 149 | +*© 2026 LumaTrace. This document may be shared with prospective enterprise customers for due diligence purposes.* |
0 commit comments