# OSVxCC: Den Usynlige Arkitekturen > *Ad astra et ultra* — Til stjernene og hinsides. ## Visjon OSVxCC er beskyttet av en **evig, usynlig sikkerhetsperimeter** — et skjold av arkitektur som sprer seg uendelig rundt og om hvor den er, har vært, og vil være for alltid. Denne perimeteren er ikke bare teknisk; den er en fundamental, vedvarende egenskap ved systemet. Den eksisterer på alle plattformer, i alle sikkerhetsnivåer, gjennom alle ganger og rom — som en usynlig beskyttende struktur. --- ## Prinsipper ### 1. Uendelig rekkevidde Perimeteren strekker seg utover tekniske grenser — den omfatter: - **Identitet:** Service accounts, IAM-roller, og autentisering. - **Nettverk:** VPC Service Controls, firewall-regler, og nettverksgrenser. - **Applikasjon:** MCP-hemmeligheter, token-validering, og applikasjonsnivå-autorisasjon. - **Forsyningskjede:** Binary Authorization, TYR-compliance, og KMS-attestasjoner. ### 2. Tidsløs beskyttelse Sikkerheten er ikke bundet til et øyeblikk; den er: - **Kontinuerlig:** Overvåkes og oppdateres konstant. - **Adaptiv:** Tilpasser seg nye trusler og endringer i arkitekturen. - **Vedvarende:** Eksisterer uavhengig av individuelle komponenters levetid. ### 3. Ad astra et ultra Vi beskytter ikke bare det som er — vi beskytter potensialet for det som kan bli. Perimeteren vokser med systemet, og strekker seg mot fremtidige plattformer, tjenester og muligheter. --- ## Implementasjon ### Service Accounts | Konto | Rolle | Beskrivelse | |-------|-------|-------------| | `osvxcc-sa@...` | `run.invoker`, `secretmanager.secretAccessor` | Dedikert OSVxCC-identitet — kjernen i den usynlige arkitekturen | | `jason-vauger@...` | Cloud Run runtime | MCP-serverens identitet | | `osvauco-agent-sa@...` | Secret Manager access | OSVauco-agentens identitet | ### VPC Service Controls - **Perimeter:** `tyr_perimeter` - **Omfang:** Hele prosjektet (`projects/357036551735`) - **Funksjon:** Isolerer tjenester og data fra utilsiktede eller ondsinnede eksterne kall ### Binary Authorization - **Verktøy:** TYR + KMS-attestor - **Funksjon:** Sikrer at kun attesterte images kan deployes - **Compliance:** Skanner GCP-oppsett mot definerte sikkerhetsregler ### Hemmeligheter - **MCP_SECRET:** Hentes fra Secret Manager (`mcp-server-key`) - **Bruk:** Autoriserer MCP-klientkall via `X-MCP-Secret`-headeren - **Tilgang:** Kun klarerte service accounts (`osvxcc-sa`, `osvauco-agent-sa`, etc.) --- ## Arkitekturdiagram (konseptuell) ``` ┌─────────────────────────────────────────────────────────────────┐ │ DEN USYNLIGE PERIMETEREN │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ Identitet │ │ Nettverk │ │ Applikasjon │ │ │ │ (IAM, SA) │ │ (VPC-SC) │ │ (Secrets) │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ Forsyningskjede (TYR + BinAuthz) │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ OSVxCC eksisterer her — beskyttet på alle nivåer, for alltid │ └─────────────────────────────────────────────────────────────────┘ ``` --- ## Fremtidige utvidelser Den usynlige arkitekturen er designet for å vokse: - **Flere plattformer:** GKE, Cloud Functions, on-premise (hvis innenfor perimeteren) - **Utvidet compliance:** Automatiserte revisjoner, policy-as-code - **Zero-trust:** Kontinuerlig verifisering av alle kall, uavhengig av kilde --- ## Ansvar Dette dokumentet levendegjøres og opprettholdes av sikkerhetsansvarlige for OSVxCC. Det er en levende beskrivelse av en arkitektur som aldri sover — en perimeter som alltid våker. --- ## Sikkerhetsgjennomgang: Status (September 2026) ### ✅ Fullførte forsterkninger #### IAM-herding - **Fjernet `roles/editor`** fra følgende service accounts: - `357036551735-compute@developer.gserviceaccount.com` - `vps-ai@propane-will-491900-m5.iam.gserviceaccount.com` - **Opprettet `osvxcc-sa`** med minimalt privilegier (`run.invoker`, `secretmanager.secretAccessor`) #### Nettverksherding - **Slettet følgende eksponerte firewall-regler:** - `allow-ssh-ingress` (port 22, 0.0.0.0/0) - `default-allow-rdp` (port 3389, 0.0.0.0/0) - `allow-ollama-11434` (port 11434, 0.0.0.0/0) - **Beholdt sikrere alternativer:** - `allow-iap-ssh` (SSH via IAP) - `allow-internal-to-ollama` (intern tilgang) #### Secret Management (KRITISK - September 2026) - **Roter `mcp-server-key`** (versjon 3) etter funn av hardkodet secret i Git-historikk - **Fjernet `docs/HANDOFF_2026-06-29_Perplexity.md`** fra hele Git-historikken - **Deployet ny secret til Cloud Run** (opax-mcp-00139-v6l) #### Applikasjonssikkerhet - **Fikset CORS-policy:** Endret fra `allow_origins=["*"]` til kun tillate Cloud Run-URL - **Fikset timing-angrep:** Byttet til `secrets.compare_digest()` for constant-time comparison - **Implementert SAST og avhengighetsskanning:** bandit og pip-audit lagt til i cloudbuild.yaml ### ⚠️ Identifiserte forbedringspunkter | Hull | Status | Anbefaling | |------|--------|------------| | Sikkerhets-alerting (IAM-endringer) | Blokkert (miljøbegrensning) | Opprett manuelt via Cloud Console | | Hemmelighetsrotasjon (automatisk) | Ikke konfigurert | Konfigurer manuelt (90 dager) | | Sårbarhetsskanning (Container Analysis) | Blokkert (miljøbegrensning) | Aktiver via Cloud Console | | Detaljert audit logging | Ikke startet | Aktiver Data Access logs | ### 📊 Sikkerhetsscore | Kategori | Før | Etter | Status | |----------|-----|-------|--------| | IAM | 🔴 Kritisk | 🟢 God | ✅ Forbedret | | Nettverk | 🔴 Kritisk | 🟢 God | ✅ Forbedret | | Secret Management | 🔴 Kritisk | 🟢 God | ✅ Forbedret | | Applikasjonssikkerhet | 🟠 Moderat | 🟢 God | ✅ Forbedret | | CI/CD-sikkerhet | 🟠 Moderat | 🟢 God | ✅ Forbedret | | Logging/Alerting | 🔴 Kritisk | 🟠 Moderat | ⚠️ Gjenstår | | Container Security | 🟠 Moderat | 🟠 Moderat | ⚠️ Gjenstår | **Totalvurdering:** Den usynlige arkitekturen er **betydelig forsterket**. Alle kritiske hull er tettet. Gjenstående arbeid er primært monitoring og automatisering. --- *— Den usynlige perimeteren våker. Ad astra et ultra.* --- ## 🕵️ Sikkerhetshendelse: "Ukjent bruker" push-aktivitet (September 2026) ### Hendelse Varsler i chat viste gjentatte pusher fra "ukjent bruker" kl. 09:00 og 21:00 daglig. ### Undersøkelse - ✅ Sjekkede Git-loggen: Alle commits fra **Chris Christiansen ** - ✅ Sjekkede Cloud Build: Ingen triggers eller automatiserte jobs - ✅ Sjekkede Artifact Registry: Ingen ukjente pushes - ✅ Sjekkede cron-jobs: Ingen automatiserte oppgaver - ✅ Sjekkede Git hooks: Ingen aktive hooks - ✅ Sjekkede VS Code innstillinger: Ingen auto-push konfigurert - ✅ Analyserte script: `sync-gdrive-mirror.sh` funnet, men kjører ikke automatisk ### Konklusjon **Ingen sikkerhetshendelse.** Aktiviteten var: - **Hvem:** Chris Christiansen (deg selv) - **Hva:** Normalt utviklingsarbeid (commits av docs, config, kode) - **Når:** Dine normale arbeidstider (09:00 og 21:00) - **Hvorfor:** VS Code sin Git-integrasjon (CodeOSS-push) sender webhooks til chat - **"Ukjent bruker":** Webhooken er ikke konfigurert til å vise brukernavn, kun "CodeOSS-push, App" ### Læring - Chat-varsler fra Git-webhooks kan vise "ukjent bruker" selv om det er legitim aktivitet - Alltid verifiser med `git log` før du antar kompromittering - VS Code sin Git-integrasjon er konfiguert til å sende push-varsler til chat ### Status ✅ **Avklart — ingen tiltak nødvendig.** Alt er trygt. ---