
# Udnyttelse af AI-vidensgrafer til at forene sikkerhedskontroller, politikker og beviser

I den hastigt udviklende verden af SaaS‑sikkerhed jonglerer teams med dusinvis af rammer—[SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), [ISO 27001](https://www.iso.org/standard/27001), [PCI‑DSS](https://www.pcisecuritystandards.org/pci_security/), [GDPR](https://gdpr.eu/), og branchespecifikke standarder—mens de skal håndtere endeløse sikkerhedsspørgsmål fra potentielle kunder, revisorer og partnere. Den enorme mængde af overlapende kontroller, duplikerede politikker og spredte beviser skaber et **videnssiloproblem**, der koster både tid og penge.

Ind i billedet kommer den **AI‑drevne vidensgraf**. Ved at omdanne disparate overholdelsesartefakter til et levende, forespørgbart netværk kan organisationer automatisk fremvise den rette kontrol, hente det præcise bevis og generere korrekte svar på spørgsmålsskemaer på sekunder. Denne artikel guider dig gennem konceptet, de tekniske byggeklodser og praktiske trin til at indlejre en vidensgraf i Procurize‑platformen.

---

## Hvorfor traditionelle tilgange fejler

| Smertepunkt | Konventionel metode | Skjult omkostning |
|-------------|----------------------|-------------------|
| Kontrolkortlægning | Manuelle regneark | Timer med duplication per kvartal |
| Bevisindsamling | Mappe‑søgning + navnekonventioner | Manglende dokumenter, versions‑drift |
| Konsistens på tværs af rammer | Separate tjeklister pr. ramme | Inkonsistente svar, revisionsfund |
| Skalering til nye standarder | Kopi‑indsæt af eksisterende politikker | Menneskelige fejl, brudt sporbarhed |

Selv med robuste dokumentarkiver betyder manglen på **semantiske relationer**, at teams gentagne gange besvarer det samme spørgsmål med lidt forskellige formuleringer for hver ramme. Resultatet er en ineffektiv feedback‑sløjfe, der stopper salg og underminerer tilliden.

---

## Hvad er en AI‑drevet vidensgraf?

En vidensgraf er en **graf‑baseret datamodel**, hvor entiteter (noder) er forbundet via relationer (kanter). I overholdelse kan noder repræsentere:

* **Sikkerhedskontroller** (fx “Kryptering i hvile”)
* **Policydokumenter** (fx “Data‑retentionspolitik v3.2”)
* **Bevisartefakter** (fx “AWS KMS nøgle‑rotationslogfiler”)
* **Regulatoriske krav** (fx “PCI‑DSS Krav 3.4”)

AI tilføjer to kritiske lag:

1. **Entitets‑ekstraktion & -linkning** – Store sprogmodeller (LLM’er) scanner rå politiktekster, sky‑konfigurationsfiler og revisionslogfiler for automatisk at oprette noder og foreslå relationer.
2. **Semantisk ræsonnement** – Graf‑neural‑netværk (GNN) infererer manglende links, opdager modsigelser og foreslår opdateringer, når standarderne udvikles.

Resultatet er et **levende kort**, der udvikler sig med hver ny politik‑ eller bevis‑upload, hvilket muliggør øjeblikkelige, kontekst‑bevidste svar.

---

## Overordnet arkitektur

Nedenfor er et høj‑niveau Mermaid‑diagram over compliance‑motoren med vidensgraf i Procurize.

```mermaid
graph LR
    A["Rå kildefiler"] -->|LLM‑ekstraktion| B["Entitets‑ekstraherings‑service"]
    B --> C["Graf‑indlæsnings‑lag"]
    C --> D["Neo4j Vidensgraf"]
    D --> E["Semantisk ræsonnements‑engine"]
    E --> F["Query‑API"]
    F --> G["Procurize UI"]
    G --> H["Automatisk spørgsmålsskema‑generator"]
    style D fill:#e8f4ff,stroke:#005b96,stroke-width:2px
    style E fill:#f0fff0,stroke:#2a7d2a,stroke-width:2px
```

* **Rå kildefiler** – Politikker, infrastruktur‑som‑kode, log‑arkiver og tidligere svar på spørgsmålsskemaundersøgelser.  
* **Entitets‑ekstraherings‑service** – LLM‑drevet pipeline, der mærker kontroller, referencer og beviser.  
* **Graf‑indlæsnings‑lag** – Transformerer udtrukne entiteter til noder og kanter med versionering.  
* **Neo4j Vidensgraf** – Valgt for sine ACID‑garantier og native graf‑spørgesprog (Cypher).  
* **Semantisk ræsonnements‑engine** – Anvender GNN‑modeller for at foreslå manglende links og konflikt‑alarmer.  
* **Query‑API** – Exponerer GraphQL‑endpoints for real‑time opslag.  
* **Procurize UI** – Front‑end‑komponent, der visualiserer relaterede kontroller og beviser under udarbejdelse af svar.  
* **Automatisk spørgsmålsskema‑generator** – Bruger query‑resultater til automatisk at udfylde sikkerhedsspørgsmål.

---

## Trin‑for‑trins implementeringsguide

### 1. Inventariser alle overholdelsesartefakter

Start med at katalogisere hver kilde:

| Artefakttype | Typisk placering | Eksempel |
|--------------|------------------|----------|
| Politikker | Confluence, Git | `security/policies/data-retention.md` |
| Kontrol‑matrix | Excel, Smartsheet | `SOC2_controls.xlsx` |
| Beviser | S3‑spand, intern drev | `evidence/aws/kms-rotation-2024.pdf` |
| Tidligere spørgsmålsskemaer | Procurize, Drive | `questionnaires/2023-aws-vendor.csv` |

Metadata (ejer, seneste gennemgangsdato, version) er afgørende for efterfølgende linking.

### 2. Implementer Entitets‑ekstraherings‑servicen

1. **Vælg en LLM** – OpenAI GPT‑4o, Anthropic Claude 3 eller en on‑premise LLaMA‑model.  
2. **Prompt‑engineering** – Design prompts, der returnerer JSON med felterne `entity_type`, `name`, `source_file`, `confidence`.  
3. **Kør på en scheduler** – Brug Airflow eller Prefect til at behandle nye/ændrede filer natligt.

> **Tip:** Brug et tilpasset *entitets‑ordbog*, forudfyldt med standardkontrolnavne (fx “Adgangskontrol – mindst privilegium”) for at forbedre udtræknings‑nøjagtigheden.

### 3. Indlæs i Neo4j

```cypher
UNWIND $entities AS e
MERGE (n:Entity {uid: e.id})
SET n.type = e.type,
    n.name = e.name,
    n.source = e.source,
    n.confidence = e.confidence,
    n.last_seen = timestamp()
```

Opret relationer løbende:

```cypher
MATCH (c:Entity {type:'Control', name:e.control_name}),
      (p:Entity {type:'Policy', name:e.policy_name})
MERGE (c)-[:IMPLEMENTED_BY]->(p)
```

### 4. Tilføj semantisk ræsonnement

* Træn et **Graf‑neural‑netværk** på et mærket del‑datasæt, hvor relationerne er kendte.  
* Brug modellen til at forudsige kanter som `EVIDENCE_FOR`, `ALIGNED_WITH` eller `CONFLICTS_WITH`.  
* Planlæg en natlig job, der markerer høj‑tillids‑forudsigelser til menneskelig gennemgang.

### 5. Exponér et Query‑API

```graphql
query ControlsForRequirement($reqId: ID!) {
  requirement(id: $reqId) {
    name
    implements {
      ... on Control {
        name
        policies { name }
        evidence { name url }
      }
    }
  }
}
```

UI’et kan nu **autofuldføre** spørgsmålsskemafelter ved at hente den præcise kontrol og tilknyttet bevis.

### 6. Integrer med Procurize‑spørgsmålsskema‑builder

1. Tilføj en **“Vidensgraf‑opslag”**‑knap ved siden af hvert svarfelt.  
2. Når knappen trykkes, sender UI’et krav‑ID’et til GraphQL‑API’et.  
3. Resultatet udfylder svar‑tekstboksen og vedhæfter automatisk bevis‑PDF’en.  
4. Teamet kan stadig redigere eller tilføje kommentarer, men udgangspunktet genereres på sekunder.

---

## Reelle fordele

| Måling | Før vidensgraf | Efter vidensgraf |
|--------|----------------|------------------|
| Gennemsnitlig svartid på spørgsmålsskema | 7 dage | 1,2 dag |
| Manuel bevis‑søgetid pr. svar | 45 min | 3 min |
| Duplicate‑politik‑antal på tværs af rammer | 12 filer | 3 filer |
| Revision‑fund (kontrol‑huller) | 8 % | 2 % |

En mellemstor SaaS‑startup rapporterede en **70 % reduktion** i sikkerhedsgennemgangens cyklustid efter implementering af grafen, hvilket omsatte til hurtigere lukkede handler og en målbar stigning i partner‑tillid.

---

## Best Practices & fælder

| Best practice | Hvorfor det er vigtigt |
|----------------|------------------------|
| **Versionerede noder** – Gem `valid_from` / `valid_to`‑timestamps på hver node. | Muliggør historisk revisionsspor og overholdelse af retroaktive regelændringer. |
| **Menneske‑i‑sløjfen‑gennemgang** – Marker lav‑tillids‑kanter til manuel verifikation. | Forhindrer AI‑hallucinationer, som kan føre til forkerte svar på spørgsmålsskemaer. |
| **Adgangskontrol på grafen** – Brug rolle‑baseret adgang (RBAC) i Neo4j. | Sikrer, at kun autoriseret personale kan se følsomme beviser. |
| **Kontinuerlig læring** – Feed korrigerede relationer tilbage i GNN‑træningssættet. | Forbedrer forudsigelses‑kvaliteten over tid. |

**Almindelige fælder**

* **Over‑reliance på LLM‑ekstraktion** – Rå PDF‑filer indeholder ofte tabeller, som LLM‑modeller misforstår; suppler med OCR og regel‑baserede parsere.  
* **Graf‑overvækst** – Ukontrolleret node‑oprettelse fører til ydelses‑degradering. Implementér oprydnings‑politikker for forældede artefakter.  
* **Manglende governance** – Uden en klar data‑ejerskabs‑model kan grafen blive en “sort boks”. Etablér rollen som compliance‑data‑steward.

---

## Fremtidige retninger

1. **Fødererede grafer på tværs af organisationer** – Del anonimiserede kontrol‑bevis‑kortlægninger med partnere, mens dataprivatliv bevares.  
2. **Regulering‑drevet auto‑opdatering** – Indtag officielle standard‑revisioner (fx ISO 27001:2025) og lad ræsonnements‑motoren foreslå nødvendige politik‑opdateringer.  
3. **Naturlig‑sprog‑spørge‑interface** – Lad sikkerhedsanalysefolk skrive “Vis mig al evidens for krypteringskontroller, der opfylder GDPR art. 32”, og modtage øjeblikkelige resultater.

Ved at betragte overholdelse som et **netværks‑baseret vidensproblem** får organisationer en ny grad af agilitet, præcision og selvsikkerhed i hvert sikkerhedsspørgsmål, de skal besvare.

---

## Se også

- [NIST Cybersecurity Framework – Mapping to ISO & SOC 2](https://www.nist.gov/cybersecurity-framework)  
- [Graph Neural Networks for Knowledge Graph Completion (arXiv)](https://arxiv.org/abs/2003.00764)