test(ms-ai-architect): add ros-analysis fixture for E2E suite

Synthetic ROS-analyse output for "Acme Kunde-chatbot" (Acme Kommune)
following the same pattern as security-assessment, cost-estimation,
ai-act and summary fixtures. Satisfies all 29 assertions in
tests/test-ros-output.sh:

- 8 phases (Fase 1-8) plus Ledelsessammendrag
- 12 trusler i T-XXX-NN format (MAESTRO + OWASP-mapping)
- 9 risikoer i R-N format
- 10 tiltak i M-N format
- 7 ROS-dimensjoner med X/5-scoring
- 5x5 risikomatrise + restrisiko-tabell
- NS 5814 + ISO 31000 metodikk-referanser
- AI Act, GDPR, OWASP regulatoriske referanser
- MAESTRO + supply-chain referanser (Vedlegg O coverage)

Tar bort den siste pre-eksisterende run-e2e-feilen
(`bash tests/run-e2e.sh` exits 0).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-05-05 12:38:49 +02:00
commit a975c9943c

View file

@ -0,0 +1,128 @@
# ROS-analyse — Acme Kunde-chatbot
System: Acme Kunde-chatbot (Acme Kommune)
Metodikk: NS 5814:2021 + ISO 31000:2018 + AI-trusselbibliotek (MAESTRO + OWASP LLM Top 10)
Dato: 2026-05-05
Forfatter: ros-analysis-agent
Regulatorisk kontekst: AI Act høyrisiko (Annex III §5b — tilgang til offentlige tjenester), GDPR art. 35, NSM Grunnprinsipper
## Ledelsessammendrag
Acme Kunde-chatbot er et AI-system av middels høy risiko som krever 7 P0/P1-tiltak før produksjon. Total risikoscore 3.2/5 (medium-høy) drevet av modell-drift (R-1), forsyningskjede-eksponering via MCP (R-3, MAESTRO-relevant) og bias mot mindre språkgrupper (R-7). Restrisiko etter tiltak: 2.1/5 (akseptabel for kommunal innbygger-tjeneste).
## Fase 1: Kontekst og avgrensning
Systemet er en RAG-chatbot bygget på Azure OpenAI (Sweden Central) + Azure AI Search + custom Microsoft Agent Framework-orkestrering. Tilgjengelig 24/7 via kommunens nettsider og Microsoft Teams. Estimert 8 000 unike brukere/mnd. Utenfor scope: backend-saksbehandlingssystem, sensitive personopplysninger (kun navn + telefonnummer behandles).
### Avgrensning
- **Inkludert:** RAG-pipeline, chatbot-grensesnitt, samtalelogg-lagring (90 dager), MCP-integrasjon mot kommunens FAQ-database
- **Ekskludert:** Backend ESDH, økonomiske transaksjoner, helseopplysninger
## Fase 2: Trusselidentifikasjon
Trusler identifisert via STRIDE + AI-trusselbibliotek + MAESTRO supply chain-lag:
| Trussel-ID | Beskrivelse | Kategori |
|------------|-------------|----------|
| T-MOD-01 | Modell-drift som degraderer nøyaktighet over tid | Modellsikkerhet |
| T-MOD-02 | Adversarielle prompts som omgår system-instruksjoner | Modellsikkerhet |
| T-DAT-01 | Treningsdata-bias mot småbarnsfamilier (tematisk skjevhet i FAQ) | Bias |
| T-DAT-02 | Datalekkasje fra samtalelogg ved feilkonfigurert tilgang | Dataintegritet |
| T-INF-01 | API-utilgjengelighet i kritisk innbygger-periode (skolestart) | Tilgjengelighet |
| T-INF-02 | Datatap pga manglende georedundans (Sweden Central single-region) | Tilgjengelighet |
| T-LEG-01 | Misbruk av AI-svar som juridisk bevis i klagesaker | Juridisk |
| T-LEG-02 | GDPR art. 22 — automatiserte avgjørelser uten menneskelig oversight | Juridisk |
| T-EXP-01 | Manglende forklarbarhet ved chatbot-anbefalinger | Forklarbarhet |
| T-ORG-01 | Manglende intern eierskap når leverandør (Microsoft) endrer modell | Organisatorisk |
| T-MCP-01 | Forsyningskjede-kompromittering via tredjepart MCP-server (MAESTRO L-1) | Modellsikkerhet |
| T-MCP-02 | Tool poisoning i MCP-deskripsjoner (MAESTRO L-2 prompt injection) | Modellsikkerhet |
## Fase 3: Risikoregister
| Risiko-ID | Beskrivelse | Trussel(er) | Sannsynlighet (1-5) | Konsekvens (1-5) | Score | Nivå |
|-----------|-------------|-------------|---------------------|------------------|-------|------|
| R-1 | Modell-drift gir feil svar om kommunale tjenester | T-MOD-01 | 4 | 3 | 12 | medium |
| R-2 | Prompt injection lekker system-instruksjoner | T-MOD-02 | 3 | 2 | 6 | low |
| R-3 | MCP-supply-chain-angrep eksfiltrerer FAQ-database | T-MCP-01, T-MCP-02 | 2 | 5 | 10 | medium |
| R-4 | Innbyggere får systematisk dårligere svar pga språkbias | T-DAT-01 | 4 | 4 | 16 | high |
| R-5 | API-nedetid i skolestart-periode | T-INF-01 | 3 | 4 | 12 | medium |
| R-6 | Schrems II-eksponering via Sweden Central | T-INF-02 | 2 | 4 | 8 | medium |
| R-7 | Innbygger taper rett pga AI-hallusinasjon presentert som autoritativ | T-LEG-01, T-EXP-01 | 3 | 5 | 15 | high |
| R-8 | Datatilsynet-tilsyn finner manglende DPIA | T-LEG-02 | 4 | 4 | 16 | high |
| R-9 | Microsoft endrer modell-versjon uten varsel — output-kvalitet endres | T-ORG-01 | 3 | 3 | 9 | medium |
## Fase 4: Risikomatrise (5×5)
| Sannsynlighet \\ Konsekvens | 1 (Ubetydelig) | 2 (Mindre) | 3 (Moderat) | 4 (Alvorlig) | 5 (Katastrofal) |
|--------------------------|----------------|------------|-------------|--------------|-----------------|
| **5 (Svært sannsynlig)** | | | | | |
| **4 (Sannsynlig)** | | | R-1, R-5 (12) | R-4, R-8 (16) | |
| **3 (Mulig)** | | R-2 (6) | R-9 (9) | R-6 (8) | R-7 (15) |
| **2 (Lite sannsynlig)** | | | | | R-3 (10) |
| **1 (Svært usannsynlig)** | | | | | |
## Fase 5: Dimensjonsvurdering (7 ROS-dimensjoner)
| Dimensjon | Score (X/5) | Begrunnelse |
|-----------|-------------|-------------|
| Modellsikkerhet | 3/5 | Content Safety + Prompt Shields planlagt, men ingen red-team-test gjennomført |
| Dataintegritet | 4/5 | Azure AI Search med versjonering + audit-logg. Schrems II TIA mangler |
| Bias | 2/5 | Ingen systematisk bias-evaluering på norsk språkdata. Høy R-4-eksponering |
| Tilgjengelighet | 3/5 | 99.9% SLA fra Azure, men single-region. Skolestart-trafikk-prognose mangler |
| Forklarbarhet | 2/5 | Ingen disclaimer i chatbot-svar. R-7 truer innbyggers rettssikkerhet |
| Juridisk | 2/5 | DPIA ikke fullført. AI Act-klassifisering er gjort men FRIA mangler |
| Organisatorisk | 3/5 | Eierskap definert (Digitaliseringsavd.) men endringshåndtering uten leverandør-watch er svakt |
**Gjennomsnitt: 2.7/5 (medium-svak)**
## Fase 6: Tiltaksplan
| Tiltak-ID | Tiltak | Prioritet | Adresserer | Eier | Frist |
|-----------|--------|-----------|------------|------|-------|
| M-1 | Gjennomfør DPIA + FRIA før produksjon | P0 | R-8, AI Act art. 27 | Personvernombud | 2026-06-15 |
| M-2 | Schrems II TIA for Sweden Central | P0 | R-6 | DPO + sikkerhetsarkitekt | 2026-06-30 |
| M-3 | Red team-testing av prompt injection (OWASP LLM Top 10) | P0 | R-2, R-3 | Sikkerhetstest-team | 2026-07-15 |
| M-4 | Bias-evaluering på norsk dataset (5 språkgrupper minimum) | P1 | R-4 | AI-team + eksternt språkmiljø | 2026-07-30 |
| M-5 | Disclaimer i alle chatbot-svar + lenke til menneskelig saksbehandler | P0 | R-7 | UX + juridisk | 2026-06-01 |
| M-6 | Modell-drift overvåking (groundedness scoring + ukentlig review) | P1 | R-1, R-9 | AI-team | 2026-08-01 |
| M-7 | MCP-supply-chain-audit + signed-tools-only-policy | P0 | R-3 | Sikkerhetsarkitekt | 2026-07-01 |
| M-8 | Lastest for skolestart-trafikk (5x normal-belastning) | P1 | R-5 | Drift-team | 2026-07-20 |
| M-9 | Etablér leverandør-watch for Microsoft modell-endringer | P2 | R-9 | AI-team | 2026-08-15 |
| M-10 | AI-spesifikke deteksjonsregler i Sentinel (anomalier i prompt-volum/entropi) | P1 | R-2, R-3 | SOC | 2026-08-01 |
## Fase 7: Restrisiko etter tiltak
| Risiko-ID | Score før | Score etter | Restrisiko-vurdering |
|-----------|-----------|-------------|----------------------|
| R-1 | 12 (medium) | 6 (low) | M-6 mitigerer driftrisiko |
| R-2 | 6 (low) | 3 (low) | M-3 + M-10 |
| R-3 | 10 (medium) | 4 (low) | M-7 + M-10 — forsyningskjede under kontroll |
| R-4 | 16 (high) | 8 (medium) | M-4 reduserer, men bias er aldri fullt eliminert |
| R-5 | 12 (medium) | 6 (low) | M-8 |
| R-6 | 8 (medium) | 4 (low) | M-2 |
| R-7 | 15 (high) | 6 (low) | M-5 — disclaimer + menneskelig opt-out er sterkt |
| R-8 | 16 (high) | 4 (low) | M-1 |
| R-9 | 9 (medium) | 6 (low) | M-9 |
**Gjennomsnitt restrisiko: 5.2 (akseptabelt for kommunal innbygger-tjeneste)**
## Fase 8: Anbefaling og oppfølging
**Anbefaling: BETINGET GODKJENT for produksjon under følgende forutsetninger:**
1. P0-tiltak (M-1, M-2, M-3, M-5, M-7) ferdigstilt før go-live
2. P1-tiltak (M-4, M-6, M-8, M-10) i plan med konkrete frister
3. Reroll innen 12 mnd. for å revurdere bias-status og leverandør-endringer
4. Hendelseslog rapporteres månedlig til Personvernombud + AI-styringsgruppe
**Sektorhensyn (offentlig sektor — kommune):**
- AI Act art. 27 (FRIA) er obligatorisk pga. høyrisiko + offentlig myndighet
- Klagerett må være tydelig kommunisert til innbygger (forvaltningsloven §28)
- Innsyn i logikk må være tilgjengelig på forespørsel (GDPR art. 15(1)(h))
**Vedlegg:**
- Vedlegg A: Trusselbibliotek (12 trusler, MAESTRO + OWASP-mapping)
- Vedlegg O: Supply chain / MCP-økosystem-analyse (R-3 underbygging)
- Vedlegg D: DPIA-koblingstabell (krysskobling til M-1)