Wavult Group AB · Konfidentiellt — Intern användning
| Standard | Nuläge | Target | ETA |
|---|---|---|---|
| ISO 42001 | 47% | 90% | Q3 2026 pre-assess |
| ISO 9001 | 31% | 70% | Q1 2027 |
| SOC 2 Type II | 67% | 100% | Q4 2026 |
| ISO 27001 | 60% | 100% | Q1 2027 |
| EU AI Act | 67% | 82% | Q3 2026 |
| GDPR | 90% | 100% | Q2 2026 |
| Kontroll | Kategori | Status | Detalj |
|---|---|---|---|
| JWT Fallback-Secret | Autentisering | 🔴 KRITISK | || 'amos-fallback-secret' rad 19, 156, 2114 — produktions-JWT kan signeras med känd nyckel om env-var saknas |
| Root-processer (microservices) | Process Isolation | 🔴 KRITISK | operations, analytics, commerce, cto, people-service kör som root. server.mjs: dubbel process root + amos |
| Port 3100 extern | Nätverk | ✅ FIXAD | UFW: 3100/tcp DENY Anywhere · Lyssnar 127.0.0.1:3100 only |
| HSTS | TLS/Headers | ✅ PASS | max-age=63072000; includeSubDomains (wavult-headers.conf) |
| X-Frame-Options | Headers | ✅ PASS | SAMEORIGIN på alla vhosts |
| X-Content-Type-Options | Headers | ✅ PASS | nosniff aktivt |
| Referrer-Policy | Headers | ✅ PASS | strict-origin-when-cross-origin (wavult-headers.conf) |
| Content-Security-Policy | Headers | ❌ SAKNAS | CSP ej konfigurerat i nginx på någon vhost. Krävs SOC2 + TÜV. |
| Vyra-backend tester | Test Coverage | ❌ SAKNAS | Noll test-filer i vyra-backend repo (db/, infra/, schemas/, services/, shared/ — ingen *.test.*). ISO 9001 §8.3 + §8.6 blockare. |
| Audit events persistens | Audit Trail | ⚠️ DELVIS | In-memory only, försvinner vid restart. Ingen audit_events-tabell i PostgreSQL. SOC2 PI1.1 FAIL. |
| TLS 1.3 | Kryptering | ✅ PASS | TLS_AES_256_GCM_SHA384 — starkaste möjliga |
| SSH Hardening | Åtkomstkontroll | ✅ PASS | PermitRootLogin=no, PasswordAuth=no, MaxAuthTries=3, AllowUsers=bernt |
| Rate Limiting (API) | Tillgänglighet | ✅ PASS | TOO_MANY_ATTEMPTS aktiveras vid request 6+ mot login-endpoint |
| Prompt Injection | AI-säkerhet | ⚠️ WARN | Injection blockeras men intern arkitekturinfo (Kafka, Redis, BullMQ) läcker i svar. Output-filtering saknas. |
# ─── P0 FIX 1: JWT Fallback-Secret (auth-routes.js rad 19, 156, 2114) ──────────
sed -i "s/ || 'amos-fallback-secret'//g" /opt/amos/api/auth-routes.js
grep "AMOS_JWT_SECRET" /opt/amos/.env || echo "⚠️ SAKNAS — lägg till AMOS_JWT_SECRET i .env omedelbart"
grep "amos-fallback-secret" /opt/amos/api/auth-routes.js && echo "FORTFARANDE KVAR" || echo "✅ Borttaget"
# ─── P0 FIX 2: Microservices som amos-user (systemd overrides) ──────────────────
for svc in operations analytics commerce cto people; do
mkdir -p /etc/systemd/system/amos-${svc}.service.d/
cat > /etc/systemd/system/amos-${svc}.service.d/override.conf << EOF
[Service]
User=amos
Group=amos
NoNewPrivileges=true
ProtectSystem=strict
PrivateTmp=true
EOF
done
systemctl daemon-reload
systemctl restart amos-operations amos-analytics amos-commerce amos-cto amos-people
ps aux | grep "amos-" | grep -v grep | awk '{print $1, $NF}'
# ─── P1 FIX: Content-Security-Policy i nginx ────────────────────────────────────
echo 'add_header Content-Security-Policy "default-src '"'"'self'"'"'; script-src '"'"'self'"'"' '"'"'unsafe-inline'"'"'; style-src '"'"'self'"'"' '"'"'unsafe-inline'"'"'; img-src '"'"'self'"'"' data: https:; connect-src '"'"'self'"'"' https://api.wavult.com; frame-ancestors '"'"'none'"'"'" always;' \
>> /etc/nginx/conf.d/wavult-headers.conf
nginx -t && systemctl reload nginx && echo "✅ CSP aktivt"
| Kontroll-ID | Kategori | Titel | Status | Ägare |
|---|---|---|---|---|
| A.2 — Policies | ||||
| A.2.2 | Policies | AI Policy | ✅ Compliant | Erik |
| A.2.3 | Policies | Alignment with Other Policies | ✅ Compliant | Erik |
| A.3 — Internal Organization | ||||
| A.3.2 | Internal Organization | AI Roles and Responsibilities | ✅ Compliant | Erik |
| A.3.3 | Internal Organization | Reporting of Concerns | ✅ Compliant | Dennis |
| A.5 — AI Impact Assessment | ||||
| A.5.2 | Impact Assessment | Impact Assessment Process | ⚠️ Gap | Dennis |
| A.5.3 | Impact Assessment | Documentation of Impact Assessment | ⚠️ Gap | Dennis |
| A.5.4 | Impact Assessment | Review of Impact Assessment | ⬜ Not Started | Dennis |
| A.6 — AI System Lifecycle | ||||
| A.6.1 | Lifecycle | Lifecycle Management | ⚠️ Gap | Johan |
| A.6.2 | Lifecycle | AI System Requirements | ✅ Compliant | Johan |
| A.6.3 | Lifecycle | AI System Design | ⚠️ Gap | Johan |
| A.6.4 | Lifecycle | Data Acquisition and Preparation | ⬜ Not Started | Johan |
| A.6.5 | Lifecycle | AI Model Development | ⚠️ Gap | Johan |
| A.6.6 | Lifecycle | AI Model Verification | ⬜ Not Started | Johan |
| A.6.7 | Lifecycle | AI System Verification | ⬜ Not Started | Johan |
| A.6.8 | Lifecycle | AI System Integration | ✅ Compliant | Johan |
| A.6.9 | Lifecycle | AI System Operation | ✅ Compliant | Bernt |
| A.6.10 | Lifecycle | AI System Monitoring | ⚠️ Gap | Bernt |
| A.7 — Data for AI Systems | ||||
| A.7.2 | Data | Data Management | ⚠️ Gap | Johan |
| A.7.3 | Data | Data Preparation | ⬜ Not Started | Johan |
| A.7.4 | Data | Data Quality | ⬜ Not Started | Johan |
| A.7.5 | Data | Data Lineage | ⬜ Not Started | Johan |
| A.7.6 | Data | Data Provenance | ⬜ Not Started | Johan |
| A.8 — Information for Users | ||||
| A.8.2 | User Info | Information to Users | ⚠️ Gap | Erik |
| A.8.3 | User Info | Instructions for Use | ⬜ Not Started | Erik |
| A.8.4 | User Info | Transparency Communication | ⚠️ Gap | Erik |
| A.9 — Human Oversight | ||||
| A.9.2 | Oversight | Human Oversight Measures | ✅ Compliant | Erik |
| A.9.3 | Oversight | Oversight Responsibilities | ✅ Compliant | Erik |
| A.10 — Testing | ||||
| A.10.2 | Testing | Testing for AI Systems | ⚠️ Gap | Johan |
| A.10.3 | Testing | Test Documentation | ⬜ Not Started | Johan |
| A.11 — Documentation | ||||
| A.11.2 | Documentation | AI System Documentation | ✅ Compliant | Bernt |
| A.11.3 | Documentation | Record Keeping | ⚠️ Gap | Bernt |
| A.12 — Incident Management | ||||
| A.12.2 | Incidents | AI Incident Handling | ✅ Compliant | Dennis |
| A.12.3 | Incidents | Incident Learning | ⚠️ Gap | Dennis |
| A.13 — Third-party AI | ||||
| A.13.2 | Third-party | Third-party AI Governance | ⚠️ Gap | Johan |
| A.13.3 | Third-party | Third-party Assessment | ⬜ Not Started | Johan |
| A.13.4 | Third-party | Third-party Contracts | ⬜ Not Started | Erik |
| A.14 — Continual Improvement | ||||
| A.14.2 | Improvement | Improvement Process | ⚠️ Gap | Erik |
| A.14.3 | Improvement | AI Management System Review | ⬜ Not Started | Erik |
| ISO 9001 klausul | Stärker ISO 42001 | Värde |
|---|---|---|
| §4.1 Kontext | A.5 Impact Assessment | Hög |
| §6.1 Riskhantering | A.5 + Riskregister | Hög |
| §7.5 Dok. information | A.11.3 Record Keeping | Kritisk |
| §8.3 Design & Dev | A.6.1–A.6.7 Lifecycle | Kritisk |
| §8.5.6 Change control | A.6.1 Lifecycle Mgmt | Hög |
| §8.6 Release criteria | A.10 Testing | Kritisk |
| §9.2 Intern revision | A.14.3 AIMS Review | Hög |
| §10.2 Korrigerande åt. | A.12.3 Incident Learning | Medium |
| Klausul | Titel | Status | Gap-beskrivning / Bevis | Ägare |
|---|---|---|---|---|
| 4 — Kontextförståelse (Understanding the Organization) | ||||
| 4.1 | Organisationens kontext | ✅ Compliant | WAVULT_TRUTH.md dokumenterar fullständig kontext: marknad, konkurrenter, bolagsstruktur, 7 intelligens-lager, go-to-market | Erik |
| 4.2 | Intressenters behov och förväntningar | ⚠️ Gap | Inget formellt stakeholder-register. Kunder, investerare, TÜV, regulatorer kartlagda informellt men ej per ISO 9001-krav (behov, förväntning, relevans) | Dennis |
| 4.3 | QMS scope (tillämpningsområde) | ⬜ Ej startad | Inget formellt QMS scope-dokument existerar. Ingångsdokument för certifiering — krävs på dag 1 av TÜV-granskning | Erik |
| 4.4 | QMS-processer och deras interaktioner | ⬜ Ej startad | Ingen processkarta (swimlane/SIPOC) för: mjukvaruutveckling, release, incident, leverantörsstyrning, onboarding | Johan |
| 5 — Ledarskap (Leadership) | ||||
| 5.1 | Ledarskap och åtagande | ✅ Compliant | AMOS_CONSTITUTION med Erik som System Owner och godkännare. SYSTEM_DEFINITION.md: formell ägarskaps-deklaration med signatur. | Erik |
| 5.2 | Kvalitetspolicy | ⚠️ Gap | AI_POLICY.md i amos-regulatory-kb täcker AI-specifika aspekter. Saknar: formell Quality Policy med kvalitetsåtaganden, kundorientering, kontinuerlig förbättring — signeras av Erik | Erik |
| 5.3 | Roller, ansvar och befogenheter | ✅ Compliant | SYSTEM_DEFINITION.md §2 + WAVULT_TRUTH §3: tydliga roller (Erik=SystemOwner, Johan=TechLead, Dennis=Legal/Compliance, Bernt=AILead) | Erik |
| 6 — Planering (Planning) | ||||
| 6.1 | Åtgärder för att hantera risker och möjligheter | ✅ Compliant | RISK_MANAGEMENT_PROCEDURE.md med riskregister (10 risker), sannolikhet × konsekvens, mitigering, ägare, kvartalsvis genomgång | Erik |
| 6.2 | Kvalitetsmål och planering | ⚠️ Gap | KPI-tracker + /api/eval finns (uptime, memory, cost). Saknar: SMART kvalitetsmål per produkt — defect rate, test coverage target (>80%), MTTR, DORA metrics (change failure rate, deployment frequency) | Johan |
| 6.3 | Planering av förändringar | ⚠️ Gap | Golden Path 10-steg dokumenterat i TUV_SYSTEM_ARCHITECTURE.md §7. Steg 2–4 (Lint/SAST/Tests) ej enforced som CI-gates i Gitea Actions. ADR-dokument saknas i repos. | Johan |
| 7 — Support (Support) | ||||
| 7.1 | Resurser (personal, infrastruktur) | ⚠️ Gap | Teamet dokumenterat (5 personer + Bernt). AWS-infrastruktur dokumenterad. Saknar: resursplan (kapacitet vs backlog), certifieringsbudget | Erik |
| 7.2 | Kompetens | ⬜ Ej startad | Ingen kompetensmatris. ISO 9001 kräver dokumenterad kompetens per roll med verifiering (utbildning, erfarenhet, intyg) | Erik |
| 7.3 | Medvetenhet (awareness) | ⬜ Ej startad | Inget awareness-program för kvalitetspolicy. Teammedlemmar måste kunna redovisa kvalitetsmål och sin roll i QMS. | Dennis |
| 7.4 | Kommunikation | ⚠️ Gap | Telegram + AMOS-alerts fungerar operativt. Saknar: formell kommunikationsplan (vad, till vem, när, kanal, frekvens) per ISO 9001 | Dennis |
| 7.5 | Dokumenterad information (dokumentkontroll) | ⚠️ Gap | 9 TÜV-dokument finns enbart i /opt/amos/data/ — ej versionshanterade i Git. Inget dokumentkontrollsystem (version, godkännande, distribution, arkivering, retention). Se System Sync Status-sektionen. | Bernt |
| 8 — Drift (Operation) — Software-kritiska klausuler | ||||
| 8.1 | Operationell planering och styrning | ⚠️ Gap | Deployment sker ad-hoc. Ingen formell sprint/release-planering dokumenterad. Golden Path ej konsekvent följd (steg 2–4 hoppas över). | Johan |
| 8.3 | Design och utveckling ⚡ KRITISK | ❌ Kritisk Gap |
vyra-backend: 0 tester (db/, infra/, schemas/, services/, shared/ — inga *.test.*-filer) amos-core package.json: "start": "node scripts/server.mjs" — inga test-scripts ADR-process: Steg 1 dokumenterat men inga ADR-dokument hittade i repos SAST: Trivy används men ej som CI BLOCK gate i Gitea Actions ISO 9001 §8.3.4 kräver "design and development controls" — utan testprocesser kan ingen release verifieras som konform |
Johan |
| 8.4 | Styrning av externa leverantörer | ⬜ Ej startad | OpenAI, Anthropic, AWS, 46elks, ElevenLabs, Cloudflare m.fl. — inga formella leverantörsbedömningar, SLA-uppföljning eller kontraktregister dokumenterat | Johan |
| 8.5 | Produktion och tjänsteleverans | ⚠️ Gap | Gitea → CodeBuild → ECS pipeline finns och fungerar. Ej deterministisk: artifact hash saknas, Docker base-images ej pinnade till sha256. Reproducerbarhet ej garanterad. | Johan |
| 8.6 | Frisläppning av produkter ⚡ KRITISK | ⬜ Ej startad | Inga formella acceptanskriterier för release. Ingen "definition of done". vyra-backend: 0 tester = ingen verifierbar release per ISO 9001. Golden Path Steg 8 (smoke tests) saknar dokumenterade kriterier. | Johan |
| 8.7 | Styrning av avvikande output | ⬜ Ej startad | Inget NC-hanteringssystem (nonconforming output). När GECL-grade F returneras eller AI-output är felaktig — hur dokumenteras, eskaleras och åtgärdas det formellt? | Dennis |
| 9 — Prestationsutvärdering (Performance Evaluation) | ||||
| 9.1 | Övervakning, mätning och analys | ⚠️ Gap | Grafana + CloudWatch + /api/eval operativt. Saknar: kundnöjdhet (CSAT), defect rate per sprint, change failure rate (DORA), test coverage % som KPI | Bernt |
| 9.2 | Intern revision ⚡ KRITISK | ⬜ Ej startad | Noll schemalagda interna revisioner. TÜV-granskare förväntar sig minst 1 intern audit/år med revisionsprotokoll, avvikelselista och uppföljning. Utan detta kan extern certifiering ej beviljas. | Dennis |
| 9.3 | Ledningsgenomgång | ⬜ Ej startad | Inget dokumenterat management review-protokoll. Krävs: periodisk genomgång av KPIs, incidenter, risker, mål — protokollförd, signerad av Erik | Erik |
| 10 — Förbättring (Improvement) | ||||
| 10.2 | Avvikelse och korrigerande åtgärd (CA) | ⚠️ Gap | INCIDENT_RESPONSE.md täcker P0–P3 reaktivt. Saknar: formellt CA-system (corrective action tracking med RCA, rotorsaksanalys, effektmätning, stängningstid) | Dennis |
| 10.3 | Kontinuerlig förbättring | ⚠️ Gap | AMOS_CONSTITUTION §8 definierar månadsvis feedback-analys och varannan-vecka red-teaming. Ej verifierbart implementerat — ingen historik av genomförda förbättringar dokumenterad i systemet | Erik |
| Prio | Åtgärd | Klausul | Insats | Ägare | ETA |
|---|---|---|---|---|---|
| P0 | Skapa QMS Scope-dokument (1–2 sidor, formell avgränsning) | §4.3 | 2h | Erik | Maj 2026 |
| P0 | Testsuite för vyra-backend (Jest/Vitest, happy-path + error-path) | §8.3, §8.6 | 1 dag | Johan | Maj 2026 |
| P0 | Aktivera Golden Path CI gates i Gitea Actions (lint + SAST + unit test = BLOCK) | §8.3, §6.3 | 1 dag | Johan | Maj 2026 |
| P1 | Quality Policy dokument (1 sida, signeras av Erik) | §5.2 | 1h | Erik | Juni 2026 |
| P1 | Kompetensmatris (person × kompetens × verifiering × datum) | §7.2 | 2h | Erik/Dennis | Juni 2026 |
| P1 | Schemalägg intern ISO 9001-revision Q3 2026 (Dennis som intern revisor) | §9.2 | 4h prep | Dennis | Q3 2026 |
| P1 | DORA-metriker i Grafana (change failure rate, deployment frequency, MTTR) | §9.1 | 0.5 dag | Bernt/Johan | Juni 2026 |
| P1 | Management Review-protokoll kvartal (mall + kalender) | §9.3 | 1h | Erik | Q3 2026 |
| P2 | Leverantörsregister med SLA-uppföljning (AWS, OpenAI, Anthropic, 46elks) | §8.4 | 3h | Johan | Juli 2026 |
| P2 | NC-hanteringsprocess (GECL grade F + incidents → CA-register) | §8.7, §10.2 | 2h | Dennis | Juli 2026 |
| P2 | Pin Docker base-images till sha256 i alla Dockerfiles | §8.5 | 0.5 dag | Johan | Juli 2026 |
| Dokument | AMOS KB /opt/amos/data/ |
Git amos-core /var/git/repos/… |
Git amos-regulatory-kb /var/git/repos/… |
Git wavult-compliance /var/git/repos/… |
Intelligence Index /opt/aamos-intelligence/ |
identity-core RDS PostgreSQL |
|---|---|---|---|---|---|---|
| TUV_AUDIT_READINESS.md | ✅ | — | — | — | — | — |
| TUV_GAP_ANALYSIS.md | ✅ | — | — | — | — | — |
| TUV_AUDIT_REPORT_2026-04-27.md | ✅ | — | — | — | — | — |
| TUV_INVESTOR_AUDIT_2026-04-27.md | ✅ | — | — | — | — | — |
| TUV_SYSTEM_ARCHITECTURE.md (AMOS-ARCH-001) |
✅ | — | — | — | — | — |
| AMOS_CONSTITUTION.md | ✅ | — | — | — | — | — |
| RISK_MANAGEMENT_PROCEDURE.md | ✅ | — | — | — | — | — |
| INCIDENT_RESPONSE.md | ✅ | — | — | — | — | — |
| SYSTEM_DEFINITION.md | ✅ | — | — | — | — | — |
| AMOS_KNOWLEDGE.md | ✅ | ✅ data/ | — | — | 🔶 152 chunks (GDPR/compliance code indexed) | — |
| AI-POLICY.md | — (via CONSTITUTION) | — | ✅ tuv-certification/ | — | — | — |
| TUV-AI-CERTIFICATION-ROADMAP.md | — | — | ✅ tuv-certification/ | — | — | — |
| ISO-standards-matrix.md | — | — | ✅ iso/ | — | — | — |
| SOC2-TypeII-guide.md | — | — | ✅ iso/ | — | — | — |
| WAVULT_TRUTH.md | ✅ | 🔶 indexed i chunks | — | — | 🔶 indexed | — |
| ISO 42001 Controls (live state) | — | — | — | — | — | 🔶 In-memory API, ej persistent |
| Audit Events (/api/audit/events) | — | — | — | — | — | ❌ In-memory, ingen tabell |
Förklaring: ✅ Finns och synkad · 🔶 Delvis (chunks/indirekt) · — Saknas helt
source /home/bernt/.openclaw/secrets/credentials.env
GITEA_HOST="wavult-api-alb-2055020040.eu-north-1.elb.amazonaws.com"
GITEA_H="Host: git.wavult.com"
REPO="wavult-group/amos-regulatory-kb"
# ─── STEG 1: Klona amos-regulatory-kb och synka TÜV-dokument ───────────────────
GIT_SSL_NO_VERIFY=true git -c "http.extraHeader=${GITEA_H}" \
clone "https://wavult:${GITEA_PASS}@${GITEA_HOST}/${REPO}.git" /tmp/reg-kb-sync
mkdir -p /tmp/reg-kb-sync/tuv-internal/
# Kopiera alla TÜV-interna dokument
for doc in TUV_AUDIT_READINESS TUV_GAP_ANALYSIS TUV_AUDIT_REPORT_2026-04-27 \
TUV_INVESTOR_AUDIT_2026-04-27 TUV_SYSTEM_ARCHITECTURE \
AMOS_CONSTITUTION RISK_MANAGEMENT_PROCEDURE INCIDENT_RESPONSE SYSTEM_DEFINITION; do
cp /opt/amos/data/${doc}.md /tmp/reg-kb-sync/tuv-internal/
done
# Skapa dokumentkontroll-index (ISO 9001 §7.5)
cat > /tmp/reg-kb-sync/tuv-internal/INDEX.md << 'INDEXEOF'
# Internal Document Register — ISO 9001 §7.5 Document Control
| Dokument | Version | Godkänd av | Datum | Nästa review |
|---|---|---|---|---|
| TUV_AUDIT_READINESS.md | 1.0 | Erik Svensson | 2026-04-27 | 2026-07-27 |
| TUV_GAP_ANALYSIS.md | 1.0 | Erik Svensson | 2026-04-27 | 2026-07-27 |
| TUV_AUDIT_REPORT_2026-04-27.md | 1.0 | Erik Svensson | 2026-04-27 | 2026-07-27 |
| TUV_INVESTOR_AUDIT_2026-04-27.md | 1.0 | Erik Svensson | 2026-04-27 | 2026-10-27 |
| TUV_SYSTEM_ARCHITECTURE.md | 1.0 | Erik Svensson | 2026-04-27 | 2026-07-27 |
| AMOS_CONSTITUTION.md | 1.0 | Erik Svensson | 2026-04-27 | 2026-07-27 |
| RISK_MANAGEMENT_PROCEDURE.md | 1.0 | Erik Svensson | 2026-04-27 | 2026-07-27 |
| INCIDENT_RESPONSE.md | 1.0 | Erik Svensson | 2026-04-27 | 2026-07-27 |
| SYSTEM_DEFINITION.md | 1.0 | Erik Svensson | 2026-04-27 | 2026-07-27 |
INDEXEOF
cd /tmp/reg-kb-sync
git config user.email "bernt@wavult.com" && git config user.name "Bernt"
git add tuv-internal/
git commit -m "docs: sync internal documents from AMOS KB [2026-05-02]
Source: /opt/amos/data/ (bernt.wavult.com)
Standard: ISO 9001 §7.5 Document Control
Reviewed-by: Bernt (AMOS AI Security Agent)"
GIT_SSL_NO_VERIFY=true git -c "http.extraHeader=${GITEA_H}" \
push "https://wavult:${GITEA_PASS}@${GITEA_HOST}/${REPO}.git" HEAD:main
cd / && rm -rf /tmp/reg-kb-sync
# ─── STEG 2: Kopiera AI-POLICY från regulatory-kb → AMOS KB ────────────────────
git --git-dir=/var/git/repos/wavult-group/amos-regulatory-kb.git \
show HEAD:tuv-certification/AI-POLICY.md > /opt/amos/data/AI-POLICY.md
git --git-dir=/var/git/repos/wavult-group/amos-regulatory-kb.git \
show HEAD:tuv-certification/TUV-AI-CERTIFICATION-ROADMAP.md \
> /opt/amos/data/TUV_CERTIFICATION_ROADMAP.md
echo "Synkat från regulatory-kb: $(ls /opt/amos/data/AI-POLICY.md /opt/amos/data/TUV_CERTIFICATION_ROADMAP.md)"
# ─── STEG 3: Re-indexera TÜV-dokument i AAMOS Intelligence ────────────────────
node /opt/aamos-intelligence/indexer.mjs --source=regulatory-kb --force 2>&1 | tail -10
# ─── STEG 4: Skapa audit_events tabell i RDS ────────────────────────────────────
# (ersätt $DATABASE_URL med korrekt DSN från /opt/amos/.env)
source /opt/amos/.env
psql "${DATABASE_URL}" << 'SQLEOF'
CREATE TABLE IF NOT EXISTS audit_events (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
trace_id UUID NOT NULL,
timestamp TIMESTAMPTZ NOT NULL DEFAULT now(),
user_id TEXT,
role TEXT,
action TEXT NOT NULL,
gecl_grade CHAR(1),
policy_result TEXT,
status TEXT,
payload_hash TEXT,
artifact_id TEXT,
force_majeure BOOLEAN DEFAULT FALSE,
created_at TIMESTAMPTZ DEFAULT now()
);
CREATE INDEX IF NOT EXISTS idx_audit_trace_id ON audit_events(trace_id);
CREATE INDEX IF NOT EXISTS idx_audit_timestamp ON audit_events(timestamp DESC);
CREATE INDEX IF NOT EXISTS idx_audit_user_id ON audit_events(user_id);
COMMENT ON TABLE audit_events IS '5-field audit log — ISO 42001 A.11.3 / SOC2 PI1.1 / ISO 9001 §7.5';
SELECT 'audit_events table ready: ' || COUNT(*) FROM audit_events;
SQLEOF
# ─── VERIFIERING ────────────────────────────────────────────────────────────────
echo "=== Sync-verifiering $(date -u +%Y-%m-%dT%H:%M:%SZ) ==="
git --git-dir=/var/git/repos/wavult-group/amos-regulatory-kb.git \
ls-tree HEAD tuv-internal/ 2>/dev/null | wc -l | xargs echo " tuv-internal/ filer:"
ls /opt/amos/data/AI-POLICY.md 2>/dev/null && echo " AI-POLICY.md: OK" || echo " AI-POLICY.md: SAKNAS"
| System | Saknar (konkret) | Prio | Risk om ej åtgärdat |
|---|---|---|---|
| amos-regulatory-kb | 9 TÜV-dokument i tuv-internal/ + INDEX.md (dokumentkontroll) | P0 | TÜV-granskare kan ej se ändringshistorik. ISO 9001 §7.5 FAIL. Certifiering blockeras. |
| identity-core RDS | Tabell audit_events saknas. ISO 42001 controls in-memory (försvinner vid restart). | P0 | SOC2 PI1.1 FAIL · ISO 42001 A.11.3 Gap kräver persistent, querybar audit trail per transaction-ID |
| AAMOS Intelligence | Alla 9 TÜV-interna dokument ej indexerade. 4009 chunks men 0 TÜV-dokumentträffar på direktsökning. | P1 | AAMOS kan ej svara på TÜV-frågor med GECL grade A (känd källa). Svagar certifieringsposition. |
| wavult-compliance (Git) | Repo innehåller bara README + src/ — noll compliance-dokument trots vilseledande namn | P1 | Confusion vid TÜV-granskning. Antingen populera eller byt namn till wavult-compliance-placeholder |
| AMOS KB | AI-POLICY.md (i regulatory-kb men ej kopierad) · TUV-CERTIFICATION-ROADMAP.md · ISO-standards-matrix.md | P2 | AMOS kan ej referera AI-POLICY med GECL grade A vid compliance-frågor |
| ID | Risk | Sannolikhet | Konsekvens | Nivå | Mitigering | Status |
|---|---|---|---|---|---|---|
| R-001 | AI-hallucination i kritiskt beslut | Medium | Hög | Hög | GECL F = stopp, kräv källa | ✅ Mitigerad |
| R-002 | Agent med för bred behörighet | Låg | Kritisk | Hög | PERMISSION_MATRIX + BLOCK | ✅ Mitigerad |
| R-003 | Prompt injection i repo-data | Låg | Hög | Medium | validateToolCall() 13 patterns | ⚠️ Delvis |
| R-004 | Okontrollerad data exfiltration | Låg | Kritisk | Hög | UFW egress whitelist | ✅ Mitigerad |
| R-005 | Deploy utan godkännande | Låg | Hög | Medium | Golden Path BLOCK gates | ⚠️ Delvis — CI gates ej enforced |
| R-006 | Föråldrade dependencies (CVE) | Medium | Medium | Medium | unattended-upgrades, Trivy | ⚠️ Delvis |
| R-007 | Bias i träningsdata | Okänd | Hög | Hög — ÖPPEN | Bias testing saknas | ❌ Öppen |
| R-008 | Förlust av audit trail (in-memory) | Medium | Kritisk | Kritisk | PostgreSQL audit_events behövs | ❌ Öppen |
| R-009 NY | JWT Fallback-Secret i källkod | Hög | Kritisk | Kritisk | Ta bort hårdkodat fallback, kräv env-var | ❌ NYTT FYND |
| R-010 NY | TÜV-dokument ej versionshanterade (single point of failure) | Hög | Hög | Hög | Sync till amos-regulatory-kb + Git-historik | ❌ NYTT FYND |
| Källa | Data | Tidsstämpel |
|---|---|---|
| GET /api/aamos/iso/status | ISO 42001 övergripande status, target, policies_count | 2026-05-02 14:19 UTC |
| GET /api/aamos/iso/controls | 38 ISO 42001 controls med status, category, owner | 2026-05-02 14:19 UTC |
| GET /api/aamos/iso/incidents | 0 aktiva incidenter | 2026-05-02 14:19 UTC |
| /opt/amos/api/auth-routes.js (grep) | JWT fallback-secret finding, rad 19/156/2114 | 2026-05-02 14:20 UTC |
| ps aux | Processtatus: root/amos/bernt-ägda processer | 2026-05-02 14:20 UTC |
| sudo ufw status | Nätverksstatus — port 3100 DENY bekräftat | 2026-05-02 14:20 UTC |
| grep /etc/nginx/ (rekursivt) | Security headers: HSTS ✅ X-Frame ✅ CSP ❌ bekräftat | 2026-05-02 14:20 UTC |
| /opt/amos/data/TUV_*.md (6 filer) | audit-dokument, audit report, gap analysis, investor audit, system architecture | 2026-04-27 (senast ändrad) |
| /var/git/repos/wavult-group/ (ls) | 41 Git-repos inventerade, amos-regulatory-kb tree-listed | 2026-05-02 14:21 UTC |
| /opt/aamos-intelligence/index/ (grep) | 4009 wavult-chunks — 0 direkta TÜV-dokumentträffar | 2026-05-02 14:21 UTC (index: 02:56 UTC) |
| /opt/amos/data/aamos-systems-formation.json | AAMOS Inc Delaware — status: ready_to_file | 2026-05-01 |
| ISO 9001:2015 gap-assessment | Initial bedömning baserad på befintlig dokumentation och processer | 2026-05-02 (denna rapport) |