OSVauco/SECURITY.md
Chris Christiansen 0d73a9c258
Some checks are pending
Check Python Version Consistency / Check Python Version (push) Waiting to run
docs(security): oppdater med alle forbedringer og "ukjent bruker"-hendelse
2026-09-03 19:46:03 +00:00

8.5 KiB

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 chris.christiansen@vauco.no
  • 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.