{
  "assessment-results": {
    "uuid": "52d4562d-1e89-50d8-b0ac-9b1e9978dd0d",
    "metadata": {
      "title": "LS Search - Automated Security Self-Assessment (NIST SP 800-53 Rev 5)",
      "last-modified": "2026-07-23T00:00:00Z",
      "version": "1.0.0",
      "oscal-version": "1.1.2",
      "props": [
        {
          "name": "assessment-type",
          "value": "automated-internal-self-assessment"
        },
        {
          "name": "independence",
          "value": "internal"
        },
        {
          "name": "disclaimer",
          "value": "This is an automated INTERNAL self-assessment produced by tooling and the engineering team. It is NOT a SOC 2 audit, ISO 27001 certification, PCI ROC, or an independent third-party assessment, and makes no such claim. It is unsigned until an operator signs the package with cosign under their own identity."
        }
      ],
      "roles": [
        {
          "id": "assessor",
          "title": "Assessor (internal engineering + tooling)"
        }
      ],
      "parties": [
        {
          "uuid": "16d79b2f-51a6-56ba-8489-2095a7e45590",
          "type": "organization",
          "name": "Aioniq Corporation",
          "email-addresses": [
            "security@aioniq.ai"
          ]
        }
      ],
      "responsible-parties": [
        {
          "role-id": "assessor",
          "party-uuids": [
            "16d79b2f-51a6-56ba-8489-2095a7e45590"
          ]
        }
      ]
    },
    "import-ap": {
      "href": "./scope.json",
      "remarks": "Scope + reviewed-controls; no separate OSCAL assessment-plan is published."
    },
    "local-definitions": {
      "activities": []
    },
    "results": [
      {
        "uuid": "ca88fbe6-bad7-5bf0-b620-b431c02899cd",
        "title": "Continuous automated assessment of the production LS Search service",
        "description": "Controls assessed against NIST SP 800-53 Rev 5 using declarative config review, the reproducible test suite, and automated scanners. This is an automated INTERNAL self-assessment produced by tooling and the engineering team. It is NOT a SOC 2 audit, ISO 27001 certification, PCI ROC, or an independent third-party assessment, and makes no such claim. It is unsigned until an operator signs the package with cosign under their own identity.",
        "start": "2026-07-23T00:00:00Z",
        "end": "2026-07-23T00:00:00Z",
        "props": [
          {
            "name": "tool",
            "value": "bandit 1.9.4"
          },
          {
            "name": "tool",
            "value": "pip-audit 2.10.1"
          },
          {
            "name": "tool",
            "value": "cyclonedx spec-1.5"
          }
        ],
        "reviewed-controls": {
          "control-selections": [
            {
              "include-controls": [
                {
                  "control-id": "sc-7"
                },
                {
                  "control-id": "ac-4"
                },
                {
                  "control-id": "ac-6"
                },
                {
                  "control-id": "sc-28"
                },
                {
                  "control-id": "sc-8"
                },
                {
                  "control-id": "sc-13"
                },
                {
                  "control-id": "sc-5"
                },
                {
                  "control-id": "si-10"
                },
                {
                  "control-id": "si-4"
                },
                {
                  "control-id": "cm-2"
                },
                {
                  "control-id": "ra-5"
                },
                {
                  "control-id": "ia-2"
                }
              ]
            }
          ],
          "remarks": "Catalog: NIST SP 800-53 Rev 5 (https://raw.githubusercontent.com/usnistgov/oscal-content/main/nist.gov/SP800-53/rev5/json/NIST_SP-800-53_rev5_catalog.json)"
        },
        "observations": [
          {
            "uuid": "fdb8fe84-029f-5e6e-8397-a1b6c1a4690a",
            "title": "SC-7 - Boundary Protection (deny-by-default egress)",
            "description": "Tenant sandboxes have no route to the internet: a default-deny NetworkPolicy blocks egress (incl. external DNS); models are baked in. Verified live from a tenant pod (metadata server, internet, and DNS all blocked).",
            "methods": [
              "EXAMINE",
              "TEST"
            ],
            "collected": "2026-07-23T00:00:00Z",
            "relevant-evidence": [
              {
                "href": "deploy/k8s/networkpolicies"
              },
              {
                "href": "reproduce:tenant-egress-smoke",
                "description": "reproducible check"
              }
            ]
          },
          {
            "uuid": "897c818c-eb01-5ad5-a4d9-b053bd82f927",
            "title": "AC-4 - Information Flow Enforcement (tenant isolation)",
            "description": "Each session/workspace runs in its own gVisor sandbox pod; a default-deny policy prevents tenant-to-tenant flow. Isolation is architectural, not filter-based.",
            "methods": [
              "EXAMINE",
              "TEST"
            ],
            "collected": "2026-07-23T00:00:00Z",
            "relevant-evidence": [
              {
                "href": "gateway/trace_gateway/kube.py"
              },
              {
                "href": "gateway/tests/test_kube_spec.py"
              }
            ]
          },
          {
            "uuid": "f1c0a3c0-a7a0-545a-b661-8ede83e08d53",
            "title": "AC-6 - Least Privilege",
            "description": "Pods run non-root (uid 1000), drop ALL capabilities, read-only root filesystem, seccomp RuntimeDefault, no service-account token mounted; gateway RBAC is minimal.",
            "methods": [
              "EXAMINE"
            ],
            "collected": "2026-07-23T00:00:00Z",
            "relevant-evidence": [
              {
                "href": "gateway/trace_gateway/kube.py"
              },
              {
                "href": "deploy/k8s/gateway.yaml"
              }
            ]
          },
          {
            "uuid": "51469488-9567-57a8-990f-d04785203852",
            "title": "SC-28 - Protection of Information at Rest",
            "description": "Ephemeral sessions hold data only in memory-backed storage (tmpfs, swap disabled) and are destroyed on exit; the opt-in persistent tier seals data with AES-256-GCM under an argon2id-derived key.",
            "methods": [
              "EXAMINE"
            ],
            "collected": "2026-07-23T00:00:00Z",
            "relevant-evidence": [
              {
                "href": "gateway/trace_gateway/kube.py"
              },
              {
                "href": "gateway/trace_gateway/sealbox.py"
              }
            ]
          },
          {
            "uuid": "ed890eab-65f6-5070-9984-182f267524e3",
            "title": "SC-8 - Transmission Confidentiality and Integrity",
            "description": "All external traffic is TLS 1.2+ (RESTRICTED profile) with HTTP->HTTPS redirect.",
            "methods": [
              "EXAMINE"
            ],
            "collected": "2026-07-23T00:00:00Z",
            "relevant-evidence": [
              {
                "href": "deploy/k8s/ingress.yaml"
              }
            ]
          },
          {
            "uuid": "5c1573c8-cde1-55f4-9532-8282eeeddf51",
            "title": "SC-13 - Cryptographic Protection",
            "description": "Security alerts are sealed with X25519 + HKDF-SHA256 + AES-GCM to an off-cluster key; vault uses AES-256-GCM + argon2id; capability tokens are HMAC-SHA256.",
            "methods": [
              "EXAMINE",
              "TEST"
            ],
            "collected": "2026-07-23T00:00:00Z",
            "relevant-evidence": [
              {
                "href": "gateway/trace_gateway/sealbox.py"
              },
              {
                "href": "gateway/tests/test_workspaces.py"
              }
            ]
          },
          {
            "uuid": "73ec2584-6c20-51c5-95bd-7de3d0209bc9",
            "title": "SC-5 - Denial of Service Protection",
            "description": "The x402 replay cache records only settled payments and is a bounded LRU, so an anonymous junk flood cannot exhaust memory/CPU; a Cloud Armor per-IP rate-limit is the edge layer. Regression-tested.",
            "methods": [
              "TEST",
              "EXAMINE"
            ],
            "collected": "2026-07-23T00:00:00Z",
            "relevant-evidence": [
              {
                "href": "gateway/tests/test_security.py"
              },
              {
                "href": "deploy/k8s/ingress.yaml"
              }
            ]
          },
          {
            "uuid": "44ba666d-2c15-5f0e-8489-457c6b512efd",
            "title": "SI-10 - Information Input Validation (fail-closed payments)",
            "description": "Payment verification fails CLOSED on any malformed input (402, never a 500) and never echoes internal error detail; payer addresses are validated. Regression-tested.",
            "methods": [
              "TEST"
            ],
            "collected": "2026-07-23T00:00:00Z",
            "relevant-evidence": [
              {
                "href": "gateway/tests/test_security.py"
              },
              {
                "href": "gateway/trace_gateway/payments.py"
              }
            ]
          },
          {
            "uuid": "8a67dbee-9fcb-5367-9839-db7c30152134",
            "title": "SI-4 - System Monitoring (intrusion detection + response)",
            "description": "Decoy tripwires and behavioral monitoring detect intrusion; a tripped session is isolated, quarantined, and disposed, and an alert fires. Events are sealed so the running service cannot read its own reports.",
            "methods": [
              "EXAMINE",
              "TEST"
            ],
            "collected": "2026-07-23T00:00:00Z",
            "relevant-evidence": [
              {
                "href": "backend/tests/test_canary.py"
              },
              {
                "href": "gateway/tests/test_incident.py"
              }
            ]
          },
          {
            "uuid": "8c4f7538-13dd-5397-9e50-31cab3cfada5",
            "title": "CM-2 - Baseline Configuration (checksum-pinned engine, IaC)",
            "description": "The search kernel is checksum-gated at build time (the image will not build if the kernel source differs from its published hash); all cluster config is declarative IaC.",
            "methods": [
              "EXAMINE"
            ],
            "collected": "2026-07-23T00:00:00Z",
            "relevant-evidence": [
              {
                "href": "deploy/instance/kernel.sha256"
              },
              {
                "href": "deploy/k8s"
              }
            ]
          },
          {
            "uuid": "2dd219d2-c3b3-5fee-a7f5-61155b837d7d",
            "title": "RA-5 - Vulnerability Scanning (this assessment)",
            "description": "Automated SAST (bandit) over the service code found 0 high-severity issues; the 12 medium findings are triaged as benign or false positives (bind-all on a containerized server, mount-path literals, offline model load, SQL false positives). A dependency audit (pip-audit) found 0 known vulnerabilities across the resolved dependency set; a CycloneDX SBOM is attached.",
            "methods": [
              "TEST"
            ],
            "collected": "2026-07-23T00:00:00Z",
            "relevant-evidence": [
              {
                "href": "evidence/bandit.json"
              },
              {
                "href": "evidence/pip-audit.json"
              },
              {
                "href": "evidence/sbom.cdx.json"
              }
            ]
          },
          {
            "uuid": "c3c52bfe-c722-5397-b752-8b9012abec44",
            "title": "IA-2 - Identification and Authentication (tailored: cryptographic, accountless)",
            "description": "TAILORED. There are no user accounts or passwords by design. Humans authenticate by signing a single-use challenge with a wallet (SIWE); agents authenticate by paying (the settled payer address is the identity); workspace calls use HMAC capability tokens. Traditional account/MFA interpretations are intentionally not applicable.",
            "methods": [
              "EXAMINE",
              "TEST"
            ],
            "collected": "2026-07-23T00:00:00Z",
            "relevant-evidence": [
              {
                "href": "gateway/trace_gateway/wallet.py"
              },
              {
                "href": "gateway/tests/test_workspaces.py"
              }
            ]
          }
        ],
        "risks": [],
        "findings": [
          {
            "uuid": "23562162-501c-5c14-9f1a-d52b3389dae4",
            "title": "SC-7 Boundary Protection (deny-by-default egress)",
            "description": "Tenant sandboxes have no route to the internet: a default-deny NetworkPolicy blocks egress (incl. external DNS); models are baked in. Verified live from a tenant pod (metadata server, internet, and DNS all blocked).",
            "target": {
              "type": "objective-id",
              "target-id": "sc-7_obj",
              "status": {
                "state": "satisfied"
              }
            },
            "related-observations": [
              {
                "observation-uuid": "fdb8fe84-029f-5e6e-8397-a1b6c1a4690a"
              }
            ]
          },
          {
            "uuid": "ef88c90e-ca82-5023-8177-20750b3f5bfc",
            "title": "AC-4 Information Flow Enforcement (tenant isolation)",
            "description": "Each session/workspace runs in its own gVisor sandbox pod; a default-deny policy prevents tenant-to-tenant flow. Isolation is architectural, not filter-based.",
            "target": {
              "type": "objective-id",
              "target-id": "ac-4_obj",
              "status": {
                "state": "satisfied"
              }
            },
            "related-observations": [
              {
                "observation-uuid": "897c818c-eb01-5ad5-a4d9-b053bd82f927"
              }
            ]
          },
          {
            "uuid": "b40fa8ea-3447-5ebd-810c-2a4d5aaad6a9",
            "title": "AC-6 Least Privilege",
            "description": "Pods run non-root (uid 1000), drop ALL capabilities, read-only root filesystem, seccomp RuntimeDefault, no service-account token mounted; gateway RBAC is minimal.",
            "target": {
              "type": "objective-id",
              "target-id": "ac-6_obj",
              "status": {
                "state": "satisfied"
              }
            },
            "related-observations": [
              {
                "observation-uuid": "f1c0a3c0-a7a0-545a-b661-8ede83e08d53"
              }
            ]
          },
          {
            "uuid": "4f386c60-bb79-5720-926b-a7f54cc976bc",
            "title": "SC-28 Protection of Information at Rest",
            "description": "Ephemeral sessions hold data only in memory-backed storage (tmpfs, swap disabled) and are destroyed on exit; the opt-in persistent tier seals data with AES-256-GCM under an argon2id-derived key.",
            "target": {
              "type": "objective-id",
              "target-id": "sc-28_obj",
              "status": {
                "state": "satisfied"
              }
            },
            "related-observations": [
              {
                "observation-uuid": "51469488-9567-57a8-990f-d04785203852"
              }
            ]
          },
          {
            "uuid": "4609fad4-7706-5302-883b-9ced3c37dda9",
            "title": "SC-8 Transmission Confidentiality and Integrity",
            "description": "All external traffic is TLS 1.2+ (RESTRICTED profile) with HTTP->HTTPS redirect.",
            "target": {
              "type": "objective-id",
              "target-id": "sc-8_obj",
              "status": {
                "state": "satisfied"
              }
            },
            "related-observations": [
              {
                "observation-uuid": "ed890eab-65f6-5070-9984-182f267524e3"
              }
            ]
          },
          {
            "uuid": "4acf6c80-8661-56bf-a10c-3b93fa8a7035",
            "title": "SC-13 Cryptographic Protection",
            "description": "Security alerts are sealed with X25519 + HKDF-SHA256 + AES-GCM to an off-cluster key; vault uses AES-256-GCM + argon2id; capability tokens are HMAC-SHA256.",
            "target": {
              "type": "objective-id",
              "target-id": "sc-13_obj",
              "status": {
                "state": "satisfied"
              }
            },
            "related-observations": [
              {
                "observation-uuid": "5c1573c8-cde1-55f4-9532-8282eeeddf51"
              }
            ]
          },
          {
            "uuid": "97f94ca1-7e2f-51d5-85fd-43136f860f06",
            "title": "SC-5 Denial of Service Protection",
            "description": "The x402 replay cache records only settled payments and is a bounded LRU, so an anonymous junk flood cannot exhaust memory/CPU; a Cloud Armor per-IP rate-limit is the edge layer. Regression-tested.",
            "target": {
              "type": "objective-id",
              "target-id": "sc-5_obj",
              "status": {
                "state": "satisfied"
              }
            },
            "related-observations": [
              {
                "observation-uuid": "73ec2584-6c20-51c5-95bd-7de3d0209bc9"
              }
            ]
          },
          {
            "uuid": "36b36bec-1809-534b-b746-bf3b3cee4ead",
            "title": "SI-10 Information Input Validation (fail-closed payments)",
            "description": "Payment verification fails CLOSED on any malformed input (402, never a 500) and never echoes internal error detail; payer addresses are validated. Regression-tested.",
            "target": {
              "type": "objective-id",
              "target-id": "si-10_obj",
              "status": {
                "state": "satisfied"
              }
            },
            "related-observations": [
              {
                "observation-uuid": "44ba666d-2c15-5f0e-8489-457c6b512efd"
              }
            ]
          },
          {
            "uuid": "78bd52b0-146b-50fb-b0ea-b2f6ba3acfe7",
            "title": "SI-4 System Monitoring (intrusion detection + response)",
            "description": "Decoy tripwires and behavioral monitoring detect intrusion; a tripped session is isolated, quarantined, and disposed, and an alert fires. Events are sealed so the running service cannot read its own reports.",
            "target": {
              "type": "objective-id",
              "target-id": "si-4_obj",
              "status": {
                "state": "satisfied"
              }
            },
            "related-observations": [
              {
                "observation-uuid": "8a67dbee-9fcb-5367-9839-db7c30152134"
              }
            ]
          },
          {
            "uuid": "0a918b63-db6e-5e56-b51c-4db97742139b",
            "title": "CM-2 Baseline Configuration (checksum-pinned engine, IaC)",
            "description": "The search kernel is checksum-gated at build time (the image will not build if the kernel source differs from its published hash); all cluster config is declarative IaC.",
            "target": {
              "type": "objective-id",
              "target-id": "cm-2_obj",
              "status": {
                "state": "satisfied"
              }
            },
            "related-observations": [
              {
                "observation-uuid": "8c4f7538-13dd-5397-9e50-31cab3cfada5"
              }
            ]
          },
          {
            "uuid": "4bb51eee-8aa2-56fe-89cb-26de8fa24c34",
            "title": "RA-5 Vulnerability Scanning (this assessment)",
            "description": "Automated SAST (bandit) over the service code found 0 high-severity issues; the 12 medium findings are triaged as benign or false positives (bind-all on a containerized server, mount-path literals, offline model load, SQL false positives). A dependency audit (pip-audit) found 0 known vulnerabilities across the resolved dependency set; a CycloneDX SBOM is attached.",
            "target": {
              "type": "objective-id",
              "target-id": "ra-5_obj",
              "status": {
                "state": "satisfied"
              }
            },
            "related-observations": [
              {
                "observation-uuid": "2dd219d2-c3b3-5fee-a7f5-61155b837d7d"
              }
            ]
          },
          {
            "uuid": "cca21e0c-f337-51b5-a6a7-12e8c0f8a845",
            "title": "IA-2 Identification and Authentication (tailored: cryptographic, accountless)",
            "description": "TAILORED. There are no user accounts or passwords by design. Humans authenticate by signing a single-use challenge with a wallet (SIWE); agents authenticate by paying (the settled payer address is the identity); workspace calls use HMAC capability tokens. Traditional account/MFA interpretations are intentionally not applicable.",
            "target": {
              "type": "objective-id",
              "target-id": "ia-2_obj",
              "status": {
                "state": "satisfied"
              }
            },
            "related-observations": [
              {
                "observation-uuid": "c3c52bfe-c722-5397-b752-8b9012abec44"
              }
            ]
          }
        ]
      }
    ]
  }
}