# 그래프 신경망이 공급업체 설문지에서 상황별 위험 우선순위를 가능하게 하다

보안 설문지, 공급업체 위험 평가 및 컴플라이언스 감사는 빠르게 성장하는 SaaS 기업의 신뢰 센터 운영에 필수적인 요소입니다. 그러나 수십 개의 질문을 읽고, 내부 정책에 매핑하고, 적절한 증거를 찾는 수작업은 팀을 과도하게 줄이며, 거래를 지연시키고, 비용이 많이 드는 실수를 초래합니다.

플랫폼이 **숨겨진 관계를 이해**하고 질문, 정책, 과거 답변, 그리고 진화하는 위협 환경 간의 연결 고리를 파악한 뒤 자동으로 *가장 중요한* 항목을 검토 대상으로 표시한다면 어떨까요?

그 해답은 **그래프 신경망(GNN)** 입니다 — 그래프 구조 데이터를 다루도록 설계된 딥러닝 모델 군입니다. 전체 설문지 생태계를 지식 그래프로 나타내면 GNN은 상황별 위험 점수를 계산하고, 답변 품질을 예측하며, 컴플라이언스 팀을 위한 작업의 우선순위를 지정할 수 있습니다. 이 글에서는 기술적 기초, 통합 워크플로우, 그리고 Procurize AI 플랫폼에서 GNN 기반 위험 우선순위 지정이 가져오는 측정 가능한 이점을 상세히 살펴봅니다.

---

## 기존 규칙 기반 자동화가 한계에 부딪히는 이유

대부분의 현재 설문 자동화 도구는 결정론적 규칙 집합에 의존합니다:

* **키워드 매칭** – 정적인 문자열을 기반으로 질문을 정책 문서에 매핑합니다.  
* **템플릿 채우기** – 컨텍스트 없이 저장소에서 미리 작성된 답변을 가져옵니다.  
* **단순 점수 부여** – 특정 용어 존재 여부에 따라 고정된 심각도를 부여합니다.

이러한 접근 방식은 단순하고 구조화된 설문지에는 적용되지만, 다음과 같은 상황에서는 무너지게 됩니다.

1. **감사자마다 질문 표현이 다를 때**.  
2. **정책 간 상호 연관성이 있을 때** (예: “데이터 보존”이 [ISO 27001](https://www.iso.org/standard/27001) A.8와 [GDPR](https://gdpr.eu/) 제 5조 모두와 연결됨).  
3. **제품 업데이트나 새로운 규제 가이드라인으로 인해 과거 증거가 바뀔 때**.  
4. **공급업체 위험 프로파일이 다를 때** (고위험 공급업체는 더 깊은 검토가 필요).

그래프 중심 모델은 모든 엔터티—질문, 정책, 증거 아티팩트, 공급업체 속성, 위협 정보—를 **노드**로, “covers”, “depends on”, “updated by”, “observed in” 등 모든 관계를 **엣지**로 취급하므로 이러한 미묘함을 포착합니다. GNN은 네트워크를 통해 정보를 전파하면서 하나의 노드 변화가 다른 노드에 어떻게 영향을 미치는지를 학습합니다.

---

## 컴플라이언스 지식 그래프 구축

### 1. 노드 유형

| 노드 유형 | 예시 속성 |
|-----------|-----------|
| **질문** | `text`, `source (SOC2, ISO27001)`, `frequency` |
| **정책 조항** | `framework`, `clause_id`, `version`, `effective_date` |
| **증거 아티팩트** | `type (report, config, screenshot)`, `location`, `last_verified` |
| **공급업체 프로필** | `industry`, `risk_score`, `past_incidents` |
| **위협 지표** | `cve_id`, `severity`, `affected_components` |

### 2. 엣지 유형

| 엣지 유형 | 의미 |
|-----------|------|
| **covers** | Question → Policy Clause |
| **requires** | Policy Clause → Evidence Artifact |
| **linked_to** | Question ↔ Threat Indicator |
| **belongs_to** | Evidence Artifact → Vendor Profile |
| **updates** | Threat Indicator → Policy Clause (새 규정이 조항을 대체할 때) |

### 3. 그래프 구축 파이프라인

```mermaid
graph TD
    A[설문지 PDF 수집] --> B[NLP로 파싱]
    B --> C[엔터티 추출]
    C --> D[기존 분류 체계에 매핑]
    D --> E[노드와 엣지 생성]
    E --> F[Neo4j / TigerGraph에 저장]
    F --> G[GNN 모델 학습]
```

* **수집**: PDF, Word, JSON 형태의 모든 들어오는 설문지를 OCR/NLP 파이프라인에 투입합니다.  
* **파싱**: 명명 엔터티 인식을 통해 질문 텍스트, 참조 코드, 포함된 컴플라이언스 ID를 추출합니다.  
* **매핑**: 엔터티를 마스터 분류 체계([SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), [ISO 27001](https://www.iso.org/standard/27001), [NIST CSF](https://www.nist.gov/cyberframework))와 일치시켜 일관성을 유지합니다.  
* **그래프 스토어**: Neo4j, TigerGraph, Amazon Neptune 등 네이티브 그래프 DB에 지속적으로 진화하는 지식 그래프를 보관합니다.  
* **학습**: 과거 완료 데이터, 감사 결과, 사후 사고 로그를 활용해 GNN을 주기적으로 재학습합니다.

---

## GNN이 상황별 위험 점수를 생성하는 방법

**그래프 컨볼루션 네트워크(GCN)** 혹은 **그래프 어텐션 네트워크(GAT)** 가 각 노드의 이웃 정보를 집계합니다. 특정 질문 노드에 대해 모델이 집계하는 신호는 다음과 같습니다.

* **정책 연관성** – 종속된 증거 아티팩트 수에 가중치 부여.  
* **과거 답변 정확도** – 이전 감사 통과/실패율 기반.  
* **공급업체 위험 맥락** – 최근 사고가 있는 공급업체일수록 점수 상승.  
* **위협 근접도** – 연결된 CVE의 CVSS 점수가 7.0 이상이면 점수 상승.

최종 **위험 점수**(0‑100)는 이러한 신호의 복합 결과이며, 플랫폼은 이를 통해

1. 모든 미처리 질문을 위험도 내림차순으로 **정렬**하고,  
2. UI에서 고위험 항목을 강조 표시해 작업 큐의 우선순위를 높이며,  
3. 가장 관련성 높은 증거 아티팩트를 자동으로 **추천**하고,  
4. 검토자가 집중해야 할 **신뢰 구간**을 제공한다.

### 예시 점수 공식 (단순화)

```
risk = α * policy_impact
     + β * answer_accuracy
     + γ * vendor_risk
     + δ * threat_severity
```

*α, β, γ, δ* 는 학습 과정에서 자동으로 최적화되는 어텐션 가중치입니다.

---

## 실제 영향: 사례 연구

**회사:** DataFlux, 의료 데이터 취급 중소 규모 SaaS 제공업체.  
**기준선:** 수동 설문지 처리 평균 12 일, 오류 비율 ≈ 8 % (감사 후 재작업).  

**구현 단계**

| 단계 | 작업 | 결과 |
|------|------|------|
| **그래프 초기화** | 3년 치 설문 로그(≈ 4 k 질문) 수집 | 12 k 노드, 28 k 엣지 생성 |
| **모델 학습** | 2 k 라벨링된 답변(통과/실패)으로 3층 GAT 학습 | 검증 정확도 92 % |
| **위험 우선순위 적용** | 점수를 Procurize UI에 통합 | 고위험 항목 70 %가 24 시간 이내 처리 |
| **지속 학습** | 검토자가 제안 증거를 확인하면 피드백 루프에 기록 | 1개월 후 모델 정밀도 96 % 도달 |

**성과**

| 지표 | 도입 전 | 도입 후 |
|------|--------|--------|
| 평균 처리 시간 | 12 일 | 4.8 일 |
| 재작업 발생률 | 8 % | 2.3 % |
| 검토자 업무량 (시간/주) | 28 h | 12 h |
| 계약 체결 속도 (월당 체결) | 15 건 | 22 건 |

GNN 기반 접근 방식은 **응답 시간을 60 %** 단축하고, 오류 기반 재작업을 **70 %** 감소시켜 매출 가속에 실질적인 기여를 했습니다.

---

## Procurize에 GNN 우선순위 지정 통합하기

### 아키텍처 개요

```mermaid
sequenceDiagram
    participant UI as 프론트‑엔드 UI
    participant API as REST / GraphQL API
    participant GDB as 그래프 DB
    participant GNN as GNN 서비스
    participant EQ as 증거 저장소

    UI->>API: 미처리 설문 목록 요청
    API->>GDB: 질문 노드 + 엣지 조회
    GDB->>GNN: 서브그래프를 점수 산출용으로 전달
    GNN-->>GDB: 위험 점수 반환
    GDB->>API: 질문에 점수 부착
    API->>UI: 우선순위 목록 렌더링
    UI->>API: 검토자 피드백 전송
    API->>EQ: 제안된 증거 조회
    API->>GDB: 엣지 가중치 업데이트(피드백 루프)
```

* **모듈형 서비스**: GNN은 `/score` 엔드포인트를 제공하는 무상태 마이크로서비스(Docker/Kubernetes)로 실행됩니다.  
* **실시간 점수 산출**: 새로운 위협 정보가 들어올 때마다 최신 점수를 즉시 재계산합니다.  
* **피드백 루프**: 검토자의 수락/거부 행동을 기록해 모델에 지속적으로 학습시킵니다.

### 보안·컴플라이언스 고려사항

* **데이터 격리** – 고객별 그래프 파티션을 두어 테넌트 간 데이터 유출 방지.  
* **감사 로그** – 점수 생성 시점, 사용자 ID, 모델 버전을 모두 로그에 남김.  
* **모델 거버넌스** – 버전 관리된 모델 아티팩트를 안전한 ML 레지스트리에 저장하고, CI/CD 승인 절차를 거쳐야만 교체 가능.

---

## GNN 기반 우선순위 도입을 위한 모범 사례

1. **가치 높은 정책부터 시작** – ISO 27001 A.8, [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2) CC6, [GDPR](https://gdpr.eu/) 제 32조 등 증거가 풍부한 조항에 초점.  
2. **정확한 분류 체계 유지** – 조항 식별자가 일관되지 않으면 그래프가 파편화됩니다.  
3. **품질 높은 학습 레이블 확보** – 감사 결과(통과/실패)를 사용하고, 주관적인 평점은 피함.  
4. **모델 드리프트 모니터링** – 위험 점수 분포를 정기적으로 검토하여 새 위협이 반영되지 않은 경우를 감지.  
5. **인간 인사이트와 결합** – 점수를 권고로 활용하고 ‘오버라이드’ 옵션을 항상 제공.

---

## 앞으로의 확장 방향: 점수 부여를 넘어

그래프 기반이 열어주는 미래 기능들:

* **예측 규제 예보** – 향후 도입될 표준(예: 초안 ISO 27701)을 기존 조항에 연결해 설문 변경을 미리 감지.  
* **자동 증거 생성** – GNN 통찰과 LLM 기반 보고서 작성을 결합해 상황을 반영한 초안 답변 자동 생성.  
* **공급업체 간 위험 상관관계 탐지** – 여러 공급업체가 동일 취약 컴포넌트를 공유하는 경우를 찾아 집단 대응 촉진.  
* **설명 가능한 AI** – 그래프 어텐션 히트맵으로 왜 특정 질문에 높은 위험 점수가 부여됐는지 시각화.

---

## 결론

그래프 신경망은 보안 설문지 프로세스를 선형적인 규칙‑기반 체크리스트에서 **동적인 상황 인식 의사결정 엔진**으로 탈바꿈시킵니다. 질문, 정책, 증거, 공급업체, 최신 위협 사이의 풍부한 관계를 인코딩함으로써 GNN은 미세한 위험 점수를 제공하고, 검토자의 노력을 우선순위화하며, 피드백 루프를 통해 지속적으로 개선됩니다.

SaaS 기업이 거래 속도를 높이고, 감사 재작업을 줄이며, 규제 변화에 선제적으로 대응하고자 한다면, Procurize와 같은 플랫폼에 GNN 기반 위험 우선순위 지정을 도입하는 것은 더 이상 미래의 실험이 아니라 **실질적이고 측정 가능한 경쟁력**입니다.