From 38e278ee3c8f102578061385314d5587f99ae0b4 Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Thu, 5 Mar 2026 14:51:44 +0100 Subject: [PATCH] feat(ucca): Pflichtendatenbank v2 (325 Obligations), Trigger-Engine, TOM-Control-Mapping MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 9 Regulation-JSON-Dateien (DSGVO 80, AI Act 60, NIS2 40, BDSG 30, TTDSG 20, DSA 35, Data Act 25, EU-Maschinen 15, DORA 20) - Condition-Tree-Engine fuer automatische Pflichtenselektion (all_of/any_of, 80+ Field-Paths) - Generischer JSONRegulationModule-Loader mit YAML-Fallback - Bidirektionales TOM-Control-Mapping (291 Obligation→Control, 92 Control→Obligation) - Gap-Analyse-Engine (Compliance-%, Priority Actions, Domain Breakdown) - ScopeDecision→UnifiedFacts Bridge fuer Auto-Profiling - 4 neue API-Endpoints (assess-from-scope, tom-controls, gap-analysis, reverse-lookup) - Frontend: Auto-Profiling Button, Regulation-Filter Chips, TOM-Panel, Gap-Analyse-View - 18 Unit Tests (Condition Engine, v2 Loader, TOM Mapper) Co-Authored-By: Claude Opus 4.6 --- .../v1/ucca/obligations/[[...path]]/route.ts | 34 + admin-compliance/app/sdk/obligations/page.tsx | 172 +- .../sdk/obligations/GapAnalysisView.tsx | 226 + .../sdk/obligations/TOMControlPanel.tsx | 105 + ai-compliance-sdk/cmd/server/main.go | 7 + .../api/handlers/obligations_handlers.go | 154 +- .../internal/ucca/json_regulation_module.go | 301 + .../ucca/obligation_condition_engine.go | 300 + .../ucca/obligation_condition_engine_test.go | 176 + .../internal/ucca/obligations_framework.go | 3 + .../internal/ucca/obligations_registry.go | 67 +- .../internal/ucca/scope_facts_mapper.go | 128 + .../internal/ucca/tom_control_loader.go | 160 + .../internal/ucca/tom_gap_analysis.go | 259 + .../internal/ucca/tom_mapper_test.go | 175 + .../internal/ucca/tom_obligation_mapper.go | 150 + .../internal/ucca/unified_facts.go | 18 + ai-compliance-sdk/internal/ucca/v2_loader.go | 233 + .../internal/ucca/v2_loader_test.go | 137 + .../policies/obligations/v2/_manifest.json | 61 + .../policies/obligations/v2/_schema.json | 162 + .../policies/obligations/v2/_tom_mapping.json | 1923 +++++ .../policies/obligations/v2/ai_act_v2.json | 1935 +++++ .../policies/obligations/v2/bdsg_v2.json | 668 ++ .../policies/obligations/v2/data_act_v2.json | 535 ++ .../policies/obligations/v2/dora_v2.json | 569 ++ .../policies/obligations/v2/dsa_v2.json | 742 ++ .../policies/obligations/v2/dsgvo_v2.json | 4678 ++++++++++++ .../obligations/v2/eu_machinery_v2.json | 426 ++ .../policies/obligations/v2/nis2_v2.json | 1425 ++++ .../policies/obligations/v2/ttdsg_v2.json | 459 ++ .../policies/tom_controls_v1.json | 6523 +++++++++++++++++ 32 files changed, 22870 insertions(+), 41 deletions(-) create mode 100644 admin-compliance/app/api/sdk/v1/ucca/obligations/[[...path]]/route.ts create mode 100644 admin-compliance/components/sdk/obligations/GapAnalysisView.tsx create mode 100644 admin-compliance/components/sdk/obligations/TOMControlPanel.tsx create mode 100644 ai-compliance-sdk/internal/ucca/json_regulation_module.go create mode 100644 ai-compliance-sdk/internal/ucca/obligation_condition_engine.go create mode 100644 ai-compliance-sdk/internal/ucca/obligation_condition_engine_test.go create mode 100644 ai-compliance-sdk/internal/ucca/scope_facts_mapper.go create mode 100644 ai-compliance-sdk/internal/ucca/tom_control_loader.go create mode 100644 ai-compliance-sdk/internal/ucca/tom_gap_analysis.go create mode 100644 ai-compliance-sdk/internal/ucca/tom_mapper_test.go create mode 100644 ai-compliance-sdk/internal/ucca/tom_obligation_mapper.go create mode 100644 ai-compliance-sdk/internal/ucca/v2_loader.go create mode 100644 ai-compliance-sdk/internal/ucca/v2_loader_test.go create mode 100644 ai-compliance-sdk/policies/obligations/v2/_manifest.json create mode 100644 ai-compliance-sdk/policies/obligations/v2/_schema.json create mode 100644 ai-compliance-sdk/policies/obligations/v2/_tom_mapping.json create mode 100644 ai-compliance-sdk/policies/obligations/v2/ai_act_v2.json create mode 100644 ai-compliance-sdk/policies/obligations/v2/bdsg_v2.json create mode 100644 ai-compliance-sdk/policies/obligations/v2/data_act_v2.json create mode 100644 ai-compliance-sdk/policies/obligations/v2/dora_v2.json create mode 100644 ai-compliance-sdk/policies/obligations/v2/dsa_v2.json create mode 100644 ai-compliance-sdk/policies/obligations/v2/dsgvo_v2.json create mode 100644 ai-compliance-sdk/policies/obligations/v2/eu_machinery_v2.json create mode 100644 ai-compliance-sdk/policies/obligations/v2/nis2_v2.json create mode 100644 ai-compliance-sdk/policies/obligations/v2/ttdsg_v2.json create mode 100644 ai-compliance-sdk/policies/tom_controls_v1.json diff --git a/admin-compliance/app/api/sdk/v1/ucca/obligations/[[...path]]/route.ts b/admin-compliance/app/api/sdk/v1/ucca/obligations/[[...path]]/route.ts new file mode 100644 index 0000000..79ac447 --- /dev/null +++ b/admin-compliance/app/api/sdk/v1/ucca/obligations/[[...path]]/route.ts @@ -0,0 +1,34 @@ +import { NextRequest, NextResponse } from 'next/server' + +const SDK_BASE_URL = process.env.SDK_BASE_URL || 'http://localhost:8085' + +async function proxyRequest(request: NextRequest, method: string) { + try { + const pathSegments = request.nextUrl.pathname.replace('/api/sdk/v1/ucca/obligations/', '') + const targetUrl = `${SDK_BASE_URL}/sdk/v1/ucca/obligations/${pathSegments}${request.nextUrl.search}` + + const headers: Record = { 'Content-Type': 'application/json' } + const tenantId = request.headers.get('X-Tenant-ID') + if (tenantId) headers['X-Tenant-ID'] = tenantId + + const fetchOptions: RequestInit = { method, headers } + if (method === 'POST' || method === 'PUT' || method === 'PATCH') { + fetchOptions.body = await request.text() + } + + const response = await fetch(targetUrl, fetchOptions) + if (!response.ok) { + const errorText = await response.text() + return NextResponse.json({ error: 'SDK backend error', details: errorText }, { status: response.status }) + } + + const data = await response.json() + return NextResponse.json(data) + } catch (error) { + console.error('UCCA obligations proxy error:', error) + return NextResponse.json({ error: 'Failed to connect to SDK backend' }, { status: 503 }) + } +} + +export async function GET(request: NextRequest) { return proxyRequest(request, 'GET') } +export async function POST(request: NextRequest) { return proxyRequest(request, 'POST') } diff --git a/admin-compliance/app/sdk/obligations/page.tsx b/admin-compliance/app/sdk/obligations/page.tsx index f2ce136..8345479 100644 --- a/admin-compliance/app/sdk/obligations/page.tsx +++ b/admin-compliance/app/sdk/obligations/page.tsx @@ -2,6 +2,8 @@ import React, { useState, useEffect, useCallback } from 'react' import { StepHeader, STEP_EXPLANATIONS } from '@/components/sdk/StepHeader' +import TOMControlPanel from '@/components/sdk/obligations/TOMControlPanel' +import GapAnalysisView from '@/components/sdk/obligations/GapAnalysisView' // ============================================================================= // Types @@ -178,7 +180,7 @@ function ObligationModal({ onChange={e => update('source', e.target.value)} className="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm" > - {['DSGVO', 'AI Act', 'NIS2', 'BDSG', 'TTDSG', 'Sonstig'].map(s => ( + {['DSGVO', 'AI Act', 'NIS2', 'BDSG', 'TTDSG', 'DSA', 'Data Act', 'DORA', 'EU-Maschinen', 'Sonstig'].map(s => ( ))} @@ -426,6 +428,7 @@ function ObligationCard({ onDetails: () => void }) { const [saving, setSaving] = useState(false) + const [showTOM, setShowTOM] = useState(false) const daysUntil = obligation.deadline ? Math.ceil((new Date(obligation.deadline).getTime() - Date.now()) / 86400000) @@ -480,6 +483,13 @@ function ObligationCard({ )}
e.stopPropagation()}> +
+ + {showTOM && ( +
e.stopPropagation()}> + setShowTOM(false)} /> +
+ )} ) } @@ -505,16 +521,42 @@ function ObligationCard({ // Main Page // ============================================================================= +function mapPriority(p: string): 'critical' | 'high' | 'medium' | 'low' { + const map: Record = { + kritisch: 'critical', hoch: 'high', mittel: 'medium', niedrig: 'low', + critical: 'critical', high: 'high', medium: 'medium', low: 'low', + } + return map[p?.toLowerCase()] || 'medium' +} + +const REGULATION_CHIPS = [ + { key: 'all', label: 'Alle' }, + { key: 'DSGVO', label: 'DSGVO' }, + { key: 'AI Act', label: 'AI Act' }, + { key: 'NIS2', label: 'NIS2' }, + { key: 'BDSG', label: 'BDSG' }, + { key: 'TTDSG', label: 'TTDSG' }, + { key: 'DSA', label: 'DSA' }, + { key: 'Data Act', label: 'Data Act' }, + { key: 'DORA', label: 'DORA' }, + { key: 'EU-Maschinen', label: 'EU-Maschinen' }, +] + +const UCCA_API = '/api/sdk/v1/ucca/obligations' + export default function ObligationsPage() { const [obligations, setObligations] = useState([]) const [stats, setStats] = useState(null) const [filter, setFilter] = useState('all') + const [regulationFilter, setRegulationFilter] = useState('all') const [searchQuery, setSearchQuery] = useState('') const [loading, setLoading] = useState(true) const [error, setError] = useState(null) const [showModal, setShowModal] = useState(false) const [editObligation, setEditObligation] = useState(null) const [detailObligation, setDetailObligation] = useState(null) + const [showGapAnalysis, setShowGapAnalysis] = useState(false) + const [profiling, setProfiling] = useState(false) const loadData = useCallback(async () => { setLoading(true) @@ -621,10 +663,68 @@ export default function ObligationsPage() { fetch(`${API}/stats`).then(r => r.json()).then(setStats).catch(() => {}) } + const handleAutoProfiling = async () => { + setProfiling(true) + setError(null) + try { + const res = await fetch(`${UCCA_API}/assess-from-scope`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + employee_count: 50, + industry: 'technology', + processes_personal_data: true, + is_controller: true, + uses_processors: true, + processes_special_categories: false, + cross_border_transfer: true, + uses_ai: true, + determined_level: 'L2', + }), + }) + if (!res.ok) throw new Error(`HTTP ${res.status}`) + const data = await res.json() + if (data.obligations?.length > 0) { + // Merge auto-profiled obligations into the view + const autoObls: Obligation[] = data.obligations.map((o: Record) => ({ + id: o.id as string, + title: o.title as string, + description: (o.description as string) || '', + source: (o.regulation_id as string || '').toUpperCase(), + source_article: '', + deadline: null, + status: 'pending' as const, + priority: mapPriority(o.priority as string), + responsible: (o.responsible as string) || '', + linked_systems: [], + rule_code: 'auto-profiled', + })) + setObligations(prev => { + const existingIds = new Set(prev.map(p => p.id)) + const newOnes = autoObls.filter(a => !existingIds.has(a.id)) + return [...prev, ...newOnes] + }) + } + } catch (e) { + setError(e instanceof Error ? e.message : 'Auto-Profiling fehlgeschlagen') + } finally { + setProfiling(false) + } + } + const stepInfo = STEP_EXPLANATIONS['obligations'] const filteredObligations = obligations.filter(o => { - if (filter === 'ai') return o.source.toLowerCase().includes('ai') + // Status/priority filter + if (filter === 'ai') { + if (!o.source.toLowerCase().includes('ai')) return false + } + // Regulation filter + if (regulationFilter !== 'all') { + const src = o.source?.toLowerCase() || '' + const key = regulationFilter.toLowerCase() + if (!src.includes(key)) return false + } return true }) @@ -679,15 +779,38 @@ export default function ObligationsPage() { explanation={stepInfo?.explanation || ''} tips={stepInfo?.tips || []} > - +
+ + + +
{/* Error */} @@ -725,7 +848,28 @@ export default function ObligationsPage() { )} - {/* Search + Filter */} + {/* Gap Analysis View */} + {showGapAnalysis && ( + + )} + + {/* Regulation Filter Chips */} +
+ Regulation: + {REGULATION_CHIPS.map(r => ( + + ))} +
+ + {/* Search + Status Filter */}
- {['all', 'overdue', 'pending', 'in-progress', 'completed', 'critical', 'ai'].map(f => ( + {['all', 'overdue', 'pending', 'in-progress', 'completed', 'critical'].map(f => ( ))}
diff --git a/admin-compliance/components/sdk/obligations/GapAnalysisView.tsx b/admin-compliance/components/sdk/obligations/GapAnalysisView.tsx new file mode 100644 index 0000000..d6af858 --- /dev/null +++ b/admin-compliance/components/sdk/obligations/GapAnalysisView.tsx @@ -0,0 +1,226 @@ +'use client' + +import React, { useState } from 'react' + +interface GapItem { + control_id: string + control_title: string + control_domain: string + status: string + priority: string + obligation_ids: string[] + required_by_count: number +} + +interface PriorityAction { + rank: number + action: string + control_ids: string[] + impact: string + effort: string +} + +interface DomainGap { + domain_id: string + domain_name: string + total_controls: number + implemented_controls: number + compliance_percent: number +} + +interface GapAnalysisResult { + compliance_percent: number + total_controls: number + implemented_controls: number + partial_controls: number + missing_controls: number + gaps: GapItem[] + priority_actions: PriorityAction[] + by_domain: Record +} + +const UCCA_API = '/api/sdk/v1/ucca/obligations' + +const DOMAIN_LABELS: Record = { + GOV: 'Governance', HR: 'Human Resources', IAM: 'Identity & Access', + AC: 'Access Control', CRYPTO: 'Kryptographie', LOG: 'Logging & Monitoring', + SDLC: 'Softwareentwicklung', OPS: 'Betrieb', NET: 'Netzwerk', + BCP: 'Business Continuity', VENDOR: 'Lieferanten', DATA: 'Datenschutz', +} + +const IMPACT_COLORS: Record = { + critical: 'text-red-700 bg-red-50', + high: 'text-orange-700 bg-orange-50', + medium: 'text-yellow-700 bg-yellow-50', + low: 'text-green-700 bg-green-50', +} + +export default function GapAnalysisView() { + const [result, setResult] = useState(null) + const [loading, setLoading] = useState(false) + const [error, setError] = useState(null) + + const runAnalysis = async () => { + setLoading(true) + setError(null) + try { + const res = await fetch(`${UCCA_API}/gap-analysis`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ control_status_map: {} }), + }) + if (!res.ok) throw new Error(`HTTP ${res.status}`) + setResult(await res.json()) + } catch (e) { + setError(e instanceof Error ? e.message : 'Analyse fehlgeschlagen') + } finally { + setLoading(false) + } + } + + if (!result) { + return ( +
+
+ + + +
+

TOM Gap-Analyse

+

+ Vergleicht erforderliche TOM Controls mit dem aktuellen Implementierungsstatus. +

+ {error &&

{error}

} + +
+ ) + } + + const domains = Object.values(result.by_domain).sort((a, b) => a.compliance_percent - b.compliance_percent) + + return ( +
+ {/* Compliance Score */} +
+
+

Compliance-Status

+ +
+ +
+
+
= 80 ? 'text-green-600' : result.compliance_percent >= 50 ? 'text-yellow-600' : 'text-red-600'}`}> + {Math.round(result.compliance_percent)}% +
+

Compliance

+
+
+
+
= 80 ? 'bg-green-500' : result.compliance_percent >= 50 ? 'bg-yellow-500' : 'bg-red-500'}`} + style={{ width: `${Math.min(result.compliance_percent, 100)}%` }} + /> +
+
+ {result.implemented_controls} implementiert + {result.partial_controls} teilweise + {result.missing_controls} fehlend +
+
+
+
+ + {/* Domain Breakdown */} + {domains.length > 0 && ( +
+

Nach Domaene

+
+ {domains.map(d => ( +
+ + {DOMAIN_LABELS[d.domain_id] || d.domain_id} + +
+
= 80 ? 'bg-green-400' : d.compliance_percent >= 50 ? 'bg-yellow-400' : 'bg-red-400'}`} + style={{ width: `${Math.min(d.compliance_percent, 100)}%` }} + /> +
+ + {d.implemented_controls}/{d.total_controls} + +
+ ))} +
+
+ )} + + {/* Priority Actions */} + {result.priority_actions.length > 0 && ( +
+

Prioritaere Massnahmen

+
+ {result.priority_actions.slice(0, 5).map(a => ( +
+ + {a.rank} + +
+

{a.action}

+
+ + {a.impact} + + + Aufwand: {a.effort} + + + {a.control_ids.length} Controls + +
+
+
+ ))} +
+
+ )} + + {/* Gap List */} + {result.gaps.length > 0 && ( +
+

+ Offene Gaps ({result.gaps.length}) +

+
+ {result.gaps.map(g => ( +
+
+ {g.control_id} + {g.control_title} +
+
+ + {g.status === 'NOT_IMPLEMENTED' ? 'Fehlend' : 'Teilweise'} + + {g.required_by_count}x +
+
+ ))} +
+
+ )} +
+ ) +} diff --git a/admin-compliance/components/sdk/obligations/TOMControlPanel.tsx b/admin-compliance/components/sdk/obligations/TOMControlPanel.tsx new file mode 100644 index 0000000..b4abdee --- /dev/null +++ b/admin-compliance/components/sdk/obligations/TOMControlPanel.tsx @@ -0,0 +1,105 @@ +'use client' + +import React, { useState, useEffect } from 'react' + +interface TOMControl { + id: string + title: string + description: string + domain_id: string + priority: string + gdpr_articles: string[] +} + +interface TOMControlPanelProps { + obligationId: string + onClose: () => void +} + +const UCCA_API = '/api/sdk/v1/ucca/obligations' + +const DOMAIN_LABELS: Record = { + GOV: 'Governance', + HR: 'Human Resources', + IAM: 'Identity & Access', + AC: 'Access Control', + CRYPTO: 'Kryptographie', + LOG: 'Logging & Monitoring', + SDLC: 'Softwareentwicklung', + OPS: 'Betrieb', + NET: 'Netzwerk', + BCP: 'Business Continuity', + VENDOR: 'Lieferanten', + DATA: 'Datenschutz', +} + +const PRIORITY_COLORS: Record = { + kritisch: 'bg-red-100 text-red-700', + hoch: 'bg-orange-100 text-orange-700', + mittel: 'bg-yellow-100 text-yellow-700', + niedrig: 'bg-green-100 text-green-700', +} + +export default function TOMControlPanel({ obligationId, onClose }: TOMControlPanelProps) { + const [controls, setControls] = useState([]) + const [loading, setLoading] = useState(true) + const [error, setError] = useState(null) + + useEffect(() => { + async function load() { + setLoading(true) + setError(null) + try { + const res = await fetch(`${UCCA_API}/${obligationId}/tom-controls`) + if (!res.ok) throw new Error(`HTTP ${res.status}`) + const data = await res.json() + setControls(data.controls || []) + } catch (e) { + setError(e instanceof Error ? e.message : 'Laden fehlgeschlagen') + } finally { + setLoading(false) + } + } + load() + }, [obligationId]) + + return ( +
+
+

TOM Controls

+ +
+ +
+ {loading &&

Lade Controls...

} + {error &&

{error}

} + + {!loading && !error && controls.length === 0 && ( +

Keine TOM Controls verknuepft

+ )} + + {!loading && controls.length > 0 && ( +
+ {controls.map(c => ( +
+
+ {c.id} + {DOMAIN_LABELS[c.domain_id] || c.domain_id} + {c.priority && ( + + {c.priority} + + )} +
+

{c.title}

+ {c.description && ( +

{c.description}

+ )} +
+ ))} +
+ )} +
+
+ ) +} diff --git a/ai-compliance-sdk/cmd/server/main.go b/ai-compliance-sdk/cmd/server/main.go index 29968bd..cb7e93e 100644 --- a/ai-compliance-sdk/cmd/server/main.go +++ b/ai-compliance-sdk/cmd/server/main.go @@ -123,6 +123,10 @@ func main() { trainingHandlers := handlers.NewTrainingHandlers(trainingStore, contentGenerator) ragHandlers := handlers.NewRAGHandlers(corpusVersionStore) + // Initialize obligations framework (v2 with TOM mapping) + obligationsStore := ucca.NewObligationsStore(pool) + obligationsHandlers := handlers.NewObligationsHandlersWithStore(obligationsStore) + // Initialize middleware rbacMiddleware := rbac.NewMiddleware(rbacService, policyEngine) @@ -346,6 +350,9 @@ func main() { // DSB Pool management uccaRoutes.GET("/dsb-pool", escalationHandlers.ListDSBPool) uccaRoutes.POST("/dsb-pool", escalationHandlers.AddDSBPoolMember) + + // Obligations framework (v2 with TOM mapping) + obligationsHandlers.RegisterRoutes(uccaRoutes) } // RAG routes - Legal Corpus Search & Versioning diff --git a/ai-compliance-sdk/internal/api/handlers/obligations_handlers.go b/ai-compliance-sdk/internal/api/handlers/obligations_handlers.go index 42572bc..65b3ed6 100644 --- a/ai-compliance-sdk/internal/api/handlers/obligations_handlers.go +++ b/ai-compliance-sdk/internal/api/handlers/obligations_handlers.go @@ -1,6 +1,7 @@ package handlers import ( + "fmt" "net/http" "strconv" "time" @@ -14,23 +15,60 @@ import ( // ObligationsHandlers handles API requests for the generic obligations framework type ObligationsHandlers struct { - registry *ucca.ObligationsRegistry - store *ucca.ObligationsStore // Optional: for persisting assessments + registry *ucca.ObligationsRegistry + store *ucca.ObligationsStore // Optional: for persisting assessments + tomIndex *ucca.TOMControlIndex + tomMapper *ucca.TOMObligationMapper + gapAnalyzer *ucca.TOMGapAnalyzer } // NewObligationsHandlers creates a new ObligationsHandlers instance func NewObligationsHandlers() *ObligationsHandlers { - return &ObligationsHandlers{ + h := &ObligationsHandlers{ registry: ucca.NewObligationsRegistry(), } + h.initTOM() + return h } // NewObligationsHandlersWithStore creates a new ObligationsHandlers with a store func NewObligationsHandlersWithStore(store *ucca.ObligationsStore) *ObligationsHandlers { - return &ObligationsHandlers{ + h := &ObligationsHandlers{ registry: ucca.NewObligationsRegistry(), store: store, } + h.initTOM() + return h +} + +// initTOM initializes TOM control index, mapper, and gap analyzer +func (h *ObligationsHandlers) initTOM() { + tomIndex, err := ucca.LoadTOMControls() + if err != nil { + fmt.Printf("Warning: Could not load TOM controls: %v\n", err) + return + } + h.tomIndex = tomIndex + + // Try to load v2 TOM mapping + mapping, err := ucca.LoadV2TOMMapping() + if err != nil { + // Build mapping from v2 regulation files + regs, err2 := ucca.LoadAllV2Regulations() + if err2 == nil { + var allObligations []ucca.V2Obligation + for _, reg := range regs { + allObligations = append(allObligations, reg.Obligations...) + } + h.tomMapper = ucca.NewTOMObligationMapperFromObligations(tomIndex, allObligations) + } + } else { + h.tomMapper = ucca.NewTOMObligationMapper(tomIndex, mapping) + } + + if h.tomMapper != nil { + h.gapAnalyzer = ucca.NewTOMGapAnalyzer(h.tomMapper, tomIndex) + } } // RegisterRoutes registers all obligations-related routes @@ -56,6 +94,14 @@ func (h *ObligationsHandlers) RegisterRoutes(r *gin.RouterGroup) { // Quick check endpoint (no persistence) obligations.POST("/quick-check", h.QuickCheck) + + // v2: Scope-based assessment + obligations.POST("/assess-from-scope", h.AssessFromScope) + + // v2: TOM Control endpoints + obligations.GET("/:id/tom-controls", h.GetTOMControlsForObligation) + obligations.POST("/gap-analysis", h.GapAnalysis) + obligations.GET("/tom-controls/:controlId/obligations", h.GetObligationsForControl) } } @@ -423,6 +469,106 @@ func (h *ObligationsHandlers) QuickCheck(c *gin.Context) { }) } +// AssessFromScope assesses obligations from a ScopeDecision +// POST /sdk/v1/ucca/obligations/assess-from-scope +func (h *ObligationsHandlers) AssessFromScope(c *gin.Context) { + tenantID := rbac.GetTenantID(c) + if tenantID == uuid.Nil { + tenantID = uuid.New() + } + + var scope ucca.ScopeDecision + if err := c.ShouldBindJSON(&scope); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request body", "details": err.Error()}) + return + } + + // Convert scope to facts + facts := ucca.MapScopeToFacts(&scope) + + // Evaluate + overview := h.registry.EvaluateAll(tenantID, facts, "") + + // Enrich with TOM control requirements if available + if h.tomMapper != nil { + overview.TOMControlRequirements = h.tomMapper.DeriveControlsFromObligations(overview.Obligations) + } + + var warnings []string + if len(overview.ApplicableRegulations) == 0 { + warnings = append(warnings, "Keine anwendbaren Regulierungen gefunden. Pruefen Sie die Scope-Angaben.") + } + + c.JSON(http.StatusOK, ucca.ObligationsAssessResponse{ + Overview: overview, + Warnings: warnings, + }) +} + +// GetTOMControlsForObligation returns TOM controls linked to an obligation +// GET /sdk/v1/ucca/obligations/:id/tom-controls +func (h *ObligationsHandlers) GetTOMControlsForObligation(c *gin.Context) { + obligationID := c.Param("id") + + if h.tomMapper == nil { + c.JSON(http.StatusNotImplemented, gin.H{"error": "TOM mapping not available"}) + return + } + + controls := h.tomMapper.GetControlsForObligation(obligationID) + controlIDs := h.tomMapper.GetControlIDsForObligation(obligationID) + + c.JSON(http.StatusOK, gin.H{ + "obligation_id": obligationID, + "control_ids": controlIDs, + "controls": controls, + "count": len(controls), + }) +} + +// GapAnalysis performs a TOM control gap analysis +// POST /sdk/v1/ucca/obligations/gap-analysis +func (h *ObligationsHandlers) GapAnalysis(c *gin.Context) { + if h.gapAnalyzer == nil { + c.JSON(http.StatusNotImplemented, gin.H{"error": "Gap analysis not available"}) + return + } + + var req ucca.GapAnalysisRequest + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request body", "details": err.Error()}) + return + } + + result := h.gapAnalyzer.Analyze(&req) + c.JSON(http.StatusOK, result) +} + +// GetObligationsForControl returns obligations linked to a TOM control +// GET /sdk/v1/ucca/obligations/tom-controls/:controlId/obligations +func (h *ObligationsHandlers) GetObligationsForControl(c *gin.Context) { + controlID := c.Param("controlId") + + if h.tomMapper == nil { + c.JSON(http.StatusNotImplemented, gin.H{"error": "TOM mapping not available"}) + return + } + + obligationIDs := h.tomMapper.GetObligationsForControl(controlID) + + var control *ucca.TOMControl + if h.tomIndex != nil { + control, _ = h.tomIndex.GetControl(controlID) + } + + c.JSON(http.StatusOK, gin.H{ + "control_id": controlID, + "control": control, + "obligation_ids": obligationIDs, + "count": len(obligationIDs), + }) +} + // ============================================================================ // Helper Functions // ============================================================================ diff --git a/ai-compliance-sdk/internal/ucca/json_regulation_module.go b/ai-compliance-sdk/internal/ucca/json_regulation_module.go new file mode 100644 index 0000000..d4ba2df --- /dev/null +++ b/ai-compliance-sdk/internal/ucca/json_regulation_module.go @@ -0,0 +1,301 @@ +package ucca + +import ( + "fmt" + "time" +) + +// JSONRegulationModule implements RegulationModule from a v2 JSON file +type JSONRegulationModule struct { + regFile *V2RegulationFile + conditionEngine *ObligationConditionEngine + applicability func(*UnifiedFacts) bool +} + +// NewJSONRegulationModule creates a RegulationModule from a v2 JSON regulation file +func NewJSONRegulationModule(regFile *V2RegulationFile) *JSONRegulationModule { + m := &JSONRegulationModule{ + regFile: regFile, + conditionEngine: NewObligationConditionEngine(), + } + // Set regulation-level applicability check + m.applicability = m.defaultApplicability + return m +} + +func (m *JSONRegulationModule) ID() string { return m.regFile.Regulation } +func (m *JSONRegulationModule) Name() string { return m.regFile.Name } +func (m *JSONRegulationModule) Description() string { return m.regFile.Description } + +// IsApplicable checks regulation-level applicability +func (m *JSONRegulationModule) IsApplicable(facts *UnifiedFacts) bool { + return m.applicability(facts) +} + +// defaultApplicability determines if the regulation applies based on regulation ID +func (m *JSONRegulationModule) defaultApplicability(facts *UnifiedFacts) bool { + switch m.regFile.Regulation { + case "dsgvo": + return facts.DataProtection.ProcessesPersonalData && + (facts.Organization.EUMember || facts.DataProtection.OffersToEU || facts.DataProtection.MonitorsEUIndividuals) + case "ai_act": + return facts.AIUsage.UsesAI + case "nis2": + return facts.Sector.PrimarySector != "" && facts.Sector.PrimarySector != "other" && + (facts.Organization.MeetsNIS2SizeThreshold() || len(facts.Sector.SpecialServices) > 0) + case "bdsg": + return facts.DataProtection.ProcessesPersonalData && facts.Organization.Country == "DE" + case "ttdsg": + return (facts.DataProtection.UsesCookies || facts.DataProtection.UsesTracking) && + facts.Organization.Country == "DE" + case "dsa": + return facts.DataProtection.OperatesPlatform && facts.Organization.EUMember + case "data_act": + return facts.Organization.EUMember + case "eu_machinery": + return facts.Organization.EUMember && facts.AIUsage.UsesAI + case "dora": + return facts.Financial.DORAApplies || facts.Financial.IsRegulated + default: + return true + } +} + +// DeriveObligations derives applicable obligations from the JSON data +func (m *JSONRegulationModule) DeriveObligations(facts *UnifiedFacts) []Obligation { + var result []Obligation + + for _, v2Obl := range m.regFile.Obligations { + // Check condition + if v2Obl.AppliesWhenCondition != nil { + if !m.conditionEngine.Evaluate(v2Obl.AppliesWhenCondition, facts) { + continue + } + } else { + // Fall back to legacy applies_when string matching + if !m.evaluateLegacyCondition(v2Obl.AppliesWhen, facts) { + continue + } + } + + result = append(result, m.convertObligation(v2Obl)) + } + + return result +} + +// DeriveControls derives applicable controls +func (m *JSONRegulationModule) DeriveControls(facts *UnifiedFacts) []ObligationControl { + var result []ObligationControl + for _, ctrl := range m.regFile.Controls { + result = append(result, ObligationControl{ + ID: ctrl.ID, + RegulationID: m.regFile.Regulation, + Name: ctrl.Name, + Description: ctrl.Description, + Category: ctrl.Category, + WhatToDo: ctrl.WhatToDo, + ISO27001Mapping: ctrl.ISO27001Mapping, + Priority: ObligationPriority(mapPriority(ctrl.Priority)), + }) + } + return result +} + +func (m *JSONRegulationModule) GetDecisionTree() *DecisionTree { return nil } + +func (m *JSONRegulationModule) GetIncidentDeadlines(facts *UnifiedFacts) []IncidentDeadline { + var result []IncidentDeadline + for _, dl := range m.regFile.IncidentDL { + var legalBasis []LegalReference + for _, lb := range dl.LegalBasis { + legalBasis = append(legalBasis, LegalReference{ + Norm: lb.Norm, + Article: lb.Article, + Title: lb.Title, + }) + } + result = append(result, IncidentDeadline{ + RegulationID: m.regFile.Regulation, + Phase: dl.Phase, + Deadline: dl.Deadline, + Content: dl.Content, + Recipient: dl.Recipient, + LegalBasis: legalBasis, + }) + } + return result +} + +func (m *JSONRegulationModule) GetClassification(facts *UnifiedFacts) string { + switch m.regFile.Regulation { + case "nis2": + if facts.Organization.MeetsNIS2LargeThreshold() || facts.Sector.IsKRITIS { + return string(NIS2EssentialEntity) + } + if facts.Organization.MeetsNIS2SizeThreshold() { + return string(NIS2ImportantEntity) + } + if len(facts.Sector.SpecialServices) > 0 { + return string(NIS2EssentialEntity) + } + return string(NIS2NotAffected) + case "ai_act": + if facts.AIUsage.HasHighRiskAI { + return "hochrisiko" + } + if facts.AIUsage.HasLimitedRiskAI { + return "begrenztes_risiko" + } + return "minimales_risiko" + case "dsgvo": + if facts.DataProtection.IsController { + if facts.DataProtection.LargeScaleProcessing || facts.DataProtection.ProcessesSpecialCategories { + return "verantwortlicher_hochrisiko" + } + return "verantwortlicher" + } + return "auftragsverarbeiter" + default: + return "anwendbar" + } +} + +// convertObligation converts a V2Obligation to the framework Obligation struct +func (m *JSONRegulationModule) convertObligation(v2 V2Obligation) Obligation { + obl := Obligation{ + ID: v2.ID, + RegulationID: m.regFile.Regulation, + Title: v2.Title, + Description: v2.Description, + Category: ObligationCategory(v2.Category), + Responsible: ResponsibleRole(v2.Responsible), + Priority: ObligationPriority(mapPriority(v2.Priority)), + AppliesWhen: v2.AppliesWhen, + ISO27001Mapping: v2.ISO27001Mapping, + HowToImplement: v2.HowToImplement, + BreakpilotFeature: v2.BreakpilotFeature, + } + + // Legal basis + for _, lb := range v2.LegalBasis { + obl.LegalBasis = append(obl.LegalBasis, LegalReference{ + Norm: lb.Norm, + Article: lb.Article, + Title: lb.Title, + }) + } + + // Sanctions + if v2.Sanctions != nil { + obl.Sanctions = &SanctionInfo{ + MaxFine: v2.Sanctions.MaxFine, + PersonalLiability: v2.Sanctions.PersonalLiability, + CriminalLiability: v2.Sanctions.CriminalLiability, + Description: v2.Sanctions.Description, + } + } + + // Deadline + if v2.Deadline != nil { + obl.Deadline = m.convertDeadline(v2.Deadline) + } + + // Evidence + for _, ev := range v2.Evidence { + switch e := ev.(type) { + case string: + obl.Evidence = append(obl.Evidence, EvidenceItem{Name: e, Required: true}) + case map[string]interface{}: + name, _ := e["name"].(string) + required, _ := e["required"].(bool) + format, _ := e["format"].(string) + obl.Evidence = append(obl.Evidence, EvidenceItem{ + Name: name, + Required: required, + Format: format, + }) + } + } + + // Store TOM control IDs in ExternalResources for now + obl.ExternalResources = v2.TOMControlIDs + + return obl +} + +func (m *JSONRegulationModule) convertDeadline(dl *V2Deadline) *Deadline { + d := &Deadline{ + Type: DeadlineType(dl.Type), + Duration: dl.Duration, + Interval: dl.Interval, + Event: dl.Event, + } + if dl.Date != "" { + t, err := time.Parse("2006-01-02", dl.Date) + if err == nil { + d.Date = &t + } + } + return d +} + +// evaluateLegacyCondition evaluates the legacy applies_when string +func (m *JSONRegulationModule) evaluateLegacyCondition(condition string, facts *UnifiedFacts) bool { + switch condition { + case "always": + return true + case "controller": + return facts.DataProtection.IsController + case "processor": + return facts.DataProtection.IsProcessor + case "high_risk": + return facts.DataProtection.LargeScaleProcessing || facts.DataProtection.SystematicMonitoring || facts.DataProtection.ProcessesSpecialCategories + case "needs_dpo": + return facts.DataProtection.RequiresDSBByLaw || facts.Organization.IsPublicAuthority || facts.Organization.EmployeeCount >= 20 + case "uses_processors": + return facts.DataProtection.UsesExternalProcessor + case "cross_border": + return facts.DataProtection.TransfersToThirdCountries || facts.DataProtection.CrossBorderProcessing + case "uses_ai": + return facts.AIUsage.UsesAI + case "high_risk_provider": + return facts.AIUsage.HasHighRiskAI && facts.AIUsage.IsAIProvider + case "high_risk_deployer": + return facts.AIUsage.HasHighRiskAI && facts.AIUsage.IsAIDeployer + case "high_risk_deployer_fria": + return facts.AIUsage.HasHighRiskAI && facts.AIUsage.IsAIDeployer && (facts.Organization.IsPublicAuthority || facts.AIUsage.EducationAccess || facts.AIUsage.EmploymentDecisions) + case "limited_risk": + return facts.AIUsage.HasLimitedRiskAI || facts.AIUsage.AIInteractsWithNaturalPersons + case "gpai_provider": + return facts.AIUsage.UsesGPAI && facts.AIUsage.IsAIProvider + case "gpai_systemic_risk": + return facts.AIUsage.GPAIWithSystemicRisk + default: + // For NIS2-style conditions with classification + if condition == "classification != 'nicht_betroffen'" { + return true // if module is applicable, classification is not "nicht_betroffen" + } + if condition == "classification == 'besonders_wichtige_einrichtung'" { + return facts.Organization.MeetsNIS2LargeThreshold() || facts.Sector.IsKRITIS + } + fmt.Printf("Warning: unknown legacy condition: %s\n", condition) + return true + } +} + +// mapPriority normalizes priority strings to standard enum values +func mapPriority(p string) string { + switch p { + case "kritisch", "critical": + return "critical" + case "hoch", "high": + return "high" + case "mittel", "medium": + return "medium" + case "niedrig", "low": + return "low" + default: + return p + } +} diff --git a/ai-compliance-sdk/internal/ucca/obligation_condition_engine.go b/ai-compliance-sdk/internal/ucca/obligation_condition_engine.go new file mode 100644 index 0000000..c628bf8 --- /dev/null +++ b/ai-compliance-sdk/internal/ucca/obligation_condition_engine.go @@ -0,0 +1,300 @@ +package ucca + +import ( + "encoding/json" + "fmt" + "strings" +) + +// ObligationConditionEngine evaluates condition trees against UnifiedFacts +type ObligationConditionEngine struct { + fieldMap map[string]func(*UnifiedFacts) interface{} +} + +// NewObligationConditionEngine creates a new condition engine with all field mappings +func NewObligationConditionEngine() *ObligationConditionEngine { + e := &ObligationConditionEngine{} + e.fieldMap = e.buildFieldMap() + return e +} + +// Evaluate evaluates a condition node against facts +func (e *ObligationConditionEngine) Evaluate(node *ConditionNode, facts *UnifiedFacts) bool { + if node == nil { + return true // nil condition = always applies + } + + // Composite: all_of (AND) + if len(node.AllOf) > 0 { + for _, child := range node.AllOf { + if !e.Evaluate(&child, facts) { + return false + } + } + return true + } + + // Composite: any_of (OR) + if len(node.AnyOf) > 0 { + for _, child := range node.AnyOf { + if e.Evaluate(&child, facts) { + return true + } + } + return false + } + + // Leaf node: field + operator + value + if node.Field != "" { + return e.evaluateLeaf(node, facts) + } + + return true +} + +func (e *ObligationConditionEngine) evaluateLeaf(node *ConditionNode, facts *UnifiedFacts) bool { + getter, ok := e.fieldMap[node.Field] + if !ok { + fmt.Printf("Warning: unknown field in condition: %s\n", node.Field) + return false + } + + actual := getter(facts) + return e.compare(actual, node.Operator, node.Value) +} + +func (e *ObligationConditionEngine) compare(actual interface{}, operator string, expected interface{}) bool { + switch strings.ToUpper(operator) { + case "EQUALS": + return e.equals(actual, expected) + case "NOT_EQUALS": + return !e.equals(actual, expected) + case "GREATER_THAN": + return e.toFloat(actual) > e.toFloat(expected) + case "LESS_THAN": + return e.toFloat(actual) < e.toFloat(expected) + case "GREATER_OR_EQUAL": + return e.toFloat(actual) >= e.toFloat(expected) + case "LESS_OR_EQUAL": + return e.toFloat(actual) <= e.toFloat(expected) + case "IN": + return e.inSlice(actual, expected) + case "NOT_IN": + return !e.inSlice(actual, expected) + case "CONTAINS": + return e.contains(actual, expected) + case "EXISTS": + return actual != nil && actual != "" && actual != false && actual != 0 + default: + fmt.Printf("Warning: unknown operator: %s\n", operator) + return false + } +} + +func (e *ObligationConditionEngine) equals(a, b interface{}) bool { + // Handle bool comparisons + aBool, aIsBool := e.toBool(a) + bBool, bIsBool := e.toBool(b) + if aIsBool && bIsBool { + return aBool == bBool + } + + // Handle numeric comparisons + aFloat, aIsNum := e.toFloatOk(a) + bFloat, bIsNum := e.toFloatOk(b) + if aIsNum && bIsNum { + return aFloat == bFloat + } + + // String comparison + return fmt.Sprintf("%v", a) == fmt.Sprintf("%v", b) +} + +func (e *ObligationConditionEngine) toBool(v interface{}) (bool, bool) { + switch b := v.(type) { + case bool: + return b, true + } + return false, false +} + +func (e *ObligationConditionEngine) toFloat(v interface{}) float64 { + f, _ := e.toFloatOk(v) + return f +} + +func (e *ObligationConditionEngine) toFloatOk(v interface{}) (float64, bool) { + switch n := v.(type) { + case int: + return float64(n), true + case int64: + return float64(n), true + case float64: + return n, true + case float32: + return float64(n), true + case json.Number: + f, err := n.Float64() + return f, err == nil + } + return 0, false +} + +func (e *ObligationConditionEngine) inSlice(actual, expected interface{}) bool { + actualStr := fmt.Sprintf("%v", actual) + switch v := expected.(type) { + case []interface{}: + for _, item := range v { + if fmt.Sprintf("%v", item) == actualStr { + return true + } + } + case []string: + for _, item := range v { + if item == actualStr { + return true + } + } + } + return false +} + +func (e *ObligationConditionEngine) contains(actual, expected interface{}) bool { + // Check if actual (slice) contains expected + switch v := actual.(type) { + case []string: + exp := fmt.Sprintf("%v", expected) + for _, item := range v { + if item == exp { + return true + } + } + case string: + return strings.Contains(v, fmt.Sprintf("%v", expected)) + } + return false +} + +// buildFieldMap creates the mapping from JSON field paths to Go struct accessors +func (e *ObligationConditionEngine) buildFieldMap() map[string]func(*UnifiedFacts) interface{} { + return map[string]func(*UnifiedFacts) interface{}{ + // Organization + "organization.employee_count": func(f *UnifiedFacts) interface{} { return f.Organization.EmployeeCount }, + "organization.annual_revenue": func(f *UnifiedFacts) interface{} { return f.Organization.AnnualRevenue }, + "organization.country": func(f *UnifiedFacts) interface{} { return f.Organization.Country }, + "organization.eu_member": func(f *UnifiedFacts) interface{} { return f.Organization.EUMember }, + "organization.is_public_authority": func(f *UnifiedFacts) interface{} { return f.Organization.IsPublicAuthority }, + "organization.legal_form": func(f *UnifiedFacts) interface{} { return f.Organization.LegalForm }, + "organization.size_category": func(f *UnifiedFacts) interface{} { return f.Organization.CalculateSizeCategory() }, + "organization.is_part_of_group": func(f *UnifiedFacts) interface{} { return f.Organization.IsPartOfGroup }, + + // Data Protection + "data_protection.processes_personal_data": func(f *UnifiedFacts) interface{} { return f.DataProtection.ProcessesPersonalData }, + "data_protection.is_controller": func(f *UnifiedFacts) interface{} { return f.DataProtection.IsController }, + "data_protection.is_processor": func(f *UnifiedFacts) interface{} { return f.DataProtection.IsProcessor }, + "data_protection.processes_special_categories": func(f *UnifiedFacts) interface{} { return f.DataProtection.ProcessesSpecialCategories }, + "data_protection.processes_children_data": func(f *UnifiedFacts) interface{} { return f.DataProtection.ProcessesMinorData }, + "data_protection.processes_minor_data": func(f *UnifiedFacts) interface{} { return f.DataProtection.ProcessesMinorData }, + "data_protection.processes_criminal_data": func(f *UnifiedFacts) interface{} { return f.DataProtection.ProcessesCriminalData }, + "data_protection.large_scale": func(f *UnifiedFacts) interface{} { return f.DataProtection.LargeScaleProcessing }, + "data_protection.large_scale_processing": func(f *UnifiedFacts) interface{} { return f.DataProtection.LargeScaleProcessing }, + "data_protection.systematic_monitoring": func(f *UnifiedFacts) interface{} { return f.DataProtection.SystematicMonitoring }, + "data_protection.uses_automated_decisions": func(f *UnifiedFacts) interface{} { return f.DataProtection.AutomatedDecisionMaking }, + "data_protection.automated_decision_making": func(f *UnifiedFacts) interface{} { return f.DataProtection.AutomatedDecisionMaking }, + "data_protection.cross_border_transfer": func(f *UnifiedFacts) interface{} { return f.DataProtection.TransfersToThirdCountries }, + "data_protection.transfers_to_third_countries": func(f *UnifiedFacts) interface{} { return f.DataProtection.TransfersToThirdCountries }, + "data_protection.cross_border_processing": func(f *UnifiedFacts) interface{} { return f.DataProtection.CrossBorderProcessing }, + "data_protection.uses_processors": func(f *UnifiedFacts) interface{} { return f.DataProtection.UsesExternalProcessor }, + "data_protection.uses_external_processor": func(f *UnifiedFacts) interface{} { return f.DataProtection.UsesExternalProcessor }, + "data_protection.high_risk": func(f *UnifiedFacts) interface{} { return f.DataProtection.LargeScaleProcessing || f.DataProtection.SystematicMonitoring || f.DataProtection.ProcessesSpecialCategories }, + "data_protection.uses_profiling": func(f *UnifiedFacts) interface{} { return f.DataProtection.Profiling }, + "data_protection.profiling": func(f *UnifiedFacts) interface{} { return f.DataProtection.Profiling }, + "data_protection.requires_dsb": func(f *UnifiedFacts) interface{} { return f.DataProtection.RequiresDSBByLaw }, + "data_protection.needs_dpo": func(f *UnifiedFacts) interface{} { return f.DataProtection.RequiresDSBByLaw }, + "data_protection.has_appointed_dsb": func(f *UnifiedFacts) interface{} { return f.DataProtection.HasAppointedDSB }, + "data_protection.data_subject_count": func(f *UnifiedFacts) interface{} { return f.DataProtection.DataSubjectCount }, + "data_protection.sccs_in_place": func(f *UnifiedFacts) interface{} { return f.DataProtection.SCCsInPlace }, + "data_protection.binding_corporate_rules": func(f *UnifiedFacts) interface{} { return f.DataProtection.BindingCorporateRules }, + "data_protection.special_categories": func(f *UnifiedFacts) interface{} { return f.DataProtection.SpecialCategories }, + "data_protection.processes_employee_data": func(f *UnifiedFacts) interface{} { return f.DataProtection.ProcessesEmployeeData }, + "data_protection.processes_health_data": func(f *UnifiedFacts) interface{} { return f.DataProtection.ProcessesHealthData }, + "data_protection.processes_financial_data": func(f *UnifiedFacts) interface{} { return f.DataProtection.ProcessesFinancialData }, + "data_protection.uses_cookies": func(f *UnifiedFacts) interface{} { return f.DataProtection.UsesCookies }, + "data_protection.uses_tracking": func(f *UnifiedFacts) interface{} { return f.DataProtection.UsesTracking }, + "data_protection.uses_video_surveillance": func(f *UnifiedFacts) interface{} { return f.DataProtection.UsesVideoSurveillance }, + "data_protection.processes_biometric_data": func(f *UnifiedFacts) interface{} { return f.DataProtection.ProcessesBiometricData }, + "data_protection.operates_platform": func(f *UnifiedFacts) interface{} { return f.DataProtection.OperatesPlatform }, + "data_protection.platform_user_count": func(f *UnifiedFacts) interface{} { return f.DataProtection.PlatformUserCount }, + + // AI Usage + "ai_usage.uses_ai": func(f *UnifiedFacts) interface{} { return f.AIUsage.UsesAI }, + "ai_usage.is_ai_provider": func(f *UnifiedFacts) interface{} { return f.AIUsage.IsAIProvider }, + "ai_usage.is_ai_deployer": func(f *UnifiedFacts) interface{} { return f.AIUsage.IsAIDeployer }, + "ai_usage.is_ai_distributor": func(f *UnifiedFacts) interface{} { return f.AIUsage.IsAIDistributor }, + "ai_usage.is_ai_importer": func(f *UnifiedFacts) interface{} { return f.AIUsage.IsAIImporter }, + "ai_usage.high_risk_ai": func(f *UnifiedFacts) interface{} { return f.AIUsage.HasHighRiskAI }, + "ai_usage.has_high_risk_ai": func(f *UnifiedFacts) interface{} { return f.AIUsage.HasHighRiskAI }, + "ai_usage.limited_risk_ai": func(f *UnifiedFacts) interface{} { return f.AIUsage.HasLimitedRiskAI }, + "ai_usage.has_limited_risk_ai": func(f *UnifiedFacts) interface{} { return f.AIUsage.HasLimitedRiskAI }, + "ai_usage.minimal_risk_ai": func(f *UnifiedFacts) interface{} { return f.AIUsage.HasMinimalRiskAI }, + "ai_usage.is_gpai_provider": func(f *UnifiedFacts) interface{} { return f.AIUsage.UsesGPAI }, + "ai_usage.gpai_systemic_risk": func(f *UnifiedFacts) interface{} { return f.AIUsage.GPAIWithSystemicRisk }, + "ai_usage.uses_biometric_ai": func(f *UnifiedFacts) interface{} { return f.AIUsage.BiometricIdentification }, + "ai_usage.biometric_identification": func(f *UnifiedFacts) interface{} { return f.AIUsage.BiometricIdentification }, + "ai_usage.uses_emotion_recognition": func(f *UnifiedFacts) interface{} { return f.AIUsage.EmotionRecognition }, + "ai_usage.ai_in_education": func(f *UnifiedFacts) interface{} { return f.AIUsage.EducationAccess }, + "ai_usage.ai_in_employment": func(f *UnifiedFacts) interface{} { return f.AIUsage.EmploymentDecisions }, + "ai_usage.ai_in_critical_infrastructure": func(f *UnifiedFacts) interface{} { return f.AIUsage.CriticalInfrastructure }, + "ai_usage.ai_in_law_enforcement": func(f *UnifiedFacts) interface{} { return f.AIUsage.LawEnforcement }, + "ai_usage.ai_in_justice": func(f *UnifiedFacts) interface{} { return f.AIUsage.JusticeAdministration }, + "ai_usage.uses_generative_ai": func(f *UnifiedFacts) interface{} { return f.AIUsage.AIInteractsWithNaturalPersons }, + "ai_usage.uses_deepfakes": func(f *UnifiedFacts) interface{} { return f.AIUsage.GeneratesDeepfakes }, + "ai_usage.ai_makes_decisions": func(f *UnifiedFacts) interface{} { return f.DataProtection.AutomatedDecisionMaking }, + "ai_usage.ai_interacts_with_persons": func(f *UnifiedFacts) interface{} { return f.AIUsage.AIInteractsWithNaturalPersons }, + + // Sector + "sector.primary_sector": func(f *UnifiedFacts) interface{} { return f.Sector.PrimarySector }, + "sector.is_kritis": func(f *UnifiedFacts) interface{} { return f.Sector.IsKRITIS }, + "sector.nis2_applicable": func(f *UnifiedFacts) interface{} { return f.Sector.PrimarySector != "" && f.Sector.PrimarySector != "other" }, + "sector.nis2_classification": func(f *UnifiedFacts) interface{} { return f.Sector.NIS2Classification }, + "sector.is_annex_i": func(f *UnifiedFacts) interface{} { return f.Sector.IsAnnexI }, + "sector.is_annex_ii": func(f *UnifiedFacts) interface{} { return f.Sector.IsAnnexII }, + "sector.provides_dns": func(f *UnifiedFacts) interface{} { return containsString(f.Sector.SpecialServices, "dns") }, + "sector.provides_cloud": func(f *UnifiedFacts) interface{} { return containsString(f.Sector.SpecialServices, "cloud") }, + "sector.provides_cdn": func(f *UnifiedFacts) interface{} { return containsString(f.Sector.SpecialServices, "cdn") }, + "sector.provides_data_center": func(f *UnifiedFacts) interface{} { return containsString(f.Sector.SpecialServices, "datacenter") }, + "sector.provides_managed_services": func(f *UnifiedFacts) interface{} { return containsString(f.Sector.SpecialServices, "msp") || containsString(f.Sector.SpecialServices, "mssp") }, + "sector.is_financial_institution": func(f *UnifiedFacts) interface{} { return f.Sector.IsFinancialInstitution }, + "sector.is_healthcare_provider": func(f *UnifiedFacts) interface{} { return f.Sector.IsHealthcareProvider }, + + // IT Security + "it_security.has_isms": func(f *UnifiedFacts) interface{} { return f.ITSecurity.HasISMS }, + "it_security.iso27001_certified": func(f *UnifiedFacts) interface{} { return f.ITSecurity.ISO27001Certified }, + "it_security.has_incident_process": func(f *UnifiedFacts) interface{} { return f.ITSecurity.HasIncidentProcess }, + "it_security.has_mfa": func(f *UnifiedFacts) interface{} { return f.ITSecurity.HasMFA }, + "it_security.has_encryption": func(f *UnifiedFacts) interface{} { return f.ITSecurity.HasEncryption }, + "it_security.has_backup": func(f *UnifiedFacts) interface{} { return f.ITSecurity.HasBackup }, + "it_security.has_bcm": func(f *UnifiedFacts) interface{} { return f.ITSecurity.HasBCM }, + "it_security.has_siem": func(f *UnifiedFacts) interface{} { return f.ITSecurity.HasSecurityMonitoring }, + "it_security.has_network_segmentation": func(f *UnifiedFacts) interface{} { return f.ITSecurity.HasNetworkSegmentation }, + "it_security.has_vulnerability_mgmt": func(f *UnifiedFacts) interface{} { return f.ITSecurity.HasVulnerabilityMgmt }, + + // Financial + "financial.dora_applies": func(f *UnifiedFacts) interface{} { return f.Financial.DORAApplies }, + "financial.is_regulated": func(f *UnifiedFacts) interface{} { return f.Financial.IsRegulated }, + "financial.has_critical_ict": func(f *UnifiedFacts) interface{} { return f.Financial.HasCriticalICT }, + "financial.ict_outsourced": func(f *UnifiedFacts) interface{} { return f.Financial.ICTOutsourced }, + "financial.concentration_risk": func(f *UnifiedFacts) interface{} { return f.Financial.ConcentrationRisk }, + + // Supply Chain + "supply_chain.has_risk_management": func(f *UnifiedFacts) interface{} { return f.SupplyChain.HasSupplyChainRiskMgmt }, + "supply_chain.supplier_count": func(f *UnifiedFacts) interface{} { return f.SupplyChain.SupplierCount }, + + // Personnel + "personnel.has_ciso": func(f *UnifiedFacts) interface{} { return f.Personnel.HasCISO }, + "personnel.has_dpo": func(f *UnifiedFacts) interface{} { return f.Personnel.HasDPO }, + "personnel.has_ai_competence": func(f *UnifiedFacts) interface{} { return f.Personnel.HasAICompetence }, + "personnel.has_ai_governance": func(f *UnifiedFacts) interface{} { return f.Personnel.HasAIGovernance }, + "personnel.has_compliance_officer": func(f *UnifiedFacts) interface{} { return f.Personnel.HasComplianceOfficer }, + } +} diff --git a/ai-compliance-sdk/internal/ucca/obligation_condition_engine_test.go b/ai-compliance-sdk/internal/ucca/obligation_condition_engine_test.go new file mode 100644 index 0000000..241e4ea --- /dev/null +++ b/ai-compliance-sdk/internal/ucca/obligation_condition_engine_test.go @@ -0,0 +1,176 @@ +package ucca + +import ( + "testing" +) + +func TestConditionEngine_NilNode(t *testing.T) { + engine := NewObligationConditionEngine() + facts := NewUnifiedFacts() + if !engine.Evaluate(nil, facts) { + t.Error("nil node should return true (always applies)") + } +} + +func TestConditionEngine_LeafEquals(t *testing.T) { + engine := NewObligationConditionEngine() + + tests := []struct { + name string + field string + value interface{} + facts func() *UnifiedFacts + expected bool + }{ + { + name: "is_controller true", + field: "data_protection.is_controller", value: true, + facts: func() *UnifiedFacts { + f := NewUnifiedFacts() + f.DataProtection.IsController = true + return f + }, + expected: true, + }, + { + name: "is_controller false mismatch", + field: "data_protection.is_controller", value: true, + facts: func() *UnifiedFacts { return NewUnifiedFacts() }, + expected: false, + }, + { + name: "employee_count equals", + field: "organization.employee_count", value: float64(50), + facts: func() *UnifiedFacts { + f := NewUnifiedFacts() + f.Organization.EmployeeCount = 50 + return f + }, + expected: true, + }, + { + name: "uses_ai true", + field: "ai_usage.uses_ai", value: true, + facts: func() *UnifiedFacts { + f := NewUnifiedFacts() + f.AIUsage.UsesAI = true + return f + }, + expected: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + node := &ConditionNode{ + Field: tt.field, + Operator: "EQUALS", + Value: tt.value, + } + result := engine.Evaluate(node, tt.facts()) + if result != tt.expected { + t.Errorf("expected %v, got %v", tt.expected, result) + } + }) + } +} + +func TestConditionEngine_GreaterThan(t *testing.T) { + engine := NewObligationConditionEngine() + facts := NewUnifiedFacts() + facts.Organization.EmployeeCount = 50 + + node := &ConditionNode{ + Field: "organization.employee_count", + Operator: "GREATER_THAN", + Value: float64(19), + } + if !engine.Evaluate(node, facts) { + t.Error("50 > 19 should be true") + } + + facts.Organization.EmployeeCount = 10 + if engine.Evaluate(node, facts) { + t.Error("10 > 19 should be false") + } +} + +func TestConditionEngine_AllOf(t *testing.T) { + engine := NewObligationConditionEngine() + facts := NewUnifiedFacts() + facts.DataProtection.IsController = true + facts.DataProtection.ProcessesSpecialCategories = true + + node := &ConditionNode{ + AllOf: []ConditionNode{ + {Field: "data_protection.is_controller", Operator: "EQUALS", Value: true}, + {Field: "data_protection.processes_special_categories", Operator: "EQUALS", Value: true}, + }, + } + + if !engine.Evaluate(node, facts) { + t.Error("all_of with both true should be true") + } + + facts.DataProtection.ProcessesSpecialCategories = false + if engine.Evaluate(node, facts) { + t.Error("all_of with one false should be false") + } +} + +func TestConditionEngine_AnyOf(t *testing.T) { + engine := NewObligationConditionEngine() + facts := NewUnifiedFacts() + facts.DataProtection.RequiresDSBByLaw = false + + node := &ConditionNode{ + AnyOf: []ConditionNode{ + {Field: "data_protection.needs_dpo", Operator: "EQUALS", Value: true}, + {Field: "organization.employee_count", Operator: "GREATER_THAN", Value: float64(19)}, + }, + } + + if engine.Evaluate(node, facts) { + t.Error("any_of with both false should be false") + } + + facts.Organization.EmployeeCount = 25 + if !engine.Evaluate(node, facts) { + t.Error("any_of with one true should be true") + } +} + +func TestConditionEngine_UnknownField(t *testing.T) { + engine := NewObligationConditionEngine() + facts := NewUnifiedFacts() + + node := &ConditionNode{ + Field: "nonexistent.field", + Operator: "EQUALS", + Value: true, + } + + if engine.Evaluate(node, facts) { + t.Error("unknown field should return false") + } +} + +func TestConditionEngine_NotEquals(t *testing.T) { + engine := NewObligationConditionEngine() + facts := NewUnifiedFacts() + facts.Organization.Country = "DE" + + node := &ConditionNode{ + Field: "organization.country", + Operator: "NOT_EQUALS", + Value: "US", + } + if !engine.Evaluate(node, facts) { + t.Error("DE != US should be true") + } + + node.Value = "DE" + if engine.Evaluate(node, facts) { + t.Error("DE != DE should be false") + } +} diff --git a/ai-compliance-sdk/internal/ucca/obligations_framework.go b/ai-compliance-sdk/internal/ucca/obligations_framework.go index 61275aa..c59b00c 100644 --- a/ai-compliance-sdk/internal/ucca/obligations_framework.go +++ b/ai-compliance-sdk/internal/ucca/obligations_framework.go @@ -296,6 +296,9 @@ type ManagementObligationsOverview struct { // Executive summary for C-Level ExecutiveSummary ExecutiveSummary `json:"executive_summary"` + + // TOM Control Requirements (derived from obligations, v2) + TOMControlRequirements []TOMControlRequirement `json:"tom_control_requirements,omitempty"` } // ============================================================================ diff --git a/ai-compliance-sdk/internal/ucca/obligations_registry.go b/ai-compliance-sdk/internal/ucca/obligations_registry.go index bd99de8..6a769b8 100644 --- a/ai-compliance-sdk/internal/ucca/obligations_registry.go +++ b/ai-compliance-sdk/internal/ucca/obligations_registry.go @@ -22,43 +22,64 @@ type ObligationsRegistry struct { modules map[string]RegulationModule } -// NewObligationsRegistry creates a new registry and registers all default modules +// NewObligationsRegistry creates a new registry and registers all default modules. +// It loads v2 JSON modules first; for regulations without v2 JSON, falls back to YAML modules. func NewObligationsRegistry() *ObligationsRegistry { r := &ObligationsRegistry{ modules: make(map[string]RegulationModule), } - // Register default modules - // NIS2 module - nis2Module, err := NewNIS2Module() - if err != nil { - fmt.Printf("Warning: Could not load NIS2 module: %v\n", err) - } else { - r.Register(nis2Module) + // Try to load v2 JSON modules first + v2Loaded := r.loadV2Modules() + + // Fall back to YAML modules for regulations not covered by v2 + if !v2Loaded["nis2"] { + if nis2Module, err := NewNIS2Module(); err == nil { + r.Register(nis2Module) + } else { + fmt.Printf("Warning: Could not load NIS2 module: %v\n", err) + } } - // DSGVO module - dsgvoModule, err := NewDSGVOModule() - if err != nil { - fmt.Printf("Warning: Could not load DSGVO module: %v\n", err) - } else { - r.Register(dsgvoModule) + if !v2Loaded["dsgvo"] { + if dsgvoModule, err := NewDSGVOModule(); err == nil { + r.Register(dsgvoModule) + } else { + fmt.Printf("Warning: Could not load DSGVO module: %v\n", err) + } } - // AI Act module - aiActModule, err := NewAIActModule() - if err != nil { - fmt.Printf("Warning: Could not load AI Act module: %v\n", err) - } else { - r.Register(aiActModule) + if !v2Loaded["ai_act"] { + if aiActModule, err := NewAIActModule(); err == nil { + r.Register(aiActModule) + } else { + fmt.Printf("Warning: Could not load AI Act module: %v\n", err) + } } - // Future modules will be registered here: - // r.Register(NewDORAModule()) - return r } +// loadV2Modules attempts to load all v2 JSON regulation modules +func (r *ObligationsRegistry) loadV2Modules() map[string]bool { + loaded := make(map[string]bool) + + regulations, err := LoadAllV2Regulations() + if err != nil { + fmt.Printf("Info: No v2 regulations found, using YAML modules: %v\n", err) + return loaded + } + + for regID, regFile := range regulations { + module := NewJSONRegulationModule(regFile) + r.Register(module) + loaded[regID] = true + fmt.Printf("Loaded v2 regulation module: %s (%d obligations)\n", regID, len(regFile.Obligations)) + } + + return loaded +} + // NewObligationsRegistryWithModules creates a registry with specific modules func NewObligationsRegistryWithModules(modules ...RegulationModule) *ObligationsRegistry { r := &ObligationsRegistry{ diff --git a/ai-compliance-sdk/internal/ucca/scope_facts_mapper.go b/ai-compliance-sdk/internal/ucca/scope_facts_mapper.go new file mode 100644 index 0000000..7cf5ee8 --- /dev/null +++ b/ai-compliance-sdk/internal/ucca/scope_facts_mapper.go @@ -0,0 +1,128 @@ +package ucca + +// ScopeDecision represents the output from the frontend Scope Wizard +type ScopeDecision struct { + // Company profile + EmployeeCount int `json:"employee_count"` + AnnualRevenue float64 `json:"annual_revenue"` + Country string `json:"country"` + Industry string `json:"industry"` + LegalForm string `json:"legal_form,omitempty"` + + // Scope wizard answers + ProcessesPersonalData bool `json:"processes_personal_data"` + IsController bool `json:"is_controller"` + IsProcessor bool `json:"is_processor"` + DataArt9 bool `json:"data_art9"` + DataMinors bool `json:"data_minors"` + LargeScale bool `json:"large_scale"` + SystematicMonitoring bool `json:"systematic_monitoring"` + CrossBorderTransfer bool `json:"cross_border_transfer"` + UsesProcessors bool `json:"uses_processors"` + AutomatedDecisions bool `json:"automated_decisions"` + ProcessesEmployeeData bool `json:"processes_employee_data"` + ProcessesHealthData bool `json:"processes_health_data"` + ProcessesFinancialData bool `json:"processes_financial_data"` + UsesCookies bool `json:"uses_cookies"` + UsesTracking bool `json:"uses_tracking"` + UsesVideoSurveillance bool `json:"uses_video_surveillance"` + OperatesPlatform bool `json:"operates_platform"` + PlatformUserCount int `json:"platform_user_count,omitempty"` + + // AI usage + ProcAIUsage bool `json:"proc_ai_usage"` + IsAIProvider bool `json:"is_ai_provider"` + IsAIDeployer bool `json:"is_ai_deployer"` + HighRiskAI bool `json:"high_risk_ai"` + LimitedRiskAI bool `json:"limited_risk_ai"` + + // Sector / NIS2 + Sector string `json:"sector,omitempty"` + SpecialServices []string `json:"special_services,omitempty"` + IsKRITIS bool `json:"is_kritis"` + IsFinancialInstitution bool `json:"is_financial_institution"` + + // Scope engine results + DeterminedLevel string `json:"determined_level,omitempty"` // L1-L4 + TriggeredRules []string `json:"triggered_rules,omitempty"` + RequiredDocuments []string `json:"required_documents,omitempty"` + CertTarget string `json:"cert_target,omitempty"` +} + +// MapScopeToFacts converts a ScopeDecision to UnifiedFacts +func MapScopeToFacts(scope *ScopeDecision) *UnifiedFacts { + facts := NewUnifiedFacts() + + // Organization + facts.Organization.EmployeeCount = scope.EmployeeCount + facts.Organization.AnnualRevenue = scope.AnnualRevenue + facts.Organization.Country = scope.Country + facts.Organization.LegalForm = scope.LegalForm + if scope.Country != "" { + facts.Organization.EUMember = isEUCountryScope(scope.Country) + } + + // Data Protection + facts.DataProtection.ProcessesPersonalData = scope.ProcessesPersonalData + facts.DataProtection.IsController = scope.IsController + facts.DataProtection.IsProcessor = scope.IsProcessor + facts.DataProtection.ProcessesSpecialCategories = scope.DataArt9 + facts.DataProtection.ProcessesMinorData = scope.DataMinors + facts.DataProtection.LargeScaleProcessing = scope.LargeScale + facts.DataProtection.SystematicMonitoring = scope.SystematicMonitoring + facts.DataProtection.TransfersToThirdCountries = scope.CrossBorderTransfer + facts.DataProtection.CrossBorderProcessing = scope.CrossBorderTransfer + facts.DataProtection.UsesExternalProcessor = scope.UsesProcessors + facts.DataProtection.AutomatedDecisionMaking = scope.AutomatedDecisions + facts.DataProtection.AutomatedDecisions = scope.AutomatedDecisions + facts.DataProtection.ProcessesEmployeeData = scope.ProcessesEmployeeData + facts.DataProtection.ProcessesHealthData = scope.ProcessesHealthData + facts.DataProtection.ProcessesFinancialData = scope.ProcessesFinancialData + facts.DataProtection.UsesCookies = scope.UsesCookies + facts.DataProtection.UsesTracking = scope.UsesTracking + facts.DataProtection.UsesVideoSurveillance = scope.UsesVideoSurveillance + facts.DataProtection.OperatesPlatform = scope.OperatesPlatform + facts.DataProtection.PlatformUserCount = scope.PlatformUserCount + + // DPO requirement (German law: >= 20 employees processing personal data) + if scope.EmployeeCount >= 20 && scope.ProcessesPersonalData { + facts.DataProtection.RequiresDSBByLaw = true + } + + // AI Usage + facts.AIUsage.UsesAI = scope.ProcAIUsage + facts.AIUsage.IsAIProvider = scope.IsAIProvider + facts.AIUsage.IsAIDeployer = scope.IsAIDeployer + facts.AIUsage.HasHighRiskAI = scope.HighRiskAI + facts.AIUsage.HasLimitedRiskAI = scope.LimitedRiskAI + + // Sector + if scope.Sector != "" { + facts.Sector.PrimarySector = scope.Sector + } else if scope.Industry != "" { + facts.MapDomainToSector(scope.Industry) + } + facts.Sector.SpecialServices = scope.SpecialServices + facts.Sector.IsKRITIS = scope.IsKRITIS + facts.Sector.KRITISThresholdMet = scope.IsKRITIS + facts.Sector.IsFinancialInstitution = scope.IsFinancialInstitution + + // Financial + if scope.IsFinancialInstitution { + facts.Financial.IsRegulated = true + facts.Financial.DORAApplies = true + } + + return facts +} + +func isEUCountryScope(country string) bool { + euCountries := map[string]bool{ + "DE": true, "AT": true, "BE": true, "BG": true, "HR": true, "CY": true, + "CZ": true, "DK": true, "EE": true, "FI": true, "FR": true, "GR": true, + "HU": true, "IE": true, "IT": true, "LV": true, "LT": true, "LU": true, + "MT": true, "NL": true, "PL": true, "PT": true, "RO": true, "SK": true, + "SI": true, "ES": true, "SE": true, + } + return euCountries[country] +} diff --git a/ai-compliance-sdk/internal/ucca/tom_control_loader.go b/ai-compliance-sdk/internal/ucca/tom_control_loader.go new file mode 100644 index 0000000..b4ecb68 --- /dev/null +++ b/ai-compliance-sdk/internal/ucca/tom_control_loader.go @@ -0,0 +1,160 @@ +package ucca + +import ( + "encoding/json" + "fmt" + "os" + "path/filepath" + "runtime" +) + +// TOMControl represents a single TOM control from the control library +type TOMControl struct { + ID string `json:"id"` + Title string `json:"title"` + Description string `json:"description"` + Type string `json:"type"` // ORGANIZATIONAL, TECHNICAL + ImplementationGuidance string `json:"implementation_guidance,omitempty"` + Evidence []string `json:"evidence,omitempty"` + AppliesIf *TOMAppliesIf `json:"applies_if,omitempty"` + RiskTier string `json:"risk_tier"` // BASELINE, ENHANCED, ADVANCED + Mappings TOMControlMapping `json:"mappings,omitempty"` + ReviewFrequency string `json:"review_frequency,omitempty"` + Priority string `json:"priority"` // CRITICAL, HIGH, MEDIUM, LOW + Complexity string `json:"complexity,omitempty"` + DomainID string `json:"domain_id,omitempty"` // set during loading +} + +// TOMAppliesIf defines when a control applies +type TOMAppliesIf struct { + Field string `json:"field"` + Operator string `json:"operator"` + Value interface{} `json:"value"` +} + +// TOMControlMapping maps a control to various standards +type TOMControlMapping struct { + GDPR []string `json:"gdpr,omitempty"` + ISO27001 []string `json:"iso27001,omitempty"` + BSI []string `json:"bsi,omitempty"` + SDM []string `json:"sdm,omitempty"` + NIS2 []string `json:"nis2,omitempty"` +} + +// TOMControlDomain represents a domain of controls +type TOMControlDomain struct { + ID string `json:"id"` + Name string `json:"name"` + Objective string `json:"objective"` + Controls []TOMControl `json:"controls"` +} + +// TOMControlLibrary is the top-level structure of the control library +type TOMControlLibrary struct { + Schema string `json:"schema"` + Version string `json:"version"` + Domains []TOMControlDomain `json:"domains"` +} + +// TOMControlIndex provides fast lookup of controls +type TOMControlIndex struct { + ByID map[string]*TOMControl + ByDomain map[string][]*TOMControl + ByGDPRArticle map[string][]*TOMControl + AllControls []*TOMControl +} + +// LoadTOMControls loads the TOM control library from JSON +func LoadTOMControls() (*TOMControlIndex, error) { + data, err := readTOMControlsFile() + if err != nil { + return nil, err + } + + var library TOMControlLibrary + if err := json.Unmarshal(data, &library); err != nil { + return nil, fmt.Errorf("failed to parse TOM controls: %w", err) + } + + return buildTOMIndex(&library), nil +} + +func readTOMControlsFile() ([]byte, error) { + // Try multiple candidate paths + candidates := []string{ + "policies/tom_controls_v1.json", + "../policies/tom_controls_v1.json", + "../../policies/tom_controls_v1.json", + } + + // Also try relative to source file + _, filename, _, ok := runtime.Caller(0) + if ok { + srcDir := filepath.Dir(filename) + candidates = append(candidates, + filepath.Join(srcDir, "../../policies/tom_controls_v1.json"), + ) + } + + for _, p := range candidates { + abs, err := filepath.Abs(p) + if err != nil { + continue + } + data, err := os.ReadFile(abs) + if err == nil { + return data, nil + } + } + + return nil, fmt.Errorf("tom_controls_v1.json not found in any candidate path") +} + +func buildTOMIndex(library *TOMControlLibrary) *TOMControlIndex { + idx := &TOMControlIndex{ + ByID: make(map[string]*TOMControl), + ByDomain: make(map[string][]*TOMControl), + ByGDPRArticle: make(map[string][]*TOMControl), + } + + for i := range library.Domains { + domain := &library.Domains[i] + for j := range domain.Controls { + ctrl := &domain.Controls[j] + ctrl.DomainID = domain.ID + + idx.ByID[ctrl.ID] = ctrl + idx.ByDomain[domain.ID] = append(idx.ByDomain[domain.ID], ctrl) + idx.AllControls = append(idx.AllControls, ctrl) + + // Index by GDPR article + for _, article := range ctrl.Mappings.GDPR { + idx.ByGDPRArticle[article] = append(idx.ByGDPRArticle[article], ctrl) + } + } + } + + return idx +} + +// GetControl returns a control by ID +func (idx *TOMControlIndex) GetControl(id string) (*TOMControl, bool) { + ctrl, ok := idx.ByID[id] + return ctrl, ok +} + +// GetControlsByDomain returns all controls for a domain +func (idx *TOMControlIndex) GetControlsByDomain(domain string) []*TOMControl { + return idx.ByDomain[domain] +} + +// GetControlsByGDPRArticle returns controls mapped to a GDPR article +func (idx *TOMControlIndex) GetControlsByGDPRArticle(article string) []*TOMControl { + return idx.ByGDPRArticle[article] +} + +// ValidateControlID checks if a control ID exists +func (idx *TOMControlIndex) ValidateControlID(id string) bool { + _, ok := idx.ByID[id] + return ok +} diff --git a/ai-compliance-sdk/internal/ucca/tom_gap_analysis.go b/ai-compliance-sdk/internal/ucca/tom_gap_analysis.go new file mode 100644 index 0000000..754b518 --- /dev/null +++ b/ai-compliance-sdk/internal/ucca/tom_gap_analysis.go @@ -0,0 +1,259 @@ +package ucca + +import ( + "fmt" + "sort" +) + +// ControlStatus represents the implementation status of a control +type ControlStatus string + +const ( + ControlImplemented ControlStatus = "IMPLEMENTED" + ControlPartial ControlStatus = "PARTIAL" + ControlNotImplemented ControlStatus = "NOT_IMPLEMENTED" + ControlNotApplicable ControlStatus = "NOT_APPLICABLE" +) + +// GapAnalysisRequest is the input for gap analysis +type GapAnalysisRequest struct { + // Obligations that apply (from assessment) + Obligations []Obligation `json:"obligations"` + // Current implementation status of controls + ControlStatusMap map[string]ControlStatus `json:"control_status_map"` // control_id -> status +} + +// GapAnalysisResult is the output of gap analysis +type GapAnalysisResult struct { + CompliancePercent float64 `json:"compliance_percent"` // 0-100 + TotalControls int `json:"total_controls"` + ImplementedControls int `json:"implemented_controls"` + PartialControls int `json:"partial_controls"` + MissingControls int `json:"missing_controls"` + Gaps []GapItem `json:"gaps"` + PriorityActions []PriorityAction `json:"priority_actions"` + ByDomain map[string]DomainGap `json:"by_domain"` +} + +// GapItem represents a single compliance gap +type GapItem struct { + ControlID string `json:"control_id"` + ControlTitle string `json:"control_title"` + ControlDomain string `json:"control_domain"` + Status ControlStatus `json:"status"` + Priority string `json:"priority"` + ObligationIDs []string `json:"obligation_ids"` + RequiredByCount int `json:"required_by_count"` + Impact string `json:"impact"` // "critical", "high", "medium", "low" +} + +// PriorityAction is a recommended action to close gaps +type PriorityAction struct { + Rank int `json:"rank"` + Action string `json:"action"` + ControlIDs []string `json:"control_ids"` + Impact string `json:"impact"` + Effort string `json:"effort"` // "low", "medium", "high" +} + +// DomainGap summarizes gaps per TOM domain +type DomainGap struct { + DomainID string `json:"domain_id"` + DomainName string `json:"domain_name"` + TotalControls int `json:"total_controls"` + ImplementedControls int `json:"implemented_controls"` + CompliancePercent float64 `json:"compliance_percent"` +} + +// TOMGapAnalyzer performs gap analysis between obligations and control implementation +type TOMGapAnalyzer struct { + mapper *TOMObligationMapper + tomIndex *TOMControlIndex +} + +// NewTOMGapAnalyzer creates a new gap analyzer +func NewTOMGapAnalyzer(mapper *TOMObligationMapper, tomIndex *TOMControlIndex) *TOMGapAnalyzer { + return &TOMGapAnalyzer{ + mapper: mapper, + tomIndex: tomIndex, + } +} + +// Analyze performs gap analysis +func (g *TOMGapAnalyzer) Analyze(req *GapAnalysisRequest) *GapAnalysisResult { + result := &GapAnalysisResult{ + Gaps: []GapItem{}, + PriorityActions: []PriorityAction{}, + ByDomain: make(map[string]DomainGap), + } + + // Derive required controls from obligations + requirements := g.mapper.DeriveControlsFromObligations(req.Obligations) + result.TotalControls = len(requirements) + + // Track domain stats + domainTotal := make(map[string]int) + domainImplemented := make(map[string]int) + + for _, ctrl := range requirements { + controlID := ctrl.Control.ID + domain := ctrl.Control.DomainID + + domainTotal[domain]++ + + status, hasStatus := req.ControlStatusMap[controlID] + if !hasStatus { + status = ControlNotImplemented + } + + switch status { + case ControlImplemented: + result.ImplementedControls++ + domainImplemented[domain]++ + case ControlPartial: + result.PartialControls++ + // Count partial as 0.5 for domain + domainImplemented[domain]++ // simplified + result.Gaps = append(result.Gaps, GapItem{ + ControlID: controlID, + ControlTitle: ctrl.Control.Title, + ControlDomain: domain, + Status: ControlPartial, + Priority: ctrl.Priority, + ObligationIDs: ctrl.ObligationIDs, + RequiredByCount: ctrl.RequiredByCount, + Impact: ctrl.Priority, + }) + case ControlNotImplemented: + result.MissingControls++ + result.Gaps = append(result.Gaps, GapItem{ + ControlID: controlID, + ControlTitle: ctrl.Control.Title, + ControlDomain: domain, + Status: ControlNotImplemented, + Priority: ctrl.Priority, + ObligationIDs: ctrl.ObligationIDs, + RequiredByCount: ctrl.RequiredByCount, + Impact: ctrl.Priority, + }) + case ControlNotApplicable: + result.TotalControls-- // Don't count N/A + domainTotal[domain]-- + } + } + + // Calculate compliance percent + if result.TotalControls > 0 { + implemented := float64(result.ImplementedControls) + float64(result.PartialControls)*0.5 + result.CompliancePercent = (implemented / float64(result.TotalControls)) * 100 + } else { + result.CompliancePercent = 100 + } + + // Sort gaps by priority + priorityRank := map[string]int{"critical": 0, "high": 1, "medium": 2, "low": 3} + sort.Slice(result.Gaps, func(i, j int) bool { + ri := priorityRank[result.Gaps[i].Priority] + rj := priorityRank[result.Gaps[j].Priority] + if ri != rj { + return ri < rj + } + return result.Gaps[i].RequiredByCount > result.Gaps[j].RequiredByCount + }) + + // Build domain gaps + for domain, total := range domainTotal { + if total <= 0 { + continue + } + impl := domainImplemented[domain] + pct := float64(impl) / float64(total) * 100 + domainName := domain + if ctrls := g.tomIndex.GetControlsByDomain(domain); len(ctrls) > 0 { + domainName = domain // Use domain ID as name + } + result.ByDomain[domain] = DomainGap{ + DomainID: domain, + DomainName: domainName, + TotalControls: total, + ImplementedControls: impl, + CompliancePercent: pct, + } + } + + // Generate priority actions + result.PriorityActions = g.generatePriorityActions(result.Gaps) + + return result +} + +func (g *TOMGapAnalyzer) generatePriorityActions(gaps []GapItem) []PriorityAction { + var actions []PriorityAction + rank := 1 + + // Group critical gaps by domain + domainGaps := make(map[string][]GapItem) + for _, gap := range gaps { + if gap.Status == ControlNotImplemented { + domainGaps[gap.ControlDomain] = append(domainGaps[gap.ControlDomain], gap) + } + } + + // Generate actions for domains with most critical gaps + type domainPriority struct { + domain string + gaps []GapItem + critCount int + } + var dp []domainPriority + for domain, gs := range domainGaps { + crit := 0 + for _, g := range gs { + if g.Priority == "critical" { + crit++ + } + } + dp = append(dp, domainPriority{domain, gs, crit}) + } + sort.Slice(dp, func(i, j int) bool { + if dp[i].critCount != dp[j].critCount { + return dp[i].critCount > dp[j].critCount + } + return len(dp[i].gaps) > len(dp[j].gaps) + }) + + for _, d := range dp { + if rank > 10 { + break + } + var controlIDs []string + for _, g := range d.gaps { + controlIDs = append(controlIDs, g.ControlID) + } + + impact := "medium" + if d.critCount > 0 { + impact = "critical" + } else if len(d.gaps) > 3 { + impact = "high" + } + + effort := "medium" + if len(d.gaps) > 5 { + effort = "high" + } else if len(d.gaps) <= 2 { + effort = "low" + } + + actions = append(actions, PriorityAction{ + Rank: rank, + Action: fmt.Sprintf("Domain %s: %d fehlende Controls implementieren", d.domain, len(d.gaps)), + ControlIDs: controlIDs, + Impact: impact, + Effort: effort, + }) + rank++ + } + + return actions +} diff --git a/ai-compliance-sdk/internal/ucca/tom_mapper_test.go b/ai-compliance-sdk/internal/ucca/tom_mapper_test.go new file mode 100644 index 0000000..e18a626 --- /dev/null +++ b/ai-compliance-sdk/internal/ucca/tom_mapper_test.go @@ -0,0 +1,175 @@ +package ucca + +import ( + "testing" +) + +func TestTOMControlLoader(t *testing.T) { + index, err := LoadTOMControls() + if err != nil { + t.Skipf("TOM controls not found: %v", err) + } + + if len(index.ByID) == 0 { + t.Error("expected controls indexed by ID") + } + if len(index.ByDomain) == 0 { + t.Error("expected controls indexed by domain") + } + t.Logf("Loaded %d TOM controls across %d domains", len(index.ByID), len(index.ByDomain)) + + // Check known control + ctrl, ok := index.GetControl("TOM.GOV.01") + if !ok || ctrl == nil { + t.Error("expected TOM.GOV.01 to exist") + } else if ctrl.Title == "" { + t.Error("expected TOM.GOV.01 to have a title") + } + + // Check domain + govCtrls := index.GetControlsByDomain("GOV") + if len(govCtrls) == 0 { + t.Error("expected GOV domain to have controls") + } + + // Validate known ID + if !index.ValidateControlID("TOM.GOV.01") { + t.Error("TOM.GOV.01 should be valid") + } + if index.ValidateControlID("TOM.FAKE.99") { + t.Error("TOM.FAKE.99 should be invalid") + } +} + +func TestTOMObligationMapper_FromObligations(t *testing.T) { + index, err := LoadTOMControls() + if err != nil { + t.Skipf("TOM controls not found: %v", err) + } + + // Create test obligations with tom_control_ids + obligations := []V2Obligation{ + { + ID: "TEST-OBL-001", + TOMControlIDs: []string{"TOM.GOV.01", "TOM.GOV.02"}, + Priority: "kritisch", + }, + { + ID: "TEST-OBL-002", + TOMControlIDs: []string{"TOM.GOV.01", "TOM.CRYPTO.01"}, + Priority: "hoch", + }, + } + + mapper := NewTOMObligationMapperFromObligations(index, obligations) + + // Check obligation->control + controls := mapper.GetControlsForObligation("TEST-OBL-001") + if len(controls) != 2 { + t.Errorf("expected 2 controls for TEST-OBL-001, got %d", len(controls)) + } + + // Check control->obligation (reverse) + oblIDs := mapper.GetObligationsForControl("TOM.GOV.01") + if len(oblIDs) != 2 { + t.Errorf("expected 2 obligations for TOM.GOV.01, got %d", len(oblIDs)) + } + + // Check deduplicated requirements + frameworkObls := make([]Obligation, len(obligations)) + for i, o := range obligations { + frameworkObls[i] = Obligation{ + ID: o.ID, + Priority: ObligationPriority(o.Priority), + ExternalResources: o.TOMControlIDs, + } + } + reqs := mapper.DeriveControlsFromObligations(frameworkObls) + if len(reqs) == 0 { + t.Error("expected derived control requirements") + } + + // GOV.01 should appear once but with 2 obligation references + for _, req := range reqs { + if req.Control != nil && req.Control.ID == "TOM.GOV.01" { + if req.RequiredByCount != 2 { + t.Errorf("expected TOM.GOV.01 required by 2, got %d", req.RequiredByCount) + } + if req.Priority != "kritisch" { + t.Errorf("expected highest priority 'kritisch', got '%s'", req.Priority) + } + return + } + } + t.Error("TOM.GOV.01 not found in derived requirements") +} + +func TestTOMGapAnalysis(t *testing.T) { + index, err := LoadTOMControls() + if err != nil { + t.Skipf("TOM controls not found: %v", err) + } + + obligations := []V2Obligation{ + {ID: "T-001", TOMControlIDs: []string{"TOM.GOV.01"}, Priority: "kritisch"}, + {ID: "T-002", TOMControlIDs: []string{"TOM.GOV.01", "TOM.CRYPTO.01"}, Priority: "hoch"}, + } + mapper := NewTOMObligationMapperFromObligations(index, obligations) + analyzer := NewTOMGapAnalyzer(mapper, index) + + frameworkObls := []Obligation{ + {ID: "T-001", Priority: "kritisch", ExternalResources: []string{"TOM.GOV.01"}}, + {ID: "T-002", Priority: "hoch", ExternalResources: []string{"TOM.GOV.01", "TOM.CRYPTO.01"}}, + } + + result := analyzer.Analyze(&GapAnalysisRequest{ + Obligations: frameworkObls, + ControlStatusMap: map[string]ControlStatus{ + "TOM.GOV.01": ControlImplemented, + "TOM.CRYPTO.01": ControlNotImplemented, + }, + }) + + if result.TotalControls != 2 { + t.Errorf("expected 2 total controls, got %d", result.TotalControls) + } + if result.ImplementedControls != 1 { + t.Errorf("expected 1 implemented, got %d", result.ImplementedControls) + } + if result.MissingControls != 1 { + t.Errorf("expected 1 missing, got %d", result.MissingControls) + } + if result.CompliancePercent != 50 { + t.Errorf("expected 50%% compliance, got %.1f%%", result.CompliancePercent) + } + if len(result.Gaps) != 1 { + t.Errorf("expected 1 gap, got %d", len(result.Gaps)) + } +} + +func TestTOMGapAnalysis_AllImplemented(t *testing.T) { + index, err := LoadTOMControls() + if err != nil { + t.Skipf("TOM controls not found: %v", err) + } + + obligations := []V2Obligation{ + {ID: "T-001", TOMControlIDs: []string{"TOM.GOV.01"}, Priority: "hoch"}, + } + mapper := NewTOMObligationMapperFromObligations(index, obligations) + analyzer := NewTOMGapAnalyzer(mapper, index) + + result := analyzer.Analyze(&GapAnalysisRequest{ + Obligations: []Obligation{{ID: "T-001", Priority: "hoch", ExternalResources: []string{"TOM.GOV.01"}}}, + ControlStatusMap: map[string]ControlStatus{ + "TOM.GOV.01": ControlImplemented, + }, + }) + + if result.CompliancePercent != 100 { + t.Errorf("expected 100%% compliance, got %.1f%%", result.CompliancePercent) + } + if len(result.Gaps) != 0 { + t.Errorf("expected 0 gaps, got %d", len(result.Gaps)) + } +} diff --git a/ai-compliance-sdk/internal/ucca/tom_obligation_mapper.go b/ai-compliance-sdk/internal/ucca/tom_obligation_mapper.go new file mode 100644 index 0000000..9e5c380 --- /dev/null +++ b/ai-compliance-sdk/internal/ucca/tom_obligation_mapper.go @@ -0,0 +1,150 @@ +package ucca + +import ( + "sort" +) + +// TOMObligationMapper provides bidirectional mapping between obligations and TOM controls +type TOMObligationMapper struct { + tomIndex *TOMControlIndex + obligationToControl map[string][]string // obligation_id -> []control_id + controlToObligation map[string][]string // control_id -> []obligation_id +} + +// TOMControlRequirement represents a required TOM control with context +type TOMControlRequirement struct { + Control *TOMControl `json:"control"` + ObligationIDs []string `json:"obligation_ids"` + Priority string `json:"priority"` // highest priority from linked obligations + RequiredByCount int `json:"required_by_count"` // number of obligations requiring this +} + +// NewTOMObligationMapper creates a new mapper from TOM index and v2 mapping +func NewTOMObligationMapper(tomIndex *TOMControlIndex, mapping *V2TOMMapping) *TOMObligationMapper { + m := &TOMObligationMapper{ + tomIndex: tomIndex, + obligationToControl: make(map[string][]string), + controlToObligation: make(map[string][]string), + } + + if mapping != nil { + m.obligationToControl = mapping.ObligationToControl + m.controlToObligation = mapping.ControlToObligation + } + + return m +} + +// NewTOMObligationMapperFromObligations builds the mapper from obligations' tom_control_ids +func NewTOMObligationMapperFromObligations(tomIndex *TOMControlIndex, obligations []V2Obligation) *TOMObligationMapper { + m := &TOMObligationMapper{ + tomIndex: tomIndex, + obligationToControl: make(map[string][]string), + controlToObligation: make(map[string][]string), + } + + for _, obl := range obligations { + for _, controlID := range obl.TOMControlIDs { + m.obligationToControl[obl.ID] = append(m.obligationToControl[obl.ID], controlID) + m.controlToObligation[controlID] = append(m.controlToObligation[controlID], obl.ID) + } + } + + return m +} + +// GetControlsForObligation returns TOM controls linked to an obligation +func (m *TOMObligationMapper) GetControlsForObligation(obligationID string) []*TOMControl { + controlIDs := m.obligationToControl[obligationID] + var result []*TOMControl + for _, id := range controlIDs { + if ctrl, ok := m.tomIndex.GetControl(id); ok { + result = append(result, ctrl) + } + } + return result +} + +// GetControlIDsForObligation returns control IDs for an obligation +func (m *TOMObligationMapper) GetControlIDsForObligation(obligationID string) []string { + return m.obligationToControl[obligationID] +} + +// GetObligationsForControl returns obligation IDs linked to a control +func (m *TOMObligationMapper) GetObligationsForControl(controlID string) []string { + return m.controlToObligation[controlID] +} + +// DeriveControlsFromObligations takes a list of applicable obligations and returns +// deduplicated, priority-sorted TOM control requirements +func (m *TOMObligationMapper) DeriveControlsFromObligations(obligations []Obligation) []TOMControlRequirement { + // Collect all required controls with their linking obligations + controlMap := make(map[string]*TOMControlRequirement) + + priorityRank := map[string]int{"critical": 0, "high": 1, "medium": 2, "low": 3} + + for _, obl := range obligations { + // Get control IDs from ExternalResources (where tom_control_ids are stored) + controlIDs := obl.ExternalResources + if len(controlIDs) == 0 { + controlIDs = m.obligationToControl[obl.ID] + } + + for _, controlID := range controlIDs { + ctrl, ok := m.tomIndex.GetControl(controlID) + if !ok { + continue + } + + if existing, found := controlMap[controlID]; found { + existing.ObligationIDs = append(existing.ObligationIDs, obl.ID) + existing.RequiredByCount++ + // Keep highest priority + if rank, ok := priorityRank[string(obl.Priority)]; ok { + if existingRank, ok2 := priorityRank[existing.Priority]; ok2 && rank < existingRank { + existing.Priority = string(obl.Priority) + } + } + } else { + controlMap[controlID] = &TOMControlRequirement{ + Control: ctrl, + ObligationIDs: []string{obl.ID}, + Priority: string(obl.Priority), + RequiredByCount: 1, + } + } + } + } + + // Convert to slice and sort by priority then required_by_count + var result []TOMControlRequirement + for _, req := range controlMap { + result = append(result, *req) + } + + sort.Slice(result, func(i, j int) bool { + ri := priorityRank[result[i].Priority] + rj := priorityRank[result[j].Priority] + if ri != rj { + return ri < rj + } + return result[i].RequiredByCount > result[j].RequiredByCount + }) + + return result +} + +// AddMapping adds a single obligation->control mapping +func (m *TOMObligationMapper) AddMapping(obligationID, controlID string) { + m.obligationToControl[obligationID] = appendUnique(m.obligationToControl[obligationID], controlID) + m.controlToObligation[controlID] = appendUnique(m.controlToObligation[controlID], obligationID) +} + +func appendUnique(slice []string, item string) []string { + for _, s := range slice { + if s == item { + return slice + } + } + return append(slice, item) +} diff --git a/ai-compliance-sdk/internal/ucca/unified_facts.go b/ai-compliance-sdk/internal/ucca/unified_facts.go index 4a89331..e9974bc 100644 --- a/ai-compliance-sdk/internal/ucca/unified_facts.go +++ b/ai-compliance-sdk/internal/ucca/unified_facts.go @@ -85,6 +85,11 @@ type SectorFacts struct { IsPublicAdministration bool `json:"is_public_administration"` PublicAdminLevel string `json:"public_admin_level,omitempty"` // "federal", "state", "municipal" + // NIS2 classification (v2) + NIS2Classification string `json:"nis2_classification,omitempty"` // wichtige_einrichtung, besonders_wichtige_einrichtung, nicht_betroffen + IsAnnexI bool `json:"is_annex_i"` + IsAnnexII bool `json:"is_annex_ii"` + // Healthcare specific IsHealthcareProvider bool `json:"is_healthcare_provider"` HasPatientData bool `json:"has_patient_data"` @@ -141,6 +146,19 @@ type DataProtectionFacts struct { RequiresDSBByLaw bool `json:"requires_dsb_by_law"` HasAppointedDSB bool `json:"has_appointed_dsb"` DSBIsInternal bool `json:"dsb_is_internal"` + + // Extended data categories (v2) + ProcessesEmployeeData bool `json:"processes_employee_data"` + ProcessesFinancialData bool `json:"processes_financial_data"` + ProcessesHealthData bool `json:"processes_health_data"` + ProcessesBiometricData bool `json:"processes_biometric_data"` + + // Online / Platform processing (v2) + UsesCookies bool `json:"uses_cookies"` + UsesTracking bool `json:"uses_tracking"` + UsesVideoSurveillance bool `json:"uses_video_surveillance"` + OperatesPlatform bool `json:"operates_platform"` + PlatformUserCount int `json:"platform_user_count,omitempty"` } // AIUsageFacts contains AI Act relevant information diff --git a/ai-compliance-sdk/internal/ucca/v2_loader.go b/ai-compliance-sdk/internal/ucca/v2_loader.go new file mode 100644 index 0000000..e31682b --- /dev/null +++ b/ai-compliance-sdk/internal/ucca/v2_loader.go @@ -0,0 +1,233 @@ +package ucca + +import ( + "encoding/json" + "fmt" + "os" + "path/filepath" + "runtime" +) + +// V2Manifest represents the registry of all v2 obligation files +type V2Manifest struct { + SchemaVersion string `json:"schema_version"` + Regulations []V2RegulationEntry `json:"regulations"` + TOMMappingFile string `json:"tom_mapping_file"` + TotalObl int `json:"total_obligations"` +} + +// V2RegulationEntry is a single regulation in the manifest +type V2RegulationEntry struct { + ID string `json:"id"` + File string `json:"file"` + Version string `json:"version"` + Count int `json:"count"` +} + +// V2RegulationFile is the top-level structure of a v2 regulation JSON file +type V2RegulationFile struct { + Regulation string `json:"regulation"` + Name string `json:"name"` + Description string `json:"description"` + Version string `json:"version"` + EffectiveDate string `json:"effective_date,omitempty"` + Obligations []V2Obligation `json:"obligations"` + Controls []V2Control `json:"controls,omitempty"` + IncidentDL []V2IncidentDL `json:"incident_deadlines,omitempty"` +} + +// V2Obligation is the extended obligation structure +type V2Obligation struct { + ID string `json:"id"` + Title string `json:"title"` + Description string `json:"description"` + AppliesWhen string `json:"applies_when"` + AppliesWhenCondition *ConditionNode `json:"applies_when_condition,omitempty"` + LegalBasis []V2LegalBasis `json:"legal_basis"` + Sources []V2Source `json:"sources,omitempty"` + Category string `json:"category"` + Responsible string `json:"responsible"` + Deadline *V2Deadline `json:"deadline,omitempty"` + Sanctions *V2Sanctions `json:"sanctions,omitempty"` + Evidence []interface{} `json:"evidence,omitempty"` + Priority string `json:"priority"` + TOMControlIDs []string `json:"tom_control_ids,omitempty"` + BreakpilotFeature string `json:"breakpilot_feature,omitempty"` + ValidFrom string `json:"valid_from,omitempty"` + ValidUntil *string `json:"valid_until"` + Version string `json:"version,omitempty"` + ISO27001Mapping []string `json:"iso27001_mapping,omitempty"` + HowToImplement string `json:"how_to_implement,omitempty"` +} + +// V2LegalBasis is a legal reference in v2 format +type V2LegalBasis struct { + Norm string `json:"norm"` + Article string `json:"article"` + Title string `json:"title,omitempty"` + Erwaegungsgrund string `json:"erwaegungsgrund,omitempty"` +} + +// V2Source is an external source reference +type V2Source struct { + Type string `json:"type"` + Ref string `json:"ref"` +} + +// V2Deadline is a deadline in v2 format +type V2Deadline struct { + Type string `json:"type"` + Date string `json:"date,omitempty"` + Duration string `json:"duration,omitempty"` + Interval string `json:"interval,omitempty"` + Event string `json:"event,omitempty"` +} + +// V2Sanctions is sanctions info in v2 format +type V2Sanctions struct { + MaxFine string `json:"max_fine,omitempty"` + PersonalLiability bool `json:"personal_liability,omitempty"` + CriminalLiability bool `json:"criminal_liability,omitempty"` + Description string `json:"description,omitempty"` +} + +// V2Control is a control in v2 format +type V2Control struct { + ID string `json:"id"` + Name string `json:"name"` + Description string `json:"description,omitempty"` + Category string `json:"category"` + WhatToDo string `json:"what_to_do,omitempty"` + ISO27001Mapping []string `json:"iso27001_mapping,omitempty"` + Priority string `json:"priority,omitempty"` +} + +// V2IncidentDL is an incident deadline in v2 format +type V2IncidentDL struct { + Phase string `json:"phase"` + Deadline string `json:"deadline"` + Content string `json:"content,omitempty"` + Recipient string `json:"recipient,omitempty"` + LegalBasis []V2LegalBasis `json:"legal_basis,omitempty"` +} + +// ConditionNode represents a condition tree node for obligation applicability +type ConditionNode struct { + AllOf []ConditionNode `json:"all_of,omitempty"` + AnyOf []ConditionNode `json:"any_of,omitempty"` + Field string `json:"field,omitempty"` + Operator string `json:"operator,omitempty"` + Value interface{} `json:"value,omitempty"` +} + +// V2TOMMapping is the bidirectional mapping file +type V2TOMMapping struct { + SchemaVersion string `json:"schema_version"` + ObligationToControl map[string][]string `json:"obligation_to_control"` + ControlToObligation map[string][]string `json:"control_to_obligation"` +} + +// getV2BasePath returns the base path for v2 obligation files +func getV2BasePath() string { + // Try relative to the binary + candidates := []string{ + "policies/obligations/v2", + "../policies/obligations/v2", + "../../policies/obligations/v2", + } + + // Also try relative to the source file + _, filename, _, ok := runtime.Caller(0) + if ok { + srcDir := filepath.Dir(filename) + candidates = append(candidates, + filepath.Join(srcDir, "../../policies/obligations/v2"), + ) + } + + for _, p := range candidates { + abs, err := filepath.Abs(p) + if err != nil { + continue + } + if info, err := os.Stat(abs); err == nil && info.IsDir() { + return abs + } + } + + return "policies/obligations/v2" +} + +// LoadV2Manifest loads the v2 manifest file +func LoadV2Manifest() (*V2Manifest, error) { + basePath := getV2BasePath() + manifestPath := filepath.Join(basePath, "_manifest.json") + + data, err := os.ReadFile(manifestPath) + if err != nil { + return nil, fmt.Errorf("failed to read v2 manifest: %w", err) + } + + var manifest V2Manifest + if err := json.Unmarshal(data, &manifest); err != nil { + return nil, fmt.Errorf("failed to parse v2 manifest: %w", err) + } + + return &manifest, nil +} + +// LoadV2RegulationFile loads a single v2 regulation JSON file +func LoadV2RegulationFile(filename string) (*V2RegulationFile, error) { + basePath := getV2BasePath() + filePath := filepath.Join(basePath, filename) + + data, err := os.ReadFile(filePath) + if err != nil { + return nil, fmt.Errorf("failed to read v2 regulation file %s: %w", filename, err) + } + + var regFile V2RegulationFile + if err := json.Unmarshal(data, ®File); err != nil { + return nil, fmt.Errorf("failed to parse v2 regulation file %s: %w", filename, err) + } + + return ®File, nil +} + +// LoadV2TOMMapping loads the bidirectional TOM mapping +func LoadV2TOMMapping() (*V2TOMMapping, error) { + basePath := getV2BasePath() + mappingPath := filepath.Join(basePath, "_tom_mapping.json") + + data, err := os.ReadFile(mappingPath) + if err != nil { + return nil, fmt.Errorf("failed to read TOM mapping: %w", err) + } + + var mapping V2TOMMapping + if err := json.Unmarshal(data, &mapping); err != nil { + return nil, fmt.Errorf("failed to parse TOM mapping: %w", err) + } + + return &mapping, nil +} + +// LoadAllV2Regulations loads all v2 regulation files from the manifest +func LoadAllV2Regulations() (map[string]*V2RegulationFile, error) { + manifest, err := LoadV2Manifest() + if err != nil { + return nil, err + } + + result := make(map[string]*V2RegulationFile) + for _, entry := range manifest.Regulations { + regFile, err := LoadV2RegulationFile(entry.File) + if err != nil { + fmt.Printf("Warning: Could not load v2 regulation %s: %v\n", entry.ID, err) + continue + } + result[entry.ID] = regFile + } + + return result, nil +} diff --git a/ai-compliance-sdk/internal/ucca/v2_loader_test.go b/ai-compliance-sdk/internal/ucca/v2_loader_test.go new file mode 100644 index 0000000..9bdbaea --- /dev/null +++ b/ai-compliance-sdk/internal/ucca/v2_loader_test.go @@ -0,0 +1,137 @@ +package ucca + +import ( + "os" + "testing" +) + +func TestLoadV2Manifest(t *testing.T) { + manifest, err := LoadV2Manifest() + if err != nil { + t.Skipf("v2 manifest not found (expected in CI): %v", err) + } + + if manifest.SchemaVersion != "2.0" { + t.Errorf("expected schema_version 2.0, got %s", manifest.SchemaVersion) + } + if len(manifest.Regulations) == 0 { + t.Error("expected at least one regulation in manifest") + } + + // Check known regulations + regIDs := make(map[string]bool) + for _, r := range manifest.Regulations { + regIDs[r.ID] = true + } + for _, expected := range []string{"dsgvo", "ai_act", "nis2"} { + if !regIDs[expected] { + t.Errorf("expected regulation %s in manifest", expected) + } + } +} + +func TestLoadV2RegulationFile_DSGVO(t *testing.T) { + basePath := getV2BasePath() + if _, err := os.Stat(basePath + "/dsgvo_v2.json"); os.IsNotExist(err) { + t.Skip("dsgvo_v2.json not found") + } + + data, err := LoadV2RegulationFile("dsgvo_v2.json") + if err != nil { + t.Fatalf("failed to load dsgvo_v2.json: %v", err) + } + + if data.Regulation != "dsgvo" { + t.Errorf("expected regulation dsgvo, got %s", data.Regulation) + } + if len(data.Obligations) < 11 { + t.Errorf("expected at least 11 DSGVO obligations (existing), got %d", len(data.Obligations)) + } + + // Verify first obligation preserves existing ID + if data.Obligations[0].ID != "DSGVO-OBL-001" { + t.Errorf("expected first obligation DSGVO-OBL-001, got %s", data.Obligations[0].ID) + } + + // Verify v2 fields are present + obl := data.Obligations[0] + if obl.ValidFrom == "" { + t.Error("expected valid_from on first obligation") + } + if len(obl.TOMControlIDs) == 0 { + t.Error("expected tom_control_ids on first obligation") + } +} + +func TestLoadV2RegulationFile_AIAct(t *testing.T) { + basePath := getV2BasePath() + if _, err := os.Stat(basePath + "/ai_act_v2.json"); os.IsNotExist(err) { + t.Skip("ai_act_v2.json not found") + } + + data, err := LoadV2RegulationFile("ai_act_v2.json") + if err != nil { + t.Fatalf("failed to load: %v", err) + } + + if len(data.Obligations) < 15 { + t.Errorf("expected at least 15 AI Act obligations (existing), got %d", len(data.Obligations)) + } +} + +func TestLoadV2RegulationFile_NIS2(t *testing.T) { + basePath := getV2BasePath() + if _, err := os.Stat(basePath + "/nis2_v2.json"); os.IsNotExist(err) { + t.Skip("nis2_v2.json not found") + } + + data, err := LoadV2RegulationFile("nis2_v2.json") + if err != nil { + t.Fatalf("failed to load: %v", err) + } + + if len(data.Obligations) < 14 { + t.Errorf("expected at least 14 NIS2 obligations (existing), got %d", len(data.Obligations)) + } +} + +func TestLoadAllV2Regulations(t *testing.T) { + regs, err := LoadAllV2Regulations() + if err != nil { + t.Skipf("v2 regulations not found: %v", err) + } + + if len(regs) < 3 { + t.Errorf("expected at least 3 loaded regulations, got %d", len(regs)) + } + + totalObl := 0 + for _, r := range regs { + totalObl += len(r.Obligations) + } + if totalObl < 40 { + t.Errorf("expected at least 40 total obligations, got %d", totalObl) + } + t.Logf("Loaded %d regulations with %d total obligations", len(regs), totalObl) +} + +func TestLoadV2TOMMapping(t *testing.T) { + basePath := getV2BasePath() + if _, err := os.Stat(basePath + "/_tom_mapping.json"); os.IsNotExist(err) { + t.Skip("_tom_mapping.json not found") + } + + mapping, err := LoadV2TOMMapping() + if err != nil { + t.Fatalf("failed to load TOM mapping: %v", err) + } + + if len(mapping.ObligationToControl) == 0 { + t.Error("expected obligation_to_control mappings") + } + if len(mapping.ControlToObligation) == 0 { + t.Error("expected control_to_obligation mappings") + } + t.Logf("TOM mapping: %d obligation->control, %d control->obligation", + len(mapping.ObligationToControl), len(mapping.ControlToObligation)) +} diff --git a/ai-compliance-sdk/policies/obligations/v2/_manifest.json b/ai-compliance-sdk/policies/obligations/v2/_manifest.json new file mode 100644 index 0000000..6ac257e --- /dev/null +++ b/ai-compliance-sdk/policies/obligations/v2/_manifest.json @@ -0,0 +1,61 @@ +{ + "schema_version": "2.0", + "regulations": [ + { + "id": "dsgvo", + "file": "dsgvo_v2.json", + "version": "1.0", + "count": 80 + }, + { + "id": "ai_act", + "file": "ai_act_v2.json", + "version": "1.0", + "count": 60 + }, + { + "id": "nis2", + "file": "nis2_v2.json", + "version": "1.0", + "count": 40 + }, + { + "id": "bdsg", + "file": "bdsg_v2.json", + "version": "1.0", + "count": 30 + }, + { + "id": "ttdsg", + "file": "ttdsg_v2.json", + "version": "1.0", + "count": 20 + }, + { + "id": "dsa", + "file": "dsa_v2.json", + "version": "1.0", + "count": 35 + }, + { + "id": "data_act", + "file": "data_act_v2.json", + "version": "1.0", + "count": 25 + }, + { + "id": "eu_machinery", + "file": "eu_machinery_v2.json", + "version": "1.0", + "count": 15 + }, + { + "id": "dora", + "file": "dora_v2.json", + "version": "1.0", + "count": 20 + } + ], + "tom_mapping_file": "_tom_mapping.json", + "total_obligations": 325 +} \ No newline at end of file diff --git a/ai-compliance-sdk/policies/obligations/v2/_schema.json b/ai-compliance-sdk/policies/obligations/v2/_schema.json new file mode 100644 index 0000000..1b850a8 --- /dev/null +++ b/ai-compliance-sdk/policies/obligations/v2/_schema.json @@ -0,0 +1,162 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Obligation v2 Schema", + "description": "Schema fuer maschinenlesbare Compliance-Pflichten", + "type": "object", + "required": ["regulation", "name", "version", "obligations"], + "properties": { + "regulation": { "type": "string", "description": "Regulation-Key (z.B. dsgvo, ai_act, nis2)" }, + "name": { "type": "string" }, + "description": { "type": "string" }, + "version": { "type": "string" }, + "effective_date": { "type": "string", "format": "date" }, + "obligations": { + "type": "array", + "items": { "$ref": "#/$defs/obligation" } + }, + "controls": { + "type": "array", + "items": { "$ref": "#/$defs/control" } + }, + "incident_deadlines": { + "type": "array", + "items": { "$ref": "#/$defs/incident_deadline" } + } + }, + "$defs": { + "obligation": { + "type": "object", + "required": ["id", "title", "description", "applies_when", "legal_basis", "category", "priority"], + "properties": { + "id": { "type": "string", "pattern": "^[A-Z0-9_-]+-OBL-[0-9]{3}$" }, + "title": { "type": "string" }, + "description": { "type": "string" }, + "applies_when": { "type": "string", "description": "Legacy condition string for backwards compat" }, + "applies_when_condition": { "$ref": "#/$defs/condition_node" }, + "legal_basis": { + "type": "array", + "items": { + "type": "object", + "required": ["norm", "article"], + "properties": { + "norm": { "type": "string" }, + "article": { "type": "string" }, + "title": { "type": "string" }, + "erwaegungsgrund": { "type": "string" } + } + } + }, + "sources": { + "type": "array", + "items": { + "type": "object", + "required": ["type", "ref"], + "properties": { + "type": { "type": "string", "enum": ["article", "erwaegungsgrund", "edpb_guideline", "dsk_kurzpapier", "bsi_standard", "eu_guidance", "national_law", "case_law"] }, + "ref": { "type": "string" } + } + } + }, + "category": { "type": "string", "enum": ["Governance", "Technisch", "Organisatorisch", "Meldepflicht", "Dokumentation", "Schulung", "Audit", "Compliance"] }, + "responsible": { "type": "string" }, + "deadline": { + "type": "object", + "properties": { + "type": { "type": "string", "enum": ["absolute", "relative", "recurring", "on_event"] }, + "date": { "type": "string", "format": "date" }, + "duration": { "type": "string" }, + "interval": { "type": "string" }, + "event": { "type": "string" } + } + }, + "sanctions": { + "type": "object", + "properties": { + "max_fine": { "type": "string" }, + "min_fine": { "type": "string" }, + "personal_liability": { "type": "boolean" }, + "criminal_liability": { "type": "boolean" }, + "description": { "type": "string" } + } + }, + "evidence": { + "type": "array", + "items": { + "oneOf": [ + { "type": "string" }, + { + "type": "object", + "required": ["name"], + "properties": { + "name": { "type": "string" }, + "required": { "type": "boolean" }, + "format": { "type": "string" } + } + } + ] + } + }, + "priority": { "type": "string", "enum": ["kritisch", "hoch", "mittel", "niedrig"] }, + "tom_control_ids": { + "type": "array", + "items": { "type": "string", "pattern": "^TOM\\.[A-Z]+\\.[0-9]{2}$" } + }, + "breakpilot_feature": { "type": "string", "description": "Link to SDK module (e.g. /sdk/dsfa)" }, + "valid_from": { "type": "string", "format": "date" }, + "valid_until": { "type": ["string", "null"], "format": "date" }, + "version": { "type": "string" }, + "iso27001_mapping": { "type": "array", "items": { "type": "string" } }, + "how_to_implement": { "type": "string" } + } + }, + "condition_node": { + "type": "object", + "oneOf": [ + { + "properties": { + "all_of": { "type": "array", "items": { "$ref": "#/$defs/condition_node" } } + }, + "required": ["all_of"] + }, + { + "properties": { + "any_of": { "type": "array", "items": { "$ref": "#/$defs/condition_node" } } + }, + "required": ["any_of"] + }, + { + "properties": { + "field": { "type": "string" }, + "operator": { "type": "string", "enum": ["EQUALS", "NOT_EQUALS", "GREATER_THAN", "LESS_THAN", "GREATER_OR_EQUAL", "LESS_OR_EQUAL", "IN", "NOT_IN", "CONTAINS", "EXISTS"] }, + "value": {} + }, + "required": ["field", "operator", "value"] + } + ] + }, + "control": { + "type": "object", + "required": ["id", "name", "category"], + "properties": { + "id": { "type": "string" }, + "name": { "type": "string" }, + "description": { "type": "string" }, + "category": { "type": "string" }, + "what_to_do": { "type": "string" }, + "iso27001_mapping": { "type": "array", "items": { "type": "string" } }, + "priority": { "type": "string" } + } + }, + "incident_deadline": { + "type": "object", + "required": ["phase", "deadline"], + "properties": { + "phase": { "type": "string" }, + "deadline": { "type": "string" }, + "content": { "type": "string" }, + "recipient": { "type": "string" }, + "legal_basis": { "type": "array", "items": { "type": "object" } } + } + } + } +} diff --git a/ai-compliance-sdk/policies/obligations/v2/_tom_mapping.json b/ai-compliance-sdk/policies/obligations/v2/_tom_mapping.json new file mode 100644 index 0000000..b75b674 --- /dev/null +++ b/ai-compliance-sdk/policies/obligations/v2/_tom_mapping.json @@ -0,0 +1,1923 @@ +{ + "schema_version": "2.0", + "obligation_to_control": { + "AIACT-OBL-001": [ + "TOM.GOV.01", + "TOM.GOV.02" + ], + "AIACT-OBL-002": [ + "TOM.GOV.03", + "TOM.GOV.04" + ], + "AIACT-OBL-003": [ + "TOM.DATA.01", + "TOM.DATA.02", + "TOM.DATA.03" + ], + "AIACT-OBL-004": [ + "TOM.GOV.05", + "TOM.SDLC.01" + ], + "AIACT-OBL-005": [ + "TOM.LOG.01", + "TOM.LOG.02", + "TOM.LOG.03" + ], + "AIACT-OBL-006": [ + "TOM.GOV.06", + "TOM.OPS.01" + ], + "AIACT-OBL-007": [ + "TOM.GOV.07", + "TOM.HR.01", + "TOM.OPS.02" + ], + "AIACT-OBL-008": [ + "TOM.SDLC.02", + "TOM.NET.01", + "TOM.CRYPTO.01" + ], + "AIACT-OBL-009": [ + "TOM.OPS.03", + "TOM.OPS.04", + "TOM.LOG.04" + ], + "AIACT-OBL-010": [ + "TOM.GOV.08", + "TOM.GOV.09" + ], + "AIACT-OBL-011": [ + "TOM.GOV.10", + "TOM.OPS.05" + ], + "AIACT-OBL-012": [ + "TOM.GOV.11", + "TOM.DATA.04" + ], + "AIACT-OBL-013": [ + "TOM.GOV.12", + "TOM.NET.02", + "TOM.SDLC.03" + ], + "AIACT-OBL-014": [ + "TOM.GOV.13" + ], + "AIACT-OBL-015": [ + "TOM.HR.02", + "TOM.HR.03" + ], + "AIACT-OBL-016": [ + "TOM.GOV.01", + "TOM.GOV.03" + ], + "AIACT-OBL-017": [ + "TOM.GOV.01" + ], + "AIACT-OBL-018": [ + "TOM.GOV.04", + "TOM.GOV.05" + ], + "AIACT-OBL-019": [ + "TOM.GOV.01", + "TOM.GOV.05", + "TOM.GOV.14" + ], + "AIACT-OBL-020": [ + "TOM.GOV.14", + "TOM.GOV.15", + "TOM.SDLC.04" + ], + "AIACT-OBL-021": [ + "TOM.DATA.05", + "TOM.DATA.06" + ], + "AIACT-OBL-022": [ + "TOM.GOV.04", + "TOM.GOV.14" + ], + "AIACT-OBL-023": [ + "TOM.LOG.01", + "TOM.LOG.05", + "TOM.LOG.06" + ], + "AIACT-OBL-024": [ + "TOM.OPS.06", + "TOM.BCP.01" + ], + "AIACT-OBL-025": [ + "TOM.GOV.06", + "TOM.GOV.13" + ], + "AIACT-OBL-026": [ + "TOM.GOV.01", + "TOM.VENDOR.01" + ], + "AIACT-OBL-027": [ + "TOM.VENDOR.02", + "TOM.VENDOR.03" + ], + "AIACT-OBL-028": [ + "TOM.DATA.07", + "TOM.DATA.08" + ], + "AIACT-OBL-029": [ + "TOM.LOG.04", + "TOM.LOG.07", + "TOM.OPS.07" + ], + "AIACT-OBL-030": [ + "TOM.GOV.10", + "TOM.OPS.05" + ], + "AIACT-OBL-031": [ + "TOM.GOV.08", + "TOM.GOV.09" + ], + "AIACT-OBL-032": [ + "TOM.GOV.01", + "TOM.GOV.03" + ], + "AIACT-OBL-033": [ + "TOM.VENDOR.04", + "TOM.VENDOR.05" + ], + "AIACT-OBL-034": [ + "TOM.VENDOR.06", + "TOM.VENDOR.07" + ], + "AIACT-OBL-035": [ + "TOM.GOV.14", + "TOM.GOV.15" + ], + "AIACT-OBL-036": [ + "TOM.GOV.05", + "TOM.GOV.14" + ], + "AIACT-OBL-037": [ + "TOM.GOV.05" + ], + "AIACT-OBL-038": [ + "TOM.GOV.13" + ], + "AIACT-OBL-039": [ + "TOM.GOV.10", + "TOM.OPS.05" + ], + "AIACT-OBL-040": [ + "TOM.SDLC.05", + "TOM.OPS.08" + ], + "AIACT-OBL-041": [ + "TOM.SDLC.05", + "TOM.SDLC.06" + ], + "AIACT-OBL-042": [ + "TOM.GOV.11", + "TOM.SDLC.07" + ], + "AIACT-OBL-043": [ + "TOM.GOV.11", + "TOM.DATA.09" + ], + "AIACT-OBL-044": [ + "TOM.DATA.04", + "TOM.DATA.10" + ], + "AIACT-OBL-045": [ + "TOM.SDLC.08", + "TOM.SDLC.09" + ], + "AIACT-OBL-046": [ + "TOM.GOV.03", + "TOM.GOV.12" + ], + "AIACT-OBL-047": [ + "TOM.NET.02", + "TOM.NET.03", + "TOM.CRYPTO.02" + ], + "AIACT-OBL-048": [ + "TOM.BCP.02", + "TOM.BCP.03" + ], + "AIACT-OBL-049": [ + "TOM.GOV.01" + ], + "AIACT-OBL-050": [ + "TOM.OPS.09", + "TOM.OPS.10" + ], + "AIACT-OBL-051": [ + "TOM.BCP.01", + "TOM.BCP.02", + "TOM.BCP.04" + ], + "AIACT-OBL-052": [ + "TOM.AC.01", + "TOM.IAM.01", + "TOM.CRYPTO.03" + ], + "AIACT-OBL-053": [ + "TOM.GOV.01", + "TOM.GOV.02" + ], + "AIACT-OBL-054": [ + "TOM.GOV.04", + "TOM.GOV.14" + ], + "AIACT-OBL-055": [ + "TOM.GOV.08", + "TOM.DATA.11", + "TOM.IAM.02" + ], + "AIACT-OBL-056": [ + "TOM.BCP.05", + "TOM.BCP.06", + "TOM.NET.04" + ], + "AIACT-OBL-057": [ + "TOM.GOV.08", + "TOM.DATA.12", + "TOM.HR.04" + ], + "AIACT-OBL-058": [ + "TOM.GOV.08", + "TOM.HR.05", + "TOM.DATA.13" + ], + "AIACT-OBL-059": [ + "TOM.GOV.08", + "TOM.GOV.09", + "TOM.AC.02" + ], + "AIACT-OBL-060": [ + "TOM.GOV.07", + "TOM.GOV.08", + "TOM.GOV.10" + ], + "BDSG-OBL-001": [ + "TOM.PHY.01", + "TOM.GOV.03" + ], + "BDSG-OBL-002": [ + "TOM.PHY.01" + ], + "BDSG-OBL-003": [ + "TOM.PHY.01", + "TOM.DEL.01" + ], + "BDSG-OBL-004": [ + "TOM.AC.01", + "TOM.CRY.01", + "TOM.GOV.04" + ], + "BDSG-OBL-005": [ + "TOM.CRY.01", + "TOM.CRY.02", + "TOM.AC.01" + ], + "BDSG-OBL-006": [ + "TOM.HR.01", + "TOM.GOV.01" + ], + "BDSG-OBL-007": [ + "TOM.HR.01", + "TOM.HR.02" + ], + "BDSG-OBL-008": [ + "TOM.HR.01", + "TOM.GOV.01" + ], + "BDSG-OBL-009": [ + "TOM.HR.01", + "TOM.DEL.01" + ], + "BDSG-OBL-010": [ + "TOM.GOV.02" + ], + "BDSG-OBL-011": [ + "TOM.GOV.02", + "TOM.GOV.03" + ], + "BDSG-OBL-012": [ + "TOM.DEL.01" + ], + "BDSG-OBL-013": [ + "TOM.DEL.01", + "TOM.AC.02" + ], + "BDSG-OBL-014": [ + "TOM.GOV.01", + "TOM.GOV.05" + ], + "BDSG-OBL-015": [ + "TOM.GOV.05" + ], + "BDSG-OBL-016": [ + "TOM.GOV.05" + ], + "BDSG-OBL-017": [ + "TOM.GOV.01" + ], + "BDSG-OBL-018": [ + "TOM.GOV.01", + "TOM.GOV.02" + ], + "BDSG-OBL-019": [ + "TOM.CRY.02", + "TOM.GOV.04" + ], + "BDSG-OBL-020": [ + "TOM.CRY.02" + ], + "BDSG-OBL-021": [ + "TOM.GOV.01", + "TOM.AC.01" + ], + "BDSG-OBL-022": [ + "TOM.LOG.01", + "TOM.AC.01" + ], + "BDSG-OBL-023": [ + "TOM.GOV.02" + ], + "BDSG-OBL-024": [ + "TOM.GOV.03", + "TOM.CRY.01" + ], + "BDSG-OBL-025": [ + "TOM.GOV.03" + ], + "BDSG-OBL-026": [ + "TOM.AC.01", + "TOM.GOV.01" + ], + "BDSG-OBL-027": [ + "TOM.GOV.01" + ], + "BDSG-OBL-028": [ + "TOM.GOV.01" + ], + "BDSG-OBL-029": [ + "TOM.HR.02", + "TOM.GOV.05" + ], + "BDSG-OBL-030": [ + "TOM.GOV.03", + "TOM.VEN.01" + ], + "DATAACT-OBL-001": [ + "TOM.OPS.01" + ], + "DATAACT-OBL-002": [ + "TOM.GOV.01" + ], + "DATAACT-OBL-003": [ + "TOM.OPS.01", + "TOM.OPS.02" + ], + "DATAACT-OBL-004": [ + "TOM.GOV.01" + ], + "DATAACT-OBL-005": [ + "TOM.OPS.01", + "TOM.OPS.02" + ], + "DATAACT-OBL-006": [ + "TOM.GOV.01" + ], + "DATAACT-OBL-007": [ + "TOM.GOV.01" + ], + "DATAACT-OBL-008": [ + "TOM.GOV.01" + ], + "DATAACT-OBL-009": [ + "TOM.GOV.01" + ], + "DATAACT-OBL-010": [ + "TOM.GOV.01" + ], + "DATAACT-OBL-011": [ + "TOM.GOV.01", + "TOM.OPS.01" + ], + "DATAACT-OBL-012": [ + "TOM.OPS.01", + "TOM.OPS.02" + ], + "DATAACT-OBL-013": [ + "TOM.GOV.01" + ], + "DATAACT-OBL-014": [ + "TOM.OPS.01" + ], + "DATAACT-OBL-015": [ + "TOM.OPS.01" + ], + "DATAACT-OBL-016": [ + "TOM.GOV.01", + "TOM.OPS.01" + ], + "DATAACT-OBL-017": [ + "TOM.GOV.01" + ], + "DATAACT-OBL-018": [ + "TOM.GOV.01" + ], + "DATAACT-OBL-019": [ + "TOM.OPS.01", + "TOM.GOV.01" + ], + "DATAACT-OBL-020": [ + "TOM.GOV.01" + ], + "DATAACT-OBL-021": [ + "TOM.GOV.01" + ], + "DATAACT-OBL-022": [ + "TOM.GOV.01", + "TOM.GOV.02" + ], + "DATAACT-OBL-023": [ + "TOM.OPS.01" + ], + "DATAACT-OBL-024": [ + "TOM.GOV.01" + ], + "DATAACT-OBL-025": [ + "TOM.GOV.01" + ], + "DORA-OBL-005": [ + "TOM.CRY.01", + "TOM.ACC.01" + ], + "DSA-OBL-001": [ + "TOM.GOV.01" + ], + "DSA-OBL-002": [ + "TOM.GOV.01" + ], + "DSA-OBL-003": [ + "TOM.GOV.01", + "TOM.OPS.01" + ], + "DSA-OBL-004": [ + "TOM.GOV.01" + ], + "DSA-OBL-005": [ + "TOM.GOV.01", + "TOM.GOV.02" + ], + "DSA-OBL-006": [ + "TOM.GOV.01" + ], + "DSA-OBL-007": [ + "TOM.GOV.01" + ], + "DSA-OBL-008": [ + "TOM.GOV.01", + "TOM.GOV.03" + ], + "DSA-OBL-009": [ + "TOM.GOV.01", + "TOM.GOV.03" + ], + "DSA-OBL-010": [ + "TOM.OPS.01", + "TOM.OPS.02" + ], + "DSA-OBL-011": [ + "TOM.OPS.01" + ], + "DSA-OBL-012": [ + "TOM.OPS.01", + "TOM.GOV.01" + ], + "DSA-OBL-013": [ + "TOM.OPS.01", + "TOM.OPS.02" + ], + "DSA-OBL-014": [ + "TOM.OPS.01" + ], + "DSA-OBL-015": [ + "TOM.OPS.01" + ], + "DSA-OBL-016": [ + "TOM.OPS.01", + "TOM.OPS.02" + ], + "DSA-OBL-017": [ + "TOM.GOV.01" + ], + "DSA-OBL-018": [ + "TOM.GOV.01", + "TOM.OPS.01" + ], + "DSA-OBL-019": [ + "TOM.OPS.01" + ], + "DSA-OBL-020": [ + "TOM.OPS.01" + ], + "DSA-OBL-021": [ + "TOM.OPS.01", + "TOM.GOV.01" + ], + "DSA-OBL-022": [ + "TOM.OPS.01", + "TOM.GOV.01" + ], + "DSA-OBL-023": [ + "TOM.OPS.01", + "TOM.GOV.03" + ], + "DSA-OBL-024": [ + "TOM.OPS.01" + ], + "DSA-OBL-025": [ + "TOM.OPS.01", + "TOM.GOV.03" + ], + "DSA-OBL-026": [ + "TOM.GOV.01", + "TOM.GOV.02", + "TOM.GOV.03" + ], + "DSA-OBL-027": [ + "TOM.GOV.01", + "TOM.GOV.02" + ], + "DSA-OBL-028": [ + "TOM.GOV.01", + "TOM.GOV.03" + ], + "DSA-OBL-029": [ + "TOM.GOV.01", + "TOM.GOV.02" + ], + "DSA-OBL-030": [ + "TOM.GOV.01", + "TOM.OPS.01" + ], + "DSA-OBL-031": [ + "TOM.OPS.01", + "TOM.GOV.03" + ], + "DSA-OBL-032": [ + "TOM.GOV.01" + ], + "DSA-OBL-033": [ + "TOM.GOV.01", + "TOM.OPS.01" + ], + "DSA-OBL-034": [ + "TOM.GOV.01" + ], + "DSA-OBL-035": [ + "TOM.GOV.01" + ], + "DSGVO-OBL-001": [ + "TOM.GOV.01", + "TOM.GOV.02" + ], + "DSGVO-OBL-002": [ + "TOM.CRYPTO.01", + "TOM.CRYPTO.02", + "TOM.IAM.01", + "TOM.AC.01", + "TOM.NET.01" + ], + "DSGVO-OBL-003": [ + "TOM.GOV.01", + "TOM.GOV.03" + ], + "DSGVO-OBL-004": [ + "TOM.GOV.01" + ], + "DSGVO-OBL-005": [ + "TOM.VENDOR.01", + "TOM.VENDOR.02" + ], + "DSGVO-OBL-006": [ + "TOM.GOV.02" + ], + "DSGVO-OBL-007": [ + "TOM.DATA.01", + "TOM.GOV.02" + ], + "DSGVO-OBL-008": [ + "TOM.GOV.02", + "TOM.DATA.01" + ], + "DSGVO-OBL-009": [ + "TOM.DATA.01", + "TOM.DATA.02" + ], + "DSGVO-OBL-010": [ + "TOM.VENDOR.01", + "TOM.VENDOR.03" + ], + "DSGVO-OBL-011": [ + "TOM.OPS.01", + "TOM.OPS.02", + "TOM.LOG.01" + ], + "DSGVO-OBL-012": [ + "TOM.GOV.01", + "TOM.GOV.02" + ], + "DSGVO-OBL-013": [ + "TOM.GOV.01" + ], + "DSGVO-OBL-014": [ + "TOM.DATA.01" + ], + "DSGVO-OBL-015": [ + "TOM.DATA.01" + ], + "DSGVO-OBL-016": [ + "TOM.GOV.01", + "TOM.GOV.02", + "TOM.LOG.01" + ], + "DSGVO-OBL-017": [ + "TOM.GOV.01" + ], + "DSGVO-OBL-018": [ + "TOM.GOV.01" + ], + "DSGVO-OBL-019": [ + "TOM.GOV.01", + "TOM.CRYPTO.01", + "TOM.AC.01" + ], + "DSGVO-OBL-020": [ + "TOM.CRYPTO.01", + "TOM.CRYPTO.02", + "TOM.AC.01", + "TOM.LOG.01" + ], + "DSGVO-OBL-021": [ + "TOM.GOV.01", + "TOM.AC.01" + ], + "DSGVO-OBL-022": [ + "TOM.GOV.02" + ], + "DSGVO-OBL-023": [ + "TOM.GOV.02" + ], + "DSGVO-OBL-024": [ + "TOM.DATA.01", + "TOM.GOV.02" + ], + "DSGVO-OBL-025": [ + "TOM.DATA.01" + ], + "DSGVO-OBL-026": [ + "TOM.DATA.01", + "TOM.DATA.02" + ], + "DSGVO-OBL-027": [ + "TOM.DATA.01", + "TOM.AC.01" + ], + "DSGVO-OBL-028": [ + "TOM.DATA.01", + "TOM.VENDOR.01" + ], + "DSGVO-OBL-029": [ + "TOM.DATA.01" + ], + "DSGVO-OBL-030": [ + "TOM.DATA.01", + "TOM.GOV.02" + ], + "DSGVO-OBL-031": [ + "TOM.GOV.01", + "TOM.GOV.03", + "TOM.LOG.01" + ], + "DSGVO-OBL-032": [ + "TOM.GOV.01", + "TOM.GOV.02", + "TOM.GOV.03" + ], + "DSGVO-OBL-033": [ + "TOM.SDLC.01", + "TOM.SDLC.02" + ], + "DSGVO-OBL-034": [ + "TOM.SDLC.01" + ], + "DSGVO-OBL-035": [ + "TOM.VENDOR.01" + ], + "DSGVO-OBL-036": [ + "TOM.GOV.01" + ], + "DSGVO-OBL-037": [ + "TOM.VENDOR.01", + "TOM.VENDOR.02" + ], + "DSGVO-OBL-038": [ + "TOM.VENDOR.01", + "TOM.VENDOR.02" + ], + "DSGVO-OBL-039": [ + "TOM.VENDOR.01" + ], + "DSGVO-OBL-040": [ + "TOM.GOV.01", + "TOM.GOV.02" + ], + "DSGVO-OBL-041": [ + "TOM.GOV.01" + ], + "DSGVO-OBL-042": [ + "TOM.CRYPTO.01", + "TOM.CRYPTO.02", + "TOM.CRYPTO.03" + ], + "DSGVO-OBL-043": [ + "TOM.NET.01", + "TOM.NET.02", + "TOM.BCP.01" + ], + "DSGVO-OBL-044": [ + "TOM.BCP.01", + "TOM.BCP.02", + "TOM.BCP.03" + ], + "DSGVO-OBL-045": [ + "TOM.GOV.03", + "TOM.OPS.03" + ], + "DSGVO-OBL-046": [ + "TOM.OPS.01", + "TOM.OPS.02" + ], + "DSGVO-OBL-047": [ + "TOM.OPS.01" + ], + "DSGVO-OBL-048": [ + "TOM.GOV.01", + "TOM.GOV.03" + ], + "DSGVO-OBL-049": [ + "TOM.GOV.01", + "TOM.GOV.03" + ], + "DSGVO-OBL-050": [ + "TOM.GOV.01" + ], + "DSGVO-OBL-051": [ + "TOM.GOV.01" + ], + "DSGVO-OBL-052": [ + "TOM.GOV.01" + ], + "DSGVO-OBL-053": [ + "TOM.GOV.01" + ], + "DSGVO-OBL-054": [ + "TOM.GOV.01", + "TOM.GOV.03" + ], + "DSGVO-OBL-055": [ + "TOM.VENDOR.01", + "TOM.VENDOR.03" + ], + "DSGVO-OBL-056": [ + "TOM.VENDOR.01", + "TOM.VENDOR.03" + ], + "DSGVO-OBL-057": [ + "TOM.GOV.01", + "TOM.VENDOR.03" + ], + "DSGVO-OBL-058": [ + "TOM.GOV.01", + "TOM.GOV.03" + ], + "DSGVO-OBL-059": [ + "TOM.HR.01", + "TOM.HR.02", + "TOM.AC.01" + ], + "DSGVO-OBL-060": [ + "TOM.HR.01", + "TOM.HR.02" + ], + "DSGVO-OBL-061": [ + "TOM.HR.01" + ], + "DSGVO-OBL-062": [ + "TOM.GOV.02", + "TOM.DATA.01" + ], + "DSGVO-OBL-063": [ + "TOM.GOV.01", + "TOM.GOV.02" + ], + "DSGVO-OBL-064": [ + "TOM.GOV.02" + ], + "DSGVO-OBL-065": [ + "TOM.GOV.01", + "TOM.GOV.02", + "TOM.AC.01" + ], + "DSGVO-OBL-066": [ + "TOM.CRYPTO.01", + "TOM.CRYPTO.02", + "TOM.AC.01", + "TOM.LOG.01" + ], + "DSGVO-OBL-067": [ + "TOM.CRYPTO.01", + "TOM.AC.01", + "TOM.LOG.01" + ], + "DSGVO-OBL-068": [ + "TOM.DATA.01", + "TOM.DATA.02" + ], + "DSGVO-OBL-069": [ + "TOM.OPS.01", + "TOM.OPS.02", + "TOM.LOG.01" + ], + "DSGVO-OBL-070": [ + "TOM.LOG.01", + "TOM.LOG.02" + ], + "DSGVO-OBL-071": [ + "TOM.GOV.01", + "TOM.GOV.03" + ], + "DSGVO-OBL-072": [ + "TOM.GOV.01" + ], + "DSGVO-OBL-073": [ + "TOM.GOV.02" + ], + "DSGVO-OBL-074": [ + "TOM.GOV.01" + ], + "DSGVO-OBL-075": [ + "TOM.GOV.03", + "TOM.OPS.03" + ], + "DSGVO-OBL-076": [ + "TOM.BCP.01", + "TOM.BCP.02" + ], + "DSGVO-OBL-077": [ + "TOM.NET.01", + "TOM.NET.02", + "TOM.NET.03" + ], + "DSGVO-OBL-078": [ + "TOM.AC.01", + "TOM.AC.02" + ], + "DSGVO-OBL-079": [ + "TOM.GOV.02", + "TOM.DATA.01" + ], + "DSGVO-OBL-080": [ + "TOM.AC.01", + "TOM.LOG.01", + "TOM.DATA.02" + ], + "NIS2-OBL-001": [ + "TOM.GOV.01", + "TOM.GOV.02" + ], + "NIS2-OBL-002": [ + "TOM.GOV.01", + "TOM.GOV.02", + "TOM.GOV.03", + "TOM.OPS.01" + ], + "NIS2-OBL-003": [ + "TOM.GOV.01", + "TOM.GOV.04", + "TOM.GOV.05" + ], + "NIS2-OBL-004": [ + "TOM.HR.01", + "TOM.HR.02", + "TOM.GOV.06" + ], + "NIS2-OBL-005": [ + "TOM.OPS.08", + "TOM.OPS.09", + "TOM.OPS.10", + "TOM.LOG.01" + ], + "NIS2-OBL-006": [ + "TOM.BCP.01", + "TOM.BCP.02", + "TOM.BCP.03", + "TOM.BCP.04" + ], + "NIS2-OBL-007": [ + "TOM.VENDOR.01", + "TOM.VENDOR.02", + "TOM.VENDOR.03", + "TOM.VENDOR.04" + ], + "NIS2-OBL-008": [ + "TOM.OPS.04", + "TOM.OPS.05", + "TOM.SDLC.01", + "TOM.SDLC.02" + ], + "NIS2-OBL-009": [ + "TOM.IAM.01", + "TOM.IAM.02", + "TOM.IAM.03", + "TOM.AC.01", + "TOM.AC.02" + ], + "NIS2-OBL-010": [ + "TOM.CRYPTO.01", + "TOM.CRYPTO.02", + "TOM.CRYPTO.03" + ], + "NIS2-OBL-011": [ + "TOM.HR.01", + "TOM.HR.02", + "TOM.HR.03", + "TOM.HR.04" + ], + "NIS2-OBL-012": [ + "TOM.GOV.07", + "TOM.GOV.08" + ], + "NIS2-OBL-013": [ + "TOM.NET.01", + "TOM.NET.02", + "TOM.NET.03", + "TOM.NET.04" + ], + "NIS2-OBL-014": [ + "TOM.LOG.01", + "TOM.LOG.02", + "TOM.LOG.03", + "TOM.LOG.04" + ], + "NIS2-OBL-015": [ + "TOM.GOV.09", + "TOM.GOV.10", + "TOM.OPS.06" + ], + "NIS2-OBL-016": [ + "TOM.GOV.03", + "TOM.GOV.11" + ], + "NIS2-OBL-017": [ + "TOM.GOV.12" + ], + "NIS2-OBL-018": [ + "TOM.OPS.09", + "TOM.OPS.10" + ], + "NIS2-OBL-019": [ + "TOM.GOV.13", + "TOM.VENDOR.05" + ], + "NIS2-OBL-020": [ + "TOM.OPS.04", + "TOM.OPS.05", + "TOM.SDLC.03" + ], + "NIS2-OBL-021": [ + "TOM.OPS.11", + "TOM.GOV.14" + ], + "NIS2-OBL-022": [ + "TOM.OPS.04", + "TOM.OPS.05" + ], + "NIS2-OBL-023": [ + "TOM.OPS.09" + ], + "NIS2-OBL-024": [ + "TOM.GOV.07", + "TOM.GOV.08" + ], + "NIS2-OBL-025": [ + "TOM.GOV.07", + "TOM.GOV.08" + ], + "NIS2-OBL-026": [ + "TOM.GOV.01", + "TOM.GOV.15" + ], + "NIS2-OBL-027": [ + "TOM.GOV.01", + "TOM.GOV.15" + ], + "NIS2-OBL-028": [ + "TOM.GOV.01" + ], + "NIS2-OBL-029": [ + "TOM.GOV.03", + "TOM.GOV.11" + ], + "NIS2-OBL-030": [ + "TOM.GOV.01", + "TOM.GOV.02", + "TOM.GOV.03", + "TOM.OPS.01", + "TOM.BCP.01", + "TOM.VENDOR.01", + "TOM.SDLC.01", + "TOM.HR.01", + "TOM.CRYPTO.01", + "TOM.IAM.01" + ], + "NIS2-OBL-031": [ + "TOM.GOV.07", + "TOM.GOV.08" + ], + "NIS2-OBL-032": [ + "TOM.GOV.02" + ], + "NIS2-OBL-033": [ + "TOM.GOV.01", + "TOM.GOV.02" + ], + "NIS2-OBL-034": [ + "TOM.GOV.04", + "TOM.GOV.05" + ], + "NIS2-OBL-035": [ + "TOM.GOV.04", + "TOM.GOV.05", + "TOM.GOV.06" + ], + "NIS2-OBL-036": [ + "TOM.GOV.04", + "TOM.GOV.05", + "TOM.GOV.06", + "TOM.HR.01" + ], + "NIS2-OBL-037": [ + "TOM.GOV.07", + "TOM.GOV.08", + "TOM.GOV.09" + ], + "NIS2-OBL-038": [ + "TOM.GOV.01", + "TOM.GOV.15" + ], + "NIS2-OBL-039": [ + "TOM.GOV.01", + "TOM.GOV.15" + ], + "NIS2-OBL-040": [ + "TOM.SDLC.01", + "TOM.SDLC.02", + "TOM.SDLC.03", + "TOM.SDLC.04", + "TOM.SDLC.05" + ], + "TTDSG-OBL-001": [ + "TOM.CRY.01", + "TOM.AC.01" + ], + "TTDSG-OBL-002": [ + "TOM.CRY.01", + "TOM.NET.01" + ], + "TTDSG-OBL-003": [ + "TOM.GOV.01", + "TOM.AC.01" + ], + "TTDSG-OBL-004": [ + "TOM.GOV.02", + "TOM.LOG.01" + ], + "TTDSG-OBL-005": [ + "TOM.DEL.01", + "TOM.GOV.01" + ], + "TTDSG-OBL-006": [ + "TOM.GOV.02" + ], + "TTDSG-OBL-007": [ + "TOM.CRY.02" + ], + "TTDSG-OBL-008": [ + "TOM.GOV.01" + ], + "TTDSG-OBL-009": [ + "TOM.GOV.01", + "TOM.DEL.01" + ], + "TTDSG-OBL-010": [ + "TOM.CRY.01", + "TOM.NET.01" + ], + "TTDSG-OBL-011": [ + "TOM.NET.01" + ], + "TTDSG-OBL-012": [ + "TOM.GOV.02", + "TOM.WEB.01" + ], + "TTDSG-OBL-013": [ + "TOM.WEB.01" + ], + "TTDSG-OBL-014": [ + "TOM.WEB.01", + "TOM.GOV.02" + ], + "TTDSG-OBL-015": [ + "TOM.GOV.02" + ], + "TTDSG-OBL-016": [ + "TOM.GOV.02" + ], + "TTDSG-OBL-017": [ + "TOM.GOV.02" + ], + "TTDSG-OBL-018": [ + "TOM.GOV.01" + ], + "TTDSG-OBL-019": [ + "TOM.HR.02", + "TOM.AC.01" + ], + "TTDSG-OBL-020": [ + "TOM.GOV.02" + ] + }, + "control_to_obligation": { + "TOM.AC.01": [ + "DSGVO-OBL-002", + "DSGVO-OBL-019", + "DSGVO-OBL-020", + "DSGVO-OBL-021", + "DSGVO-OBL-027", + "DSGVO-OBL-059", + "DSGVO-OBL-065", + "DSGVO-OBL-066", + "DSGVO-OBL-067", + "DSGVO-OBL-078", + "DSGVO-OBL-080", + "AIACT-OBL-052", + "NIS2-OBL-009", + "BDSG-OBL-004", + "BDSG-OBL-005", + "BDSG-OBL-021", + "BDSG-OBL-022", + "BDSG-OBL-026", + "TTDSG-OBL-001", + "TTDSG-OBL-003", + "TTDSG-OBL-019" + ], + "TOM.AC.02": [ + "DSGVO-OBL-078", + "AIACT-OBL-059", + "NIS2-OBL-009", + "BDSG-OBL-013" + ], + "TOM.ACC.01": [ + "DORA-OBL-005" + ], + "TOM.BCP.01": [ + "DSGVO-OBL-043", + "DSGVO-OBL-044", + "DSGVO-OBL-076", + "AIACT-OBL-024", + "AIACT-OBL-051", + "NIS2-OBL-006", + "NIS2-OBL-030" + ], + "TOM.BCP.02": [ + "DSGVO-OBL-044", + "DSGVO-OBL-076", + "AIACT-OBL-048", + "AIACT-OBL-051", + "NIS2-OBL-006" + ], + "TOM.BCP.03": [ + "DSGVO-OBL-044", + "AIACT-OBL-048", + "NIS2-OBL-006" + ], + "TOM.BCP.04": [ + "AIACT-OBL-051", + "NIS2-OBL-006" + ], + "TOM.BCP.05": [ + "AIACT-OBL-056" + ], + "TOM.BCP.06": [ + "AIACT-OBL-056" + ], + "TOM.CRY.01": [ + "BDSG-OBL-004", + "BDSG-OBL-005", + "BDSG-OBL-024", + "TTDSG-OBL-001", + "TTDSG-OBL-002", + "TTDSG-OBL-010", + "DORA-OBL-005" + ], + "TOM.CRY.02": [ + "BDSG-OBL-005", + "BDSG-OBL-019", + "BDSG-OBL-020", + "TTDSG-OBL-007" + ], + "TOM.CRYPTO.01": [ + "DSGVO-OBL-002", + "DSGVO-OBL-019", + "DSGVO-OBL-020", + "DSGVO-OBL-042", + "DSGVO-OBL-066", + "DSGVO-OBL-067", + "AIACT-OBL-008", + "NIS2-OBL-010", + "NIS2-OBL-030" + ], + "TOM.CRYPTO.02": [ + "DSGVO-OBL-002", + "DSGVO-OBL-020", + "DSGVO-OBL-042", + "DSGVO-OBL-066", + "AIACT-OBL-047", + "NIS2-OBL-010" + ], + "TOM.CRYPTO.03": [ + "DSGVO-OBL-042", + "AIACT-OBL-052", + "NIS2-OBL-010" + ], + "TOM.DATA.01": [ + "DSGVO-OBL-007", + "DSGVO-OBL-008", + "DSGVO-OBL-009", + "DSGVO-OBL-014", + "DSGVO-OBL-015", + "DSGVO-OBL-024", + "DSGVO-OBL-025", + "DSGVO-OBL-026", + "DSGVO-OBL-027", + "DSGVO-OBL-028", + "DSGVO-OBL-029", + "DSGVO-OBL-030", + "DSGVO-OBL-062", + "DSGVO-OBL-068", + "DSGVO-OBL-079", + "AIACT-OBL-003" + ], + "TOM.DATA.02": [ + "DSGVO-OBL-009", + "DSGVO-OBL-026", + "DSGVO-OBL-068", + "DSGVO-OBL-080", + "AIACT-OBL-003" + ], + "TOM.DATA.03": [ + "AIACT-OBL-003" + ], + "TOM.DATA.04": [ + "AIACT-OBL-012", + "AIACT-OBL-044" + ], + "TOM.DATA.05": [ + "AIACT-OBL-021" + ], + "TOM.DATA.06": [ + "AIACT-OBL-021" + ], + "TOM.DATA.07": [ + "AIACT-OBL-028" + ], + "TOM.DATA.08": [ + "AIACT-OBL-028" + ], + "TOM.DATA.09": [ + "AIACT-OBL-043" + ], + "TOM.DATA.10": [ + "AIACT-OBL-044" + ], + "TOM.DATA.11": [ + "AIACT-OBL-055" + ], + "TOM.DATA.12": [ + "AIACT-OBL-057" + ], + "TOM.DATA.13": [ + "AIACT-OBL-058" + ], + "TOM.DEL.01": [ + "BDSG-OBL-003", + "BDSG-OBL-009", + "BDSG-OBL-012", + "BDSG-OBL-013", + "TTDSG-OBL-005", + "TTDSG-OBL-009" + ], + "TOM.GOV.01": [ + "DSGVO-OBL-001", + "DSGVO-OBL-003", + "DSGVO-OBL-004", + "DSGVO-OBL-012", + "DSGVO-OBL-013", + "DSGVO-OBL-016", + "DSGVO-OBL-017", + "DSGVO-OBL-018", + "DSGVO-OBL-019", + "DSGVO-OBL-021", + "DSGVO-OBL-031", + "DSGVO-OBL-032", + "DSGVO-OBL-036", + "DSGVO-OBL-040", + "DSGVO-OBL-041", + "DSGVO-OBL-048", + "DSGVO-OBL-049", + "DSGVO-OBL-050", + "DSGVO-OBL-051", + "DSGVO-OBL-052", + "DSGVO-OBL-053", + "DSGVO-OBL-054", + "DSGVO-OBL-057", + "DSGVO-OBL-058", + "DSGVO-OBL-063", + "DSGVO-OBL-065", + "DSGVO-OBL-071", + "DSGVO-OBL-072", + "DSGVO-OBL-074", + "AIACT-OBL-001", + "AIACT-OBL-016", + "AIACT-OBL-017", + "AIACT-OBL-019", + "AIACT-OBL-026", + "AIACT-OBL-032", + "AIACT-OBL-049", + "AIACT-OBL-053", + "NIS2-OBL-001", + "NIS2-OBL-002", + "NIS2-OBL-003", + "NIS2-OBL-026", + "NIS2-OBL-027", + "NIS2-OBL-028", + "NIS2-OBL-030", + "NIS2-OBL-033", + "NIS2-OBL-038", + "NIS2-OBL-039", + "BDSG-OBL-006", + "BDSG-OBL-008", + "BDSG-OBL-014", + "BDSG-OBL-017", + "BDSG-OBL-018", + "BDSG-OBL-021", + "BDSG-OBL-026", + "BDSG-OBL-027", + "BDSG-OBL-028", + "TTDSG-OBL-003", + "TTDSG-OBL-005", + "TTDSG-OBL-008", + "TTDSG-OBL-009", + "TTDSG-OBL-018", + "DSA-OBL-001", + "DSA-OBL-002", + "DSA-OBL-003", + "DSA-OBL-004", + "DSA-OBL-005", + "DSA-OBL-006", + "DSA-OBL-007", + "DSA-OBL-008", + "DSA-OBL-009", + "DSA-OBL-012", + "DSA-OBL-017", + "DSA-OBL-018", + "DSA-OBL-021", + "DSA-OBL-022", + "DSA-OBL-026", + "DSA-OBL-027", + "DSA-OBL-028", + "DSA-OBL-029", + "DSA-OBL-030", + "DSA-OBL-032", + "DSA-OBL-033", + "DSA-OBL-034", + "DSA-OBL-035", + "DATAACT-OBL-002", + "DATAACT-OBL-004", + "DATAACT-OBL-006", + "DATAACT-OBL-007", + "DATAACT-OBL-008", + "DATAACT-OBL-009", + "DATAACT-OBL-010", + "DATAACT-OBL-011", + "DATAACT-OBL-013", + "DATAACT-OBL-016", + "DATAACT-OBL-017", + "DATAACT-OBL-018", + "DATAACT-OBL-019", + "DATAACT-OBL-020", + "DATAACT-OBL-021", + "DATAACT-OBL-022", + "DATAACT-OBL-024", + "DATAACT-OBL-025" + ], + "TOM.GOV.02": [ + "DSGVO-OBL-001", + "DSGVO-OBL-006", + "DSGVO-OBL-007", + "DSGVO-OBL-008", + "DSGVO-OBL-012", + "DSGVO-OBL-016", + "DSGVO-OBL-022", + "DSGVO-OBL-023", + "DSGVO-OBL-024", + "DSGVO-OBL-030", + "DSGVO-OBL-032", + "DSGVO-OBL-040", + "DSGVO-OBL-062", + "DSGVO-OBL-063", + "DSGVO-OBL-064", + "DSGVO-OBL-065", + "DSGVO-OBL-073", + "DSGVO-OBL-079", + "AIACT-OBL-001", + "AIACT-OBL-053", + "NIS2-OBL-001", + "NIS2-OBL-002", + "NIS2-OBL-030", + "NIS2-OBL-032", + "NIS2-OBL-033", + "BDSG-OBL-010", + "BDSG-OBL-011", + "BDSG-OBL-018", + "BDSG-OBL-023", + "TTDSG-OBL-004", + "TTDSG-OBL-006", + "TTDSG-OBL-012", + "TTDSG-OBL-014", + "TTDSG-OBL-015", + "TTDSG-OBL-016", + "TTDSG-OBL-017", + "TTDSG-OBL-020", + "DSA-OBL-005", + "DSA-OBL-026", + "DSA-OBL-027", + "DSA-OBL-029", + "DATAACT-OBL-022" + ], + "TOM.GOV.03": [ + "DSGVO-OBL-003", + "DSGVO-OBL-031", + "DSGVO-OBL-032", + "DSGVO-OBL-045", + "DSGVO-OBL-048", + "DSGVO-OBL-049", + "DSGVO-OBL-054", + "DSGVO-OBL-058", + "DSGVO-OBL-071", + "DSGVO-OBL-075", + "AIACT-OBL-002", + "AIACT-OBL-016", + "AIACT-OBL-032", + "AIACT-OBL-046", + "NIS2-OBL-002", + "NIS2-OBL-016", + "NIS2-OBL-029", + "NIS2-OBL-030", + "BDSG-OBL-001", + "BDSG-OBL-011", + "BDSG-OBL-024", + "BDSG-OBL-025", + "BDSG-OBL-030", + "DSA-OBL-008", + "DSA-OBL-009", + "DSA-OBL-023", + "DSA-OBL-025", + "DSA-OBL-026", + "DSA-OBL-028", + "DSA-OBL-031" + ], + "TOM.GOV.04": [ + "AIACT-OBL-002", + "AIACT-OBL-018", + "AIACT-OBL-022", + "AIACT-OBL-054", + "NIS2-OBL-003", + "NIS2-OBL-034", + "NIS2-OBL-035", + "NIS2-OBL-036", + "BDSG-OBL-004", + "BDSG-OBL-019" + ], + "TOM.GOV.05": [ + "AIACT-OBL-004", + "AIACT-OBL-018", + "AIACT-OBL-019", + "AIACT-OBL-036", + "AIACT-OBL-037", + "NIS2-OBL-003", + "NIS2-OBL-034", + "NIS2-OBL-035", + "NIS2-OBL-036", + "BDSG-OBL-014", + "BDSG-OBL-015", + "BDSG-OBL-016", + "BDSG-OBL-029" + ], + "TOM.GOV.06": [ + "AIACT-OBL-006", + "AIACT-OBL-025", + "NIS2-OBL-004", + "NIS2-OBL-035", + "NIS2-OBL-036" + ], + "TOM.GOV.07": [ + "AIACT-OBL-007", + "AIACT-OBL-060", + "NIS2-OBL-012", + "NIS2-OBL-024", + "NIS2-OBL-025", + "NIS2-OBL-031", + "NIS2-OBL-037" + ], + "TOM.GOV.08": [ + "AIACT-OBL-010", + "AIACT-OBL-031", + "AIACT-OBL-055", + "AIACT-OBL-057", + "AIACT-OBL-058", + "AIACT-OBL-059", + "AIACT-OBL-060", + "NIS2-OBL-012", + "NIS2-OBL-024", + "NIS2-OBL-025", + "NIS2-OBL-031", + "NIS2-OBL-037" + ], + "TOM.GOV.09": [ + "AIACT-OBL-010", + "AIACT-OBL-031", + "AIACT-OBL-059", + "NIS2-OBL-015", + "NIS2-OBL-037" + ], + "TOM.GOV.10": [ + "AIACT-OBL-011", + "AIACT-OBL-030", + "AIACT-OBL-039", + "AIACT-OBL-060", + "NIS2-OBL-015" + ], + "TOM.GOV.11": [ + "AIACT-OBL-012", + "AIACT-OBL-042", + "AIACT-OBL-043", + "NIS2-OBL-016", + "NIS2-OBL-029" + ], + "TOM.GOV.12": [ + "AIACT-OBL-013", + "AIACT-OBL-046", + "NIS2-OBL-017" + ], + "TOM.GOV.13": [ + "AIACT-OBL-014", + "AIACT-OBL-025", + "AIACT-OBL-038", + "NIS2-OBL-019" + ], + "TOM.GOV.14": [ + "AIACT-OBL-019", + "AIACT-OBL-020", + "AIACT-OBL-022", + "AIACT-OBL-035", + "AIACT-OBL-036", + "AIACT-OBL-054", + "NIS2-OBL-021" + ], + "TOM.GOV.15": [ + "AIACT-OBL-020", + "AIACT-OBL-035", + "NIS2-OBL-026", + "NIS2-OBL-027", + "NIS2-OBL-038", + "NIS2-OBL-039" + ], + "TOM.HR.01": [ + "DSGVO-OBL-059", + "DSGVO-OBL-060", + "DSGVO-OBL-061", + "AIACT-OBL-007", + "NIS2-OBL-004", + "NIS2-OBL-011", + "NIS2-OBL-030", + "NIS2-OBL-036", + "BDSG-OBL-006", + "BDSG-OBL-007", + "BDSG-OBL-008", + "BDSG-OBL-009" + ], + "TOM.HR.02": [ + "DSGVO-OBL-059", + "DSGVO-OBL-060", + "AIACT-OBL-015", + "NIS2-OBL-004", + "NIS2-OBL-011", + "BDSG-OBL-007", + "BDSG-OBL-029", + "TTDSG-OBL-019" + ], + "TOM.HR.03": [ + "AIACT-OBL-015", + "NIS2-OBL-011" + ], + "TOM.HR.04": [ + "AIACT-OBL-057", + "NIS2-OBL-011" + ], + "TOM.HR.05": [ + "AIACT-OBL-058" + ], + "TOM.IAM.01": [ + "DSGVO-OBL-002", + "AIACT-OBL-052", + "NIS2-OBL-009", + "NIS2-OBL-030" + ], + "TOM.IAM.02": [ + "AIACT-OBL-055", + "NIS2-OBL-009" + ], + "TOM.IAM.03": [ + "NIS2-OBL-009" + ], + "TOM.LOG.01": [ + "DSGVO-OBL-011", + "DSGVO-OBL-016", + "DSGVO-OBL-020", + "DSGVO-OBL-031", + "DSGVO-OBL-066", + "DSGVO-OBL-067", + "DSGVO-OBL-069", + "DSGVO-OBL-070", + "DSGVO-OBL-080", + "AIACT-OBL-005", + "AIACT-OBL-023", + "NIS2-OBL-005", + "NIS2-OBL-014", + "BDSG-OBL-022", + "TTDSG-OBL-004" + ], + "TOM.LOG.02": [ + "DSGVO-OBL-070", + "AIACT-OBL-005", + "NIS2-OBL-014" + ], + "TOM.LOG.03": [ + "AIACT-OBL-005", + "NIS2-OBL-014" + ], + "TOM.LOG.04": [ + "AIACT-OBL-009", + "AIACT-OBL-029", + "NIS2-OBL-014" + ], + "TOM.LOG.05": [ + "AIACT-OBL-023" + ], + "TOM.LOG.06": [ + "AIACT-OBL-023" + ], + "TOM.LOG.07": [ + "AIACT-OBL-029" + ], + "TOM.NET.01": [ + "DSGVO-OBL-002", + "DSGVO-OBL-043", + "DSGVO-OBL-077", + "AIACT-OBL-008", + "NIS2-OBL-013", + "TTDSG-OBL-002", + "TTDSG-OBL-010", + "TTDSG-OBL-011" + ], + "TOM.NET.02": [ + "DSGVO-OBL-043", + "DSGVO-OBL-077", + "AIACT-OBL-013", + "AIACT-OBL-047", + "NIS2-OBL-013" + ], + "TOM.NET.03": [ + "DSGVO-OBL-077", + "AIACT-OBL-047", + "NIS2-OBL-013" + ], + "TOM.NET.04": [ + "AIACT-OBL-056", + "NIS2-OBL-013" + ], + "TOM.OPS.01": [ + "DSGVO-OBL-011", + "DSGVO-OBL-046", + "DSGVO-OBL-047", + "DSGVO-OBL-069", + "AIACT-OBL-006", + "NIS2-OBL-002", + "NIS2-OBL-030", + "DSA-OBL-003", + "DSA-OBL-010", + "DSA-OBL-011", + "DSA-OBL-012", + "DSA-OBL-013", + "DSA-OBL-014", + "DSA-OBL-015", + "DSA-OBL-016", + "DSA-OBL-018", + "DSA-OBL-019", + "DSA-OBL-020", + "DSA-OBL-021", + "DSA-OBL-022", + "DSA-OBL-023", + "DSA-OBL-024", + "DSA-OBL-025", + "DSA-OBL-030", + "DSA-OBL-031", + "DSA-OBL-033", + "DATAACT-OBL-001", + "DATAACT-OBL-003", + "DATAACT-OBL-005", + "DATAACT-OBL-011", + "DATAACT-OBL-012", + "DATAACT-OBL-014", + "DATAACT-OBL-015", + "DATAACT-OBL-016", + "DATAACT-OBL-019", + "DATAACT-OBL-023" + ], + "TOM.OPS.02": [ + "DSGVO-OBL-011", + "DSGVO-OBL-046", + "DSGVO-OBL-069", + "AIACT-OBL-007", + "DSA-OBL-010", + "DSA-OBL-013", + "DSA-OBL-016", + "DATAACT-OBL-003", + "DATAACT-OBL-005", + "DATAACT-OBL-012" + ], + "TOM.OPS.03": [ + "DSGVO-OBL-045", + "DSGVO-OBL-075", + "AIACT-OBL-009" + ], + "TOM.OPS.04": [ + "AIACT-OBL-009", + "NIS2-OBL-008", + "NIS2-OBL-020", + "NIS2-OBL-022" + ], + "TOM.OPS.05": [ + "AIACT-OBL-011", + "AIACT-OBL-030", + "AIACT-OBL-039", + "NIS2-OBL-008", + "NIS2-OBL-020", + "NIS2-OBL-022" + ], + "TOM.OPS.06": [ + "AIACT-OBL-024", + "NIS2-OBL-015" + ], + "TOM.OPS.07": [ + "AIACT-OBL-029" + ], + "TOM.OPS.08": [ + "AIACT-OBL-040", + "NIS2-OBL-005" + ], + "TOM.OPS.09": [ + "AIACT-OBL-050", + "NIS2-OBL-005", + "NIS2-OBL-018", + "NIS2-OBL-023" + ], + "TOM.OPS.10": [ + "AIACT-OBL-050", + "NIS2-OBL-005", + "NIS2-OBL-018" + ], + "TOM.OPS.11": [ + "NIS2-OBL-021" + ], + "TOM.PHY.01": [ + "BDSG-OBL-001", + "BDSG-OBL-002", + "BDSG-OBL-003" + ], + "TOM.SDLC.01": [ + "DSGVO-OBL-033", + "DSGVO-OBL-034", + "AIACT-OBL-004", + "NIS2-OBL-008", + "NIS2-OBL-030", + "NIS2-OBL-040" + ], + "TOM.SDLC.02": [ + "DSGVO-OBL-033", + "AIACT-OBL-008", + "NIS2-OBL-008", + "NIS2-OBL-040" + ], + "TOM.SDLC.03": [ + "AIACT-OBL-013", + "NIS2-OBL-020", + "NIS2-OBL-040" + ], + "TOM.SDLC.04": [ + "AIACT-OBL-020", + "NIS2-OBL-040" + ], + "TOM.SDLC.05": [ + "AIACT-OBL-040", + "AIACT-OBL-041", + "NIS2-OBL-040" + ], + "TOM.SDLC.06": [ + "AIACT-OBL-041" + ], + "TOM.SDLC.07": [ + "AIACT-OBL-042" + ], + "TOM.SDLC.08": [ + "AIACT-OBL-045" + ], + "TOM.SDLC.09": [ + "AIACT-OBL-045" + ], + "TOM.VEN.01": [ + "BDSG-OBL-030" + ], + "TOM.VENDOR.01": [ + "DSGVO-OBL-005", + "DSGVO-OBL-010", + "DSGVO-OBL-028", + "DSGVO-OBL-035", + "DSGVO-OBL-037", + "DSGVO-OBL-038", + "DSGVO-OBL-039", + "DSGVO-OBL-055", + "DSGVO-OBL-056", + "AIACT-OBL-026", + "NIS2-OBL-007", + "NIS2-OBL-030" + ], + "TOM.VENDOR.02": [ + "DSGVO-OBL-005", + "DSGVO-OBL-037", + "DSGVO-OBL-038", + "AIACT-OBL-027", + "NIS2-OBL-007" + ], + "TOM.VENDOR.03": [ + "DSGVO-OBL-010", + "DSGVO-OBL-055", + "DSGVO-OBL-056", + "DSGVO-OBL-057", + "AIACT-OBL-027", + "NIS2-OBL-007" + ], + "TOM.VENDOR.04": [ + "AIACT-OBL-033", + "NIS2-OBL-007" + ], + "TOM.VENDOR.05": [ + "AIACT-OBL-033", + "NIS2-OBL-019" + ], + "TOM.VENDOR.06": [ + "AIACT-OBL-034" + ], + "TOM.VENDOR.07": [ + "AIACT-OBL-034" + ], + "TOM.WEB.01": [ + "TTDSG-OBL-012", + "TTDSG-OBL-013", + "TTDSG-OBL-014" + ] + } +} \ No newline at end of file diff --git a/ai-compliance-sdk/policies/obligations/v2/ai_act_v2.json b/ai-compliance-sdk/policies/obligations/v2/ai_act_v2.json new file mode 100644 index 0000000..0e4c8a7 --- /dev/null +++ b/ai-compliance-sdk/policies/obligations/v2/ai_act_v2.json @@ -0,0 +1,1935 @@ +{ + "regulation": "ai_act", + "name": "AI Act (EU KI-Verordnung)", + "description": "EU-Verordnung 2024/1689 zur Festlegung harmonisierter Vorschriften fuer kuenstliche Intelligenz", + "version": "2.0", + "effective_date": "2024-08-01", + "obligations": [ + { + "id": "AIACT-OBL-001", + "title": "Verbotene KI-Praktiken vermeiden", + "description": "Sicherstellung, dass keine verbotenen KI-Praktiken eingesetzt werden: Social Scoring durch oeffentliche Stellen, Ausnutzung von Schwaechen (Alter, Behinderung), unterschwellige Manipulation, biometrische Echtzeit-Fernidentifizierung (mit Ausnahmen), Emotionserkennung am Arbeitsplatz/in Bildung, biometrische Kategorisierung nach sensitiven Merkmalen.", + "applies_when": "uses_ai", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.uses_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 5", "title": "Verbotene Praktiken im KI-Bereich"} + ], + "sources": [ + {"type": "article", "ref": "Art. 5 AI Act"} + ], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "35 Mio. EUR oder 7% Jahresumsatz"}, + "evidence": [ + "KI-Inventar mit Risikobewertung", + "Dokumentierte Pruefung auf verbotene Praktiken" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.02"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-002", + "title": "Risikomanagementsystem fuer Hochrisiko-KI", + "description": "Einrichtung eines Risikomanagementsystems fuer Hochrisiko-KI-Systeme: Ermittlung und Analyse bekannter und vorhersehbarer Risiken, Schaetzung und Bewertung der Risiken, Risikominderungsmassnahmen, kontinuierliche Ueberwachung und Aktualisierung.", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 9", "title": "Risikomanagementsystem"} + ], + "sources": [ + {"type": "article", "ref": "Art. 9 AI Act"} + ], + "category": "Governance", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Risikomanagement-Dokumentation", + "Risikobewertungen pro KI-System", + "Massnahmenplan" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.03", "TOM.GOV.04"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-003", + "title": "Daten-Governance fuer Hochrisiko-KI", + "description": "Anforderungen an Trainings-, Validierungs- und Testdaten: Relevante Design-Entscheidungen, Datenerhebung und Datenherkunft, Vorverarbeitung (Annotation, Labelling, Bereinigung), Erkennung und Behebung von Verzerrungen (Bias), Identifizierung von Datenluecken.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 10", "title": "Daten und Daten-Governance"} + ], + "sources": [ + {"type": "article", "ref": "Art. 10 AI Act"} + ], + "category": "Technisch", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Datensatzdokumentation", + "Bias-Analyse-Berichte", + "Datenqualitaetsnachweise" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.DATA.01", "TOM.DATA.02", "TOM.DATA.03"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-004", + "title": "Technische Dokumentation erstellen", + "description": "Erstellung umfassender technischer Dokumentation vor Inverkehrbringen: Allgemeine Beschreibung des KI-Systems, Design-Spezifikationen, Entwicklungsprozess, Leistungsmetriken, Risikomanagement-Dokumentation gemaess Anhang IV.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 11", "title": "Technische Dokumentation"}, + {"norm": "AI Act", "article": "Anhang IV", "title": "Technische Dokumentation gemaess Art. 11"} + ], + "sources": [ + {"type": "article", "ref": "Art. 11 AI Act"}, + {"type": "article", "ref": "Anhang IV AI Act"} + ], + "category": "Dokumentation", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Technische Dokumentation nach Anhang IV", + "Systemarchitektur-Dokumentation", + "Algorithmus-Beschreibung" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.05", "TOM.SDLC.01"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-005", + "title": "Protokollierungsfunktion implementieren", + "description": "Hochrisiko-KI-Systeme muessen automatische Protokolle (Logs) erstellen: Nutzungszeitraum, Referenzdatenbank, Eingabedaten, Identitaet der verifizierenden Personen. Aufbewahrung mindestens 6 Monate.", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 12", "title": "Aufzeichnungspflichten"} + ], + "sources": [ + {"type": "article", "ref": "Art. 12 AI Act"} + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Log-System-Dokumentation", + "Beispiel-Logs", + "Aufbewahrungsrichtlinie" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.LOG.01", "TOM.LOG.02", "TOM.LOG.03"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-006", + "title": "Transparenz und Nutzerinformation", + "description": "Bereitstellung klarer Informationen fuer Betreiber (Deployer): Gebrauchsanweisungen, Eigenschaften und Grenzen des Systems, Leistungsniveau und Genauigkeit, vorhersehbare Fehlnutzungen.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 13", "title": "Transparenz und Information fuer Betreiber"} + ], + "sources": [ + {"type": "article", "ref": "Art. 13 AI Act"} + ], + "category": "Organisatorisch", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Gebrauchsanweisung", + "Leistungsdokumentation", + "Warnhinweise" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.06", "TOM.OPS.01"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-007", + "title": "Menschliche Aufsicht sicherstellen", + "description": "Hochrisiko-KI muss menschliche Aufsicht ermoeglichen: Faehigkeiten und Grenzen verstehen, Ueberwachung des Betriebs, Interpretation der Ausgaben, Eingreifen oder Abbrechen koennen (Human-in-the-Loop / Human-on-the-Loop).", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 14", "title": "Menschliche Aufsicht"} + ], + "sources": [ + {"type": "article", "ref": "Art. 14 AI Act"} + ], + "category": "Organisatorisch", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Aufsichtskonzept", + "Schulungsnachweise fuer Bediener", + "Notfall-Abschaltprozedur" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.07", "TOM.HR.01", "TOM.OPS.02"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-008", + "title": "Genauigkeit, Robustheit und Cybersicherheit", + "description": "Hochrisiko-KI muss waehrend des gesamten Lebenszyklus angemessene Genauigkeit aufweisen, robust gegen Fehler und Inkonsistenzen sein und Cyberangriffe verhindern koennen (Adversarial Attacks, Data Poisoning, Model Manipulation).", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 15", "title": "Genauigkeit, Robustheit und Cybersicherheit"} + ], + "sources": [ + {"type": "article", "ref": "Art. 15 AI Act"} + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Genauigkeits-Metriken und Tests", + "Robustheitstests", + "Security-Assessment", + "Penetrationstest-Bericht" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.SDLC.02", "TOM.NET.01", "TOM.CRYPTO.01"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-009", + "title": "Betreiberpflichten fuer Hochrisiko-KI", + "description": "Betreiber (Deployer) von Hochrisiko-KI muessen: Geeignete technische und organisatorische Massnahmen treffen, Eingabedaten auf Relevanz pruefen, Betrieb ueberwachen, Protokolle aufbewahren, betroffene Personen informieren.", + "applies_when": "high_risk_deployer", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_deployer", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 26", "title": "Pflichten der Betreiber"} + ], + "sources": [ + {"type": "article", "ref": "Art. 26 AI Act"} + ], + "category": "Organisatorisch", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Betriebskonzept", + "Eingabedaten-Pruefung", + "Monitoring-Dokumentation" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.OPS.03", "TOM.OPS.04", "TOM.LOG.04"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-010", + "title": "Grundrechte-Folgenabschaetzung", + "description": "Betreiber von Hochrisiko-KI in sensiblen Bereichen muessen vor Einsatz eine Grundrechte-Folgenabschaetzung durchfuehren (FRIA - Fundamental Rights Impact Assessment). Dies gilt fuer oeffentliche Stellen und private Betreiber in kritischen Bereichen.", + "applies_when": "high_risk_deployer_fria", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_deployer", "operator": "EQUALS", "value": true}, + {"field": "organization.is_public_authority", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 27", "title": "Grundrechte-Folgenabschaetzung fuer Hochrisiko-KI-Systeme"} + ], + "sources": [ + {"type": "article", "ref": "Art. 27 AI Act"} + ], + "category": "Governance", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "FRIA-Dokumentation", + "Risikobewertung Grundrechte", + "Abhilfemassnahmen" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.08", "TOM.GOV.09"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-011", + "title": "Transparenzpflichten fuer KI-Interaktionen", + "description": "Bei KI-Systemen, die mit natuerlichen Personen interagieren: Kennzeichnung der KI-Interaktion, Information dass Inhalte KI-generiert sind, Kennzeichnung von Deep Fakes.", + "applies_when": "limited_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.limited_risk_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 50", "title": "Transparenzpflichten fuer bestimmte KI-Systeme"} + ], + "sources": [ + {"type": "article", "ref": "Art. 50 AI Act"} + ], + "category": "Organisatorisch", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Kennzeichnungskonzept", + "Nutzerhinweise", + "Deep-Fake-Kennzeichnung" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.10", "TOM.OPS.05"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-012", + "title": "GPAI-Modell Dokumentation", + "description": "Anbieter von GPAI-Modellen (General Purpose AI) muessen: Technische Dokumentation erstellen und aktualisieren, Informationen fuer nachgelagerte Anbieter bereitstellen, Urheberrechtsrichtlinie einhalten, Trainingsdaten-Zusammenfassung veroeffentlichen.", + "applies_when": "gpai_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.is_gpai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 53", "title": "Pflichten der Anbieter von KI-Modellen mit allgemeinem Verwendungszweck"} + ], + "sources": [ + {"type": "article", "ref": "Art. 53 AI Act"} + ], + "category": "Dokumentation", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "GPAI-Dokumentation", + "Trainingsdaten-Summary", + "Urheberrechts-Policy" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.11", "TOM.DATA.04"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-013", + "title": "GPAI mit systemischem Risiko", + "description": "GPAI-Modelle mit systemischem Risiko (>10^25 FLOP Training) haben zusaetzliche Pflichten: Modellbewertung nach Protokollen, Bewertung und Minderung systemischer Risiken, Dokumentation von Vorfaellen, angemessene Cybersicherheit.", + "applies_when": "gpai_systemic_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.is_gpai_provider", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.gpai_systemic_risk", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 55", "title": "Pflichten der Anbieter von KI-Modellen mit allgemeinem Verwendungszweck mit systemischem Risiko"} + ], + "sources": [ + {"type": "article", "ref": "Art. 55 AI Act"} + ], + "category": "Technisch", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "35 Mio. EUR oder 7% Jahresumsatz"}, + "evidence": [ + "Systemische Risikobewertung", + "Red-Teaming-Berichte", + "Incident-Dokumentation" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.12", "TOM.NET.02", "TOM.SDLC.03"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-014", + "title": "EU-Datenbank-Registrierung", + "description": "Registrierung in der EU-Datenbank fuer Hochrisiko-KI-Systeme: Anbieter vor Inverkehrbringen, Betreiber vor Inbetriebnahme bei bestimmten Kategorien (Annex III).", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 49", "title": "Registrierung"}, + {"norm": "AI Act", "article": "Art. 60", "title": "EU-Datenbank fuer Hochrisiko-KI-Systeme"} + ], + "sources": [ + {"type": "article", "ref": "Art. 49 AI Act"}, + {"type": "article", "ref": "Art. 60 AI Act"} + ], + "category": "Meldepflicht", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Registrierungsbestaetigung", + "EU-Datenbank-Eintrag" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.13"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-015", + "title": "KI-Kompetenz sicherstellen", + "description": "Anbieter und Betreiber muessen sicherstellen, dass Personal mit ausreichender KI-Kompetenz ausgestattet ist. Dies umfasst Schulungen und Sensibilisierung fuer Risiken und ethische Aspekte der KI-Nutzung.", + "applies_when": "uses_ai", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.uses_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 4", "title": "KI-Kompetenz"} + ], + "sources": [ + {"type": "article", "ref": "Art. 4 AI Act"} + ], + "category": "Schulung", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "7,5 Mio. EUR oder 1% Jahresumsatz"}, + "evidence": [ + "Schulungsnachweise", + "Kompetenzmatrix", + "Awareness-Programm" + ], + "priority": "mittel", + "tom_control_ids": ["TOM.HR.02", "TOM.HR.03"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-016", + "title": "Klassifizierung als Hochrisiko-KI-System", + "description": "Pruefung ob ein KI-System als Hochrisiko einzustufen ist anhand der Kriterien in Art. 6 und Anhang III. Systeme die in mindestens eine der 8 Hochrisiko-Kategorien fallen, unterliegen den erweiterten Pflichten.", + "applies_when": "uses_ai", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.uses_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 6", "title": "Klassifizierungsregeln fuer Hochrisiko-KI-Systeme"}, + {"norm": "AI Act", "article": "Anhang III", "title": "Hochrisiko-KI-Systeme gemaess Art. 6 Abs. 2"} + ], + "sources": [ + {"type": "article", "ref": "Art. 6 AI Act"}, + {"type": "article", "ref": "Anhang III AI Act"} + ], + "category": "Governance", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Klassifizierungsbericht je KI-System", + "Anhang-III-Pruefung dokumentiert", + "Entscheidungsmatrix Risikoeinstufung" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.03"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-017", + "title": "Aenderungen der Hochrisiko-Liste ueberwachen", + "description": "Kontinuierliche Ueberwachung von Aenderungen an Anhang III durch delegierte Rechtsakte der EU-Kommission. Neue Hochrisiko-Kategorien koennen hinzugefuegt werden, bestehende Systeme muessen ggf. neu klassifiziert werden.", + "applies_when": "uses_ai", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.uses_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 7", "title": "Aenderungen des Anhangs III"} + ], + "sources": [ + {"type": "article", "ref": "Art. 7 AI Act"} + ], + "category": "Governance", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Monitoring-Prozess fuer regulatorische Aenderungen", + "Re-Klassifizierungsprotokolle" + ], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-018", + "title": "Einhaltung der Anforderungen Kapitel III Abschnitt 2", + "description": "Hochrisiko-KI-Systeme muessen die Anforderungen aus Art. 8-15 vollstaendig erfuellen. Anbieter muessen ein System einrichten, das die Einhaltung aller Anforderungen sicherstellt und dokumentiert.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 8", "title": "Einhaltung der Anforderungen"} + ], + "sources": [ + {"type": "article", "ref": "Art. 8 AI Act"} + ], + "category": "Compliance", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Compliance-Checkliste Art. 8-15", + "Nachweis der Anforderungserfuellung", + "Gap-Analyse" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.04", "TOM.GOV.05"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-019", + "title": "Allgemeine Anbieterpflichten Hochrisiko-KI", + "description": "Anbieter von Hochrisiko-KI-Systemen muessen: Compliance mit Anforderungen sicherstellen, Kontaktdaten angeben, QMS einrichten, Dokumentation aufbewahren, Konformitaetsbewertung durchfuehren, CE-Kennzeichnung anbringen, Registrierungspflicht erfuellen.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 16", "title": "Pflichten der Anbieter von Hochrisiko-KI-Systemen"} + ], + "sources": [ + {"type": "article", "ref": "Art. 16 AI Act"} + ], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Anbieter-Compliance-Nachweis", + "QMS-Dokumentation", + "Konformitaetserklaerung" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.05", "TOM.GOV.14"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-020", + "title": "Qualitaetsmanagementsystem einrichten", + "description": "Anbieter von Hochrisiko-KI muessen ein QMS einrichten und dokumentieren: Compliance-Strategie, Design- und Entwicklungskontrolle, Qualitaetssicherung, Datenmanagement, Risikomanagement-Integration, Post-Market-Monitoring, Vorfallmeldung, Kommunikation mit Behoerden.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 17", "title": "Qualitaetsmanagementsystem"} + ], + "sources": [ + {"type": "article", "ref": "Art. 17 AI Act"} + ], + "category": "Governance", + "responsible": "Qualitaetsmanagement", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "QMS-Handbuch", + "Prozessbeschreibungen", + "Audit-Berichte QMS", + "Management-Review-Protokolle" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.14", "TOM.GOV.15", "TOM.SDLC.04"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-021", + "title": "Dokumentationsaufbewahrung", + "description": "Technische Dokumentation, QMS-Dokumentation, Konformitaetsbewertung und EU-Konformitaetserklaerung muessen mindestens 10 Jahre nach Inverkehrbringen aufbewahrt werden. Auf Anfrage den Behoerden zugaenglich machen.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 18", "title": "Dokumentationspflichten"} + ], + "sources": [ + {"type": "article", "ref": "Art. 18 AI Act"} + ], + "category": "Dokumentation", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Aufbewahrungsrichtlinie", + "Archivierungssystem-Nachweis", + "Zugangsprotokoll fuer Behoerden" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.DATA.05", "TOM.DATA.06"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-022", + "title": "Konformitaetsbewertung durchfuehren", + "description": "Vor Inverkehrbringen oder Inbetriebnahme eines Hochrisiko-KI-Systems muss eine Konformitaetsbewertung gemaess Art. 43 durchgefuehrt werden. Bei biometrischen Systemen ist eine Drittbewertung durch notifizierte Stelle erforderlich.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 19", "title": "Konformitaetsbewertung"}, + {"norm": "AI Act", "article": "Art. 43", "title": "Konformitaetsbewertungsverfahren"} + ], + "sources": [ + {"type": "article", "ref": "Art. 19 AI Act"}, + {"type": "article", "ref": "Art. 43 AI Act"} + ], + "category": "Audit", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Konformitaetsbewertungsbericht", + "Zertifikat notifizierte Stelle (falls zutreffend)", + "Interne Audit-Dokumentation" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.04", "TOM.GOV.14"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-023", + "title": "Automatisch generierte Logs bereitstellen", + "description": "Anbieter von Hochrisiko-KI-Systemen muessen sicherstellen, dass automatisch generierte Logs gespeichert und auf Anfrage den Betreibern und Behoerden bereitgestellt werden koennen. Logs muessen die Rueckverfolgbarkeit des Systemverhaltens ermoeglichen.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 20", "title": "Automatisch generierte Protokolle"} + ], + "sources": [ + {"type": "article", "ref": "Art. 20 AI Act"} + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Log-Export-Funktion", + "Protokoll-Zugriffskonzept", + "Behoerden-Schnittstelle" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.LOG.01", "TOM.LOG.05", "TOM.LOG.06"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-024", + "title": "Korrekturmassnahmen ergreifen", + "description": "Anbieter muessen bei Nicht-Konformitaet unverzueglich Korrekturmassnahmen ergreifen: System in Konformitaet bringen, vom Markt nehmen oder zurueckrufen. Behoerden und ggf. Betreiber sind zu informieren.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 21", "title": "Korrekturmassnahmen und Informationspflicht"} + ], + "sources": [ + {"type": "article", "ref": "Art. 21 AI Act"} + ], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Korrekturmassnahmen-Prozess", + "Rueckruf-Verfahren", + "Behoerden-Meldungen" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.OPS.06", "TOM.BCP.01"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-025", + "title": "Informationspflichten gegenueber Behoerden", + "description": "Auf begruendetes Verlangen der Marktaufsichtsbehoerde muessen Anbieter alle erforderlichen Informationen und Dokumentation bereitstellen, einschliesslich Zugang zu automatisch generierten Logs. Zusammenarbeit in der Landessprache.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 22", "title": "Informationspflichten"}, + {"norm": "AI Act", "article": "Art. 23", "title": "Zusammenarbeit mit Behoerden"} + ], + "sources": [ + {"type": "article", "ref": "Art. 22 AI Act"}, + {"type": "article", "ref": "Art. 23 AI Act"} + ], + "category": "Meldepflicht", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Behoerden-Kommunikationsprotokoll", + "Informationsbereitstellungs-Prozess", + "Ansprechpartner-Benennung" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.06", "TOM.GOV.13"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-026", + "title": "Bevollmaechtigten benennen", + "description": "Anbieter mit Sitz ausserhalb der EU muessen vor Inverkehrbringen einen Bevollmaechtigten in der EU benennen. Der Bevollmaechtigte muss ueber ausreichende Befugnisse verfuegen und die Konformitaetsdokumentation vorhalten.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 24", "title": "Pflichten der Bevollmaechtigten"} + ], + "sources": [ + {"type": "article", "ref": "Art. 24 AI Act"} + ], + "category": "Organisatorisch", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Bevollmaechtigten-Vertrag", + "Vollmacht-Dokumentation", + "Kontaktdaten EU-Bevollmaechtigter" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.VENDOR.01"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-027", + "title": "Importeur-Pflichten einhalten", + "description": "Importeure von Hochrisiko-KI-Systemen muessen sicherstellen: Konformitaetsbewertung durchgefuehrt, technische Dokumentation vorhanden, CE-Kennzeichnung angebracht, Gebrauchsanweisung beigefuegt. Namen und Kontaktdaten auf dem System oder Verpackung anbringen.", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 25", "title": "Pflichten der EinfĂĽhrer"} + ], + "sources": [ + {"type": "article", "ref": "Art. 25 AI Act"} + ], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Importeur-Pruefprotokoll", + "Konformitaetserklaerung des Anbieters", + "CE-Kennzeichnungsnachweis" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.VENDOR.02", "TOM.VENDOR.03"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-028", + "title": "Deployer-Pflicht: Eingabedaten-Kontrolle", + "description": "Betreiber von Hochrisiko-KI muessen sicherstellen, dass Eingabedaten relevant und hinreichend repraesentativ fuer den Verwendungszweck sind. Regelmaessige Pruefung der Datenqualitaet.", + "applies_when": "high_risk_deployer", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_deployer", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 26 Abs. 4", "title": "Eingabedatenkontrolle durch Betreiber"} + ], + "sources": [ + {"type": "article", "ref": "Art. 26 Abs. 4 AI Act"} + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Eingabedaten-Qualitaetspruefung", + "Datenvalidierungsprotokolle", + "Repraesentativitaets-Analyse" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.DATA.07", "TOM.DATA.08"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-029", + "title": "Deployer-Pflicht: Monitoring und Protokollaufbewahrung", + "description": "Betreiber muessen den Betrieb von Hochrisiko-KI ueberwachen und automatisch generierte Protokolle mindestens 6 Monate aufbewahren. Bei Risiken oder schwerwiegenden Vorfaellen unverzueglich den Anbieter und die Behoerden informieren.", + "applies_when": "high_risk_deployer", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_deployer", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 26 Abs. 5", "title": "Monitoring-Pflicht der Betreiber"} + ], + "sources": [ + {"type": "article", "ref": "Art. 26 Abs. 5 AI Act"} + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Monitoring-Dashboard", + "Log-Aufbewahrungsnachweis", + "Eskalationsprozess-Dokumentation" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.LOG.04", "TOM.LOG.07", "TOM.OPS.07"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-030", + "title": "Deployer-Pflicht: Information betroffener Personen", + "description": "Betreiber von Hochrisiko-KI muessen natuerliche Personen informieren, dass sie einer Entscheidung unterliegen, die auf dem Einsatz eines Hochrisiko-KI-Systems beruht. Dies gilt insbesondere in den Bereichen Beschaeftigung, Bildung und oeffentliche Dienstleistungen.", + "applies_when": "high_risk_deployer", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_deployer", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.ai_makes_decisions", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 26 Abs. 7", "title": "Informationspflicht gegenueber betroffenen Personen"} + ], + "sources": [ + {"type": "article", "ref": "Art. 26 Abs. 7 AI Act"} + ], + "category": "Organisatorisch", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Informationsschreiben-Vorlagen", + "Nachweis der Benachrichtigung", + "Datenschutzerklaerung mit KI-Hinweis" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.10", "TOM.OPS.05"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-031", + "title": "Deployer-Pflicht: DSFA bei Hochrisiko-KI", + "description": "Betreiber muessen vor Einsatz von Hochrisiko-KI eine Datenschutz-Folgenabschaetzung nach Art. 35 DSGVO durchfuehren, soweit personenbezogene Daten verarbeitet werden. Die FRIA nach Art. 27 AI Act kann dabei beruecksichtigt werden.", + "applies_when": "high_risk_deployer", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_deployer", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 26 Abs. 9", "title": "DSFA-Pflicht fuer Betreiber"}, + {"norm": "DSGVO", "article": "Art. 35", "title": "Datenschutz-Folgenabschaetzung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 26 Abs. 9 AI Act"}, + {"type": "article", "ref": "Art. 35 DSGVO"} + ], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "DSFA-Bericht", + "FRIA-Integration", + "Massnahmenplan" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.08", "TOM.GOV.09"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-032", + "title": "Deployer wird zum Anbieter", + "description": "Ein Betreiber wird zum Anbieter, wenn er: seinen Namen/Marke auf ein Hochrisiko-KI-System setzt, wesentliche Aenderungen vornimmt oder den Verwendungszweck aendert. In diesem Fall gelten alle Anbieterpflichten.", + "applies_when": "high_risk_deployer", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_deployer", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 26 Abs. 10", "title": "Betreiber als Anbieter"} + ], + "sources": [ + {"type": "article", "ref": "Art. 26 Abs. 10 AI Act"} + ], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Pruefung Anbieter-Status", + "Aenderungsprotokoll KI-System", + "Umklassifizierungsentscheidung" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.03"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-033", + "title": "Haendlerpflichten einhalten", + "description": "Haendler von Hochrisiko-KI-Systemen muessen vor Bereitstellung pruefen: CE-Kennzeichnung, Konformitaetserklaerung, Gebrauchsanweisung, Konformitaet mit Art. 16. Bei Risiken unverzueglich Anbieter und Marktaufsicht informieren.", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 28", "title": "Pflichten der Haendler"} + ], + "sources": [ + {"type": "article", "ref": "Art. 28 AI Act"} + ], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Haendler-Checkliste", + "Eingangs-Pruefprotokoll", + "Lieferanten-Dokumentation" + ], + "priority": "mittel", + "tom_control_ids": ["TOM.VENDOR.04", "TOM.VENDOR.05"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-034", + "title": "Pflichten in der Wertschoepfungskette", + "description": "Dritte, die Werkzeuge, Dienste, Komponenten oder Prozesse fuer Hochrisiko-KI bereitstellen, muessen mit dem Anbieter zusammenarbeiten und alle relevanten Informationen bereitstellen. Schriftliche Vereinbarungen sind erforderlich.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 29", "title": "Pflichten von Dritten in der Wertschoepfungskette"} + ], + "sources": [ + {"type": "article", "ref": "Art. 29 AI Act"} + ], + "category": "Organisatorisch", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Lieferantenvertraege", + "Informationsaustausch-Protokolle", + "Supply-Chain-Due-Diligence" + ], + "priority": "mittel", + "tom_control_ids": ["TOM.VENDOR.06", "TOM.VENDOR.07"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-035", + "title": "Konformitaetsbewertungsstellen nutzen", + "description": "Fuer bestimmte Hochrisiko-KI-Systeme (insb. biometrische Identifizierung) muss die Konformitaetsbewertung durch eine notifizierte Stelle (Conformity Assessment Body) durchgefuehrt werden. Die Stelle muss unabhaengig und akkreditiert sein.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.uses_biometric_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 43", "title": "Konformitaetsbewertungsstellen"} + ], + "sources": [ + {"type": "article", "ref": "Art. 43 AI Act"} + ], + "category": "Audit", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Notifizierte-Stelle-Beauftragung", + "Akkreditierungsnachweis", + "Bewertungsbericht der notifizierten Stelle" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.14", "TOM.GOV.15"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-036", + "title": "EU-Konformitaetserklaerung ausstellen", + "description": "Anbieter muessen fuer jedes Hochrisiko-KI-System eine EU-Konformitaetserklaerung gemaess Anhang V ausstellen. Diese muss Name und Adresse des Anbieters, KI-System-Identifikation, angewandte harmonisierte Normen und Konformitaetsbewertungsergebnis enthalten.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 47", "title": "EU-Konformitaetserklaerung"}, + {"norm": "AI Act", "article": "Anhang V", "title": "Inhalt der EU-Konformitaetserklaerung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 47 AI Act"}, + {"type": "article", "ref": "Anhang V AI Act"} + ], + "category": "Dokumentation", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "EU-Konformitaetserklaerung nach Anhang V", + "Unterschriebene Erklaerung", + "Verzeichnis der KI-Systeme mit Erklaerungen" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.05", "TOM.GOV.14"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-037", + "title": "CE-Kennzeichnung anbringen", + "description": "Hochrisiko-KI-Systeme muessen mit der CE-Kennzeichnung versehen werden, bevor sie in Verkehr gebracht werden. Die Kennzeichnung muss sichtbar, lesbar und dauerhaft sein. Bei Software wird sie in der digitalen Schnittstelle angebracht.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 48", "title": "CE-Kennzeichnung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 48 AI Act"} + ], + "category": "Compliance", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "CE-Kennzeichnungsnachweis", + "Screenshot digitale Schnittstelle", + "Produktdokumentation" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.05"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-038", + "title": "Registrierungspflicht fuer Betreiber", + "description": "Betreiber von Hochrisiko-KI-Systemen in bestimmten Bereichen (Annex III Nr. 1-5, 8) muessen sich und das System in der EU-Datenbank registrieren, bevor sie das System in Betrieb nehmen.", + "applies_when": "high_risk_deployer", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_deployer", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 49 Abs. 3", "title": "Registrierungspflicht der Betreiber"} + ], + "sources": [ + {"type": "article", "ref": "Art. 49 Abs. 3 AI Act"} + ], + "category": "Meldepflicht", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Betreiber-Registrierungsbestaetigung", + "EU-Datenbank-Eintrag" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.13"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-039", + "title": "Transparenz bei Emotionserkennung", + "description": "Betreiber von KI-Systemen zur Emotionserkennung muessen betroffene Personen ueber den Betrieb des Systems informieren. Gilt nicht fuer Systeme, die gesetzlich zur Aufdeckung von Straftaten zugelassen sind.", + "applies_when": "limited_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.uses_emotion_recognition", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 50 Abs. 3", "title": "Transparenz bei Emotionserkennung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 50 Abs. 3 AI Act"} + ], + "category": "Organisatorisch", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Informationshinweis Emotionserkennung", + "Einwilligungsnachweis", + "Aushang oder digitaler Hinweis" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.10", "TOM.OPS.05"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-040", + "title": "Kennzeichnung von Deep Fakes", + "description": "Anbieter und Betreiber muessen kuenstlich erzeugte oder manipulierte Bild-, Audio- oder Videoinhalte (Deep Fakes) als kuenstlich erzeugt oder manipuliert kennzeichnen. Die Kennzeichnung muss maschinenlesbar sein.", + "applies_when": "limited_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.uses_deepfakes", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 50 Abs. 4", "title": "Kennzeichnung von Deep Fakes"} + ], + "sources": [ + {"type": "article", "ref": "Art. 50 Abs. 4 AI Act"} + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Deep-Fake-Kennzeichnungssystem", + "Maschinenlesbare Metadaten", + "Wasserzeichen-Implementation" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.SDLC.05", "TOM.OPS.08"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-041", + "title": "Kennzeichnung generierter Inhalte", + "description": "Anbieter von KI-Systemen, die synthetische Text-, Bild-, Audio- oder Videoinhalte erzeugen, muessen sicherstellen, dass die Ausgaben in maschinenlesbarem Format als kuenstlich erzeugt gekennzeichnet sind.", + "applies_when": "limited_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.uses_generative_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 50 Abs. 2", "title": "Kennzeichnung KI-generierter Inhalte"} + ], + "sources": [ + {"type": "article", "ref": "Art. 50 Abs. 2 AI Act"} + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Content-Watermarking-System", + "Metadaten-Standard (C2PA o.ae.)", + "Kennzeichnungs-Testbericht" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.SDLC.05", "TOM.SDLC.06"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-042", + "title": "GPAI: Informationen fuer nachgelagerte Anbieter", + "description": "Anbieter von GPAI-Modellen muessen nachgelagerten Anbietern ausreichende Informationen bereitstellen, damit diese ihren Pflichten nachkommen koennen: Faehigkeiten, Grenzen, Risiken und Gebrauchsanweisungen.", + "applies_when": "gpai_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.is_gpai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 53 Abs. 1 lit. b", "title": "Informationspflicht GPAI-Anbieter"} + ], + "sources": [ + {"type": "article", "ref": "Art. 53 Abs. 1 lit. b AI Act"} + ], + "category": "Dokumentation", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Downstream-Provider-Dokumentation", + "Modellkarte (Model Card)", + "API-Dokumentation mit Limitierungen" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.11", "TOM.SDLC.07"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-043", + "title": "GPAI: Urheberrechts-Policy", + "description": "Anbieter von GPAI-Modellen muessen eine Richtlinie zur Einhaltung des Urheberrechts aufstellen und oeffentlich zugaenglich machen, insbesondere hinsichtlich der Trainingsdaten. Opt-out-Mechanismen fuer Rechteinhaber muessen unterstuetzt werden.", + "applies_when": "gpai_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.is_gpai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 53 Abs. 1 lit. c", "title": "Urheberrechtspolitik GPAI"} + ], + "sources": [ + {"type": "article", "ref": "Art. 53 Abs. 1 lit. c AI Act"} + ], + "category": "Governance", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Urheberrechts-Policy veroeffentlicht", + "Opt-out-Mechanismus dokumentiert", + "Trainingsdaten-Compliance-Bericht" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.11", "TOM.DATA.09"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-044", + "title": "GPAI: Trainingsdaten-Zusammenfassung", + "description": "Anbieter von GPAI-Modellen muessen eine hinreichend detaillierte Zusammenfassung der Trainingsdaten erstellen und oeffentlich zugaenglich machen. Das AI Office stellt ein Template hierfuer bereit.", + "applies_when": "gpai_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.is_gpai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 53 Abs. 1 lit. d", "title": "Trainingsdaten-Zusammenfassung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 53 Abs. 1 lit. d AI Act"} + ], + "category": "Dokumentation", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Trainingsdaten-Zusammenfassung (AI Office Template)", + "Veroeffentlichungsnachweis", + "Datenquellen-Verzeichnis" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.DATA.04", "TOM.DATA.10"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-045", + "title": "GPAI systemisch: Modellbewertung durchfuehren", + "description": "Anbieter von GPAI-Modellen mit systemischem Risiko muessen standardisierte Modellbewertungen nach dem aktuellen Stand der Technik durchfuehren, einschliesslich adversarialem Testing (Red Teaming).", + "applies_when": "gpai_systemic_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.is_gpai_provider", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.gpai_systemic_risk", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 55 Abs. 1 lit. a", "title": "Modellbewertung bei systemischem Risiko"} + ], + "sources": [ + {"type": "article", "ref": "Art. 55 Abs. 1 lit. a AI Act"} + ], + "category": "Audit", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "35 Mio. EUR oder 7% Jahresumsatz"}, + "evidence": [ + "Modellbewertungsbericht", + "Red-Teaming-Protokolle", + "Benchmark-Ergebnisse" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.SDLC.08", "TOM.SDLC.09"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-046", + "title": "GPAI systemisch: Systemische Risiken bewerten und mindern", + "description": "Bewertung und Minderung moeglicher systemischer Risiken auf EU-Ebene, einschliesslich Risiken fuer oeffentliche Gesundheit, Sicherheit, Grundrechte und Gesellschaft. Dokumentation der Risikomassnahmen.", + "applies_when": "gpai_systemic_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.is_gpai_provider", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.gpai_systemic_risk", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 55 Abs. 1 lit. b", "title": "Bewertung systemischer Risiken"} + ], + "sources": [ + {"type": "article", "ref": "Art. 55 Abs. 1 lit. b AI Act"} + ], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "35 Mio. EUR oder 7% Jahresumsatz"}, + "evidence": [ + "Systemische Risikobewertung", + "Minderungsmassnahmen-Plan", + "Impact-Assessment EU-Ebene" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.03", "TOM.GOV.12"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-047", + "title": "GPAI systemisch: Cybersicherheit gewaehrleisten", + "description": "Anbieter von GPAI-Modellen mit systemischem Risiko muessen ein angemessenes Niveau an Cybersicherheit fuer das Modell und die physische Infrastruktur gewaehrleisten.", + "applies_when": "gpai_systemic_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.is_gpai_provider", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.gpai_systemic_risk", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 55 Abs. 1 lit. d", "title": "Cybersicherheit GPAI"} + ], + "sources": [ + {"type": "article", "ref": "Art. 55 Abs. 1 lit. d AI Act"} + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "sanctions": {"max_fine": "35 Mio. EUR oder 7% Jahresumsatz"}, + "evidence": [ + "Cybersicherheits-Assessment", + "Penetrationstest-Bericht", + "Infrastruktur-Security-Audit" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.NET.02", "TOM.NET.03", "TOM.CRYPTO.02"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-048", + "title": "GPAI systemisch: Vorfaelle an AI Office melden", + "description": "Anbieter von GPAI-Modellen mit systemischem Risiko muessen schwerwiegende Vorfaelle und Korrekturmassnahmen unverzueglich dem EU AI Office und den zustaendigen nationalen Behoerden melden.", + "applies_when": "gpai_systemic_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.is_gpai_provider", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.gpai_systemic_risk", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 55 Abs. 1 lit. c", "title": "Vorfallmeldung GPAI"} + ], + "sources": [ + {"type": "article", "ref": "Art. 55 Abs. 1 lit. c AI Act"} + ], + "category": "Meldepflicht", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "35 Mio. EUR oder 7% Jahresumsatz"}, + "evidence": [ + "Incident-Response-Plan GPAI", + "Meldungen an AI Office", + "Korrekturmassnahmen-Dokumentation" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.BCP.02", "TOM.BCP.03"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-049", + "title": "AI Regulatory Sandbox Teilnahme", + "description": "Mitgliedstaaten richten KI-Reallabore (Regulatory Sandboxes) ein. Anbieter koennen in kontrollierter Umgebung innovative KI-Systeme testen. Teilnahme ist freiwillig, erfordert aber Einhaltung des Sandbox-Plans und Berichtspflichten.", + "applies_when": "uses_ai", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.uses_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 57", "title": "KI-Reallabore (Regulatory Sandboxes)"} + ], + "sources": [ + {"type": "article", "ref": "Art. 57 AI Act"} + ], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "7,5 Mio. EUR oder 1% Jahresumsatz"}, + "evidence": [ + "Sandbox-Antrag (falls zutreffend)", + "Sandbox-Plan", + "Abschlussberichte" + ], + "priority": "niedrig", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-050", + "title": "Post-Market-Monitoring einrichten", + "description": "Anbieter von Hochrisiko-KI muessen ein Post-Market-Monitoring-System einrichten, das systematisch und proaktiv relevante Daten ueber die Leistung des KI-Systems waehrend seiner gesamten Lebensdauer sammelt und analysiert.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 72", "title": "Post-Market-Monitoring durch Anbieter"} + ], + "sources": [ + {"type": "article", "ref": "Art. 72 AI Act"} + ], + "category": "Technisch", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Post-Market-Monitoring-Plan", + "Monitoring-Berichte", + "Feedback-Erfassungssystem" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.OPS.09", "TOM.OPS.10"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-051", + "title": "Schwerwiegende Vorfaelle melden", + "description": "Anbieter und Betreiber von Hochrisiko-KI muessen schwerwiegende Vorfaelle unverzueglich der Marktaufsichtsbehoerde melden: Tod, schwere Gesundheitsschaeden, schwerwiegende Grundrechtsverletzungen, schwere Schaeden an Eigentum, Umwelt oder kritischer Infrastruktur.", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 73", "title": "Meldung schwerwiegender Vorfaelle"} + ], + "sources": [ + {"type": "article", "ref": "Art. 73 AI Act"} + ], + "category": "Meldepflicht", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Incident-Response-Plan", + "Meldeprozess dokumentiert", + "Behoerden-Kontaktliste", + "Meldeformulare vorbereitet" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.BCP.01", "TOM.BCP.02", "TOM.BCP.04"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-052", + "title": "Vertraulichkeit wahren", + "description": "Alle am AI-Act-Verfahren beteiligten Parteien muessen die Vertraulichkeit von Informationen und Daten wahren, die sie bei der Ausuebung ihrer Aufgaben erhalten. Geschaeftsgeheimnisse und vertrauliche Geschaeftsinformationen sind zu schuetzen.", + "applies_when": "uses_ai", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.uses_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 78", "title": "Vertraulichkeit"} + ], + "sources": [ + {"type": "article", "ref": "Art. 78 AI Act"} + ], + "category": "Organisatorisch", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "7,5 Mio. EUR oder 1% Jahresumsatz"}, + "evidence": [ + "Vertraulichkeitsvereinbarungen (NDA)", + "Informationsklassifizierung", + "Zugriffskontrollen fuer KI-Dokumentation" + ], + "priority": "mittel", + "tom_control_ids": ["TOM.AC.01", "TOM.IAM.01", "TOM.CRYPTO.03"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-053", + "title": "Uebergangsfristen einhalten", + "description": "Einhaltung der gestaffelten Uebergangsfristen: Verbotene Praktiken ab 02.02.2025, KI-Kompetenz ab 02.02.2025, GPAI ab 02.08.2025, Hochrisiko-KI ab 02.08.2026, bestimmte Annex-III-Systeme ab 02.08.2027.", + "applies_when": "uses_ai", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.uses_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 99", "title": "Inkrafttreten und Geltungsbeginn"} + ], + "sources": [ + {"type": "article", "ref": "Art. 99 AI Act"} + ], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Umsetzungs-Roadmap", + "Meilensteinplan AI Act", + "Compliance-Fortschrittsbericht" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.02"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-054", + "title": "Harmonisierte Normen anwenden", + "description": "Hochrisiko-KI-Systeme, die harmonisierte Normen (Anhang I) oder gemeinsame Spezifikationen anwenden, profitieren von der Konformitaetsvermutung. Anbieter sollten einschlaegige harmonisierte Normen identifizieren und anwenden.", + "applies_when": "high_risk_provider", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.is_ai_provider", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Art. 40", "title": "Harmonisierte Normen"}, + {"norm": "AI Act", "article": "Anhang I", "title": "Harmonisierte Rechtsvorschriften der Union"} + ], + "sources": [ + {"type": "article", "ref": "Art. 40 AI Act"}, + {"type": "article", "ref": "Anhang I AI Act"} + ], + "category": "Compliance", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Normen-Anwendungsbericht", + "Gap-Analyse harmonisierte Normen", + "Konformitaetsvermutungs-Dokumentation" + ], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.04", "TOM.GOV.14"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-055", + "title": "Hochrisiko-KI in Biometrie", + "description": "KI-Systeme zur biometrischen Fernidentifizierung, biometrischen Kategorisierung und Emotionserkennung unterliegen als Annex-III-Kategorie 1 den strengsten Hochrisiko-Anforderungen. Konformitaetsbewertung durch notifizierte Stelle erforderlich.", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.uses_biometric_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Anhang III Nr. 1", "title": "Biometrie und biometriebasierte Systeme"} + ], + "sources": [ + {"type": "article", "ref": "Anhang III Nr. 1 AI Act"} + ], + "category": "Compliance", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Biometrie-Einsatz-Dokumentation", + "Notifizierte-Stelle-Zertifikat", + "Datenschutz-Folgenabschaetzung Biometrie" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.08", "TOM.DATA.11", "TOM.IAM.02"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-056", + "title": "Hochrisiko-KI in kritischer Infrastruktur", + "description": "KI-Systeme als Sicherheitskomponente in kritischer Infrastruktur (Verkehr, Wasser, Gas, Strom, Heizung) sind Hochrisiko nach Annex III Nr. 2. Erhoehte Anforderungen an Robustheit und Zuverlaessigkeit.", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.ai_in_critical_infrastructure", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Anhang III Nr. 2", "title": "Kritische Infrastruktur"} + ], + "sources": [ + {"type": "article", "ref": "Anhang III Nr. 2 AI Act"} + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Kritische-Infrastruktur-Assessment", + "Redundanz-Nachweis", + "Ausfallsicherheits-Tests" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.BCP.05", "TOM.BCP.06", "TOM.NET.04"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-057", + "title": "Hochrisiko-KI in Bildung und Berufsausbildung", + "description": "KI-Systeme zur Bestimmung des Zugangs zu Bildung, Bewertung von Lernenden, Pruefungsauswertung und Ueberwachung von Pruefungen sind Hochrisiko nach Annex III Nr. 3. Besonderer Schutz fuer Minderjaehrige.", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.ai_in_education", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Anhang III Nr. 3", "title": "Allgemeine und berufliche Bildung"} + ], + "sources": [ + {"type": "article", "ref": "Anhang III Nr. 3 AI Act"} + ], + "category": "Compliance", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Bildungs-KI-Einsatzkonzept", + "Minderjaehrigenschutz-Nachweis", + "Fairness-Analyse Bildungszugang" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.08", "TOM.DATA.12", "TOM.HR.04"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-058", + "title": "Hochrisiko-KI in Beschaeftigung", + "description": "KI-Systeme fuer Personaleinstellung, Befoerderungsentscheidungen, Kuendigung, Aufgabenzuweisung und Ueberwachung von Arbeitnehmern sind Hochrisiko nach Annex III Nr. 4. Diskriminierungsfreiheit muss nachgewiesen werden.", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.ai_in_employment", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Anhang III Nr. 4", "title": "Beschaeftigung, Personalmanagement"} + ], + "sources": [ + {"type": "article", "ref": "Anhang III Nr. 4 AI Act"} + ], + "category": "Compliance", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Beschaeftigungs-KI-Assessment", + "Diskriminierungsfreiheits-Analyse", + "Betriebsrats-Beteiligung dokumentiert" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.08", "TOM.HR.05", "TOM.DATA.13"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-059", + "title": "Hochrisiko-KI in Strafverfolgung", + "description": "KI-Systeme in der Strafverfolgung (Risikobewertung, Luegendetektion, Beweismittelbewertung, Rueckfallprognose) sind Hochrisiko nach Annex III Nr. 6. Strenge Grundrechts-Pruefung erforderlich.", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.ai_in_law_enforcement", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Anhang III Nr. 6", "title": "Strafverfolgung"} + ], + "sources": [ + {"type": "article", "ref": "Anhang III Nr. 6 AI Act"} + ], + "category": "Compliance", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Grundrechts-Pruefung Strafverfolgung", + "Verhältnismaessigkeits-Analyse", + "Datenschutz-Richtlinie-Konformitaet" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.08", "TOM.GOV.09", "TOM.AC.02"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "AIACT-OBL-060", + "title": "Hochrisiko-KI in Justiz und Demokratie", + "description": "KI-Systeme zur Unterstuetzung von Justizbehoerden bei Rechtsauslegung und Rechtsanwendung sind Hochrisiko nach Annex III Nr. 8. Menschliche Aufsicht und Transparenz sind besonders wichtig fuer das Vertrauen in die Justiz.", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + {"field": "ai_usage.high_risk_ai", "operator": "EQUALS", "value": true}, + {"field": "ai_usage.ai_in_justice", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "AI Act", "article": "Anhang III Nr. 8", "title": "Rechtspflege und demokratische Prozesse"} + ], + "sources": [ + {"type": "article", "ref": "Anhang III Nr. 8 AI Act"} + ], + "category": "Compliance", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "15 Mio. EUR oder 3% Jahresumsatz"}, + "evidence": [ + "Justiz-KI-Einsatzkonzept", + "Human-Oversight-Nachweis", + "Transparenzbericht Justiz-KI" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.07", "TOM.GOV.08", "TOM.GOV.10"], + "valid_from": "2024-08-01", + "valid_until": null, + "version": "1.0" + } + ], + "controls": [ + { + "id": "AIACT-CTRL-001", + "name": "KI-Inventar", + "description": "Fuehrung eines vollstaendigen Inventars aller KI-Systeme", + "category": "Governance", + "what_to_do": "Erfassung aller KI-Systeme mit Risikoeinstufung, Zweck, Anbieter, Betreiber", + "iso27001_mapping": ["A.8.1"], + "priority": "kritisch" + }, + { + "id": "AIACT-CTRL-002", + "name": "KI-Governance-Struktur", + "description": "Etablierung einer KI-Governance mit klaren Verantwortlichkeiten", + "category": "Governance", + "what_to_do": "Benennung eines KI-Verantwortlichen, Einrichtung eines KI-Boards", + "priority": "hoch" + }, + { + "id": "AIACT-CTRL-003", + "name": "Bias-Testing und Fairness", + "description": "Regelmaessige Pruefung auf Verzerrungen und Diskriminierung", + "category": "Technisch", + "what_to_do": "Implementierung von Bias-Detection, Fairness-Metriken, Datensatz-Audits", + "priority": "hoch" + }, + { + "id": "AIACT-CTRL-004", + "name": "Model Monitoring", + "description": "Kontinuierliche Ueberwachung der KI-Modellleistung", + "category": "Technisch", + "what_to_do": "Drift-Detection, Performance-Monitoring, Anomalie-Erkennung", + "priority": "hoch" + }, + { + "id": "AIACT-CTRL-005", + "name": "KI-Risikobewertungs-Prozess", + "description": "Etablierung eines strukturierten Prozesses zur Risikobewertung", + "category": "Governance", + "what_to_do": "Pre-Deployment Assessment, regelmaessige Re-Evaluation, Eskalationsprozess", + "priority": "kritisch" + }, + { + "id": "AIACT-CTRL-006", + "name": "Explainability-Framework", + "description": "Implementierung von Erklaerbarkeit fuer KI-Entscheidungen", + "category": "Technisch", + "what_to_do": "SHAP/LIME Integration, Entscheidungsprotokollierung, Nutzererklaerungen", + "priority": "mittel" + } + ], + "incident_deadlines": [ + { + "phase": "Schwerwiegender Vorfall melden", + "deadline": "unverzueglich", + "content": "Meldung schwerwiegender Vorfaelle bei Hochrisiko-KI-Systemen: Tod oder schwere Gesundheitsschaeden, schwerwiegende Grundrechtsverletzungen, schwere Schaeden an Eigentum oder Umwelt.", + "recipient": "Zustaendige Marktaufsichtsbehoerde", + "legal_basis": [ + {"norm": "Art. 73 AI Act"} + ] + }, + { + "phase": "Fehlfunktion melden (Anbieter)", + "deadline": "15 Tage", + "content": "Anbieter von Hochrisiko-KI melden Fehlfunktionen, die einen schwerwiegenden Vorfall darstellen koennten.", + "recipient": "Marktaufsichtsbehoerde des Herkunftslandes", + "legal_basis": [ + {"norm": "Art. 73 Abs. 1 AI Act"} + ] + } + ] +} \ No newline at end of file diff --git a/ai-compliance-sdk/policies/obligations/v2/bdsg_v2.json b/ai-compliance-sdk/policies/obligations/v2/bdsg_v2.json new file mode 100644 index 0000000..296e837 --- /dev/null +++ b/ai-compliance-sdk/policies/obligations/v2/bdsg_v2.json @@ -0,0 +1,668 @@ +{ + "regulation": "bdsg", + "regulation_full_name": "Bundesdatenschutzgesetz (BDSG)", + "version": "1.0", + "obligations": [ + { + "id": "BDSG-OBL-001", + "title": "Videoueberwachung oeffentlicher Raeume", + "description": "Videoueberwachung oeffentlich zugaenglicher Raeume ist nur zulaessig, wenn sie zur Aufgabenerfuellung oeffentlicher Stellen, zur Wahrnehmung des Hausrechts oder zur Wahrnehmung berechtigter Interessen erforderlich ist.", + "applies_when": "organization uses video surveillance in public areas", + "applies_when_condition": { "all_of": [{ "field": "data_protection.video_surveillance", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 4 Abs. 1", "title": "Videoueberwachung oeffentlich zugaenglicher Raeume" }], + "sources": [{ "type": "national_law", "ref": "§ 4 BDSG" }], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "on_event", "event": "Vor Inbetriebnahme der Videoueberwachung" }, + "sanctions": { "max_fine": "50.000 EUR (§ 43 BDSG a.F.) bzw. DSGVO-Bussgeld" }, + "evidence": [{ "name": "Videoueberwachungskonzept", "required": true }, "Beschilderung/Hinweisschilder"], + "priority": "hoch", + "tom_control_ids": ["TOM.PHY.01", "TOM.GOV.03"], + "breakpilot_feature": "/sdk/tom", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-002", + "title": "Kennzeichnungspflicht Videoueberwachung", + "description": "Der Umstand der Beobachtung und der Verantwortliche sind durch geeignete Massnahmen zum fruehestmoeglichen Zeitpunkt erkennbar zu machen.", + "applies_when": "organization uses video surveillance", + "applies_when_condition": { "all_of": [{ "field": "data_protection.video_surveillance", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 4 Abs. 2", "title": "Kennzeichnungspflicht bei Videoueberwachung" }], + "sources": [{ "type": "national_law", "ref": "§ 4 Abs. 2 BDSG" }], + "category": "Organisatorisch", + "responsible": "Verantwortlicher", + "deadline": { "type": "on_event", "event": "Vor Inbetriebnahme" }, + "sanctions": { "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" }, + "evidence": [{ "name": "Fotodokumentation Beschilderung", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.PHY.01"], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-003", + "title": "Loeschpflicht Videomaterial", + "description": "Videoaufzeichnungen sind unverzueglich zu loeschen, wenn sie zur Erreichung des Zwecks nicht mehr erforderlich sind oder schutzwuerdige Interessen der Betroffenen entgegenstehen.", + "applies_when": "organization stores video surveillance recordings", + "applies_when_condition": { "all_of": [{ "field": "data_protection.video_surveillance", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 4 Abs. 5", "title": "Loeschung von Videomaterial" }], + "sources": [{ "type": "national_law", "ref": "§ 4 Abs. 5 BDSG" }], + "category": "Technisch", + "responsible": "IT-Sicherheitsbeauftragter", + "deadline": { "type": "relative", "duration": "P72H" }, + "sanctions": { "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" }, + "evidence": [{ "name": "Loeschkonzept Videodaten", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.PHY.01", "TOM.DEL.01"], + "breakpilot_feature": "/sdk/loeschfristen", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-004", + "title": "Verarbeitung besonderer Kategorien — Angemessene Massnahmen", + "description": "Bei Verarbeitung besonderer Kategorien personenbezogener Daten sind angemessene und spezifische Massnahmen zur Wahrung der Interessen der betroffenen Person vorzusehen.", + "applies_when": "organization processes special category data", + "applies_when_condition": { "all_of": [{ "field": "data_protection.special_categories", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 22 Abs. 1", "title": "Verarbeitung besonderer Kategorien personenbezogener Daten" }], + "sources": [{ "type": "national_law", "ref": "§ 22 BDSG" }], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" }, + "evidence": [{ "name": "Schutzkonzept besondere Datenkategorien", "required": true }, "DSFA"], + "priority": "kritisch", + "tom_control_ids": ["TOM.AC.01", "TOM.CRY.01", "TOM.GOV.04"], + "breakpilot_feature": "/sdk/dsfa", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-005", + "title": "Massnahmenkatalog § 22 Abs. 2", + "description": "Der Verantwortliche hat technische und organisatorische Massnahmen nach § 22 Abs. 2 BDSG umzusetzen, darunter Pseudonymisierung, Verschluesselung, Zugriffskontrolle und Sensibilisierung.", + "applies_when": "organization processes special category data under BDSG", + "applies_when_condition": { "all_of": [{ "field": "data_protection.special_categories", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 22 Abs. 2", "title": "Spezifische Massnahmen" }], + "sources": [{ "type": "national_law", "ref": "§ 22 Abs. 2 BDSG" }], + "category": "Technisch", + "responsible": "IT-Sicherheitsbeauftragter", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" }, + "evidence": [{ "name": "TOM-Dokumentation § 22", "required": true }, "Pseudonymisierungskonzept"], + "priority": "kritisch", + "tom_control_ids": ["TOM.CRY.01", "TOM.CRY.02", "TOM.AC.01"], + "breakpilot_feature": "/sdk/tom", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-006", + "title": "Datenverarbeitung fuer Zwecke des Beschaeftigungsverhaeltnisses", + "description": "Personenbezogene Daten von Beschaeftigten duerfen nur verarbeitet werden, wenn dies fuer die Begruendung, Durchfuehrung oder Beendigung des Beschaeftigungsverhaeltnisses erforderlich ist.", + "applies_when": "organization processes employee data", + "applies_when_condition": { "all_of": [{ "field": "organization.has_employees", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 26 Abs. 1", "title": "Datenverarbeitung fuer Zwecke des Beschaeftigungsverhaeltnisses" }], + "sources": [{ "type": "national_law", "ref": "§ 26 BDSG" }, { "type": "case_law", "ref": "BAG Urt. v. 29.06.2023 – 2 AZR 296/22" }], + "category": "Governance", + "responsible": "Personalleitung", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" }, + "evidence": [{ "name": "Beschaeftigtendatenschutzkonzept", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.HR.01", "TOM.GOV.01"], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-007", + "title": "Einwilligung im Beschaeftigungsverhaeltnis", + "description": "Einwilligungen von Beschaeftigten sind nur wirksam, wenn sie auf Freiwilligkeit beruhen. Die Freiwilligkeit ist besonders zu dokumentieren und zu pruefen.", + "applies_when": "organization collects consent from employees", + "applies_when_condition": { "all_of": [{ "field": "organization.has_employees", "operator": "EQUALS", "value": true }, { "field": "data_protection.employee_consent", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 26 Abs. 2", "title": "Einwilligung Beschaeftigte" }], + "sources": [{ "type": "national_law", "ref": "§ 26 Abs. 2 BDSG" }], + "category": "Organisatorisch", + "responsible": "Personalleitung", + "deadline": { "type": "on_event", "event": "Vor Datenerhebung" }, + "sanctions": { "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" }, + "evidence": [{ "name": "Einwilligungsformulare Beschaeftigte", "required": true }, "Freiwilligkeitsnachweis"], + "priority": "hoch", + "tom_control_ids": ["TOM.HR.01", "TOM.HR.02"], + "breakpilot_feature": "/sdk/consent", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-008", + "title": "Kollektivvereinbarungen Beschaeftigtendatenschutz", + "description": "Verarbeitung von Beschaeftigtendaten kann auf Grundlage von Kollektivvereinbarungen (Betriebsvereinbarung, Tarifvertrag) erfolgen, sofern diese Art. 88 Abs. 2 DSGVO genuegen.", + "applies_when": "organization has collective agreements for data processing", + "applies_when_condition": { "all_of": [{ "field": "organization.has_employees", "operator": "EQUALS", "value": true }, { "field": "organization.has_works_council", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 26 Abs. 4", "title": "Kollektivvereinbarungen" }], + "sources": [{ "type": "national_law", "ref": "§ 26 Abs. 4 BDSG" }], + "category": "Governance", + "responsible": "Personalleitung", + "deadline": { "type": "recurring", "interval": "jaehrlich" }, + "sanctions": { "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" }, + "evidence": [{ "name": "Betriebsvereinbarung Datenschutz", "required": true }], + "priority": "mittel", + "tom_control_ids": ["TOM.HR.01", "TOM.GOV.01"], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-009", + "title": "Aufbewahrung Beschaeftigtendaten nach Verhaeltnisende", + "description": "Personenbezogene Daten von Beschaeftigten sind nach Beendigung des Beschaeftigungsverhaeltnisses zu loeschen, soweit keine gesetzlichen Aufbewahrungspflichten bestehen.", + "applies_when": "organization stores former employee data", + "applies_when_condition": { "all_of": [{ "field": "organization.has_employees", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 26 Abs. 1", "title": "Zweckbindung Beschaeftigtendaten" }, { "norm": "DSGVO", "article": "Art. 17", "title": "Recht auf Loeschung" }], + "sources": [{ "type": "national_law", "ref": "§ 26 BDSG" }], + "category": "Organisatorisch", + "responsible": "Personalleitung", + "deadline": { "type": "on_event", "event": "Beendigung Beschaeftigungsverhaeltnis" }, + "sanctions": { "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" }, + "evidence": [{ "name": "Loeschkonzept Personalakten", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.HR.01", "TOM.DEL.01"], + "breakpilot_feature": "/sdk/loeschfristen", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-010", + "title": "Informationspflicht gegenueber Betroffenen", + "description": "Die betroffene Person ist ueber die Verarbeitung ihrer Daten gemaess §§ 32-33 BDSG zu informieren, sofern keine Ausnahmen nach § 29 greifen.", + "applies_when": "always", + "applies_when_condition": { "all_of": [{ "field": "data_protection.processes_personal_data", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 29", "title": "Rechte der betroffenen Person und aufsichtsbehoerdliche Befugnisse" }], + "sources": [{ "type": "national_law", "ref": "§ 29 BDSG" }], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "on_event", "event": "Bei Datenerhebung" }, + "sanctions": { "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" }, + "evidence": [{ "name": "Datenschutzerklaerung", "required": true }, "Informationsblaetter"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.02"], + "breakpilot_feature": "/sdk/dsr", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-011", + "title": "Ausnahmen von Betroffenenrechten dokumentieren", + "description": "Einschraenkungen der Betroffenenrechte nach § 29 BDSG (z.B. bei oeffentlichem Interesse, Strafverfolgung) muessen dokumentiert und begruendet werden.", + "applies_when": "organization restricts data subject rights under BDSG § 29", + "applies_when_condition": { "all_of": [{ "field": "data_protection.restricts_data_subject_rights", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 29 Abs. 1", "title": "Beschraenkung Betroffenenrechte" }], + "sources": [{ "type": "national_law", "ref": "§ 29 BDSG" }], + "category": "Dokumentation", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "on_event", "event": "Bei Einschraenkung der Rechte" }, + "sanctions": { "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" }, + "evidence": [{ "name": "Dokumentation Rechteeinschraenkung", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.02", "TOM.GOV.03"], + "breakpilot_feature": "/sdk/dsr", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-012", + "title": "Recht auf Loeschung — BDSG-Einschraenkungen", + "description": "Das Recht auf Loeschung kann nach § 35 BDSG eingeschraenkt sein, wenn die Loeschung wegen der besonderen Art der Speicherung nicht oder nur mit unverhaeltnismaessigem Aufwand moeglich ist.", + "applies_when": "organization processes data where deletion is disproportionate", + "applies_when_condition": { "all_of": [{ "field": "data_protection.complex_storage", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 35 Abs. 1", "title": "Recht auf Loeschung" }], + "sources": [{ "type": "national_law", "ref": "§ 35 BDSG" }], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { "type": "on_event", "event": "Bei Loeschantrag" }, + "sanctions": { "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" }, + "evidence": [{ "name": "Nachweis unverhaeltnismaessiger Aufwand", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.DEL.01"], + "breakpilot_feature": "/sdk/loeschfristen", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-013", + "title": "Verarbeitungseinschraenkung statt Loeschung", + "description": "Wenn die Loeschung nicht moeglich ist, tritt an die Stelle der Loeschung die Einschraenkung der Verarbeitung gemaess § 35 Abs. 1 BDSG.", + "applies_when": "organization cannot delete data due to storage constraints", + "applies_when_condition": { "all_of": [{ "field": "data_protection.complex_storage", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 35 Abs. 1 S. 2", "title": "Verarbeitungseinschraenkung" }], + "sources": [{ "type": "national_law", "ref": "§ 35 BDSG" }], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { "type": "on_event", "event": "Bei Loeschantrag" }, + "sanctions": { "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" }, + "evidence": [{ "name": "Sperrkonzept/Einschraenkungskonzept", "required": true }], + "priority": "mittel", + "tom_control_ids": ["TOM.DEL.01", "TOM.AC.02"], + "breakpilot_feature": "/sdk/loeschfristen", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-014", + "title": "Benennung Datenschutzbeauftragter", + "description": "Der Verantwortliche hat einen Datenschutzbeauftragten zu benennen, wenn mindestens 20 Personen staendig mit der automatisierten Verarbeitung personenbezogener Daten beschaeftigt sind.", + "applies_when": "organization has 20+ employees processing personal data", + "applies_when_condition": { "any_of": [{ "field": "organization.employees_processing_data", "operator": "GREATER_OR_EQUAL", "value": 20 }, { "field": "data_protection.special_categories", "operator": "EQUALS", "value": true }, { "field": "data_protection.core_activity_monitoring", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 38 Abs. 1", "title": "Datenschutzbeauftragte nichtoeffentlicher Stellen" }], + "sources": [{ "type": "national_law", "ref": "§ 38 BDSG" }, { "type": "dsk_kurzpapier", "ref": "DSK KP Nr. 12" }], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "deadline": { "type": "on_event", "event": "Unverzueglich bei Erreichen der Schwelle" }, + "sanctions": { "max_fine": "10 Mio. EUR oder 2% Jahresumsatz", "personal_liability": true }, + "evidence": [{ "name": "Benennungsurkunde DSB", "required": true }, { "name": "Meldung an Aufsichtsbehoerde", "required": true }], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.05"], + "breakpilot_feature": "/sdk/dsb-portal", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-015", + "title": "Kuendigungsschutz DSB", + "description": "Der Datenschutzbeauftragte darf wegen der Erfuellung seiner Aufgaben nicht abberufen oder benachteiligt werden. Ein besonderer Kuendigungsschutz gilt nach § 38 Abs. 2 i.V.m. § 6 Abs. 4 BDSG.", + "applies_when": "organization has appointed a DPO", + "applies_when_condition": { "all_of": [{ "field": "organization.has_dpo", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 38 Abs. 2", "title": "Kuendigungsschutz DSB" }, { "norm": "BDSG", "article": "§ 6 Abs. 4", "title": "Stellung des DSB" }], + "sources": [{ "type": "national_law", "ref": "§ 38 Abs. 2 BDSG" }], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "10 Mio. EUR oder 2% Jahresumsatz", "personal_liability": true }, + "evidence": [{ "name": "Arbeitsvertrag/Bestellungsurkunde DSB", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.05"], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-016", + "title": "Geheimhaltungspflicht DSB", + "description": "Der Datenschutzbeauftragte ist zur Geheimhaltung ueber die Identitaet betroffener Personen und Umstaende verpflichtet, die Rueckschluesse auf diese zulassen (§ 38 Abs. 2 i.V.m. § 6 Abs. 5 BDSG).", + "applies_when": "organization has appointed a DPO", + "applies_when_condition": { "all_of": [{ "field": "organization.has_dpo", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 6 Abs. 5", "title": "Geheimhaltungspflicht DSB" }], + "sources": [{ "type": "national_law", "ref": "§ 6 Abs. 5 BDSG" }], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "personal_liability": true, "criminal_liability": true }, + "evidence": [{ "name": "Verschwiegenheitserklaerung DSB", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.05"], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-017", + "title": "Zustaendigkeit der Aufsichtsbehoerden", + "description": "Die Aufsichtsbehoerden ueberwachen die Einhaltung des BDSG und der DSGVO. Der Verantwortliche muss mit der zustaendigen Aufsichtsbehoerde kooperieren (§§ 40-41 BDSG).", + "applies_when": "always", + "applies_when_condition": { "all_of": [{ "field": "data_protection.processes_personal_data", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 40", "title": "Aufsichtsbehoerden der Laender" }], + "sources": [{ "type": "national_law", "ref": "§ 40 BDSG" }], + "category": "Compliance", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" }, + "evidence": [{ "name": "Dokumentierte Aufsichtsbehoerdenkontakte", "required": false }], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.01"], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-018", + "title": "Anwendung der Bussgeldvorschriften", + "description": "Ordnungswidrig handelt, wer gegen Vorschriften des BDSG verstoesst. Die Aufsichtsbehoerden koennen Bussgelder verhaengen (§ 43 BDSG ergaenzend zu Art. 83 DSGVO).", + "applies_when": "always", + "applies_when_condition": { "all_of": [{ "field": "data_protection.processes_personal_data", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 43", "title": "Bussgeldvorschriften" }], + "sources": [{ "type": "national_law", "ref": "§ 43 BDSG" }], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "50.000 EUR (national) bzw. 20 Mio. EUR (DSGVO)", "personal_liability": true }, + "evidence": [{ "name": "Compliance-Management-System", "required": true }], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.02"], + "breakpilot_feature": "/sdk/risk-assessment", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-019", + "title": "Verarbeitung fuer Forschungszwecke", + "description": "Bei Verarbeitung personenbezogener Daten fuer wissenschaftliche oder historische Forschungszwecke gelten die Sonderregelungen des § 27 BDSG einschliesslich Pseudonymisierung.", + "applies_when": "organization processes data for research purposes", + "applies_when_condition": { "all_of": [{ "field": "data_protection.research_processing", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 27", "title": "Datenverarbeitung zu Forschungszwecken" }], + "sources": [{ "type": "national_law", "ref": "§ 27 BDSG" }], + "category": "Governance", + "responsible": "Forschungsleitung", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" }, + "evidence": [{ "name": "Forschungsdatenschutzkonzept", "required": true }, "Pseudonymisierungsnachweis"], + "priority": "mittel", + "tom_control_ids": ["TOM.CRY.02", "TOM.GOV.04"], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-020", + "title": "Verarbeitung fuer statistische Zwecke", + "description": "Bei Verarbeitung fuer statistische Zwecke sind die besonderen Anforderungen des § 27 Abs. 1 BDSG zu beachten, insbesondere Pseudonymisierung und Anonymisierung.", + "applies_when": "organization processes data for statistical purposes", + "applies_when_condition": { "all_of": [{ "field": "data_protection.statistical_processing", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 27 Abs. 1", "title": "Statistische Zwecke" }], + "sources": [{ "type": "national_law", "ref": "§ 27 BDSG" }], + "category": "Technisch", + "responsible": "Datenanalyst", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" }, + "evidence": [{ "name": "Anonymisierungskonzept", "required": true }], + "priority": "mittel", + "tom_control_ids": ["TOM.CRY.02"], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-021", + "title": "Verarbeitung durch Polizei/Strafverfolgung — Rechtsgrundlage", + "description": "Personenbezogene Daten duerfen von Polizei und Strafverfolgungsbehoerden nur verarbeitet werden, wenn dies fuer die Erfuellung ihrer Aufgaben erforderlich ist (§§ 46 ff. BDSG).", + "applies_when": "organization is law enforcement or cooperates with law enforcement", + "applies_when_condition": { "all_of": [{ "field": "organization.sector", "operator": "IN", "value": ["law_enforcement", "public_authority"] }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 46", "title": "Begriffsbestimmungen Strafverfolgung" }, { "norm": "BDSG", "article": "§ 47", "title": "Allgemeine Grundsaetze" }], + "sources": [{ "type": "national_law", "ref": "§§ 46-47 BDSG" }], + "category": "Governance", + "responsible": "Behoerdenleitung", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "Disziplinarmassnahmen", "personal_liability": true }, + "evidence": [{ "name": "Verarbeitungskonzept Strafverfolgung", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.AC.01"], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-022", + "title": "Protokollierungspflicht bei Strafverfolgung", + "description": "Zugriffe und Uebermittlungen personenbezogener Daten zu Strafverfolgungszwecken sind zu protokollieren (§ 51 BDSG).", + "applies_when": "organization processes data for law enforcement purposes", + "applies_when_condition": { "all_of": [{ "field": "organization.sector", "operator": "IN", "value": ["law_enforcement", "public_authority"] }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 51", "title": "Verarbeitungssicherheit" }], + "sources": [{ "type": "national_law", "ref": "§ 51 BDSG" }], + "category": "Technisch", + "responsible": "IT-Sicherheitsbeauftragter", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "personal_liability": true }, + "evidence": [{ "name": "Protokollierungsrichtlinie", "required": true }, "Zugriffsprotokolle"], + "priority": "hoch", + "tom_control_ids": ["TOM.LOG.01", "TOM.AC.01"], + "breakpilot_feature": "/sdk/audit", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-023", + "title": "Betroffenenrechte bei Strafverfolgung", + "description": "Auch im Bereich der Strafverfolgung bestehen Auskunfts-, Berichtigungs- und Loeschungsrechte der Betroffenen nach §§ 53-54 BDSG, ggf. mit Einschraenkungen.", + "applies_when": "law enforcement data processing", + "applies_when_condition": { "all_of": [{ "field": "organization.sector", "operator": "IN", "value": ["law_enforcement", "public_authority"] }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 53", "title": "Auskunftsrecht" }, { "norm": "BDSG", "article": "§ 54", "title": "Berichtigung und Loeschung" }], + "sources": [{ "type": "national_law", "ref": "§§ 53-54 BDSG" }], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "relative", "duration": "P30D" }, + "sanctions": { "personal_liability": true }, + "evidence": [{ "name": "Betroffenenrechte-Prozess Strafverfolgung", "required": true }], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.02"], + "breakpilot_feature": "/sdk/dsr", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-024", + "title": "Datenuebermittlung an Drittstaaten — besondere Voraussetzungen", + "description": "Die Uebermittlung personenbezogener Daten an Drittstaaten durch Polizei-/Justizbehoerden ist nur bei Vorliegen eines Angemessenheitsbeschlusses oder geeigneter Garantien zulaessig (§§ 62 ff. BDSG).", + "applies_when": "law enforcement transfers data to third countries", + "applies_when_condition": { "all_of": [{ "field": "organization.sector", "operator": "IN", "value": ["law_enforcement", "public_authority"] }, { "field": "data_protection.third_country_transfer", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 62", "title": "Uebermittlung bei Angemessenheitsbeschluss" }], + "sources": [{ "type": "national_law", "ref": "§§ 62-66 BDSG" }], + "category": "Compliance", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "on_event", "event": "Vor jeder Drittstaatenuebermittlung" }, + "sanctions": { "personal_liability": true, "criminal_liability": true }, + "evidence": [{ "name": "Angemessenheitsbeschluss-Pruefung", "required": true }], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.03", "TOM.CRY.01"], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-025", + "title": "Datenuebermittlung ohne Angemessenheitsbeschluss", + "description": "Ohne Angemessenheitsbeschluss ist eine Uebermittlung an Drittstaaten nur bei geeigneten Garantien oder in Ausnahmefaellen nach § 63 BDSG zulaessig.", + "applies_when": "law enforcement transfers data to third country without adequacy decision", + "applies_when_condition": { "all_of": [{ "field": "organization.sector", "operator": "IN", "value": ["law_enforcement", "public_authority"] }, { "field": "data_protection.third_country_transfer", "operator": "EQUALS", "value": true }, { "field": "data_protection.adequacy_decision", "operator": "EQUALS", "value": false }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 63", "title": "Uebermittlung bei geeigneten Garantien" }], + "sources": [{ "type": "national_law", "ref": "§ 63 BDSG" }], + "category": "Compliance", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "on_event", "event": "Vor jeder Uebermittlung" }, + "sanctions": { "personal_liability": true, "criminal_liability": true }, + "evidence": [{ "name": "Geeignete Garantien dokumentiert", "required": true }], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.03"], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-026", + "title": "Strafvorschriften — unbefugte Datenverarbeitung", + "description": "Wer wissentlich nicht allgemein zugaengliche personenbezogene Daten unbefugt verarbeitet, wird mit Freiheitsstrafe bis zu drei Jahren oder Geldstrafe bestraft (§ 42 BDSG).", + "applies_when": "always", + "applies_when_condition": { "all_of": [{ "field": "data_protection.processes_personal_data", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 42", "title": "Strafvorschriften" }], + "sources": [{ "type": "national_law", "ref": "§ 42 BDSG" }], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "Freiheitsstrafe bis 3 Jahre oder Geldstrafe", "personal_liability": true, "criminal_liability": true }, + "evidence": [{ "name": "Datenschutzschulungsnachweis", "required": true }, "Zugriffsberechtigungskonzept"], + "priority": "kritisch", + "tom_control_ids": ["TOM.AC.01", "TOM.GOV.01"], + "breakpilot_feature": "/sdk/training", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-027", + "title": "Bussgeld bei Verstoessen gegen Auskunftspflicht", + "description": "Ordnungswidrig handelt, wer einer vollziehbaren Anordnung der Aufsichtsbehoerde nach § 43 Abs. 1 BDSG zuwiderhandelt. Bussgelder bis 50.000 EUR.", + "applies_when": "always", + "applies_when_condition": { "all_of": [{ "field": "data_protection.processes_personal_data", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 43 Abs. 1", "title": "Bussgeldvorschriften" }], + "sources": [{ "type": "national_law", "ref": "§ 43 BDSG" }], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "deadline": { "type": "on_event", "event": "Bei Anordnung der Aufsichtsbehoerde" }, + "sanctions": { "max_fine": "50.000 EUR" }, + "evidence": [{ "name": "Korrespondenz Aufsichtsbehoerde", "required": false }], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01"], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-028", + "title": "Akkreditierung Zertifizierungsstellen", + "description": "Zertifizierungsstellen nach Art. 43 DSGVO beduerfern der Akkreditierung durch die zustaendige Aufsichtsbehoerde oder die DAkkS (§ 39 BDSG).", + "applies_when": "organization is or uses a certification body", + "applies_when_condition": { "all_of": [{ "field": "organization.certification_body", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 39", "title": "Akkreditierung" }], + "sources": [{ "type": "national_law", "ref": "§ 39 BDSG" }], + "category": "Audit", + "responsible": "Geschaeftsfuehrung", + "deadline": { "type": "recurring", "interval": "5 Jahre" }, + "sanctions": { "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" }, + "evidence": [{ "name": "Akkreditierungsurkunde", "required": true }], + "priority": "niedrig", + "tom_control_ids": ["TOM.GOV.01"], + "breakpilot_feature": "/sdk/audit", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-029", + "title": "Geheimhaltungspflicht und Datengeheimnis", + "description": "Personen, die bei der Datenverarbeitung taetig sind, duerfen personenbezogene Daten nicht unbefugt verarbeiten. Sie sind auf das Datengeheimnis zu verpflichten (§ 53 BDSG analog).", + "applies_when": "always", + "applies_when_condition": { "all_of": [{ "field": "organization.has_employees", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 53", "title": "Datengeheimnis" }], + "sources": [{ "type": "national_law", "ref": "§ 53 BDSG" }], + "category": "Schulung", + "responsible": "Personalleitung", + "deadline": { "type": "on_event", "event": "Bei Arbeitsaufnahme" }, + "sanctions": { "personal_liability": true, "criminal_liability": true }, + "evidence": [{ "name": "Verpflichtungserklaerung Datengeheimnis", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.HR.02", "TOM.GOV.05"], + "breakpilot_feature": "/sdk/training", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BDSG-OBL-030", + "title": "Verarbeitung im Auftrag — Vertragspflicht", + "description": "Die Auftragsverarbeitung ist durch einen Vertrag nach Art. 28 DSGVO i.V.m. § 29 BDSG zu regeln. Der Auftraggeber muss die TOM des Auftragsverarbeiters ueberpruefen.", + "applies_when": "organization uses data processors", + "applies_when_condition": { "all_of": [{ "field": "data_protection.uses_processors", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BDSG", "article": "§ 29", "title": "Auftragsverarbeitung" }, { "norm": "DSGVO", "article": "Art. 28", "title": "Auftragsverarbeiter" }], + "sources": [{ "type": "national_law", "ref": "§ 29 BDSG" }, { "type": "article", "ref": "Art. 28 DSGVO" }], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "on_event", "event": "Vor Beginn der Auftragsverarbeitung" }, + "sanctions": { "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" }, + "evidence": [{ "name": "Auftragsverarbeitungsvertrag (AVV)", "required": true }, { "name": "TOM-Pruefbericht Auftragsverarbeiter", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.03", "TOM.VEN.01"], + "breakpilot_feature": "/sdk/vendor-compliance", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + } + ], + "controls": [ + { + "id": "BDSG-CTRL-001", + "name": "Videoueberwachungs-Compliance", + "description": "Kontrolle zur Sicherstellung der Einhaltung der Anforderungen an Videoueberwachung nach § 4 BDSG.", + "category": "Technisch", + "what_to_do": "Videoueberwachungskonzept erstellen, Beschilderung pruefen, Loeschfristen einhalten, DSFA durchfuehren.", + "iso27001_mapping": ["A.7.4"], + "priority": "hoch" + }, + { + "id": "BDSG-CTRL-002", + "name": "Beschaeftigtendatenschutz-Kontrolle", + "description": "Kontrolle zur Pruefung der Einhaltung des § 26 BDSG bei der Verarbeitung von Beschaeftigtendaten.", + "category": "Organisatorisch", + "what_to_do": "Beschaeftigtendatenschutzrichtlinie erstellen, Einwilligungen pruefen, Betriebsvereinbarungen aktualisieren.", + "iso27001_mapping": ["A.6.1", "A.6.2"], + "priority": "hoch" + }, + { + "id": "BDSG-CTRL-003", + "name": "DSB-Governance-Kontrolle", + "description": "Kontrolle zur Sicherstellung der ordnungsgemaessen Benennung und Unterstuetzung des Datenschutzbeauftragten.", + "category": "Governance", + "what_to_do": "DSB-Benennung pruefen, Ressourcen sicherstellen, Unabhaengigkeit gewaehrleisten, Schulung nachweisen.", + "iso27001_mapping": ["A.5.1"], + "priority": "kritisch" + }, + { + "id": "BDSG-CTRL-004", + "name": "Bussgeld-Praevention und Compliance-Monitoring", + "description": "Kontrolle zur Vermeidung von Bussgeldern und strafrechtlichen Konsequenzen durch proaktives Compliance-Monitoring.", + "category": "Compliance", + "what_to_do": "Regelmaessige Compliance-Audits durchfuehren, Schulungen sicherstellen, Aufsichtsbehoerden-Anfragen zeitnah bearbeiten.", + "iso27001_mapping": ["A.5.36"], + "priority": "kritisch" + } + ], + "incident_deadlines": [ + { + "phase": "Erstmeldung an Aufsichtsbehoerde", + "deadline": "72 Stunden (gemaess DSGVO Art. 33, konkretisiert durch BDSG)", + "content": "Art der Verletzung, betroffene Datenkategorien und Personen, wahrscheinliche Folgen, ergriffene Massnahmen", + "recipient": "Zustaendige Landesdatenschutzbehoerde", + "legal_basis": [{ "norm": "DSGVO", "article": "Art. 33" }, { "norm": "BDSG", "article": "§ 40" }] + }, + { + "phase": "Benachrichtigung Betroffener", + "deadline": "Unverzueglich bei hohem Risiko", + "content": "Art der Verletzung, Kontaktdaten DSB, wahrscheinliche Folgen, ergriffene Massnahmen", + "recipient": "Betroffene Personen", + "legal_basis": [{ "norm": "DSGVO", "article": "Art. 34" }] + }, + { + "phase": "Meldung Strafverfolgungsbehoerden", + "deadline": "Unverzueglich bei Verdacht auf Straftat nach § 42 BDSG", + "content": "Sachverhaltsbeschreibung, beteiligte Personen, betroffene Daten", + "recipient": "Staatsanwaltschaft", + "legal_basis": [{ "norm": "BDSG", "article": "§ 42" }] + } + ] +} \ No newline at end of file diff --git a/ai-compliance-sdk/policies/obligations/v2/data_act_v2.json b/ai-compliance-sdk/policies/obligations/v2/data_act_v2.json new file mode 100644 index 0000000..5efd270 --- /dev/null +++ b/ai-compliance-sdk/policies/obligations/v2/data_act_v2.json @@ -0,0 +1,535 @@ +{ + "regulation": "data_act", + "name": "Data Act (EU) 2023/2854", + "description": "Verordnung ueber harmonisierte Vorschriften fuer einen fairen Datenzugang und eine faire Datennutzung — Regelt den Zugang zu und die Nutzung von Daten, die durch vernetzte Produkte und verbundene Dienste erzeugt werden", + "version": "2.0", + "effective_date": "2025-09-12", + "obligations": [ + { + "id": "DATAACT-OBL-001", + "title": "Datenzugangsrecht fuer Nutzer — Design-Pflicht", + "description": "Vernetzte Produkte und verbundene Dienste muessen so konzipiert und hergestellt werden, dass die bei der Nutzung erzeugten Daten dem Nutzer standardmaessig leicht, sicher und unentgeltlich zugaenglich sind.", + "applies_when": "organization.manufactures_connected_products == true", + "applies_when_condition": {"field": "organization.manufactures_connected_products", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 3", "title": "Pflicht zur Zugaenglichmachung von Daten"}], + "sources": [{"type": "article", "ref": "Art. 3 Data Act"}], + "category": "Technisch", + "responsible": "Produktmanagement", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Design-Dokumentation Data-by-Design", "Technische Zugangsspezifikation"], + "priority": "kritisch", + "tom_control_ids": ["TOM.OPS.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-002", + "title": "Vorvertragliche Informationspflicht", + "description": "Vor Vertragsschluss muessen Nutzer klar und verstaendlich darueber informiert werden, welche Daten erzeugt werden, wie sie darauf zugreifen koennen und ob der Dateninhaber die Daten fuer eigene Zwecke nutzt.", + "applies_when": "organization.manufactures_connected_products == true", + "applies_when_condition": {"field": "organization.manufactures_connected_products", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 4", "title": "Vorvertragliche Informationspflichten"}], + "sources": [{"type": "article", "ref": "Art. 4 Data Act"}], + "category": "Dokumentation", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Produktinformationsblatt", "AGB mit Dateninformationen"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-003", + "title": "Recht auf Datenzugang des Nutzers", + "description": "Nutzer haben das Recht, auf die durch die Nutzung eines vernetzten Produkts erzeugten Daten unverzueglich, unentgeltlich und in einem umfassenden, strukturierten, gaengigen und maschinenlesbaren Format zuzugreifen.", + "applies_when": "organization.manufactures_connected_products == true", + "applies_when_condition": {"field": "organization.manufactures_connected_products", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 5", "title": "Recht auf Zugang zu Daten"}], + "sources": [{"type": "article", "ref": "Art. 5 Data Act"}], + "category": "Technisch", + "responsible": "CTO", + "deadline": {"type": "on_event", "event": "Anfrage des Nutzers"}, + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Datenzugangs-API", "Exportfunktion im Produkt", "Nachweis maschinenlesbares Format"], + "priority": "kritisch", + "tom_control_ids": ["TOM.OPS.01", "TOM.OPS.02"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-004", + "title": "Schutz von Geschaeftsgeheimnissen beim Datenzugang", + "description": "Dateninhaber duerfen den Datenzugang nur einschraenken, soweit dies zum Schutz von Geschaeftsgeheimnissen erforderlich ist. Massnahmen muessen verhaeltnismaessig sein und duerfen den Zugang nicht unzumutbar erschweren.", + "applies_when": "organization.manufactures_connected_products == true", + "applies_when_condition": {"field": "organization.manufactures_connected_products", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 5 Abs. 8", "title": "Schutz von Geschaeftsgeheimnissen"}], + "sources": [{"type": "article", "ref": "Art. 5 Abs. 8 Data Act"}], + "category": "Governance", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Geschaeftsgeheimnis-Schutzkonzept", "Verhaeltnismaessigkeitspruefung"], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-005", + "title": "Datenweitergabe an Dritte auf Wunsch des Nutzers", + "description": "Auf Antrag des Nutzers muessen Dateninhaber die erzeugten Daten an einen vom Nutzer benannten Dritten unverzueglich, unentgeltlich und in gleicher Qualitaet wie dem Nutzer bereitstellen.", + "applies_when": "organization.manufactures_connected_products == true", + "applies_when_condition": {"field": "organization.manufactures_connected_products", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 6", "title": "Pflicht zur Bereitstellung von Daten an Dritte"}], + "sources": [{"type": "article", "ref": "Art. 6 Data Act"}], + "category": "Technisch", + "responsible": "CTO", + "deadline": {"type": "on_event", "event": "Antrag des Nutzers auf Datenweitergabe"}, + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Datenweitergabe-Prozess", "Nutzerantragsformular", "Weitergabeprotokoll"], + "priority": "hoch", + "tom_control_ids": ["TOM.OPS.01", "TOM.OPS.02"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-006", + "title": "Pflichten des Datenempfaengers (Dritter)", + "description": "Datenempfaenger duerfen die erhaltenen Daten nur fuer die vereinbarten Zwecke nutzen. Sie duerfen die Daten nicht zur Entwicklung eines konkurrierenden Produkts verwenden und muessen sie nach Zweckerfuellung loeschen.", + "applies_when": "organization.receives_product_data == true", + "applies_when_condition": {"field": "organization.receives_product_data", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 7", "title": "Pflichten der Datenempfaenger"}], + "sources": [{"type": "article", "ref": "Art. 7 Data Act"}], + "category": "Compliance", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Zweckbindungsvereinbarung", "Loeschnachweis nach Zweckerfuellung"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-007", + "title": "Angemessene Verguetung fuer Datenweitergabe", + "description": "Bei Datenweitergabe an Dritte duerfen Dateninhaber eine angemessene Verguetung verlangen. Gegenueber KMU darf die Verguetung die Kosten der Bereitstellung nicht uebersteigen.", + "applies_when": "organization.manufactures_connected_products == true", + "applies_when_condition": {"field": "organization.manufactures_connected_products", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 8", "title": "Verguetung fuer die Bereitstellung von Daten"}], + "sources": [{"type": "article", "ref": "Art. 8 Data Act"}], + "category": "Governance", + "responsible": "Finanzabteilung", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Verguetungsmodell", "Kostenkalkulation", "KMU-Sondertarife"], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-008", + "title": "Faire Vertragsbedingungen fuer Datenzugang", + "description": "Vertragsbedingungen fuer den Datenzugang und die Datennutzung muessen fair, angemessen und nicht-diskriminierend sein. Einseitig benachteiligende Klauseln sind unwirksam.", + "applies_when": "organization.manufactures_connected_products == true", + "applies_when_condition": {"field": "organization.manufactures_connected_products", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 9", "title": "Missbr. Vertragsklauseln in Bezug auf Datenzugang und -nutzung"}], + "sources": [{"type": "article", "ref": "Art. 9 Data Act"}], + "category": "Governance", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Vertragspruefung auf Fairness", "AGB-Klauselkontrolle"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-009", + "title": "Unwirksamkeit missbraeuchlicher Vertragsklauseln", + "description": "Vertragsklauseln, die den Datenzugang oder die Datennutzung unangemessen einschraenken, sind nicht bindend. Die Beweislast fuer die Angemessenheit liegt beim Dateninhaber.", + "applies_when": "organization.manufactures_connected_products == true", + "applies_when_condition": {"field": "organization.manufactures_connected_products", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 10", "title": "Anwendung der Vorschriften fuer missbr. Vertragsklauseln"}], + "sources": [{"type": "article", "ref": "Art. 10 Data Act"}], + "category": "Compliance", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Klauselregister mit Fairness-Bewertung"], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-010", + "title": "Mustervertragsbedingungen beachten", + "description": "Die Kommission erstellt Mustervertragsbedingungen fuer faire Datenzugangsvereinbarungen. Dateninhaber sollten diese bei der Gestaltung ihrer Vertraege beruecksichtigen.", + "applies_when": "organization.manufactures_connected_products == true", + "applies_when_condition": {"field": "organization.manufactures_connected_products", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 12", "title": "Mustervertragsbedingungen"}], + "sources": [{"type": "article", "ref": "Art. 12 Data Act"}], + "category": "Dokumentation", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "Keine direkte Sanktion (empfohlen)", "personal_liability": false}, + "evidence": ["Verwendung von EU-Musterklauseln", "Dokumentation Abweichungen"], + "priority": "niedrig", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-011", + "title": "Wechsel von Cloud-Diensten — Vertragliche Mindestanforderungen", + "description": "Vertraege ueber Datenverarbeitungsdienste (Cloud, SaaS, IaaS, PaaS) muessen klare Bestimmungen zum Anbieterwechsel enthalten, einschliesslich Kuendigungsfristen, Datenexport und Uebergangsunterstuetzung.", + "applies_when": "organization.provides_cloud_services == true", + "applies_when_condition": {"field": "organization.provides_cloud_services", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 13", "title": "Vertragliche Rechte betreffend den Wechsel"}], + "sources": [{"type": "article", "ref": "Art. 13 Data Act"}], + "category": "Dokumentation", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Vertragliche Wechselklauseln", "Datenexport-SLA"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.OPS.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-012", + "title": "Technische Pflichten beim Cloud-Wechsel", + "description": "Cloud-Anbieter muessen technische Massnahmen bereitstellen, um den Wechsel zu erleichtern: Datenexport in strukturiertem Format, API-Zugang waehrend der Uebergangsphase und Loeschung nach Abschluss des Wechsels.", + "applies_when": "organization.provides_cloud_services == true", + "applies_when_condition": {"field": "organization.provides_cloud_services", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 14", "title": "Technische Aspekte des Wechsels"}], + "sources": [{"type": "article", "ref": "Art. 14 Data Act"}], + "category": "Technisch", + "responsible": "CTO", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Datenexport-API-Dokumentation", "Migrationsleitfaden", "Loeschbestaetigung"], + "priority": "hoch", + "tom_control_ids": ["TOM.OPS.01", "TOM.OPS.02"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-013", + "title": "Schrittweiser Abbau von Wechselgebuehren", + "description": "Wechselgebuehren muessen ab dem 12. Januar 2027 schrittweise abgebaut und ab dem 12. Januar 2027 vollstaendig abgeschafft werden. Bis dahin duerfen nur kostenbasierte Gebuehren erhoben werden.", + "applies_when": "organization.provides_cloud_services == true", + "applies_when_condition": {"field": "organization.provides_cloud_services", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 16", "title": "Wechselgebuehren"}], + "sources": [{"type": "article", "ref": "Art. 16 Data Act"}], + "category": "Compliance", + "responsible": "Finanzabteilung", + "deadline": {"type": "absolute", "date": "2027-01-12"}, + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Gebuehrenmodell-Dokumentation", "Nachweis schrittweiser Abbau"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-014", + "title": "Interoperabilitaet von Datenverarbeitungsdiensten", + "description": "Anbieter von Datenverarbeitungsdiensten muessen offene Schnittstellen und Standards unterstuetzen, um die Interoperabilitaet zwischen verschiedenen Diensten zu gewaehrleisten.", + "applies_when": "organization.provides_cloud_services == true", + "applies_when_condition": {"field": "organization.provides_cloud_services", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 17", "title": "Offene Interoperabilitaetsspezifikationen"}], + "sources": [{"type": "article", "ref": "Art. 17 Data Act"}], + "category": "Technisch", + "responsible": "CTO", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Interoperabilitaets-Spezifikation", "Offene API-Dokumentation"], + "priority": "hoch", + "tom_control_ids": ["TOM.OPS.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-015", + "title": "Wesentliche Anforderungen an Interoperabilitaet", + "description": "Interoperabilitaetsspezifikationen muessen transparent, offen, fair und nicht-diskriminierend sein. Sie muessen die Portabilitaet von Daten, Anwendungen und digitalen Assets ermoeglichen.", + "applies_when": "organization.provides_cloud_services == true", + "applies_when_condition": {"field": "organization.provides_cloud_services", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 18", "title": "Wesentliche Anforderungen fuer Interoperabilitaet"}], + "sources": [{"type": "article", "ref": "Art. 18 Data Act"}], + "category": "Technisch", + "responsible": "CTO", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Konformitaetsbewertung Interoperabilitaet", "Standardkonformitaet"], + "priority": "mittel", + "tom_control_ids": ["TOM.OPS.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-016", + "title": "Datenzugang fuer oeffentliche Stellen bei aussergewoehnlichem Bedarf", + "description": "Dateninhaber muessen oeffentlichen Stellen und EU-Organen bei aussergewoehnlichem Bedarf (Notfaelle, Statistiken) Daten zur Verfuegung stellen. Der Bedarf muss begruendet und verhaeltnismaessig sein.", + "applies_when": "organization.manufactures_connected_products == true", + "applies_when_condition": {"field": "organization.manufactures_connected_products", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 20", "title": "Recht auf Zugang fuer oeffentliche Stellen"}], + "sources": [{"type": "article", "ref": "Art. 20 Data Act"}], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "deadline": {"type": "on_event", "event": "Begruendetes Ersuchen einer oeffentlichen Stelle"}, + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Prozess fuer Behoerdenanfragen", "Anfragenregister"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.OPS.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-017", + "title": "Begruendungspflicht bei Ablehnung des Datenzugangs", + "description": "Dateninhaber koennen ein Ersuchen einer oeffentlichen Stelle nur aus eng begrenzten Gruenden ablehnen. Die Ablehnung muss begruendet werden und der oeffentlichen Stelle mitgeteilt werden.", + "applies_when": "organization.manufactures_connected_products == true", + "applies_when_condition": {"field": "organization.manufactures_connected_products", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 21", "title": "Pflichten bei der Bereitstellung an oeffentliche Stellen"}], + "sources": [{"type": "article", "ref": "Art. 21 Data Act"}], + "category": "Compliance", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Ablehnungsbegruendungen dokumentiert", "Kommunikationsprotokoll mit Behoerden"], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-018", + "title": "Unentgeltlichkeit bei Notfaellen", + "description": "Bei oeffentlichen Notfaellen (Pandemie, Naturkatastrophe) muessen Daten oeffentlichen Stellen unentgeltlich bereitgestellt werden. In anderen Faellen kann eine angemessene Verguetung verlangt werden.", + "applies_when": "organization.manufactures_connected_products == true", + "applies_when_condition": {"field": "organization.manufactures_connected_products", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 22", "title": "Verguetung bei aussergewoehnlichem Bedarf"}], + "sources": [{"type": "article", "ref": "Art. 22 Data Act"}], + "category": "Governance", + "responsible": "Finanzabteilung", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Notfall-Datenzugangs-Protokoll", "Verguetungsmodell fuer Nicht-Notfaelle"], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-019", + "title": "Schutz vor internationalem Datenzugriff", + "description": "Anbieter von Datenverarbeitungsdiensten muessen angemessene Massnahmen ergreifen, um den unrechtmaessigen internationalen Zugriff auf nicht-personenbezogene Daten durch Drittstaaten zu verhindern.", + "applies_when": "organization.provides_cloud_services == true", + "applies_when_condition": {"field": "organization.provides_cloud_services", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 23", "title": "Internationale Datenuebermittlung — Schutzmassnahmen"}], + "sources": [{"type": "article", "ref": "Art. 23 Data Act"}], + "category": "Technisch", + "responsible": "CISO", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Schutzkonzept gegen Drittstaaten-Zugriff", "Standortdokumentation der Datenzentren"], + "priority": "kritisch", + "tom_control_ids": ["TOM.OPS.01", "TOM.GOV.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-020", + "title": "Beachtung internationaler Abkommen", + "description": "Datenuebermittlungen an Drittstaaten duerfen nur auf Grundlage internationaler Abkommen oder anerkannter Angemessenheitsbeschluesse erfolgen. Anfragen von Drittstaaten-Gerichten oder -Behoerden muessen dem EU-Recht entsprechen.", + "applies_when": "organization.provides_cloud_services == true", + "applies_when_condition": {"field": "organization.provides_cloud_services", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 25", "title": "Internationale Zusammenarbeit"}], + "sources": [{"type": "article", "ref": "Art. 25 Data Act"}], + "category": "Compliance", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Pruefung internationaler Anfragen", "Dokumentation der Rechtsgrundlagen"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-021", + "title": "Benennung einer zustaendigen Behoerde", + "description": "Unternehmen muessen die fuer sie zustaendige nationale Durchsetzungsbehoerde kennen und mit ihr kooperieren. Anfragen der Behoerde muessen fristgerecht beantwortet werden.", + "applies_when": "organization.manufactures_connected_products == true OR organization.provides_cloud_services == true", + "applies_when_condition": { + "any_of": [ + {"field": "organization.manufactures_connected_products", "operator": "EQUALS", "value": true}, + {"field": "organization.provides_cloud_services", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [{"norm": "Data Act", "article": "Art. 27", "title": "Zustaendige Behoerden"}], + "sources": [{"type": "article", "ref": "Art. 27 Data Act"}], + "category": "Governance", + "responsible": "Compliance-Beauftragter", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Kenntnis der zustaendigen Behoerde", "Kooperationsprotokoll"], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-022", + "title": "Sanktionsvermeidung — Rechtskonformitaetsprogramm", + "description": "Mitgliedstaaten legen wirksame, verhaeltnismaessige und abschreckende Sanktionen fest. Unternehmen muessen ein Rechtskonformitaetsprogramm implementieren, um Verstoesse zu vermeiden.", + "applies_when": "organization.manufactures_connected_products == true OR organization.provides_cloud_services == true", + "applies_when_condition": { + "any_of": [ + {"field": "organization.manufactures_connected_products", "operator": "EQUALS", "value": true}, + {"field": "organization.provides_cloud_services", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [{"norm": "Data Act", "article": "Art. 30", "title": "Sanktionen"}], + "sources": [{"type": "article", "ref": "Art. 30 Data Act"}], + "category": "Governance", + "responsible": "Compliance-Beauftragter", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Compliance-Programm-Dokumentation", "Schulungsnachweise"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.02"], + "breakpilot_feature": "/sdk/compliance-hub", + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-023", + "title": "Smart-Contract-Konformitaet", + "description": "Anbieter von Smart Contracts fuer die Datenweitergabe muessen sicherstellen, dass diese den Anforderungen des Data Act entsprechen, einschliesslich Zugangskontrollen, Kuendigungsmoeglichkeiten und Datensicherheit.", + "applies_when": "organization.uses_smart_contracts_for_data == true", + "applies_when_condition": {"field": "organization.uses_smart_contracts_for_data", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 28", "title": "Wesentliche Anforderungen an Smart Contracts"}], + "sources": [{"type": "article", "ref": "Art. 28 Data Act"}], + "category": "Technisch", + "responsible": "CTO", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Smart-Contract-Audit", "Konformitaetsbewertung"], + "priority": "mittel", + "tom_control_ids": ["TOM.OPS.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-024", + "title": "Verbot von Gatekeeper-Verhalten bei Daten", + "description": "Dateninhaber duerfen den Datenzugang nicht nutzen, um ihre Marktposition zu missbrauchen. Insbesondere darf der Zugang zu Reparatur- und Wartungsdaten fuer vernetzte Produkte nicht unangemessen verweigert werden.", + "applies_when": "organization.manufactures_connected_products == true", + "applies_when_condition": {"field": "organization.manufactures_connected_products", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "Data Act", "article": "Art. 6 Abs. 2", "title": "Verbot des Missbrauchs der Datenposition"}], + "sources": [{"type": "article", "ref": "Art. 6 Abs. 2 Data Act"}], + "category": "Compliance", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "Wirksam, verhaeltnismaessig und abschreckend (nationale Festlegung)", "personal_liability": false}, + "evidence": ["Marktmissbrauchs-Pruefung", "Zugangsrichtlinie fuer Reparaturdaten"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DATAACT-OBL-025", + "title": "Streitbeilegungsmechanismus", + "description": "Dateninhaber und Datenempfaenger muessen Zugang zu Streitbeilegungsstellen haben. Die Mitgliedstaaten benennen zertifizierte Stellen fuer aussergerichtliche Streitbeilegung bei Data-Act-Streitigkeiten.", + "applies_when": "organization.manufactures_connected_products == true OR organization.provides_cloud_services == true", + "applies_when_condition": { + "any_of": [ + {"field": "organization.manufactures_connected_products", "operator": "EQUALS", "value": true}, + {"field": "organization.provides_cloud_services", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [{"norm": "Data Act", "article": "Art. 29", "title": "Streitbeilegung"}], + "sources": [{"type": "article", "ref": "Art. 29 Data Act"}], + "category": "Organisatorisch", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "Keine direkte Sanktion (Verfahrensrecht)", "personal_liability": false}, + "evidence": ["Hinweis auf Streitbeilegungsstellen", "Interne Eskalationsprozesse"], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2025-09-12", + "valid_until": null, + "version": "1.0" + } + ], + "controls": [ + { + "id": "DATAACT-CTRL-001", + "name": "Data-by-Design-Produktentwicklung", + "description": "Systematischer Prozess zur Sicherstellung, dass vernetzte Produkte den Datenzugang standardmaessig ermoeglichen", + "category": "Technisch", + "what_to_do": "Integration von Datenzugangs-APIs in die Produktarchitektur, maschinenlesbare Exportformate und Zugangsmanagement ab der Design-Phase", + "priority": "kritisch" + }, + { + "id": "DATAACT-CTRL-002", + "name": "Cloud-Portabilitaets-Framework", + "description": "Technisches und vertragliches Framework zur Erleichterung des Wechsels zwischen Cloud-Anbietern", + "category": "Technisch", + "what_to_do": "Bereitstellung von Datenexport-APIs, Migrationswerkzeugen, standardisierten Formaten und Uebergangsunterstuetzung gemaess den Data-Act-Anforderungen", + "priority": "hoch" + }, + { + "id": "DATAACT-CTRL-003", + "name": "Behoerden-Datenzugangs-Prozess", + "description": "Standardisierter Prozess zur Bearbeitung von Datenzugangsanfragen oeffentlicher Stellen", + "category": "Organisatorisch", + "what_to_do": "Einrichtung eines Anfragenmanagements mit Pruefung der Rechtsgrundlage, Verhaeltnismaessigkeitstest, Anonymisierung und fristgerechter Bereitstellung", + "priority": "hoch" + } + ], + "incident_deadlines": [ + { + "phase": "Datenzugangsanfrage des Nutzers", + "deadline": "Unverzueglich, ohne ungebuehrliche Verzoegerung", + "content": "Bereitstellung der angeforderten Daten in maschinenlesbarem Format", + "recipient": "Antragstellender Nutzer", + "legal_basis": [{"norm": "Data Act", "article": "Art. 5"}] + }, + { + "phase": "Datenweitergabe an Dritte", + "deadline": "Unverzueglich nach Antrag des Nutzers", + "content": "Weitergabe der Daten an den vom Nutzer benannten Dritten", + "recipient": "Benannter Dritter", + "legal_basis": [{"norm": "Data Act", "article": "Art. 6"}] + }, + { + "phase": "Ersuchen einer oeffentlichen Stelle (Notfall)", + "deadline": "Unverzueglich, spaetestens innerhalb der in der Anfrage gesetzten Frist", + "content": "Bereitstellung der angeforderten Daten an die oeffentliche Stelle", + "recipient": "Ersuchende oeffentliche Stelle", + "legal_basis": [{"norm": "Data Act", "article": "Art. 20"}] + }, + { + "phase": "Cloud-Wechsel — Datenexport", + "deadline": "Maximal 30 Tage nach Kuendigung", + "content": "Vollstaendiger Export aller Daten, Anwendungen und digitalen Assets an den neuen Anbieter", + "recipient": "Kunde / neuer Cloud-Anbieter", + "legal_basis": [{"norm": "Data Act", "article": "Art. 14"}] + } + ] +} \ No newline at end of file diff --git a/ai-compliance-sdk/policies/obligations/v2/dora_v2.json b/ai-compliance-sdk/policies/obligations/v2/dora_v2.json new file mode 100644 index 0000000..5f2c871 --- /dev/null +++ b/ai-compliance-sdk/policies/obligations/v2/dora_v2.json @@ -0,0 +1,569 @@ +{ + "regulation": "dora", + "name": "Digital Operational Resilience Act (EU) 2022/2554", + "description": "Verordnung (EU) 2022/2554 ueber die digitale operationale Resilienz im Finanzsektor — einheitliche Anforderungen an IKT-Risikomanagement, Vorfallmeldung, Resilienz-Tests und Drittparteienrisiko", + "version": "1.0", + "effective_date": "2025-01-17", + "obligations": [ + { + "id": "DORA-OBL-001", + "title": "IKT-Risikomanagement-Rahmen einrichten", + "description": "Einrichtung eines umfassenden IKT-Risikomanagement-Rahmens mit Strategien, Leitlinien und Verfahren zum Schutz aller IKT-Assets. Der Rahmen muss jaehrlich ueberprueft und nach schwerwiegenden Vorfaellen aktualisiert werden.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 5", "title": "Governance und Organisation"} + ], + "sources": [ + {"type": "article", "ref": "Art. 5 VO (EU) 2022/2554"} + ], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "deadline": {"type": "recurring", "interval": "P1Y"}, + "sanctions": {"max_fine": "Bussgeld nach nationalem Recht", "personal_liability": true}, + "evidence": ["IKT-Risikomanagement-Rahmen", "Jaehrlicher Review-Bericht"], + "priority": "kritisch", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-002", + "title": "IKT-Governance durch Leitungsorgan", + "description": "Das Leitungsorgan traegt die Gesamtverantwortung fuer das IKT-Risikomanagement. Es muss IKT-Strategien genehmigen, Rollen definieren, Budget zuweisen und sich regelmaessig ueber IKT-Risiken informieren lassen.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 5 Abs. 2", "title": "Verantwortung des Leitungsorgans"} + ], + "sources": [ + {"type": "article", "ref": "Art. 5 VO (EU) 2022/2554"} + ], + "category": "Governance", + "responsible": "Vorstand/Geschaeftsfuehrung", + "evidence": ["Vorstandsbeschluss IKT-Strategie", "Schulungsnachweise Leitungsorgan"], + "priority": "kritisch", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-003", + "title": "IKT-Risikomanagement-Funktion einrichten", + "description": "Einrichtung einer unabhaengigen IKT-Risikomanagement-Kontrollfunktion (oder Beauftragung eines externen Dienstleisters bei kleinen Instituten). Die Funktion muss ueber ausreichende Ressourcen und Befugnisse verfuegen.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true}, + {"field": "financial.is_regulated", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 6", "title": "IKT-Risikomanagement-Rahmen"} + ], + "sources": [ + {"type": "article", "ref": "Art. 6 VO (EU) 2022/2554"} + ], + "category": "Organisatorisch", + "responsible": "CISO/IKT-Risikomanager", + "evidence": ["Stellenbeschreibung IKT-Risikomanager", "Organigramm", "Ressourcenplan"], + "priority": "hoch", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-004", + "title": "Identifikation aller IKT-Assets und -Risiken", + "description": "Vollstaendige Identifikation, Klassifizierung und Dokumentation aller IKT-gestuetzten Geschaeftsfunktionen, IKT-Assets, Informationsquellen und deren Abhaengigkeiten. Regelmnaessige Aktualisierung des IKT-Asset-Inventars.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 7", "title": "IKT-Systeme, -Protokolle und -Tools"} + ], + "sources": [ + {"type": "article", "ref": "Art. 7 VO (EU) 2022/2554"} + ], + "category": "Technisch", + "responsible": "IT-Leiter", + "deadline": {"type": "recurring", "interval": "P1Y"}, + "evidence": ["IKT-Asset-Inventar", "Abhaengigkeitsanalyse", "Klassifizierungsmatrix"], + "priority": "hoch", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-005", + "title": "IKT-Schutzmassnahmen implementieren", + "description": "Implementierung von Schutz- und Praeventionsmassnahmen fuer IKT-Systeme: Sicherheitsrichtlinien, Zugriffskontrollen, Verschluesselung, Netzwerksicherheit, Patch-Management und sichere Konfiguration.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 8", "title": "Schutz und Praevention"}, + {"norm": "DORA", "article": "Art. 9", "title": "Erkennung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 8-9 VO (EU) 2022/2554"} + ], + "category": "Technisch", + "responsible": "CISO", + "evidence": ["Sicherheitsrichtlinien", "Zugriffsmatrix", "Patch-Management-Bericht"], + "priority": "kritisch", + "tom_control_ids": ["TOM.CRY.01", "TOM.ACC.01"], + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-006", + "title": "Anomalie-Erkennung und -Ueberwachung", + "description": "Einrichtung von Mechanismen zur Erkennung anomaler Aktivitaeten in IKT-Systemen einschliesslich Netzwerk-Performance, IKT-bezogener Vorfaelle und potenzieller Cyberbedrohungen. Mehrere Kontrollschichten implementieren.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 9", "title": "Erkennung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 9 VO (EU) 2022/2554"} + ], + "category": "Technisch", + "responsible": "SOC-Leiter", + "evidence": ["SIEM-Konfiguration", "Anomalie-Erkennungs-Berichte", "Monitoring-Dashboard"], + "priority": "hoch", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-007", + "title": "IKT-Vorfall-Reaktionsplaene", + "description": "Festlegung von Reaktions- und Wiederherstellungsplaenen fuer IKT-bezogene Vorfaelle mit klaren Rollen, Eskalationsverfahren und Kommunikationsplaenen. Regelmaessige Tests der Plaene durch Simulationen.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 10", "title": "Reaktion und Wiederherstellung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 10 VO (EU) 2022/2554"} + ], + "category": "Organisatorisch", + "responsible": "CISO", + "deadline": {"type": "recurring", "interval": "P1Y", "event": "Jaehrlicher Test"}, + "evidence": ["Incident-Response-Plan", "Testbericht Simulation", "Eskalationsmatrix"], + "priority": "kritisch", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-008", + "title": "Backup- und Wiederherstellungsrichtlinien", + "description": "Erstellung und Umsetzung von Backup-Richtlinien mit festgelegten Umfang, Haeufigkeit und Aufbewahrungsfristen. Regelmaessige Tests der Wiederherstellung einschliesslich Systemwiederanlauf und Datenintegritaetspruefung.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 11", "title": "Backup-Strategien und Wiederherstellung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 11 VO (EU) 2022/2554"} + ], + "category": "Technisch", + "responsible": "IT-Leiter", + "deadline": {"type": "recurring", "interval": "P1Y"}, + "evidence": ["Backup-Richtlinie", "Wiederherstellungstest-Protokoll", "RPO/RTO-Dokumentation"], + "priority": "kritisch", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-009", + "title": "Redundanz und Geschaeftskontinuitaet", + "description": "Sicherstellung der Geschaeftskontinuitaet durch redundante IKT-Kapazitaeten. Business-Continuity-Plaene muessen IKT-Ausfallszenarien abdecken und regelmaessig getestet werden.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true}, + {"field": "financial.has_critical_ict", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 12", "title": "Geschaeftskontinuitaetsmanagement"} + ], + "sources": [ + {"type": "article", "ref": "Art. 12 VO (EU) 2022/2554"} + ], + "category": "Technisch", + "responsible": "IT-Leiter", + "evidence": ["BCP-Plan", "Redundanz-Architektur", "BCP-Testbericht"], + "priority": "hoch", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-010", + "title": "Krisenkommunikation bei IKT-Vorfaellen", + "description": "Etablierung von Kommunikationsplaenen fuer IKT-bezogene Vorfaelle und Krisen: interne Kommunikation, Kommunikation mit Kunden und Gegenparteien, Medien und Aufsichtsbehoerden.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 13", "title": "Kommunikation"} + ], + "sources": [ + {"type": "article", "ref": "Art. 13 VO (EU) 2022/2554"} + ], + "category": "Organisatorisch", + "responsible": "Kommunikationsabteilung", + "evidence": ["Krisenkommunikationsplan", "Kontaktlisten Behoerden", "Vorlagen Kundeninformation"], + "priority": "hoch", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-011", + "title": "Lessons Learned aus IKT-Vorfaellen", + "description": "Systematische Analyse und Aufarbeitung von IKT-bezogenen Vorfaellen. Erkenntnisse muessen dokumentiert und in die Verbesserung des IKT-Risikomanagement-Rahmens einfliessen.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 14", "title": "Lernen und Weiterentwicklung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 14 VO (EU) 2022/2554"} + ], + "category": "Organisatorisch", + "responsible": "CISO", + "evidence": ["Post-Incident-Reviews", "Massnahmenplan", "Schulungsunterlagen"], + "priority": "mittel", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-012", + "title": "IKT-Vorfallmanagement-Prozess", + "description": "Einrichtung eines Prozesses zur Erkennung, Verwaltung und Meldung IKT-bezogener Vorfaelle mit Fruehwarnindikatoren, Klassifizierungskriterien und Eskalationsverfahren.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 15", "title": "IKT-bezogenes Vorfallmanagement"} + ], + "sources": [ + {"type": "article", "ref": "Art. 15 VO (EU) 2022/2554"} + ], + "category": "Organisatorisch", + "responsible": "CISO", + "evidence": ["Vorfallmanagement-Prozess", "Klassifizierungsschema", "Eskalationsmatrix"], + "priority": "kritisch", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-013", + "title": "Klassifizierung von IKT-Vorfaellen", + "description": "Klassifizierung aller IKT-bezogenen Vorfaelle nach definierten Kriterien: betroffene Kunden, Dauer, geografische Ausbreitung, Datenverluste, Kritikalitaet der Dienste und wirtschaftliche Auswirkungen.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 16", "title": "Klassifizierung IKT-bezogener Vorfaelle"} + ], + "sources": [ + {"type": "article", "ref": "Art. 16 VO (EU) 2022/2554"} + ], + "category": "Organisatorisch", + "responsible": "CISO", + "evidence": ["Klassifizierungskriterien", "Vorfall-Register", "Schwellenwert-Dokumentation"], + "priority": "hoch", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-014", + "title": "Schwerwiegende IKT-Vorfaelle melden", + "description": "Schwerwiegende IKT-bezogene Vorfaelle muessen der zustaendigen Aufsichtsbehoerde gemeldet werden: Erstmeldung, Zwischenmeldung und Abschlussbericht innerhalb der vorgegebenen Fristen.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true}, + {"field": "financial.is_regulated", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 17", "title": "Meldung schwerwiegender IKT-bezogener Vorfaelle"} + ], + "sources": [ + {"type": "article", "ref": "Art. 17 VO (EU) 2022/2554"} + ], + "category": "Meldepflicht", + "responsible": "CISO", + "deadline": {"type": "on_event", "event": "Schwerwiegender IKT-Vorfall", "duration": "PT4H"}, + "sanctions": {"max_fine": "Bussgeld nach nationalem Recht", "personal_liability": true}, + "evidence": ["Erstmeldung", "Zwischenmeldung", "Abschlussbericht"], + "priority": "kritisch", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-015", + "title": "Freiwillige Meldung erheblicher Cyberbedrohungen", + "description": "Finanzunternehmen koennen erhebliche Cyberbedrohungen freiwillig der Aufsichtsbehoerde melden, wenn sie die Bedrohung als relevant fuer das Finanzsystem erachten. Standardisiertes Meldeformat verwenden.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 18", "title": "Freiwillige Meldung erheblicher Cyberbedrohungen"} + ], + "sources": [ + {"type": "article", "ref": "Art. 18 VO (EU) 2022/2554"} + ], + "category": "Meldepflicht", + "responsible": "CISO", + "evidence": ["Meldeformular Cyberbedrohung", "Bedrohungsanalyse"], + "priority": "niedrig", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-016", + "title": "Programm fuer Tests der digitalen Resilienz", + "description": "Einrichtung eines umfassenden Programms fuer Tests der digitalen operationalen Resilienz: Schwachstellenscans, Open-Source-Analysen, Netzwerksicherheitsbewertungen, Penetrationstests und szenariobasierte Tests.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 19", "title": "Allgemeine Anforderungen an Tests"} + ], + "sources": [ + {"type": "article", "ref": "Art. 19 VO (EU) 2022/2554"} + ], + "category": "Audit", + "responsible": "CISO", + "deadline": {"type": "recurring", "interval": "P1Y"}, + "evidence": ["Testprogramm", "Schwachstellenscan-Berichte", "Penetrationstest-Bericht"], + "priority": "hoch", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-017", + "title": "Bedrohungsorientierte Penetrationstests (TLPT)", + "description": "Durchfuehrung bedrohungsorientierter Penetrationstests (Threat-Led Penetration Testing) mindestens alle 3 Jahre fuer bedeutende Finanzunternehmen. Tests muessen von qualifizierten externen Pruefern durchgefuehrt werden.", + "applies_when": "significant_financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true}, + {"field": "financial.has_critical_ict", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 22", "title": "Bedrohungsorientierte Penetrationstests"} + ], + "sources": [ + {"type": "article", "ref": "Art. 22 VO (EU) 2022/2554"}, + {"type": "eu_guidance", "ref": "TIBER-EU Framework"} + ], + "category": "Audit", + "responsible": "CISO", + "deadline": {"type": "recurring", "interval": "P3Y"}, + "evidence": ["TLPT-Bericht", "Qualifikationsnachweis Pruefer", "Massnahmenplan"], + "priority": "hoch", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-018", + "title": "IKT-Drittparteienrisiko-Management", + "description": "Verwaltung der Risiken aus der Nutzung von IKT-Drittdienstleistern: Risikoanalyse vor Vertragsschluss, vertragliche Mindestanforderungen, laufende Ueberwachung und Exit-Strategien fuer kritische IKT-Dienste.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 28", "title": "Allgemeine Grundsaetze"} + ], + "sources": [ + {"type": "article", "ref": "Art. 28 VO (EU) 2022/2554"} + ], + "category": "Governance", + "responsible": "Einkauf/Vendor-Management", + "evidence": ["IKT-Drittanbieter-Register", "Risikoanalyse je Anbieter", "Exit-Strategie"], + "priority": "kritisch", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-019", + "title": "Vertragliche Anforderungen an IKT-Drittanbieter", + "description": "IKT-Dienstleistungsvertraege muessen Mindestanforderungen enthalten: SLA-Definitionen, Zugriffsrechte, Datenlokalisierung, Unterstuetzung bei Vorfaellen, Kuendigungsrechte und Audit-Rechte.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 28 Abs. 7-8", "title": "Vertragliche Anforderungen"}, + {"norm": "DORA", "article": "Art. 30", "title": "Wesentliche Vertragsbestimmungen"} + ], + "sources": [ + {"type": "article", "ref": "Art. 28, 30 VO (EU) 2022/2554"} + ], + "category": "Governance", + "responsible": "Rechtsabteilung", + "evidence": ["Vertragsvorlage IKT-Dienste", "SLA-Dokumentation", "Audit-Klausel"], + "priority": "hoch", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DORA-OBL-020", + "title": "Register aller IKT-Drittanbieter-Vertraege", + "description": "Fuehrung eines vollstaendigen Registers aller vertraglichen Vereinbarungen ueber IKT-Dienstleistungen. Das Register muss auf Anfrage der Aufsichtsbehoerde bereitgestellt werden und kritische IKT-Drittanbieter kennzeichnen.", + "applies_when": "financial_institution", + "applies_when_condition": { + "all_of": [ + {"field": "financial.dora_applies", "operator": "EQUALS", "value": true}, + {"field": "sector.is_financial_institution", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "DORA", "article": "Art. 28 Abs. 3", "title": "Informationsregister"} + ], + "sources": [ + {"type": "article", "ref": "Art. 28 VO (EU) 2022/2554"} + ], + "category": "Dokumentation", + "responsible": "Vendor-Management", + "deadline": {"type": "recurring", "interval": "P1Y"}, + "evidence": ["IKT-Vertragsregister", "Kritikalitaetsbewertung Anbieter"], + "priority": "hoch", + "valid_from": "2025-01-17", + "valid_until": null, + "version": "1.0" + } + ], + "controls": [ + { + "id": "DORA-CTRL-001", + "name": "IKT-Risikobewertung und -Ueberwachung", + "description": "Kontinuierliche Bewertung und Ueberwachung von IKT-Risiken mit automatisiertem Monitoring, regelmaessigen Schwachstellenscans und Risiko-Reporting an das Leitungsorgan.", + "category": "Governance", + "what_to_do": "SIEM/SOC einrichten, Risiko-Dashboard implementieren, quartalsweises Reporting an Vorstand etablieren.", + "iso27001_mapping": ["A.5.7", "A.8.8", "A.8.16"], + "priority": "kritisch" + }, + { + "id": "DORA-CTRL-002", + "name": "IKT-Vorfallmelde-Prozess", + "description": "Standardisierter Prozess fuer die Klassifizierung und Meldung schwerwiegender IKT-Vorfaelle an die zustaendige Aufsichtsbehoerde innerhalb der vorgeschriebenen Fristen.", + "category": "Meldepflicht", + "what_to_do": "Meldevorlagen erstellen, Eskalationsketten definieren, Klassifizierungskriterien dokumentieren, Testmeldungen durchfuehren.", + "iso27001_mapping": ["A.5.24", "A.5.25", "A.5.26"], + "priority": "kritisch" + }, + { + "id": "DORA-CTRL-003", + "name": "Resilienz-Testprogramm", + "description": "Jaehrliches Programm zur Pruefung der digitalen operationalen Resilienz: Vulnerability Assessments, Penetrationstests, Szenario-Tests und fuer bedeutende Institute TLPT alle 3 Jahre.", + "category": "Audit", + "what_to_do": "Testplan erstellen, qualifizierte Pruefer beauftragen, Ergebnisse dokumentieren und Massnahmen nachverfolgen.", + "iso27001_mapping": ["A.5.35", "A.5.36", "A.8.8"], + "priority": "hoch" + }, + { + "id": "DORA-CTRL-004", + "name": "IKT-Drittanbieter-Due-Diligence", + "description": "Strukturierter Prozess zur Bewertung und laufenden Ueberwachung von IKT-Drittdienstleistern: Risikobewertung vor Vertragsschluss, SLA-Monitoring, Audit-Rechte und Exit-Planung.", + "category": "Governance", + "what_to_do": "Vendor-Assessment-Framework einrichten, Kritikalitaets-Klassifizierung durchfuehren, jaehrliche Reviews durchfuehren.", + "iso27001_mapping": ["A.5.19", "A.5.20", "A.5.21", "A.5.22"], + "priority": "hoch" + } + ], + "incident_deadlines": [ + { + "phase": "Erstmeldung", + "deadline": "4 Stunden nach Klassifizierung als schwerwiegend", + "content": "Erste Meldung mit grundlegenden Informationen: Art des Vorfalls, betroffene Dienste, erste Auswirkungseinschaetzung", + "recipient": "Zustaendige Aufsichtsbehoerde (BaFin/EZB)", + "legal_basis": [{"norm": "DORA", "article": "Art. 17"}] + }, + { + "phase": "Zwischenmeldung", + "deadline": "72 Stunden nach Erstmeldung (oder bei wesentlicher Aenderung)", + "content": "Aktualisierte Informationen zu Ursache, Auswirkungen, ergriffenen Massnahmen und voraussichtlicher Wiederherstellung", + "recipient": "Zustaendige Aufsichtsbehoerde (BaFin/EZB)", + "legal_basis": [{"norm": "DORA", "article": "Art. 17"}] + }, + { + "phase": "Abschlussbericht", + "deadline": "1 Monat nach Wiederherstellung des Normalbetriebs", + "content": "Vollstaendiger Bericht: Ursachenanalyse, Gesamtauswirkungen, ergriffene und geplante Massnahmen, Lessons Learned", + "recipient": "Zustaendige Aufsichtsbehoerde (BaFin/EZB)", + "legal_basis": [{"norm": "DORA", "article": "Art. 17"}] + } + ] +} \ No newline at end of file diff --git a/ai-compliance-sdk/policies/obligations/v2/dsa_v2.json b/ai-compliance-sdk/policies/obligations/v2/dsa_v2.json new file mode 100644 index 0000000..99b6fb4 --- /dev/null +++ b/ai-compliance-sdk/policies/obligations/v2/dsa_v2.json @@ -0,0 +1,742 @@ +{ + "regulation": "dsa", + "name": "Digital Services Act (EU) 2022/2065", + "description": "Verordnung ueber einen Binnenmarkt fuer digitale Dienste — Pflichten fuer Anbieter digitaler Dienste, Plattformen und sehr grosse Online-Plattformen (VLOPs/VLOSEs)", + "version": "2.0", + "effective_date": "2024-02-17", + "obligations": [ + { + "id": "DSA-OBL-001", + "title": "Haftungsprivileg — Mere Conduit", + "description": "Vermittlungsdienste (reine Durchleitung) muessen sicherstellen, dass sie keine Kenntnis von rechtswidrigen Inhalten haben und bei Kenntnis unverzueglich handeln, um das Haftungsprivileg zu bewahren.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 6", "title": "Reine Durchleitung (Mere Conduit)"}], + "sources": [{"type": "article", "ref": "Art. 6 DSA"}], + "category": "Compliance", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Dokumentation der Vermittlungstaetigkeiten", "Nachweise ueber fehlende Kenntnis"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-002", + "title": "Haftungsprivileg — Caching", + "description": "Caching-Dienste muessen bei Kenntniserlangung rechtswidriger Inhalte unverzueglich taetig werden, um diese zu entfernen oder den Zugang zu sperren.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 7", "title": "Caching"}], + "sources": [{"type": "article", "ref": "Art. 7 DSA"}], + "category": "Compliance", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Caching-Richtlinie", "Reaktionsprotokolle bei Kenntniserlangung"], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-003", + "title": "Haftungsprivileg — Hosting", + "description": "Hosting-Dienste muessen bei tatsaechlicher Kenntnis rechtswidriger Inhalte oder Taetigkeiten unverzueglich handeln, um diese zu entfernen oder den Zugang zu sperren.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 8", "title": "Hosting"}], + "sources": [{"type": "article", "ref": "Art. 8 DSA"}], + "category": "Compliance", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Notice-and-Action-Protokolle", "Nachweis unverzueglicher Reaktion"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.OPS.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-004", + "title": "Keine allgemeine Ueberwachungspflicht", + "description": "Anbietern darf keine allgemeine Verpflichtung zur Ueberwachung der uebermittelten oder gespeicherten Informationen auferlegt werden. Freiwillige Eigeninitiative fuehrt nicht zum Verlust des Haftungsprivilegs.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 9", "title": "Keine allgemeine Ueberwachungspflicht"}], + "sources": [{"type": "article", "ref": "Art. 9 DSA"}], + "category": "Governance", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Dokumentation Moderationsrichtlinie", "Nachweis keine allgemeine Ueberwachung"], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-005", + "title": "Zentrale Kontaktstelle", + "description": "Benennung einer zentralen Kontaktstelle fuer die Kommunikation mit Behoerden der Mitgliedstaaten, der Kommission und dem Gremium fuer digitale Dienste. Die Kontaktstelle muss in einer Amtssprache erreichbar sein.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 11", "title": "Kontaktstellen fuer Behoerden"}], + "sources": [{"type": "article", "ref": "Art. 11 DSA"}], + "category": "Organisatorisch", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "1% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Benennungsdokument Kontaktstelle", "Veroeffentlichte Kontaktdaten"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.02"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-006", + "title": "Gesetzlicher Vertreter", + "description": "Anbieter ohne Niederlassung in der EU muessen einen gesetzlichen Vertreter in einem Mitgliedstaat benennen, in dem sie Dienste anbieten.", + "applies_when": "organization.eu_member == false AND organization.operates_platform == true", + "applies_when_condition": { + "all_of": [ + {"field": "organization.eu_member", "operator": "EQUALS", "value": false}, + {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [{"norm": "DSA", "article": "Art. 12", "title": "Gesetzlicher Vertreter"}], + "sources": [{"type": "article", "ref": "Art. 12 DSA"}], + "category": "Organisatorisch", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Benennungsurkunde gesetzlicher Vertreter", "Veroeffentlichung auf der Webseite"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-007", + "title": "Allgemeine Geschaeftsbedingungen — Inhaltsmoderation", + "description": "In den AGB muessen Informationen zu Beschraenkungen enthalten sein, die Anbieter in Bezug auf von Nutzern bereitgestellte Inhalte auferlegen. Dies umfasst Moderationsrichtlinien, algorithmische Entscheidungsfindung und Beschwerdemechanismen.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 13", "title": "Allgemeine Geschaeftsbedingungen"}], + "sources": [{"type": "article", "ref": "Art. 13 DSA"}], + "category": "Dokumentation", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Aktuelle AGB mit Moderationsrichtlinien", "Verstaendliche Darstellung der Beschraenkungen"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01"], + "breakpilot_feature": "/sdk/policy-generator", + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-008", + "title": "Transparenzbericht — Vermittlungsdienste", + "description": "Jaehrliche Veroeffentlichung eines Transparenzberichts ueber Inhaltsmoderation, behoerdliche Anordnungen und Notice-and-Action-Verfahren. Der Bericht muss maschinenlesbar und oeffentlich zugaenglich sein.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 14", "title": "Transparenzberichterstattungspflichten fuer Anbieter von Vermittlungsdiensten"}], + "sources": [{"type": "article", "ref": "Art. 14 DSA"}], + "category": "Dokumentation", + "responsible": "Compliance-Beauftragter", + "deadline": {"type": "recurring", "interval": "P1Y"}, + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Veroeffentlichter Transparenzbericht", "Maschinenlesbares Format"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.03"], + "breakpilot_feature": "/sdk/reporting", + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-009", + "title": "Transparenzbericht — erweitert fuer Online-Plattformen", + "description": "Online-Plattformen muessen zusaetzlich Informationen ueber Streitbeilegungsverfahren, Aussetzungen, automatisierte Inhaltserkennung und Trusted Flagger in ihren Transparenzbericht aufnehmen.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 15", "title": "Transparenzberichterstattungspflichten fuer Anbieter von Online-Plattformen"}], + "sources": [{"type": "article", "ref": "Art. 15 DSA"}], + "category": "Dokumentation", + "responsible": "Compliance-Beauftragter", + "deadline": {"type": "recurring", "interval": "P6M"}, + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Erweiterter Transparenzbericht", "Statistik automatisierter Moderation"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.03"], + "breakpilot_feature": "/sdk/reporting", + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-010", + "title": "Melde- und Abhilfeverfahren (Notice-and-Action)", + "description": "Einrichtung eines leicht zugaenglichen und benutzerfreundlichen Mechanismus, der es jeder Person ermoeglicht, mutmasslich rechtswidrige Inhalte zu melden. Meldungen muessen elektronisch moeglich sein und eine Bestaetigung ausloesen.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 16", "title": "Melde- und Abhilfeverfahren"}], + "sources": [{"type": "article", "ref": "Art. 16 DSA"}], + "category": "Technisch", + "responsible": "Produktmanagement", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Implementiertes Meldeformular", "Bestaetigung der Eingangsbehandlung", "Verarbeitungsprotokoll"], + "priority": "kritisch", + "tom_control_ids": ["TOM.OPS.01", "TOM.OPS.02"], + "breakpilot_feature": "/sdk/incident-response", + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-011", + "title": "Begruendungspflicht bei Inhaltsentfernung", + "description": "Bei Entfernung oder Sperrung von Inhalten muss dem betroffenen Nutzer eine klare und spezifische Begruendung mitgeteilt werden, einschliesslich der angewandten Rechtsgrundlage und der Rechtsbehelfsmoeglichkeiten.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 17", "title": "Begruendung"}], + "sources": [{"type": "article", "ref": "Art. 17 DSA"}], + "category": "Organisatorisch", + "responsible": "Content-Moderation-Team", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Begruendungsvorlagen", "Muster-Benachrichtigungen", "Zustellungsnachweise"], + "priority": "hoch", + "tom_control_ids": ["TOM.OPS.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-012", + "title": "Meldung strafbarer Inhalte an Behoerden", + "description": "Bei Verdacht auf Straftaten, die das Leben oder die Sicherheit von Personen bedrohen, muessen die zustaendigen Strafverfolgungsbehoerden des betreffenden Mitgliedstaats unverzueglich informiert werden.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 18", "title": "Meldung von Verdacht auf Straftaten"}], + "sources": [{"type": "article", "ref": "Art. 18 DSA"}], + "category": "Meldepflicht", + "responsible": "Rechtsabteilung", + "deadline": {"type": "on_event", "event": "Kenntniserlangung strafbarer Inhalte"}, + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": true, "criminal_liability": true}, + "evidence": ["Eskalationsprozess-Dokumentation", "Meldungsprotokolle an Behoerden"], + "priority": "kritisch", + "tom_control_ids": ["TOM.OPS.01", "TOM.GOV.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-013", + "title": "Trusted Flaggers", + "description": "Vorrangige Bearbeitung von Meldungen vertrauenswuerdiger Hinweisgeber (Trusted Flaggers), die vom Koordinator fuer digitale Dienste zertifiziert wurden. Entscheidungen ueber Meldungen von Trusted Flaggers muessen zeitnah erfolgen.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 19", "title": "Vertrauenswuerdige Hinweisgeber"}], + "sources": [{"type": "article", "ref": "Art. 19 DSA"}], + "category": "Organisatorisch", + "responsible": "Content-Moderation-Team", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Priorisierungsprozess fuer Trusted Flaggers", "SLA-Dokumentation"], + "priority": "hoch", + "tom_control_ids": ["TOM.OPS.01", "TOM.OPS.02"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-014", + "title": "Schutz vor Missbrauch des Meldesystems", + "description": "Aussetzung der Bearbeitung von Meldungen und Beschwerden von Personen oder Stellen, die haeufig offensichtlich unbegruendete Meldungen oder Beschwerden einreichen.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 20", "title": "Schutz vor Missbrauch"}], + "sources": [{"type": "article", "ref": "Art. 20 DSA"}], + "category": "Organisatorisch", + "responsible": "Content-Moderation-Team", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Anti-Missbrauchs-Richtlinie", "Dokumentation der Aussetzungsentscheidungen"], + "priority": "mittel", + "tom_control_ids": ["TOM.OPS.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-015", + "title": "Aussetzung wegen Missbrauch durch Nutzer", + "description": "Anbieter von Online-Plattformen setzen die Erbringung ihrer Dienste fuer Nutzer aus, die haeufig offensichtlich rechtswidrige Inhalte bereitstellen. Vorherige Warnung erforderlich.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 21", "title": "Aussetzung"}], + "sources": [{"type": "article", "ref": "Art. 21 DSA"}], + "category": "Organisatorisch", + "responsible": "Content-Moderation-Team", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Eskalationsstufenmodell", "Warnprotokolle", "Aussetzungsentscheidungen"], + "priority": "mittel", + "tom_control_ids": ["TOM.OPS.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-016", + "title": "Internes Beschwerdemanagementsystem", + "description": "Bereitstellung eines elektronischen und benutzerfreundlichen internen Beschwerdemanagementsystems, ueber das Nutzer Entscheidungen zur Inhaltsmoderation anfechten koennen. Entscheidungen duerfen nicht ausschliesslich automatisiert getroffen werden.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 22", "title": "Internes Beschwerdemanagementsystem"}], + "sources": [{"type": "article", "ref": "Art. 22 DSA"}], + "category": "Technisch", + "responsible": "Produktmanagement", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Implementiertes Beschwerdesystem", "Verarbeitungsstatistik", "Human-Review-Nachweis"], + "priority": "kritisch", + "tom_control_ids": ["TOM.OPS.01", "TOM.OPS.02"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-017", + "title": "Aussergerichtliche Streitbeilegung", + "description": "Nutzer muessen die Moeglichkeit haben, sich an eine zertifizierte aussergerichtliche Streitbeilegungsstelle zu wenden. Plattformen muessen mit diesen Stellen zusammenarbeiten.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 23", "title": "Aussergerichtliche Streitbeilegung"}], + "sources": [{"type": "article", "ref": "Art. 23 DSA"}], + "category": "Organisatorisch", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Hinweis auf Streitbeilegungsstellen in AGB", "Kooperationsvereinbarungen"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-018", + "title": "Vorrang behoerdlicher Anordnungen", + "description": "Online-Plattformen muessen behoerdliche Anordnungen gegen rechtswidrige Inhalte vorrangig bearbeiten und den behoerdlichen Anweisungen fristgerecht Folge leisten.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 24", "title": "Pflichten im Zusammenhang mit Anordnungen"}], + "sources": [{"type": "article", "ref": "Art. 24 DSA"}], + "category": "Compliance", + "responsible": "Rechtsabteilung", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": ["Anordnungsregister", "Fristeinhaltungsprotokolle"], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.OPS.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-019", + "title": "Werbetransparenz — Kennzeichnungspflicht", + "description": "Jede Werbung auf der Plattform muss klar und eindeutig als Werbung gekennzeichnet sein. Der Auftraggeber und die Finanzierungsquelle muessen erkennbar sein.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 26", "title": "Werbung auf Online-Plattformen"}], + "sources": [{"type": "article", "ref": "Art. 26 DSA"}], + "category": "Technisch", + "responsible": "Produktmanagement", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Werbekennzeichnungs-Implementierung", "Audit der Werbeanzeigen"], + "priority": "hoch", + "tom_control_ids": ["TOM.OPS.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-020", + "title": "Verbot von Dark Patterns", + "description": "Gestaltung der Online-Schnittstelle darf Nutzer nicht taueschen, manipulieren oder in ihrer Entscheidungsfreiheit beeintraechtigen (Verbot von Dark Patterns).", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 27", "title": "Verbot taeuschender Gestaltung"}], + "sources": [{"type": "article", "ref": "Art. 27 DSA"}], + "category": "Technisch", + "responsible": "UX-Team", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["UX-Audit auf Dark Patterns", "Design-Review-Protokolle"], + "priority": "hoch", + "tom_control_ids": ["TOM.OPS.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-021", + "title": "Transparenz von Empfehlungssystemen", + "description": "Plattformen muessen in ihren AGB die Hauptparameter der Empfehlungssysteme und die Moeglichkeit fuer Nutzer, diese zu beeinflussen, darlegen. Mindestens eine nicht-profilbasierte Option muss angeboten werden.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 28", "title": "Empfehlungssysteme"}], + "sources": [{"type": "article", "ref": "Art. 28 DSA"}], + "category": "Technisch", + "responsible": "Produktmanagement", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Dokumentation der Empfehlungsparameter", "Nutzerwahlmoeglichkeit implementiert"], + "priority": "hoch", + "tom_control_ids": ["TOM.OPS.01", "TOM.GOV.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-022", + "title": "Minderjaehrigenschutz auf Plattformen", + "description": "Online-Plattformen muessen geeignete Massnahmen zum Schutz Minderjaehriger treffen, einschliesslich altersgerechter Datenschutzeinstellungen. Werbung auf Basis von Profiling Minderjaehriger ist verboten.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 29", "title": "Schutz Minderjaehriger"}], + "sources": [{"type": "article", "ref": "Art. 29 DSA"}], + "category": "Technisch", + "responsible": "Produktmanagement", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Jugendschutzkonzept", "Altersverifikationslogik", "Profiling-Ausschluss fuer Minderjaehrige"], + "priority": "kritisch", + "tom_control_ids": ["TOM.OPS.01", "TOM.GOV.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-023", + "title": "VLOP/VLOSE — Zusaetzliche Transparenz Werbearchiv", + "description": "Sehr grosse Online-Plattformen muessen ein oeffentlich zugaengliches Werbearchiv fuehren, das alle geschalteten Werbeanzeigen mit Targeting-Parametern, Auftraggeber und Laufzeit enthaelt.", + "applies_when": "platform_user_count >= 45000000", + "applies_when_condition": {"field": "data_protection.platform_user_count", "operator": "GREATER_OR_EQUAL", "value": 45000000}, + "legal_basis": [{"norm": "DSA", "article": "Art. 30", "title": "Zusaetzliche Transparenz der Online-Werbung"}], + "sources": [{"type": "article", "ref": "Art. 30 DSA"}], + "category": "Technisch", + "responsible": "Produktmanagement", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Implementiertes Werbearchiv", "API-Zugang fuer Forscher"], + "priority": "kritisch", + "tom_control_ids": ["TOM.OPS.01", "TOM.GOV.03"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-024", + "title": "VLOP/VLOSE — Empfehlungssystem Nutzerwahlrecht", + "description": "Sehr grosse Plattformen muessen Nutzern mindestens eine Option zur Verfuegung stellen, bei der das Empfehlungssystem nicht auf Profiling basiert.", + "applies_when": "platform_user_count >= 45000000", + "applies_when_condition": {"field": "data_protection.platform_user_count", "operator": "GREATER_OR_EQUAL", "value": 45000000}, + "legal_basis": [{"norm": "DSA", "article": "Art. 31", "title": "Empfehlungssysteme fuer VLOPs"}], + "sources": [{"type": "article", "ref": "Art. 31 DSA"}], + "category": "Technisch", + "responsible": "Produktmanagement", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Nicht-profilbasierte Empfehlungsoption", "Nutzerauswahl-UI"], + "priority": "hoch", + "tom_control_ids": ["TOM.OPS.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-025", + "title": "VLOP/VLOSE — Datenzugang fuer Forscher", + "description": "Sehr grosse Plattformen muessen zugelassenen Forschern auf Antrag Zugang zu Daten gewaehren, um systemische Risiken zu erforschen. Der Zugang erfolgt ueber technische Schnittstellen.", + "applies_when": "platform_user_count >= 45000000", + "applies_when_condition": {"field": "data_protection.platform_user_count", "operator": "GREATER_OR_EQUAL", "value": 45000000}, + "legal_basis": [{"norm": "DSA", "article": "Art. 32", "title": "Datenzugang fuer Forscher"}], + "sources": [{"type": "article", "ref": "Art. 32 DSA"}], + "category": "Technisch", + "responsible": "CTO", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Forschungsdaten-API", "Antragsverfahren dokumentiert", "Datenschutzkonzept fuer Forschungsdaten"], + "priority": "hoch", + "tom_control_ids": ["TOM.OPS.01", "TOM.GOV.03"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-026", + "title": "VLOP/VLOSE — Systemische Risikobewertung", + "description": "Jaehrliche Bewertung systemischer Risiken wie illegale Inhalte, Grundrechtsbeeintraechtigungen, Manipulation von Wahlen und Auswirkungen auf Minderjaehrige. Die Bewertung muss dokumentiert und der Aufsichtsbehoerde vorgelegt werden.", + "applies_when": "platform_user_count >= 45000000", + "applies_when_condition": {"field": "data_protection.platform_user_count", "operator": "GREATER_OR_EQUAL", "value": 45000000}, + "legal_basis": [{"norm": "DSA", "article": "Art. 33", "title": "Bewertung systemischer Risiken"}], + "sources": [{"type": "article", "ref": "Art. 33 DSA"}], + "category": "Governance", + "responsible": "Compliance-Beauftragter", + "deadline": {"type": "recurring", "interval": "P1Y"}, + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": ["Systemische Risikobewertung", "Massnahmenplan", "Vorlage bei Aufsichtsbehoerde"], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.02", "TOM.GOV.03"], + "breakpilot_feature": "/sdk/risk-assessment", + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-027", + "title": "VLOP/VLOSE — Risikominderungsmassnahmen", + "description": "Ergreifung angemessener, verhaeltnismaessiger und wirksamer Risikominderungsmassnahmen fuer die identifizierten systemischen Risiken. Massnahmen muessen regelmaessig ueberprueft und angepasst werden.", + "applies_when": "platform_user_count >= 45000000", + "applies_when_condition": {"field": "data_protection.platform_user_count", "operator": "GREATER_OR_EQUAL", "value": 45000000}, + "legal_basis": [{"norm": "DSA", "article": "Art. 34", "title": "Risikominderung"}], + "sources": [{"type": "article", "ref": "Art. 34 DSA"}], + "category": "Governance", + "responsible": "Compliance-Beauftragter", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": ["Risikominderungsplan", "Wirksamkeitsbewertung", "Anpassungsdokumentation"], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.02"], + "breakpilot_feature": "/sdk/risk-assessment", + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-028", + "title": "VLOP/VLOSE — Unabhaengige Audits", + "description": "Jaehrliche unabhaengige Audits auf eigene Kosten zur Bewertung der Einhaltung der DSA-Pflichten. Der Auditbericht wird der Aufsichtsbehoerde uebermittelt und ein Zusammenfassung veroeffentlicht.", + "applies_when": "platform_user_count >= 45000000", + "applies_when_condition": {"field": "data_protection.platform_user_count", "operator": "GREATER_OR_EQUAL", "value": 45000000}, + "legal_basis": [{"norm": "DSA", "article": "Art. 35", "title": "Unabhaengige Pruefung"}], + "sources": [{"type": "article", "ref": "Art. 35 DSA"}], + "category": "Audit", + "responsible": "Geschaeftsfuehrung", + "deadline": {"type": "recurring", "interval": "P1Y"}, + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": ["Auditbericht", "Massnahmenplan aus Audit-Ergebnissen", "Veroeffentlichte Zusammenfassung"], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.03"], + "breakpilot_feature": "/sdk/audit", + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-029", + "title": "Compliance-Beauftragter (VLOP/VLOSE)", + "description": "Sehr grosse Plattformen muessen einen oder mehrere Compliance-Beauftragte benennen, die die Einhaltung des DSA ueberwachen. Der Beauftragte berichtet direkt an die Leitungsebene.", + "applies_when": "platform_user_count >= 45000000", + "applies_when_condition": {"field": "data_protection.platform_user_count", "operator": "GREATER_OR_EQUAL", "value": 45000000}, + "legal_basis": [{"norm": "DSA", "article": "Art. 37", "title": "Compliance-Funktion"}], + "sources": [{"type": "article", "ref": "Art. 37 DSA"}], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Benennungsurkunde", "Berichtsstruktur", "Kompetenznachweis"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.02"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-030", + "title": "Datenzugang fuer Aufsichtsbehoerden", + "description": "Auf Anfrage muessen Plattformen den Koordinatoren fuer digitale Dienste und der Kommission Zugang zu relevanten Daten gewaehren, die zur Ueberwachung der DSA-Einhaltung erforderlich sind.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 38", "title": "Datenzugang und Datenueberpruefung"}], + "sources": [{"type": "article", "ref": "Art. 38 DSA"}], + "category": "Compliance", + "responsible": "Compliance-Beauftragter", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Datenzugangsprozess dokumentiert", "Technische Schnittstelle fuer Behoerden"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.OPS.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-031", + "title": "VLOP/VLOSE — Datenzugang fuer ueberprueften Forscher", + "description": "Gewaehrung eines angemessenen Datenzugangs fuer von der Aufsichtsbehoerde ueberprueften Forscher zur Erforschung systemischer Risiken. Personenbezogene Daten nur anonymisiert oder pseudonymisiert.", + "applies_when": "platform_user_count >= 45000000", + "applies_when_condition": {"field": "data_protection.platform_user_count", "operator": "GREATER_OR_EQUAL", "value": 45000000}, + "legal_basis": [{"norm": "DSA", "article": "Art. 39", "title": "Datenzugang fuer ueberprueften Forscher"}], + "sources": [{"type": "article", "ref": "Art. 39 DSA"}], + "category": "Technisch", + "responsible": "CTO", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Pseudonymisierungskonzept", "Forschungsdaten-Zugangsverfahren"], + "priority": "hoch", + "tom_control_ids": ["TOM.OPS.01", "TOM.GOV.03"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-032", + "title": "Verhaltenskodizes", + "description": "Unterstuetzung und Einhaltung freiwilliger Verhaltenskodizes auf EU-Ebene zur Bekaempfung rechtswidriger Inhalte und zum Schutz der Nutzer. Die Kommission foerdert die Erarbeitung solcher Kodizes.", + "applies_when": "organization.operates_platform == true", + "applies_when_condition": {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + "legal_basis": [{"norm": "DSA", "article": "Art. 40", "title": "Verhaltenskodizes"}], + "sources": [{"type": "article", "ref": "Art. 40 DSA"}], + "category": "Governance", + "responsible": "Compliance-Beauftragter", + "sanctions": {"max_fine": "1% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Beitrittserklarung zu Verhaltenskodizes", "Umsetzungsbericht"], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-033", + "title": "Krisenreaktionsprotokolle", + "description": "Bei aussergewoehnlichen Umstaenden (z.B. Pandemie, bewaffnete Konflikte) kann die Kommission VLOPs/VLOSEs zur Teilnahme an Krisenprotokollen verpflichten. Schnelle Reaktionsmechanismen muessen vorbereitet sein.", + "applies_when": "platform_user_count >= 45000000", + "applies_when_condition": {"field": "data_protection.platform_user_count", "operator": "GREATER_OR_EQUAL", "value": 45000000}, + "legal_basis": [{"norm": "DSA", "article": "Art. 42", "title": "Krisenreaktionsprotokolle"}], + "sources": [{"type": "article", "ref": "Art. 42 DSA"}], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": ["Krisenreaktionsplan", "Ansprechpartner fuer Krisenkoordination"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.OPS.01"], + "breakpilot_feature": "/sdk/notfallplan", + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-034", + "title": "Koordinator fuer digitale Dienste — Kooperation", + "description": "Plattformen muessen mit dem nationalen Koordinator fuer digitale Dienste (DSC) kooperieren, Informationen bereitstellen und Anordnungen fristgerecht umsetzen.", + "applies_when": "organization.operates_platform == true AND organization.eu_member == true", + "applies_when_condition": { + "all_of": [ + {"field": "data_protection.operates_platform", "operator": "EQUALS", "value": true}, + {"field": "organization.eu_member", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [{"norm": "DSA", "article": "Art. 44", "title": "Koordinatoren fuer digitale Dienste"}], + "sources": [{"type": "article", "ref": "Art. 44 DSA"}], + "category": "Compliance", + "responsible": "Compliance-Beauftragter", + "sanctions": {"max_fine": "6% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Kooperationsprotokolle mit DSC", "Fristenkontrolle fuer Anordnungen"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSA-OBL-035", + "title": "Aufsichtsgebuehr (VLOP/VLOSE)", + "description": "Sehr grosse Plattformen und Suchmaschinen muessen eine jaehrliche Aufsichtsgebuehr an die Kommission entrichten. Die Hoehe wird auf Basis des Umsatzes berechnet.", + "applies_when": "platform_user_count >= 45000000", + "applies_when_condition": {"field": "data_protection.platform_user_count", "operator": "GREATER_OR_EQUAL", "value": 45000000}, + "legal_basis": [{"norm": "DSA", "article": "Art. 47", "title": "Aufsichtsgebuehr"}], + "sources": [{"type": "article", "ref": "Art. 47 DSA"}], + "category": "Compliance", + "responsible": "Finanzabteilung", + "deadline": {"type": "recurring", "interval": "P1Y"}, + "sanctions": {"max_fine": "1% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": ["Zahlungsnachweis Aufsichtsgebuehr", "Umsatzberechnung"], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2024-02-17", + "valid_until": null, + "version": "1.0" + } + ], + "controls": [ + { + "id": "DSA-CTRL-001", + "name": "Notice-and-Action-System", + "description": "Technisches System zur Entgegennahme, Bearbeitung und Dokumentation von Meldungen rechtswidriger Inhalte", + "category": "Technisch", + "what_to_do": "Implementierung eines elektronischen Meldeformulars mit Eingangsbestaetigung, Bearbeitungs-Tracking und Begruendungsgenerierung", + "priority": "kritisch" + }, + { + "id": "DSA-CTRL-002", + "name": "Transparenzberichts-Framework", + "description": "Prozess und Tooling fuer die regelmaessige Erstellung und Veroeffentlichung von Transparenzberichten", + "category": "Organisatorisch", + "what_to_do": "Aufbau eines Daten-Pipelines zur automatisierten Erfassung von Moderationsstatistiken, Beschwerden und behoerdlichen Anordnungen", + "priority": "hoch" + }, + { + "id": "DSA-CTRL-003", + "name": "Internes Beschwerdemanagement", + "description": "Elektronisches System fuer Nutzerbeschwerden gegen Moderationsentscheidungen mit Human-Review-Garantie", + "category": "Technisch", + "what_to_do": "Bereitstellung eines Beschwerdeformulars mit Eskalationsstufen, SLA-Tracking und Nachweis menschlicher Ueberpruefung", + "priority": "kritisch" + }, + { + "id": "DSA-CTRL-004", + "name": "Werbetransparenz-Archiv", + "description": "Oeffentlich zugaengliches Repository aller geschalteten Werbeanzeigen mit Targeting- und Auftraggeberinformationen", + "category": "Technisch", + "what_to_do": "Implementierung eines durchsuchbaren Werbearchivs mit API-Zugang, Aufbewahrungsfrist mindestens 1 Jahr nach letzter Ausspielung", + "priority": "hoch" + }, + { + "id": "DSA-CTRL-005", + "name": "Systemische Risikobewertung", + "description": "Jaehrlicher Prozess zur Identifikation und Bewertung systemischer Risiken fuer VLOPs/VLOSEs", + "category": "Governance", + "what_to_do": "Durchfuehrung einer strukturierten Risikobewertung zu illegalen Inhalten, Grundrechtsbeeintraechtigungen, Wahlmanipulation und Auswirkungen auf Minderjaehrige", + "priority": "kritisch" + } + ], + "incident_deadlines": [ + { + "phase": "Kenntniserlangung rechtswidriger Inhalte", + "deadline": "Unverzueglich (ohne schuldhaftes Zoegern)", + "content": "Entfernung oder Sperrung des Zugangs zu rechtswidrigen Inhalten", + "recipient": "Intern — Content-Moderation-Team", + "legal_basis": [{"norm": "DSA", "article": "Art. 8"}] + }, + { + "phase": "Meldung strafbarer Inhalte", + "deadline": "Unverzueglich nach Kenntniserlangung", + "content": "Information der zustaendigen Strafverfolgungsbehoerden bei Verdacht auf Straftaten gegen Leben oder Sicherheit", + "recipient": "Zustaendige Strafverfolgungsbehoerde", + "legal_basis": [{"norm": "DSA", "article": "Art. 18"}] + }, + { + "phase": "Reaktion auf behoerdliche Anordnung", + "deadline": "Frist gemaess Anordnung, spaetestens 72 Stunden", + "content": "Umsetzung der angeordneten Massnahme und Bestaetigung an die anordnende Behoerde", + "recipient": "Anordnende Behoerde / DSC", + "legal_basis": [{"norm": "DSA", "article": "Art. 24"}] + }, + { + "phase": "Transparenzbericht (Vermittlungsdienste)", + "deadline": "Jaehrlich, spaetestens 2 Monate nach Berichtszeitraum", + "content": "Veroeffentlichung des Transparenzberichts zu Inhaltsmoderation, Anordnungen und Beschwerden", + "recipient": "Oeffentlichkeit / DSC", + "legal_basis": [{"norm": "DSA", "article": "Art. 14"}] + }, + { + "phase": "Transparenzbericht (VLOP/VLOSE)", + "deadline": "Halbjaehrlich", + "content": "Erweiterter Transparenzbericht mit automatisierter Moderation, Trusted Flagger und Forschungsdaten", + "recipient": "Oeffentlichkeit / Kommission / DSC", + "legal_basis": [{"norm": "DSA", "article": "Art. 15"}] + } + ] +} \ No newline at end of file diff --git a/ai-compliance-sdk/policies/obligations/v2/dsgvo_v2.json b/ai-compliance-sdk/policies/obligations/v2/dsgvo_v2.json new file mode 100644 index 0000000..ffef0b6 --- /dev/null +++ b/ai-compliance-sdk/policies/obligations/v2/dsgvo_v2.json @@ -0,0 +1,4678 @@ +{ + "regulation": "dsgvo", + "regulation_full_name": "Datenschutz-Grundverordnung (EU) 2016/679", + "version": "1.0", + "obligations": [ + { + "id": "DSGVO-OBL-001", + "title": "Verarbeitungsverzeichnis fuehren", + "description": "Fuehrung eines Verzeichnisses aller Verarbeitungstaetigkeiten mit Angabe der Zwecke, Kategorien betroffener Personen, Empfaenger, Uebermittlungen in Drittlaender und Loeschfristen.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 30", + "title": "Verzeichnis von Verarbeitungstaetigkeiten", + "erwaegungsgrund": "EG 82" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 30 DSGVO" + }, + { + "type": "erwaegungsgrund", + "ref": "EG 82" + }, + { + "type": "dsk_kurzpapier", + "ref": "DSK KP Nr. 1" + } + ], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Verarbeitungsverzeichnis", + "required": true + }, + { + "name": "Regelmaessige Aktualisierung dokumentiert", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.01", + "TOM.GOV.02" + ], + "breakpilot_feature": "/sdk/vvt", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-002", + "title": "Technische und organisatorische Massnahmen (TOMs)", + "description": "Implementierung geeigneter technischer und organisatorischer Massnahmen zum Schutz personenbezogener Daten unter Beruecksichtigung des Stands der Technik.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 32", + "title": "Sicherheit der Verarbeitung", + "erwaegungsgrund": "EG 83" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 32 DSGVO" + }, + { + "type": "erwaegungsgrund", + "ref": "EG 83" + }, + { + "type": "dsk_kurzpapier", + "ref": "DSK KP Nr. 18" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "TOM-Dokumentation", + "required": true + }, + { + "name": "Risikoanalyse", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.CRYPTO.01", + "TOM.CRYPTO.02", + "TOM.IAM.01", + "TOM.AC.01", + "TOM.NET.01" + ], + "breakpilot_feature": "/sdk/tom", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-003", + "title": "Datenschutz-Folgenabschaetzung (DSFA)", + "description": "Durchfuehrung einer DSFA bei Verarbeitungsvorgaengen mit voraussichtlich hohem Risiko fuer die Rechte und Freiheiten natuerlicher Personen.", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + }, + { + "field": "data_protection.large_scale_processing", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 35", + "title": "Datenschutz-Folgenabschaetzung", + "erwaegungsgrund": "EG 84, 89-92" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 35 DSGVO" + }, + { + "type": "erwaegungsgrund", + "ref": "EG 84" + }, + { + "type": "edpb_guideline", + "ref": "EDPB Guidelines WP 248 rev.01" + } + ], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Vor Beginn der Verarbeitung" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "DSFA-Dokumentation", + "required": true + }, + { + "name": "Risikobewertung", + "required": true + } + ], + "priority": "kritisch", + "tom_control_ids": [ + "TOM.GOV.01", + "TOM.GOV.03" + ], + "breakpilot_feature": "/sdk/dsfa", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-004", + "title": "Datenschutzbeauftragten benennen", + "description": "Benennung eines DSB bei oeffentlichen Stellen, systematischer Ueberwachung im grossen Umfang oder Verarbeitung besonderer Kategorien. In DE: ab 20 MA.", + "applies_when": "needs_dpo", + "applies_when_condition": { + "any_of": [ + { + "field": "data_protection.needs_dpo", + "operator": "EQUALS", + "value": true + }, + { + "field": "organization.employee_count", + "operator": "GREATER_THAN", + "value": 19 + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 37", + "title": "Benennung eines Datenschutzbeauftragten", + "erwaegungsgrund": "EG 97" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 37 DSGVO" + }, + { + "type": "article", + "ref": "§ 38 BDSG" + } + ], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "deadline": { + "type": "event", + "trigger": "Ab Schwellenwert" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "DSB-Bestellung", + "required": true + }, + { + "name": "Meldung an Aufsichtsbehoerde", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.01" + ], + "breakpilot_feature": "/sdk/dsb-portal", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-005", + "title": "Auftragsverarbeitungsvertrag (AVV)", + "description": "Abschluss eines AVV mit allen Auftragsverarbeitern gemaess Art. 28 Abs. 3 DSGVO.", + "applies_when": "uses_processors", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + }, + { + "field": "data_protection.uses_processors", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 28", + "title": "Auftragsverarbeiter", + "erwaegungsgrund": "EG 81" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 28 DSGVO" + }, + { + "type": "dsk_kurzpapier", + "ref": "DSK KP Nr. 13" + } + ], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Vor Verarbeitung" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "AVV-Vertrag", + "required": true + }, + { + "name": "TOM-Nachweis Auftragsverarbeiter", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.VENDOR.01", + "TOM.VENDOR.02" + ], + "breakpilot_feature": "/sdk/vendor-compliance", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-006", + "title": "Informationspflichten erfuellen", + "description": "Information der betroffenen Personen ueber die Verarbeitung ihrer Daten bei Erhebung (Art. 13) oder nachtraeglich (Art. 14).", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 13", + "title": "Informationspflicht bei Erhebung", + "erwaegungsgrund": "EG 60-62" + }, + { + "norm": "DSGVO", + "article": "Art. 14", + "title": "Informationspflicht bei Dritterhebung", + "erwaegungsgrund": "EG 60-62" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 13 DSGVO" + }, + { + "type": "article", + "ref": "Art. 14 DSGVO" + }, + { + "type": "dsk_kurzpapier", + "ref": "DSK KP Nr. 10" + } + ], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Bei Datenerhebung" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Datenschutzerklaerung", + "required": true + }, + { + "name": "Informationsblaetter", + "required": false + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.02" + ], + "breakpilot_feature": "/sdk/policy-generator", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-007", + "title": "Betroffenenrechte umsetzen", + "description": "Einrichtung von Prozessen zur Bearbeitung von Betroffenenanfragen innerhalb von 1 Monat: Auskunft, Berichtigung, Loeschung, Einschraenkung, Datenportabilitaet, Widerspruch.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 15-21", + "title": "Betroffenenrechte", + "erwaegungsgrund": "EG 63-73" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 15-21 DSGVO" + }, + { + "type": "dsk_kurzpapier", + "ref": "DSK KP Nr. 11" + } + ], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "relative", + "interval": "1 Monat nach Anfrage" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "DSR-Prozess dokumentiert", + "required": true + }, + { + "name": "Bearbeitungsprotokolle", + "required": true + } + ], + "priority": "kritisch", + "tom_control_ids": [ + "TOM.DATA.01", + "TOM.GOV.02" + ], + "breakpilot_feature": "/sdk/dsr", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-008", + "title": "Einwilligungen dokumentieren", + "description": "Nachweis gueltiger Einwilligungen: freiwillig, informiert, spezifisch, unmissverstaendlich, widerrufbar.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 7", + "title": "Bedingungen fuer die Einwilligung", + "erwaegungsgrund": "EG 32, 42-43" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 7 DSGVO" + }, + { + "type": "edpb_guideline", + "ref": "EDPB Guidelines 05/2020" + } + ], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Consent-Management-System", + "required": true + }, + { + "name": "Einwilligungsprotokolle", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.02", + "TOM.DATA.01" + ], + "breakpilot_feature": "/sdk/consent", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-009", + "title": "Loeschkonzept umsetzen", + "description": "Implementierung eines Loeschkonzepts mit definierten Aufbewahrungsfristen und automatisierten Loeschroutinen.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 17", + "title": "Recht auf Loeschung", + "erwaegungsgrund": "EG 65-66" + }, + { + "norm": "DSGVO", + "article": "Art. 5 Abs. 1 lit. e", + "title": "Speicherbegrenzung", + "erwaegungsgrund": "EG 39" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 17 DSGVO" + }, + { + "type": "article", + "ref": "Art. 5 Abs. 1 lit. e DSGVO" + }, + { + "type": "dsk_kurzpapier", + "ref": "DSK KP Nr. 11" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Loeschkonzept", + "required": true + }, + { + "name": "Loeschprotokolle", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.DATA.01", + "TOM.DATA.02" + ], + "breakpilot_feature": "/sdk/loeschfristen", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-010", + "title": "Drittlandtransfer absichern", + "description": "Bei Uebermittlung in Drittlaender ohne Angemessenheitsbeschluss: SCCs, BCRs oder andere Garantien. Transfer Impact Assessment durchfuehren.", + "applies_when": "cross_border", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.cross_border_transfer", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 44-49", + "title": "Uebermittlung in Drittlaender", + "erwaegungsgrund": "EG 101-114" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 44-49 DSGVO" + }, + { + "type": "edpb_guideline", + "ref": "EDPB Recommendations 01/2020" + } + ], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Vor Uebermittlung" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "SCCs abgeschlossen", + "required": true + }, + { + "name": "Transfer Impact Assessment", + "required": true + } + ], + "priority": "kritisch", + "tom_control_ids": [ + "TOM.VENDOR.01", + "TOM.VENDOR.03" + ], + "breakpilot_feature": "/sdk/vendor-compliance", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-011", + "title": "Meldeprozess Datenschutzverletzungen", + "description": "Etablierung eines Prozesses zur Erkennung, Bewertung und Meldung von Datenschutzverletzungen innerhalb von 72 Stunden.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 33", + "title": "Meldung an Aufsichtsbehoerde", + "erwaegungsgrund": "EG 85-88" + }, + { + "norm": "DSGVO", + "article": "Art. 34", + "title": "Benachrichtigung Betroffener", + "erwaegungsgrund": "EG 86-88" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 33 DSGVO" + }, + { + "type": "article", + "ref": "Art. 34 DSGVO" + }, + { + "type": "edpb_guideline", + "ref": "EDPB Guidelines 01/2021" + } + ], + "category": "Meldepflicht", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "absolute", + "duration": "72 Stunden" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Breach-Notification-Prozess", + "required": true + }, + { + "name": "Meldevorlage", + "required": true + } + ], + "priority": "kritisch", + "tom_control_ids": [ + "TOM.OPS.01", + "TOM.OPS.02", + "TOM.LOG.01" + ], + "breakpilot_feature": "/sdk/incident-response", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-012", + "title": "Rechtmaessigkeit der Verarbeitung sicherstellen", + "description": "Jede Verarbeitung muss auf einer Rechtsgrundlage nach Art. 6 Abs. 1 basieren. Dokumentation der Rechtsgrundlage pro Verarbeitungstaetigkeit.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 5 Abs. 1 lit. a", + "title": "Rechtmaessigkeit", + "erwaegungsgrund": "EG 39-40" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 5 Abs. 1 lit. a DSGVO" + }, + { + "type": "article", + "ref": "Art. 6 DSGVO" + } + ], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Dokumentierte Rechtsgrundlagen", + "required": true + } + ], + "priority": "kritisch", + "tom_control_ids": [ + "TOM.GOV.01", + "TOM.GOV.02" + ], + "breakpilot_feature": "/sdk/vvt", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-013", + "title": "Zweckbindung einhalten", + "description": "Personenbezogene Daten duerfen nur fuer festgelegte, eindeutige und legitime Zwecke erhoben und nicht in einer damit unvereinbaren Weise weiterverarbeitet werden.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 5 Abs. 1 lit. b", + "title": "Zweckbindung", + "erwaegungsgrund": "EG 39, 50" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 5 Abs. 1 lit. b DSGVO" + } + ], + "category": "Governance", + "responsible": "Verantwortlicher", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Zweckdokumentation je Verarbeitung", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.01" + ], + "breakpilot_feature": "/sdk/vvt", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-014", + "title": "Datenminimierung umsetzen", + "description": "Nur solche personenbezogenen Daten erheben, die dem Zweck angemessen, erheblich und auf das notwendige Mass beschraenkt sind.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 5 Abs. 1 lit. c", + "title": "Datenminimierung", + "erwaegungsgrund": "EG 39" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 5 Abs. 1 lit. c DSGVO" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Datenminimierungs-Konzept", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.DATA.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-015", + "title": "Richtigkeit der Daten gewaehrleisten", + "description": "Personenbezogene Daten muessen sachlich richtig und auf dem neuesten Stand sein. Unrichtige Daten sind unverzueglich zu berichtigen oder zu loeschen.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 5 Abs. 1 lit. d", + "title": "Richtigkeit", + "erwaegungsgrund": "EG 39" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 5 Abs. 1 lit. d DSGVO" + } + ], + "category": "Organisatorisch", + "responsible": "Verantwortlicher", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Datenqualitaetsprozess", + "required": true + } + ], + "priority": "mittel", + "tom_control_ids": [ + "TOM.DATA.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-016", + "title": "Rechenschaftspflicht erfuellen", + "description": "Der Verantwortliche muss die Einhaltung der Datenschutzgrundsaetze nachweisen koennen (Accountability).", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 5 Abs. 2", + "title": "Rechenschaftspflicht", + "erwaegungsgrund": "EG 74, 85" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 5 Abs. 2 DSGVO" + }, + { + "type": "dsk_kurzpapier", + "ref": "DSK KP Nr. 1" + } + ], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Compliance-Dokumentation", + "required": true + }, + { + "name": "Audit-Trail", + "required": true + } + ], + "priority": "kritisch", + "tom_control_ids": [ + "TOM.GOV.01", + "TOM.GOV.02", + "TOM.LOG.01" + ], + "breakpilot_feature": "/sdk/audit", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-017", + "title": "Interessenabwaegung bei berechtigtem Interesse", + "description": "Bei Verarbeitung auf Grundlage berechtigter Interessen (Art. 6 Abs. 1 lit. f): dokumentierte Abwaegung zwischen Interessen des Verantwortlichen und der betroffenen Person.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 6 Abs. 1 lit. f", + "title": "Berechtigtes Interesse", + "erwaegungsgrund": "EG 47-49" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 6 Abs. 1 lit. f DSGVO" + } + ], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Vor Verarbeitungsbeginn" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Interessenabwaegung dokumentiert", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-018", + "title": "Zweckaenderung pruefen", + "description": "Bei Weiterverarbeitung zu einem anderen Zweck: Vereinbarkeitstest nach Art. 6 Abs. 4 durchfuehren und dokumentieren.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 6 Abs. 4", + "title": "Vereinbarkeitstest", + "erwaegungsgrund": "EG 50" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 6 Abs. 4 DSGVO" + } + ], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Vor Zweckaenderung" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Vereinbarkeitspruefung", + "required": true + } + ], + "priority": "mittel", + "tom_control_ids": [ + "TOM.GOV.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-019", + "title": "Besondere Kategorien schuetzen", + "description": "Verarbeitung besonderer Datenkategorien (Gesundheit, Biometrie, Religion, Ethnie, polit. Meinung, Gewerkschaft, Genetik, Sexualleben) grundsaetzlich untersagt — Ausnahmen nur nach Art. 9 Abs. 2.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + }, + { + "field": "data_protection.processes_special_categories", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 9 Abs. 1", + "title": "Besondere Kategorien", + "erwaegungsgrund": "EG 51-56" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 9 DSGVO" + }, + { + "type": "dsk_kurzpapier", + "ref": "DSK KP Nr. 17" + } + ], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Vor Verarbeitung" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Ausnahmetatbestand dokumentiert", + "required": true + }, + { + "name": "DSFA bei Hochrisiko", + "required": true + } + ], + "priority": "kritisch", + "tom_control_ids": [ + "TOM.GOV.01", + "TOM.CRYPTO.01", + "TOM.AC.01" + ], + "breakpilot_feature": "/sdk/dsfa", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-020", + "title": "Gesundheitsdaten besonders schuetzen", + "description": "Verarbeitung von Gesundheitsdaten erfordert zusaetzliche Schutzmassnahmen: Verschluesselung, Zugriffsbeschraenkung, Protokollierung.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_health_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 9 Abs. 2", + "title": "Ausnahmen besondere Kategorien", + "erwaegungsgrund": "EG 53-54" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 9 Abs. 2 DSGVO" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Schutzkonzept Gesundheitsdaten", + "required": true + } + ], + "priority": "kritisch", + "tom_control_ids": [ + "TOM.CRYPTO.01", + "TOM.CRYPTO.02", + "TOM.AC.01", + "TOM.LOG.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-021", + "title": "Verarbeitung von Straftaten-Daten einschraenken", + "description": "Verarbeitung von personenbezogenen Daten ueber strafrechtliche Verurteilungen nur unter behoerdlicher Aufsicht oder nach nationalem Recht.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 10", + "title": "Straftaten und Verurteilungen", + "erwaegungsgrund": "EG 19" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 10 DSGVO" + } + ], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Rechtsgrundlage fuer Straftaten-Verarbeitung", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.01", + "TOM.AC.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-022", + "title": "Transparente Kommunikation gewaehrleisten", + "description": "Alle Informationen und Mitteilungen in praeizser, transparenter, verstaendlicher und leicht zugaenglicher Form in klarer und einfacher Sprache.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 12", + "title": "Transparente Information", + "erwaegungsgrund": "EG 58-59" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 12 DSGVO" + }, + { + "type": "edpb_guideline", + "ref": "EDPB Guidelines on Transparency" + } + ], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Verstaendliche Datenschutzerklaerungen", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.02" + ], + "breakpilot_feature": "/sdk/policy-generator", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-023", + "title": "Informationspflicht bei Dritterhebung (Art. 14)", + "description": "Wenn Daten nicht bei der betroffenen Person erhoben werden: Information innerhalb angemessener Frist, spaetestens nach einem Monat.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 14", + "title": "Informationspflicht bei Dritterhebung", + "erwaegungsgrund": "EG 61-62" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 14 DSGVO" + } + ], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "relative", + "interval": "1 Monat nach Erhebung" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Informationsschreiben Dritterhebung", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.02" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-024", + "title": "Auskunftsrecht umsetzen (Art. 15)", + "description": "Betroffene haben das Recht auf Auskunft, ob und welche Daten verarbeitet werden inkl. Kopie. Antwort innerhalb 1 Monat.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 15", + "title": "Auskunftsrecht", + "erwaegungsgrund": "EG 63" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 15 DSGVO" + }, + { + "type": "dsk_kurzpapier", + "ref": "DSK KP Nr. 6" + } + ], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "relative", + "interval": "1 Monat" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Auskunftsprozess dokumentiert", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.DATA.01", + "TOM.GOV.02" + ], + "breakpilot_feature": "/sdk/dsr", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-025", + "title": "Recht auf Berichtigung umsetzen (Art. 16)", + "description": "Betroffene haben das Recht auf unverzuegliche Berichtigung unrichtiger Daten und Vervollstaendigung unvollstaendiger Daten.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 16", + "title": "Recht auf Berichtigung", + "erwaegungsgrund": "EG 65" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 16 DSGVO" + } + ], + "category": "Organisatorisch", + "responsible": "Verantwortlicher", + "deadline": { + "type": "relative", + "interval": "unverzueglich" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Berichtigungsprozess", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.DATA.01" + ], + "breakpilot_feature": "/sdk/dsr", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-026", + "title": "Recht auf Loeschung umsetzen (Art. 17)", + "description": "Loeschung auf Anfrage wenn Zweck entfallen, Einwilligung widerrufen, Widerspruch, unrechtmaessige Verarbeitung. Informationspflicht an Empfaenger.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 17", + "title": "Recht auf Loeschung", + "erwaegungsgrund": "EG 65-66" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 17 DSGVO" + }, + { + "type": "dsk_kurzpapier", + "ref": "DSK KP Nr. 11" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "relative", + "interval": "unverzueglich" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Loeschprozess dokumentiert", + "required": true + }, + { + "name": "Empfaenger-Benachrichtigungsprozess", + "required": false + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.DATA.01", + "TOM.DATA.02" + ], + "breakpilot_feature": "/sdk/loeschfristen", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-027", + "title": "Recht auf Einschraenkung der Verarbeitung (Art. 18)", + "description": "Einschraenkung der Verarbeitung bei Bestreitung der Richtigkeit, unrechtmaessiger Verarbeitung, oder Widerspruch. Markierung und getrennte Speicherung.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 18", + "title": "Recht auf Einschraenkung", + "erwaegungsgrund": "EG 67" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 18 DSGVO" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "relative", + "interval": "unverzueglich" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Einschraenkungsmechanismus implementiert", + "required": true + } + ], + "priority": "mittel", + "tom_control_ids": [ + "TOM.DATA.01", + "TOM.AC.01" + ], + "breakpilot_feature": "/sdk/dsr", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-028", + "title": "Mitteilungspflicht an Empfaenger (Art. 19)", + "description": "Bei Berichtigung, Loeschung oder Einschraenkung: Mitteilung an jeden Empfaenger, dem die Daten offengelegt wurden.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + }, + { + "field": "data_protection.uses_processors", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 19", + "title": "Mitteilungspflicht", + "erwaegungsgrund": "EG 66" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 19 DSGVO" + } + ], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Nach Berichtigung/Loeschung" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Empfaengerliste", + "required": true + }, + { + "name": "Benachrichtigungsnachweis", + "required": false + } + ], + "priority": "mittel", + "tom_control_ids": [ + "TOM.DATA.01", + "TOM.VENDOR.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-029", + "title": "Recht auf Datenportabilitaet umsetzen (Art. 20)", + "description": "Bereitstellung personenbezogener Daten in strukturiertem, gaengigem, maschinenlesbarem Format. Recht auf direkte Uebermittlung an anderen Verantwortlichen.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 20", + "title": "Recht auf Datenportabilitaet", + "erwaegungsgrund": "EG 68" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 20 DSGVO" + }, + { + "type": "edpb_guideline", + "ref": "EDPB Guidelines WP 242 rev.01" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "relative", + "interval": "1 Monat" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Export-Funktion implementiert", + "required": true + } + ], + "priority": "mittel", + "tom_control_ids": [ + "TOM.DATA.01" + ], + "breakpilot_feature": "/sdk/dsr", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-030", + "title": "Widerspruchsrecht umsetzen (Art. 21)", + "description": "Widerspruchsrecht bei Verarbeitung auf Grundlage berechtigter Interessen oder oeffentlicher Aufgabe. Bei Direktwerbung: sofortige Einstellung.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 21", + "title": "Widerspruchsrecht", + "erwaegungsgrund": "EG 69-70" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 21 DSGVO" + } + ], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Nach Widerspruch" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Widerspruchsprozess dokumentiert", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.DATA.01", + "TOM.GOV.02" + ], + "breakpilot_feature": "/sdk/dsr", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-031", + "title": "Automatisierte Einzelentscheidungen schuetzen (Art. 22)", + "description": "Recht, nicht einer ausschliesslich auf automatisierter Verarbeitung beruhenden Entscheidung unterworfen zu sein, die rechtliche Wirkung entfaltet oder erheblich beeintraechtigt.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + }, + { + "field": "ai_usage.uses_ai", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 22", + "title": "Automatisierte Einzelentscheidung", + "erwaegungsgrund": "EG 71-72" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 22 DSGVO" + }, + { + "type": "edpb_guideline", + "ref": "EDPB Guidelines WP 251 rev.01" + } + ], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Human-in-the-Loop-Prozess", + "required": true + }, + { + "name": "Erklaerbarkeit der Entscheidung", + "required": true + } + ], + "priority": "kritisch", + "tom_control_ids": [ + "TOM.GOV.01", + "TOM.GOV.03", + "TOM.LOG.01" + ], + "breakpilot_feature": "/sdk/ai-act", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-032", + "title": "Geeignete Massnahmen umsetzen (Art. 24)", + "description": "Unter Beruecksichtigung von Art, Umfang, Umstaenden und Zwecken der Verarbeitung sowie der Eintrittswahrscheinlichkeit und Schwere der Risiken geeignete Massnahmen umsetzen.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 24", + "title": "Verantwortung des Verantwortlichen", + "erwaegungsgrund": "EG 74-77" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 24 DSGVO" + } + ], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Datenschutzmanagement-System", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.01", + "TOM.GOV.02", + "TOM.GOV.03" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-033", + "title": "Datenschutz durch Technikgestaltung (Privacy by Design)", + "description": "Technische und organisatorische Massnahmen (z.B. Pseudonymisierung) bereits bei der Konzeption der Verarbeitung implementieren.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 25 Abs. 1", + "title": "Datenschutz durch Technikgestaltung", + "erwaegungsgrund": "EG 78" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 25 Abs. 1 DSGVO" + }, + { + "type": "edpb_guideline", + "ref": "EDPB Guidelines 4/2019" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "event", + "trigger": "Bei System-Entwicklung" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Privacy-by-Design-Konzept", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.SDLC.01", + "TOM.SDLC.02" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-034", + "title": "Datenschutzfreundliche Voreinstellungen (Privacy by Default)", + "description": "Voreinstellungen muessen sicherstellen, dass nur fuer den Zweck erforderliche Daten verarbeitet werden (Menge, Umfang, Speicherfrist, Zugaenglichkeit).", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 25 Abs. 2", + "title": "Datenschutzfreundliche Voreinstellungen", + "erwaegungsgrund": "EG 78" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 25 Abs. 2 DSGVO" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "event", + "trigger": "Bei System-Entwicklung" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Default-Settings-Dokumentation", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.SDLC.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-035", + "title": "Gemeinsame Verantwortlichkeit regeln (Art. 26)", + "description": "Bei gemeinsam Verantwortlichen: transparente Vereinbarung ueber Pflichten, Informationspflichten und Anlaufstelle fuer Betroffene.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 26", + "title": "Gemeinsam Verantwortliche", + "erwaegungsgrund": "EG 79" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 26 DSGVO" + } + ], + "category": "Organisatorisch", + "responsible": "Geschaeftsfuehrung", + "deadline": { + "type": "event", + "trigger": "Vor gemeinsamer Verarbeitung" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Joint-Controller-Agreement", + "required": true + } + ], + "priority": "mittel", + "tom_control_ids": [ + "TOM.VENDOR.01" + ], + "breakpilot_feature": "/sdk/vendor-compliance", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-036", + "title": "EU-Vertreter benennen (Art. 27)", + "description": "Nicht in der EU niedergelassene Verantwortliche/Auftragsverarbeiter muessen einen Vertreter in der EU benennen.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 27", + "title": "Vertreter", + "erwaegungsgrund": "EG 80" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 27 DSGVO" + } + ], + "category": "Organisatorisch", + "responsible": "Geschaeftsfuehrung", + "deadline": { + "type": "event", + "trigger": "Bei Verarbeitung aus Drittstaat" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Vertreter-Benennung", + "required": true + } + ], + "priority": "niedrig", + "tom_control_ids": [ + "TOM.GOV.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-037", + "title": "Unterauftragsverarbeiter genehmigen (Art. 28 Abs. 2)", + "description": "Auftragsverarbeiter darf ohne vorherige schriftliche Genehmigung keinen weiteren Auftragsverarbeiter einsetzen.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + }, + { + "field": "data_protection.uses_processors", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 28 Abs. 2", + "title": "Unterauftragsverarbeiter", + "erwaegungsgrund": "EG 81" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 28 Abs. 2 DSGVO" + } + ], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Vor Einsatz Unterauftragsverarbeiter" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Genehmigungsprozess dokumentiert", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.VENDOR.01", + "TOM.VENDOR.02" + ], + "breakpilot_feature": "/sdk/vendor-compliance", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-038", + "title": "AVV-Mindestinhalt sicherstellen (Art. 28 Abs. 3)", + "description": "AVV muss enthalten: Gegenstand, Dauer, Art, Zweck, Datenkategorien, Betroffene, Pflichten und Rechte des Verantwortlichen.", + "applies_when": "uses_processors", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.uses_processors", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 28 Abs. 3", + "title": "Auftragsverarbeitungsvertrag Inhalt", + "erwaegungsgrund": "EG 81" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 28 Abs. 3 DSGVO" + }, + { + "type": "dsk_kurzpapier", + "ref": "DSK KP Nr. 13" + } + ], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Vor Verarbeitung" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "AVV mit vollstaendigem Inhalt", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.VENDOR.01", + "TOM.VENDOR.02" + ], + "breakpilot_feature": "/sdk/vendor-compliance", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-039", + "title": "Weisungsgebundenheit Auftragsverarbeiter (Art. 29)", + "description": "Auftragsverarbeiter und dessen Mitarbeiter duerfen Daten nur auf dokumentierte Weisung des Verantwortlichen verarbeiten.", + "applies_when": "uses_processors", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.uses_processors", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 29", + "title": "Verarbeitung unter Aufsicht", + "erwaegungsgrund": "EG 81" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 29 DSGVO" + } + ], + "category": "Organisatorisch", + "responsible": "Verantwortlicher", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Weisungsdokumentation", + "required": true + } + ], + "priority": "mittel", + "tom_control_ids": [ + "TOM.VENDOR.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-040", + "title": "VVT-Pflichtinhalt sicherstellen (Art. 30 Abs. 1)", + "description": "Das Verzeichnis muss enthalten: Name/Kontakt Verantwortlicher, Zwecke, Kategorien betroffener Personen/Daten, Empfaenger, Drittland-Uebermittlungen, Loeschfristen, TOM-Beschreibung.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 30 Abs. 1", + "title": "VVT Verantwortlicher", + "erwaegungsgrund": "EG 82" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 30 Abs. 1 DSGVO" + }, + { + "type": "dsk_kurzpapier", + "ref": "DSK KP Nr. 1" + } + ], + "category": "Dokumentation", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Vollstaendiges VVT", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.01", + "TOM.GOV.02" + ], + "breakpilot_feature": "/sdk/vvt", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-041", + "title": "VVT Auftragsverarbeiter fuehren (Art. 30 Abs. 2)", + "description": "Auch Auftragsverarbeiter muessen ein Verzeichnis aller Verarbeitungstaetigkeiten fuehren.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_processor", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 30 Abs. 2", + "title": "VVT Auftragsverarbeiter", + "erwaegungsgrund": "EG 82" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 30 Abs. 2 DSGVO" + } + ], + "category": "Dokumentation", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "VVT Auftragsverarbeiter", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.01" + ], + "breakpilot_feature": "/sdk/vvt", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-042", + "title": "Pseudonymisierung und Verschluesselung einsetzen (Art. 32 Abs. 1a)", + "description": "Geeignete Pseudonymisierung und Verschluesselung personenbezogener Daten als Sicherheitsmassnahme.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 32 Abs. 1 lit. a", + "title": "Pseudonymisierung und Verschluesselung", + "erwaegungsgrund": "EG 83" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 32 Abs. 1 lit. a DSGVO" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Verschluesselungskonzept", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.CRYPTO.01", + "TOM.CRYPTO.02", + "TOM.CRYPTO.03" + ], + "breakpilot_feature": "/sdk/tom", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-043", + "title": "Vertraulichkeit, Integritaet, Verfuegbarkeit sicherstellen (Art. 32 Abs. 1b)", + "description": "Faehigkeit, die Vertraulichkeit, Integritaet, Verfuegbarkeit und Belastbarkeit der Verarbeitungssysteme und Dienste auf Dauer sicherzustellen.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 32 Abs. 1 lit. b", + "title": "CIA+Belastbarkeit", + "erwaegungsgrund": "EG 83" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 32 Abs. 1 lit. b DSGVO" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "CIA-Schutzmassnahmen dokumentiert", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.NET.01", + "TOM.NET.02", + "TOM.BCP.01" + ], + "breakpilot_feature": "/sdk/tom", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-044", + "title": "Wiederherstellbarkeit sicherstellen (Art. 32 Abs. 1c)", + "description": "Faehigkeit, die Verfuegbarkeit und den Zugang zu Daten bei einem Zwischenfall rasch wiederherzustellen.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 32 Abs. 1 lit. c", + "title": "Wiederherstellbarkeit", + "erwaegungsgrund": "EG 83" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 32 Abs. 1 lit. c DSGVO" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Backup-Konzept", + "required": true + }, + { + "name": "Wiederherstellungstests", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.BCP.01", + "TOM.BCP.02", + "TOM.BCP.03" + ], + "breakpilot_feature": "/sdk/tom", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-045", + "title": "Regelmaessige Ueberpruefung der TOMs (Art. 32 Abs. 1d)", + "description": "Verfahren zur regelmaessigen Ueberpruefung, Bewertung und Evaluierung der Wirksamkeit der technischen und organisatorischen Massnahmen.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 32 Abs. 1 lit. d", + "title": "Regelmaessige Ueberpruefung", + "erwaegungsgrund": "EG 83" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 32 Abs. 1 lit. d DSGVO" + } + ], + "category": "Audit", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "jaehrlich" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "TOM-Audit-Berichte", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.03", + "TOM.OPS.03" + ], + "breakpilot_feature": "/sdk/audit", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-046", + "title": "72-Stunden-Meldepflicht an Aufsichtsbehoerde (Art. 33)", + "description": "Meldung einer Datenschutzverletzung an die Aufsichtsbehoerde innerhalb von 72 Stunden nach Bekanntwerden, es sei denn voraussichtlich kein Risiko.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 33", + "title": "Meldung an Aufsichtsbehoerde", + "erwaegungsgrund": "EG 85-88" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 33 DSGVO" + }, + { + "type": "edpb_guideline", + "ref": "EDPB Guidelines 01/2021" + } + ], + "category": "Meldepflicht", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "absolute", + "duration": "72 Stunden" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Meldeprozess dokumentiert", + "required": true + }, + { + "name": "Meldeformular", + "required": true + } + ], + "priority": "kritisch", + "tom_control_ids": [ + "TOM.OPS.01", + "TOM.OPS.02" + ], + "breakpilot_feature": "/sdk/incident-response", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-047", + "title": "Benachrichtigung Betroffener bei hohem Risiko (Art. 34)", + "description": "Bei hohem Risiko: unverzuegliche Benachrichtigung der betroffenen Personen in klarer und einfacher Sprache.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 34", + "title": "Benachrichtigung Betroffener", + "erwaegungsgrund": "EG 86-88" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 34 DSGVO" + } + ], + "category": "Meldepflicht", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "unverzueglich bei hohem Risiko" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Benachrichtigungsvorlage", + "required": true + } + ], + "priority": "kritisch", + "tom_control_ids": [ + "TOM.OPS.01" + ], + "breakpilot_feature": "/sdk/incident-response", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-048", + "title": "DSFA bei systematischer Ueberwachung (Art. 35 Abs. 3a)", + "description": "DSFA ist insbesondere erforderlich bei systematischer und umfassender Bewertung persoenlicher Aspekte natuerlicher Personen (Profiling).", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + }, + { + "field": "ai_usage.uses_ai", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 35 Abs. 3 lit. a", + "title": "DSFA Profiling", + "erwaegungsgrund": "EG 91" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 35 Abs. 3 lit. a DSGVO" + } + ], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Vor Verarbeitung" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "DSFA zu Profiling", + "required": true + } + ], + "priority": "kritisch", + "tom_control_ids": [ + "TOM.GOV.01", + "TOM.GOV.03" + ], + "breakpilot_feature": "/sdk/dsfa", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-049", + "title": "DSFA bei Ueberwachung oeffentlicher Bereiche (Art. 35 Abs. 3c)", + "description": "DSFA bei systematischer umfangreicher Ueberwachung oeffentlich zugaenglicher Bereiche (z.B. Videoueberwachung).", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.uses_video_surveillance", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 35 Abs. 3 lit. c", + "title": "DSFA Ueberwachung", + "erwaegungsgrund": "EG 91" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 35 Abs. 3 lit. c DSGVO" + } + ], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Vor Ueberwachung" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "DSFA Videoueberwachung", + "required": true + } + ], + "priority": "kritisch", + "tom_control_ids": [ + "TOM.GOV.01", + "TOM.GOV.03" + ], + "breakpilot_feature": "/sdk/dsfa", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-050", + "title": "Konsultation der Aufsichtsbehoerde (Art. 36)", + "description": "Wenn DSFA ergibt, dass hohes Risiko verbleibt: vorherige Konsultation der Aufsichtsbehoerde vor Verarbeitungsbeginn.", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + }, + { + "field": "data_protection.large_scale_processing", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 36", + "title": "Vorherige Konsultation", + "erwaegungsgrund": "EG 94-96" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 36 DSGVO" + } + ], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Bei hohem Restrisiko" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Konsultationsnachweis", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.01" + ], + "breakpilot_feature": "/sdk/dsfa", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-051", + "title": "DSB-Stellung sicherstellen (Art. 38)", + "description": "Der DSB muss ordnungsgemaess und fruehzeitig eingebunden werden, Ressourcen erhalten und darf nicht abberufen oder benachteiligt werden.", + "applies_when": "needs_dpo", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.needs_dpo", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 38", + "title": "Stellung des DSB", + "erwaegungsgrund": "EG 97" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 38 DSGVO" + } + ], + "category": "Organisatorisch", + "responsible": "Geschaeftsfuehrung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "DSB-Einbindungsnachweis", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.01" + ], + "breakpilot_feature": "/sdk/dsb-portal", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-052", + "title": "DSB-Aufgaben gewaehrleisten (Art. 39)", + "description": "DSB muss mindestens: Unterrichtung/Beratung, Ueberwachung der Einhaltung, Beratung bei DSFA, Zusammenarbeit mit Aufsichtsbehoerde, Anlaufstelle fuer Betroffene.", + "applies_when": "needs_dpo", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.needs_dpo", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 39", + "title": "Aufgaben des DSB", + "erwaegungsgrund": "EG 97" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 39 DSGVO" + } + ], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "DSB-Taetigkeitsbericht", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.01" + ], + "breakpilot_feature": "/sdk/dsb-portal", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-053", + "title": "Verhaltensregeln pruefen und einhalten (Art. 40)", + "description": "Pruefung ob branchenspezifische Verhaltensregeln vorliegen und Einhaltung ggf. nachweisen.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 40", + "title": "Verhaltensregeln", + "erwaegungsgrund": "EG 98-99" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 40 DSGVO" + } + ], + "category": "Compliance", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "jaehrlich" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Verhaltensregeln-Pruefung", + "required": false + } + ], + "priority": "niedrig", + "tom_control_ids": [ + "TOM.GOV.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-054", + "title": "Datenschutz-Zertifizierung pruefen (Art. 42)", + "description": "Pruefung, ob Datenschutz-Zertifizierungsverfahren in Anspruch genommen werden koennen, um Compliance nachzuweisen.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 42", + "title": "Zertifizierung", + "erwaegungsgrund": "EG 100" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 42 DSGVO" + } + ], + "category": "Compliance", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "jaehrlich" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Zertifizierungspruefung", + "required": false + } + ], + "priority": "niedrig", + "tom_control_ids": [ + "TOM.GOV.01", + "TOM.GOV.03" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-055", + "title": "Angemessenheitsbeschluss pruefen (Art. 45)", + "description": "Vor Drittlandtransfer: Pruefen ob ein Angemessenheitsbeschluss der EU-Kommission vorliegt.", + "applies_when": "cross_border", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.cross_border_transfer", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 45", + "title": "Angemessenheitsbeschluss", + "erwaegungsgrund": "EG 103-107" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 45 DSGVO" + } + ], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Vor Transfer" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Angemessenheitspruefung dokumentiert", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.VENDOR.01", + "TOM.VENDOR.03" + ], + "breakpilot_feature": "/sdk/vendor-compliance", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-056", + "title": "Standardvertragsklauseln abschliessen (Art. 46)", + "description": "Ohne Angemessenheitsbeschluss: geeignete Garantien wie EU-Standardvertragsklauseln (SCCs) oder BCRs.", + "applies_when": "cross_border", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.cross_border_transfer", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 46", + "title": "Geeignete Garantien", + "erwaegungsgrund": "EG 108-110" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 46 DSGVO" + }, + { + "type": "edpb_guideline", + "ref": "EDPB Recommendations 01/2020" + } + ], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Vor Transfer ohne Angemessenheitsbeschluss" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "SCCs oder BCRs abgeschlossen", + "required": true + }, + { + "name": "Transfer Impact Assessment", + "required": true + } + ], + "priority": "kritisch", + "tom_control_ids": [ + "TOM.VENDOR.01", + "TOM.VENDOR.03" + ], + "breakpilot_feature": "/sdk/vendor-compliance", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-057", + "title": "Verbindliche interne Datenschutzvorschriften (BCR) (Art. 47)", + "description": "Bei Konzerntransfers: Pruefung und ggf. Implementierung verbindlicher interner Datenschutzvorschriften (Binding Corporate Rules).", + "applies_when": "cross_border", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.cross_border_transfer", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 47", + "title": "BCR", + "erwaegungsgrund": "EG 110" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 47 DSGVO" + } + ], + "category": "Organisatorisch", + "responsible": "Geschaeftsfuehrung", + "deadline": { + "type": "event", + "trigger": "Bei Konzern-Drittlandtransfer" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "BCR-Dokumentation", + "required": false + } + ], + "priority": "mittel", + "tom_control_ids": [ + "TOM.GOV.01", + "TOM.VENDOR.03" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-058", + "title": "DSFA bei besonderer Datenkategorien-Massenverarbeitung (Art. 35 Abs. 3b)", + "description": "DSFA ist insbesondere erforderlich bei umfangreicher Verarbeitung besonderer Datenkategorien (Art. 9) oder Straftaten-Daten (Art. 10).", + "applies_when": "high_risk", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + }, + { + "field": "data_protection.processes_special_categories", + "operator": "EQUALS", + "value": true + }, + { + "field": "data_protection.large_scale_processing", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 35 Abs. 3 lit. b", + "title": "DSFA besondere Kategorien", + "erwaegungsgrund": "EG 91" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 35 Abs. 3 lit. b DSGVO" + } + ], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Vor Verarbeitung" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "DSFA fuer besondere Kategorien", + "required": true + } + ], + "priority": "kritisch", + "tom_control_ids": [ + "TOM.GOV.01", + "TOM.GOV.03" + ], + "breakpilot_feature": "/sdk/dsfa", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-059", + "title": "Beschaeftigtendaten schuetzen", + "description": "Verarbeitung von Beschaeftigtendaten nur im Rahmen von § 26 BDSG: fuer Begruendung, Durchfuehrung oder Beendigung des Beschaeftigungsverhaeltnisses.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_employee_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 88", + "title": "Beschaeftigtendatenschutz", + "erwaegungsgrund": "EG 155" + }, + { + "norm": "BDSG", + "article": "§ 26", + "title": "Beschaeftigtendatenschutz" + } + ], + "sources": [ + { + "type": "article", + "ref": "§ 26 BDSG" + }, + { + "type": "article", + "ref": "Art. 88 DSGVO" + } + ], + "category": "Organisatorisch", + "responsible": "Personalleitung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Beschaeftigtendatenschutz-Konzept", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.HR.01", + "TOM.HR.02", + "TOM.AC.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-060", + "title": "Datenschutz-Schulungen durchfuehren", + "description": "Regelmaessige Schulung aller Mitarbeiter, die personenbezogene Daten verarbeiten, zu Datenschutzpflichten und -risiken.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 39 Abs. 1 lit. b", + "title": "Sensibilisierung und Schulung", + "erwaegungsgrund": "EG 97" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 39 Abs. 1 lit. b DSGVO" + } + ], + "category": "Schulung", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "jaehrlich" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Schulungsnachweise", + "required": true + }, + { + "name": "Schulungsplan", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.HR.01", + "TOM.HR.02" + ], + "breakpilot_feature": "/sdk/training", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-061", + "title": "Vertraulichkeitsverpflichtung der Mitarbeiter", + "description": "Alle Mitarbeiter, die Zugang zu personenbezogenen Daten haben, auf Vertraulichkeit verpflichten.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 28 Abs. 3 lit. b", + "title": "Vertraulichkeit", + "erwaegungsgrund": "EG 81, 83" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 28 Abs. 3 lit. b DSGVO" + }, + { + "type": "article", + "ref": "Art. 29 DSGVO" + } + ], + "category": "Organisatorisch", + "responsible": "Personalleitung", + "deadline": { + "type": "event", + "trigger": "Bei Eintritt" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Vertraulichkeitserklaerungen", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.HR.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-062", + "title": "Cookie-Einwilligung einholen", + "description": "Einholung informierter Einwilligung vor dem Setzen nicht-essentieller Cookies und Tracking-Technologien.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.uses_cookies", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 6 Abs. 1 lit. a", + "title": "Einwilligung", + "erwaegungsgrund": "EG 32" + }, + { + "norm": "TTDSG", + "article": "§ 25", + "title": "Endeinrichtungen" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 6 Abs. 1 lit. a DSGVO" + }, + { + "type": "article", + "ref": "§ 25 TTDSG" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "event", + "trigger": "Vor Cookie-Setzung" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Cookie-Banner implementiert", + "required": true + }, + { + "name": "Consent-Dokumentation", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.02", + "TOM.DATA.01" + ], + "breakpilot_feature": "/sdk/cookie-banner", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-063", + "title": "Datenschutz fuer Plattform-Nutzer", + "description": "Plattformbetreiber muessen sicherstellen, dass die Datenschutzrechte aller Plattform-Nutzer gewaehrleistet sind.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.operates_platform", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 24", + "title": "Verantwortung", + "erwaegungsgrund": "EG 74-77" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 24 DSGVO" + } + ], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Plattform-Datenschutzkonzept", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.01", + "TOM.GOV.02" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-064", + "title": "Datenschutzerklaerung bereitstellen", + "description": "Umfassende Datenschutzerklaerung auf der Website, leicht zugaenglich, in verstaendlicher Sprache.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 13", + "title": "Informationspflicht", + "erwaegungsgrund": "EG 58-62" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 13 DSGVO" + }, + { + "type": "article", + "ref": "Art. 12 DSGVO" + } + ], + "category": "Dokumentation", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Datenschutzerklaerung online", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.02" + ], + "breakpilot_feature": "/sdk/policy-generator", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-065", + "title": "Kinderdaten besonders schuetzen (Art. 8)", + "description": "Bei Angebot von Diensten der Informationsgesellschaft an Kinder: Einwilligung ab 16 Jahre (DE), darunter Einwilligung/Genehmigung der Eltern.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_children_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 8", + "title": "Einwilligung eines Kindes", + "erwaegungsgrund": "EG 38" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 8 DSGVO" + }, + { + "type": "erwaegungsgrund", + "ref": "EG 38" + } + ], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Vor Datenerhebung von Kindern" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Altersverifikation implementiert", + "required": true + }, + { + "name": "Eltern-Einwilligungsprozess", + "required": true + } + ], + "priority": "kritisch", + "tom_control_ids": [ + "TOM.GOV.01", + "TOM.GOV.02", + "TOM.AC.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-066", + "title": "Finanzdaten angemessen schuetzen", + "description": "Verarbeitung von Finanzdaten (Kontonummern, Kreditkarten, Gehalt) erfordert besondere Schutzmassnahmen inkl. Verschluesselung und Zugriffsbeschraenkung.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_financial_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 32", + "title": "Sicherheit der Verarbeitung", + "erwaegungsgrund": "EG 83" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 32 DSGVO" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Schutzkonzept Finanzdaten", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.CRYPTO.01", + "TOM.CRYPTO.02", + "TOM.AC.01", + "TOM.LOG.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-067", + "title": "Biometrische Daten besonders schuetzen", + "description": "Verarbeitung biometrischer Daten zur eindeutigen Identifizierung unterliegt dem Verbot des Art. 9 — Ausnahme nur bei ausdruecklicher Einwilligung oder gesetzlicher Grundlage.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_biometric_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 9", + "title": "Besondere Kategorien", + "erwaegungsgrund": "EG 51-56" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 9 DSGVO" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Biometrie-Schutzkonzept", + "required": true + }, + { + "name": "Einwilligungsnachweis", + "required": true + } + ], + "priority": "kritisch", + "tom_control_ids": [ + "TOM.CRYPTO.01", + "TOM.AC.01", + "TOM.LOG.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-068", + "title": "Aufbewahrungsfristen dokumentieren", + "description": "Fuer jede Datenkategorie muessen die Aufbewahrungsfristen dokumentiert und begruendet sein.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 5 Abs. 1 lit. e", + "title": "Speicherbegrenzung", + "erwaegungsgrund": "EG 39" + }, + { + "norm": "DSGVO", + "article": "Art. 13 Abs. 2 lit. a", + "title": "Speicherdauer Informationspflicht" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 5 Abs. 1 lit. e DSGVO" + } + ], + "category": "Dokumentation", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Aufbewahrungsfristenverzeichnis", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.DATA.01", + "TOM.DATA.02" + ], + "breakpilot_feature": "/sdk/loeschfristen", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-069", + "title": "Interne Dokumentation von Datenpannen", + "description": "Alle Datenschutzverletzungen (auch nicht meldepflichtige) intern dokumentieren mit Fakten, Auswirkungen und ergriffenen Abhilfemassnahmen.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 33 Abs. 5", + "title": "Dokumentation Datenpannen", + "erwaegungsgrund": "EG 87" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 33 Abs. 5 DSGVO" + } + ], + "category": "Dokumentation", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Nach jeder Datenpanne" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Datenpannen-Register", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.OPS.01", + "TOM.OPS.02", + "TOM.LOG.01" + ], + "breakpilot_feature": "/sdk/incident-response", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-070", + "title": "Zugriffsprotokolle fuehren", + "description": "Protokollierung aller Zugriffe auf personenbezogene Daten zur Nachvollziehbarkeit und Missbrauchserkennung.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 5 Abs. 2", + "title": "Rechenschaftspflicht", + "erwaegungsgrund": "EG 74" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 5 Abs. 2 DSGVO" + }, + { + "type": "article", + "ref": "Art. 32 DSGVO" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Zugriffsprotokollierung aktiv", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.LOG.01", + "TOM.LOG.02" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-071", + "title": "Regelmaessige Risikobewertung durchfuehren", + "description": "Regelmaessige Bewertung der mit der Verarbeitung verbundenen Risiken fuer die Rechte und Freiheiten natuerlicher Personen.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 24 Abs. 1", + "title": "Risikobewertung", + "erwaegungsgrund": "EG 74-77" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 24 Abs. 1 DSGVO" + } + ], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "jaehrlich" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Risikobewertungsbericht", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.01", + "TOM.GOV.03" + ], + "breakpilot_feature": "/sdk/risk-assessment", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-072", + "title": "Zusammenarbeit mit Aufsichtsbehoerde (Art. 31)", + "description": "Der Verantwortliche und der Auftragsverarbeiter arbeiten auf Anfrage mit der Aufsichtsbehoerde zusammen.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 31", + "title": "Zusammenarbeit mit Aufsichtsbehoerde", + "erwaegungsgrund": "EG 82" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 31 DSGVO" + } + ], + "category": "Compliance", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "event", + "trigger": "Auf Anfrage" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Kooperationsprozess dokumentiert", + "required": false + } + ], + "priority": "mittel", + "tom_control_ids": [ + "TOM.GOV.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-073", + "title": "Beschwerderecht informieren (Art. 77)", + "description": "Betroffene Personen ueber ihr Recht auf Beschwerde bei einer Aufsichtsbehoerde informieren.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.is_controller", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 77", + "title": "Recht auf Beschwerde", + "erwaegungsgrund": "EG 141" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 77 DSGVO" + } + ], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Beschwerdehinweis in Datenschutzerklaerung", + "required": true + } + ], + "priority": "mittel", + "tom_control_ids": [ + "TOM.GOV.02" + ], + "breakpilot_feature": "/sdk/policy-generator", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-074", + "title": "Haftung und Schadenersatz beachten (Art. 82)", + "description": "Bei Verstoessen gegen die DSGVO: Recht der betroffenen Person auf Schadenersatz (materiell und immateriell).", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 82", + "title": "Recht auf Schadenersatz", + "erwaegungsgrund": "EG 146-147" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 82 DSGVO" + } + ], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "Zivilrechtlicher Schadenersatz" + }, + "evidence": [ + { + "name": "Haftungsrisiko-Bewertung", + "required": false + } + ], + "priority": "mittel", + "tom_control_ids": [ + "TOM.GOV.01" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-075", + "title": "Datenschutz-Audit durchfuehren", + "description": "Regelmaessige interne oder externe Audits zur Ueberpruefung der Datenschutz-Compliance.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 5 Abs. 2", + "title": "Rechenschaftspflicht", + "erwaegungsgrund": "EG 74" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 5 Abs. 2 DSGVO" + } + ], + "category": "Audit", + "responsible": "Datenschutzbeauftragter", + "deadline": { + "type": "recurring", + "interval": "jaehrlich" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Audit-Bericht", + "required": true + }, + { + "name": "Massnahmenplan", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.03", + "TOM.OPS.03" + ], + "breakpilot_feature": "/sdk/audit", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-076", + "title": "Datensicherung implementieren", + "description": "Regelmaessige Datensicherung (Backup) personenbezogener Daten mit Wiederherstellungstests.", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 32 Abs. 1 lit. c", + "title": "Wiederherstellbarkeit", + "erwaegungsgrund": "EG 83" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 32 Abs. 1 lit. c DSGVO" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "recurring", + "interval": "taeglich" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Backup-Konzept", + "required": true + }, + { + "name": "Wiederherstellungstests", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.BCP.01", + "TOM.BCP.02" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-077", + "title": "Netzwerksicherheit gewaehrleisten", + "description": "Schutz der Netzwerke, ueber die personenbezogene Daten uebertragen werden (Firewalls, IDS/IPS, Segmentierung).", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 32", + "title": "Sicherheit der Verarbeitung", + "erwaegungsgrund": "EG 83" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 32 DSGVO" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Netzwerksicherheitskonzept", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.NET.01", + "TOM.NET.02", + "TOM.NET.03" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-078", + "title": "Physische Zutrittskontrolle", + "description": "Schutz der Raeumlichkeiten, in denen personenbezogene Daten verarbeitet werden (Zutrittskontrolle, Serverraeume).", + "applies_when": "always", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.processes_personal_data", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 32", + "title": "Sicherheit der Verarbeitung", + "erwaegungsgrund": "EG 83" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 32 DSGVO" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "recurring", + "interval": "laufend" + }, + "sanctions": { + "max_fine": "10 Mio. EUR oder 2% Jahresumsatz" + }, + "evidence": [ + { + "name": "Zutrittskontrollkonzept", + "required": true + } + ], + "priority": "mittel", + "tom_control_ids": [ + "TOM.AC.01", + "TOM.AC.02" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-079", + "title": "Tracking-Technologien absichern", + "description": "Einsatz von Tracking und Analyse-Tools nur mit gultiger Einwilligung. Transparente Information ueber Art und Umfang des Trackings.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.uses_tracking", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 6 Abs. 1 lit. a", + "title": "Einwilligung", + "erwaegungsgrund": "EG 32" + }, + { + "norm": "TTDSG", + "article": "§ 25", + "title": "Endeinrichtungen" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 6 Abs. 1 lit. a DSGVO" + }, + { + "type": "article", + "ref": "§ 25 TTDSG" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "event", + "trigger": "Vor Tracking-Einsatz" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Tracking-Einwilligung eingeholt", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.GOV.02", + "TOM.DATA.01" + ], + "breakpilot_feature": "/sdk/cookie-banner", + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "DSGVO-OBL-080", + "title": "Videoueberwachung datenschutzkonform gestalten", + "description": "Videoueberwachung nur mit Rechtsgrundlage, Beschilderung, Speicherfristenbegrenzung und Zugriffskontrolle.", + "applies_when": "controller", + "applies_when_condition": { + "all_of": [ + { + "field": "data_protection.uses_video_surveillance", + "operator": "EQUALS", + "value": true + } + ] + }, + "legal_basis": [ + { + "norm": "DSGVO", + "article": "Art. 6 Abs. 1 lit. f", + "title": "Berechtigtes Interesse", + "erwaegungsgrund": "EG 47" + }, + { + "norm": "BDSG", + "article": "§ 4", + "title": "Videoueberwachung" + } + ], + "sources": [ + { + "type": "article", + "ref": "Art. 6 Abs. 1 lit. f DSGVO" + }, + { + "type": "article", + "ref": "§ 4 BDSG" + } + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { + "type": "event", + "trigger": "Vor Ueberwachungsbeginn" + }, + "sanctions": { + "max_fine": "20 Mio. EUR oder 4% Jahresumsatz" + }, + "evidence": [ + { + "name": "Videoueberwachungskonzept", + "required": true + }, + { + "name": "Hinweisbeschilderung", + "required": true + } + ], + "priority": "hoch", + "tom_control_ids": [ + "TOM.AC.01", + "TOM.LOG.01", + "TOM.DATA.02" + ], + "breakpilot_feature": null, + "valid_from": "2018-05-25", + "valid_until": null, + "version": "1.0" + } + ], + "controls": [ + { + "id": "DSGVO-CTRL-001", + "name": "Consent-Management-System", + "description": "Implementierung eines Systems zur Verwaltung von Einwilligungen", + "category": "Technisch", + "what_to_do": "Implementierung einer CMP mit Protokollierung, Widerrufsmoeglichkeit und Nachweis", + "priority": "hoch" + }, + { + "id": "DSGVO-CTRL-002", + "name": "Verschluesselung personenbezogener Daten", + "description": "Verschluesselung ruhender und uebertragener Daten", + "category": "Technisch", + "what_to_do": "TLS 1.3 fuer Uebertragung, AES-256 fuer Speicherung, Key-Management", + "priority": "hoch" + }, + { + "id": "DSGVO-CTRL-003", + "name": "Zugriffskontrolle", + "description": "Need-to-know-Prinzip fuer Zugriff auf personenbezogene Daten", + "category": "Organisatorisch", + "what_to_do": "RBAC, regelmaessige Berechtigungspruefung, Zugriffsprotokollierung", + "priority": "hoch" + }, + { + "id": "DSGVO-CTRL-004", + "name": "Pseudonymisierung/Anonymisierung", + "description": "Pseudonymisierung wo moeglich, Anonymisierung fuer Analysen", + "category": "Technisch", + "what_to_do": "Pseudonymisierungsverfahren, getrennte Zuordnungstabellen", + "priority": "mittel" + }, + { + "id": "DSGVO-CTRL-005", + "name": "Datenschutz-Schulungen", + "description": "Regelmaessige Schulung aller Mitarbeiter", + "category": "Organisatorisch", + "what_to_do": "Jaehrliche Pflichtschulungen, Awareness, dokumentierte Nachweise", + "priority": "mittel" + }, + { + "id": "DSGVO-CTRL-006", + "name": "Loeschkonzept", + "description": "Automatisierte Loeschroutinen mit definierten Fristen", + "category": "Technisch", + "what_to_do": "Loeschfristen pro Datenkategorie, automatisierte Umsetzung, Protokollierung", + "priority": "hoch" + }, + { + "id": "DSGVO-CTRL-007", + "name": "Datenschutz-Folgenabschaetzung Prozess", + "description": "Standardisierter DSFA-Prozess fuer Hochrisiko-Verarbeitungen", + "category": "Governance", + "what_to_do": "DSFA-Template, Risikomatrix, DSB-Stellungnahme, Massnahmenplan", + "priority": "hoch" + } + ], + "incident_deadlines": [ + { + "phase": "Meldung an Aufsichtsbehoerde", + "deadline": "72 Stunden", + "content": "Meldung bei Verletzung des Schutzes personenbezogener Daten, es sei denn voraussichtlich kein Risiko. Inhalt: Art der Verletzung, Kategorien/Anzahl Betroffener, Kontakt DSB, Folgen, ergriffene Massnahmen.", + "recipient": "Zustaendige Datenschutz-Aufsichtsbehoerde", + "legal_basis": [ + { + "norm": "Art. 33 DSGVO" + } + ] + }, + { + "phase": "Benachrichtigung Betroffener", + "deadline": "unverzueglich", + "content": "Wenn hohes Risiko fuer Rechte und Freiheiten. In klarer und einfacher Sprache: Art der Verletzung, Kontakt DSB, wahrscheinliche Folgen, ergriffene Abhilfemassnahmen.", + "recipient": "Betroffene Personen", + "legal_basis": [ + { + "norm": "Art. 34 DSGVO" + } + ] + } + ] +} \ No newline at end of file diff --git a/ai-compliance-sdk/policies/obligations/v2/eu_machinery_v2.json b/ai-compliance-sdk/policies/obligations/v2/eu_machinery_v2.json new file mode 100644 index 0000000..4c9a1a1 --- /dev/null +++ b/ai-compliance-sdk/policies/obligations/v2/eu_machinery_v2.json @@ -0,0 +1,426 @@ +{ + "regulation": "eu_machinery", + "name": "EU-Maschinenverordnung (EU) 2023/1230", + "description": "Verordnung (EU) 2023/1230 ueber Maschinen und zur Aufhebung der Richtlinie 2006/42/EG — harmonisierte Vorschriften fuer das Inverkehrbringen und die Inbetriebnahme von Maschinen und zugehoerigen Produkten im Binnenmarkt", + "version": "1.0", + "effective_date": "2027-01-20", + "obligations": [ + { + "id": "EUMACH-OBL-001", + "title": "Inverkehrbringen von Maschinen", + "description": "Sicherstellung, dass nur konforme Maschinen auf dem Unionsmarkt bereitgestellt werden. Maschinen duerfen nur in Verkehr gebracht werden, wenn sie bei ordnungsgemaesser Installation, Wartung und bestimmungsgemaesser Verwendung die Sicherheits- und Gesundheitsanforderungen erfuellen.", + "applies_when": "manufacturer_or_importer", + "applies_when_condition": { + "all_of": [ + {"field": "organization.industry", "operator": "IN", "value": ["manufacturing", "machinery", "industrial_equipment"]} + ] + }, + "legal_basis": [ + {"norm": "EU-Maschinenverordnung", "article": "Art. 4", "title": "Anforderungen an das Inverkehrbringen"} + ], + "sources": [ + {"type": "article", "ref": "Art. 4 VO (EU) 2023/1230"} + ], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "Marktzuruecknahme, Vertriebsverbot", "personal_liability": true}, + "evidence": ["Konformitaetsbewertung", "Technische Dokumentation"], + "priority": "kritisch", + "valid_from": "2027-01-20", + "valid_until": null, + "version": "1.0" + }, + { + "id": "EUMACH-OBL-002", + "title": "Inbetriebnahme konformer Maschinen", + "description": "Maschinen duerfen erst in Betrieb genommen werden, wenn die Konformitaet nachgewiesen ist und alle Sicherheitsanforderungen laut Anhang III erfuellt sind. Betreiber muessen vor der Inbetriebnahme die Konformitaetserklaerung und CE-Kennzeichnung pruefen.", + "applies_when": "operator", + "applies_when_condition": { + "all_of": [ + {"field": "organization.industry", "operator": "IN", "value": ["manufacturing", "machinery", "industrial_equipment"]} + ] + }, + "legal_basis": [ + {"norm": "EU-Maschinenverordnung", "article": "Art. 5", "title": "Inbetriebnahme"} + ], + "sources": [ + {"type": "article", "ref": "Art. 5 VO (EU) 2023/1230"} + ], + "category": "Compliance", + "responsible": "Betriebsleiter", + "evidence": ["Inbetriebnahmeprotokoll", "CE-Konformitaetserklaerung"], + "priority": "kritisch", + "valid_from": "2027-01-20", + "valid_until": null, + "version": "1.0" + }, + { + "id": "EUMACH-OBL-003", + "title": "Freier Warenverkehr sicherstellen", + "description": "Mitgliedstaaten duerfen das Inverkehrbringen konformer Maschinen nicht behindern. Hersteller muessen sicherstellen, dass ihre Produkte die harmonisierten Normen einhalten, um den freien Warenverkehr zu gewaehrleisten.", + "applies_when": "manufacturer_eu_market", + "applies_when_condition": { + "all_of": [ + {"field": "organization.industry", "operator": "IN", "value": ["manufacturing", "machinery", "industrial_equipment"]} + ] + }, + "legal_basis": [ + {"norm": "EU-Maschinenverordnung", "article": "Art. 6", "title": "Freier Warenverkehr"} + ], + "sources": [ + {"type": "article", "ref": "Art. 6 VO (EU) 2023/1230"} + ], + "category": "Compliance", + "responsible": "Regulatory-Affairs", + "evidence": ["Nachweis harmonisierter Normen", "EU-Konformitaetserklaerung"], + "priority": "mittel", + "valid_from": "2027-01-20", + "valid_until": null, + "version": "1.0" + }, + { + "id": "EUMACH-OBL-004", + "title": "Konformitaetsvermutung durch harmonisierte Normen", + "description": "Anwendung harmonisierter Normen begruendet eine Konformitaetsvermutung. Hersteller sollen relevante EN-Normen anwenden und dokumentieren, welche Normen angewandt wurden und wo Abweichungen bestehen.", + "applies_when": "manufacturer", + "applies_when_condition": { + "all_of": [ + {"field": "organization.industry", "operator": "IN", "value": ["manufacturing", "machinery", "industrial_equipment"]} + ] + }, + "legal_basis": [ + {"norm": "EU-Maschinenverordnung", "article": "Art. 7", "title": "Konformitaetsvermutung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 7 VO (EU) 2023/1230"} + ], + "category": "Dokumentation", + "responsible": "Qualitaetsmanagement", + "evidence": ["Normenverzeichnis", "Abweichungsanalyse"], + "priority": "hoch", + "valid_from": "2027-01-20", + "valid_until": null, + "version": "1.0" + }, + { + "id": "EUMACH-OBL-005", + "title": "Allgemeine Herstellerpflichten", + "description": "Hersteller muessen sicherstellen, dass Maschinen in Uebereinstimmung mit den grundlegenden Sicherheits- und Gesundheitsanforderungen entworfen und gebaut werden. Erstellung der technischen Dokumentation, Konformitaetsbewertung und CE-Kennzeichnung.", + "applies_when": "manufacturer", + "applies_when_condition": { + "all_of": [ + {"field": "organization.industry", "operator": "IN", "value": ["manufacturing", "machinery", "industrial_equipment"]} + ] + }, + "legal_basis": [ + {"norm": "EU-Maschinenverordnung", "article": "Art. 10", "title": "Pflichten der Hersteller"} + ], + "sources": [ + {"type": "article", "ref": "Art. 10 VO (EU) 2023/1230"} + ], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "Marktzuruecknahme, Bussgeld nach nationalem Recht", "personal_liability": true}, + "evidence": ["Technische Dokumentation", "Konformitaetsbewertung", "Betriebsanleitung"], + "priority": "kritisch", + "valid_from": "2027-01-20", + "valid_until": null, + "version": "1.0" + }, + { + "id": "EUMACH-OBL-006", + "title": "Technische Dokumentation erstellen", + "description": "Erstellung und Pflege der technischen Dokumentation gemaess Anhang IV: Konstruktionsunterlagen, Risikobeurteilung, angewandte Normen, Pruefberichte. Dokumentation muss 10 Jahre nach Inverkehrbringen aufbewahrt werden.", + "applies_when": "manufacturer", + "applies_when_condition": { + "all_of": [ + {"field": "organization.industry", "operator": "IN", "value": ["manufacturing", "machinery", "industrial_equipment"]} + ] + }, + "legal_basis": [ + {"norm": "EU-Maschinenverordnung", "article": "Art. 10 Abs. 2", "title": "Technische Dokumentation"}, + {"norm": "EU-Maschinenverordnung", "article": "Art. 11", "title": "Verfahren der Konformitaetsbewertung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 10-11 VO (EU) 2023/1230"} + ], + "category": "Dokumentation", + "responsible": "Konstruktionsleiter", + "deadline": {"type": "recurring", "interval": "P1Y", "event": "Jaehrliche Aktualisierung"}, + "evidence": ["Technische Dokumentation Anhang IV", "Risikobeurteilung", "Pruefberichte"], + "priority": "kritisch", + "valid_from": "2027-01-20", + "valid_until": null, + "version": "1.0" + }, + { + "id": "EUMACH-OBL-007", + "title": "Konformitaetsbewertung durchfuehren", + "description": "Durchfuehrung des geeigneten Konformitaetsbewertungsverfahrens gemaess Art. 12 und Anhang V-IX. Fuer bestimmte Maschinenkategorien (Anhang I) ist die Einschaltung einer notifizierten Stelle erforderlich.", + "applies_when": "manufacturer", + "applies_when_condition": { + "all_of": [ + {"field": "organization.industry", "operator": "IN", "value": ["manufacturing", "machinery", "industrial_equipment"]} + ] + }, + "legal_basis": [ + {"norm": "EU-Maschinenverordnung", "article": "Art. 12", "title": "Konformitaetsbewertungsverfahren"} + ], + "sources": [ + {"type": "article", "ref": "Art. 12 VO (EU) 2023/1230"} + ], + "category": "Audit", + "responsible": "Qualitaetsmanagement", + "evidence": ["Konformitaetszertifikat", "Pruefbericht notifizierte Stelle"], + "priority": "kritisch", + "valid_from": "2027-01-20", + "valid_until": null, + "version": "1.0" + }, + { + "id": "EUMACH-OBL-008", + "title": "Bevollmaechtigter im EU-Raum", + "description": "Hersteller ausserhalb der EU muessen einen Bevollmaechtigten in der Union benennen. Dieser ist verantwortlich fuer die Bereitstellung der Konformitaetserklaerung und technischen Dokumentation an Marktaufsichtsbehoerden.", + "applies_when": "non_eu_manufacturer", + "applies_when_condition": { + "all_of": [ + {"field": "organization.industry", "operator": "IN", "value": ["manufacturing", "machinery", "industrial_equipment"]}, + {"field": "organization.hq_outside_eu", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "EU-Maschinenverordnung", "article": "Art. 13", "title": "Bevollmaechtigte"} + ], + "sources": [ + {"type": "article", "ref": "Art. 13 VO (EU) 2023/1230"} + ], + "category": "Governance", + "responsible": "Regulatory-Affairs", + "evidence": ["Bevollmaechtigungsvertrag", "Kontaktdaten Bevollmaechtigter"], + "priority": "hoch", + "valid_from": "2027-01-20", + "valid_until": null, + "version": "1.0" + }, + { + "id": "EUMACH-OBL-009", + "title": "Einfuehrerpflichten", + "description": "Einfuehrer muessen vor dem Inverkehrbringen pruefen, dass der Hersteller die Konformitaetsbewertung durchgefuehrt hat, die technische Dokumentation vorliegt und die CE-Kennzeichnung angebracht ist. Name und Anschrift des Einfuehrers muessen auf der Maschine angegeben sein.", + "applies_when": "importer", + "applies_when_condition": { + "all_of": [ + {"field": "organization.industry", "operator": "IN", "value": ["manufacturing", "machinery", "import_trade"]} + ] + }, + "legal_basis": [ + {"norm": "EU-Maschinenverordnung", "article": "Art. 14", "title": "Pflichten der Einfuehrer"} + ], + "sources": [ + {"type": "article", "ref": "Art. 14 VO (EU) 2023/1230"} + ], + "category": "Compliance", + "responsible": "Importleiter", + "evidence": ["Einfuehrerpruefprotokoll", "Kopie der Konformitaetserklaerung"], + "priority": "hoch", + "valid_from": "2027-01-20", + "valid_until": null, + "version": "1.0" + }, + { + "id": "EUMACH-OBL-010", + "title": "EU-Konformitaetserklaerung ausstellen", + "description": "Ausstellung der EU-Konformitaetserklaerung gemaess Anhang V mit Angaben zu Hersteller, Maschine, angewandten Normen und notifizierter Stelle. Die Erklaerung muss in der Amtssprache des Mitgliedstaats verfuegbar sein.", + "applies_when": "manufacturer", + "applies_when_condition": { + "all_of": [ + {"field": "organization.industry", "operator": "IN", "value": ["manufacturing", "machinery", "industrial_equipment"]} + ] + }, + "legal_basis": [ + {"norm": "EU-Maschinenverordnung", "article": "Art. 18", "title": "EU-Konformitaetserklaerung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 18 VO (EU) 2023/1230"} + ], + "category": "Dokumentation", + "responsible": "Qualitaetsmanagement", + "evidence": ["EU-Konformitaetserklaerung", "Uebersetzungen Amtssprachen"], + "priority": "kritisch", + "valid_from": "2027-01-20", + "valid_until": null, + "version": "1.0" + }, + { + "id": "EUMACH-OBL-011", + "title": "CE-Kennzeichnung anbringen", + "description": "Anbringung der CE-Kennzeichnung auf der Maschine gemaess Art. 19 — sichtbar, lesbar und dauerhaft. Die CE-Kennzeichnung wird vor dem Inverkehrbringen angebracht und setzt die Konformitaetsbewertung voraus.", + "applies_when": "manufacturer", + "applies_when_condition": { + "all_of": [ + {"field": "organization.industry", "operator": "IN", "value": ["manufacturing", "machinery", "industrial_equipment"]} + ] + }, + "legal_basis": [ + {"norm": "EU-Maschinenverordnung", "article": "Art. 19", "title": "CE-Kennzeichnung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 19 VO (EU) 2023/1230"} + ], + "category": "Compliance", + "responsible": "Produktion", + "evidence": ["Foto CE-Kennzeichnung", "Pruefprotokoll Kennzeichnung"], + "priority": "kritisch", + "valid_from": "2027-01-20", + "valid_until": null, + "version": "1.0" + }, + { + "id": "EUMACH-OBL-012", + "title": "KI-Systeme in Maschinen — besondere Anforderungen", + "description": "Maschinen mit eingebetteten KI-Systemen muessen zusaetzliche Anforderungen erfuellen: Sicherheitsfunktionen duerfen nicht allein von KI abhaengen, Mensch-Maschine-Interaktion muss transparent sein, KI-bedingte Risiken muessen in der Risikobeurteilung beruecksichtigt werden.", + "applies_when": "ai_machinery", + "applies_when_condition": { + "all_of": [ + {"field": "organization.industry", "operator": "IN", "value": ["manufacturing", "machinery", "industrial_equipment"]}, + {"field": "ai_usage.uses_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "EU-Maschinenverordnung", "article": "Art. 21", "title": "KI-Systeme in Maschinen"}, + {"norm": "AI Act", "article": "Art. 6", "title": "Klassifikation Hochrisiko-KI"} + ], + "sources": [ + {"type": "article", "ref": "Art. 21 VO (EU) 2023/1230"}, + {"type": "eu_guidance", "ref": "Leitlinien KI in Maschinen"} + ], + "category": "Technisch", + "responsible": "KI-Verantwortlicher", + "sanctions": {"max_fine": "Marktzuruecknahme, Bussgeld", "personal_liability": true}, + "evidence": ["KI-Risikobeurteilung", "Sicherheitskonzept KI-Funktionen", "Human-Oversight-Nachweis"], + "priority": "kritisch", + "valid_from": "2027-01-20", + "valid_until": null, + "version": "1.0" + }, + { + "id": "EUMACH-OBL-013", + "title": "Sicherheitsbauteile mit digitaler Funktion", + "description": "Sicherheitsbauteile mit Software oder digitalen Elementen muessen ueber ihren Lebenszyklus aktuell gehalten werden. Sicherheitsupdates sind bereitzustellen und Cybersecurity-Risiken in der Risikobeurteilung zu beruecksichtigen.", + "applies_when": "digital_safety_components", + "applies_when_condition": { + "all_of": [ + {"field": "organization.industry", "operator": "IN", "value": ["manufacturing", "machinery", "industrial_equipment"]}, + {"field": "ai_usage.uses_ai", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "EU-Maschinenverordnung", "article": "Art. 22", "title": "Sicherheitsbauteile"} + ], + "sources": [ + {"type": "article", "ref": "Art. 22 VO (EU) 2023/1230"} + ], + "category": "Technisch", + "responsible": "Entwicklungsleiter", + "evidence": ["Sicherheitsbauteil-Register", "Update-Konzept", "Cybersecurity-Risikobeurteilung"], + "priority": "hoch", + "valid_from": "2027-01-20", + "valid_until": null, + "version": "1.0" + }, + { + "id": "EUMACH-OBL-014", + "title": "Zusammenarbeit mit Marktueberwachungsbehoerden", + "description": "Wirtschaftsakteure muessen mit Marktueberwachungsbehoerden zusammenarbeiten und auf Verlangen alle erforderlichen Informationen und Unterlagen bereitstellen. Bei Nichtkonformitaet sind unverzueglich Korrekturmassnahmen zu ergreifen.", + "applies_when": "all_economic_operators", + "applies_when_condition": { + "all_of": [ + {"field": "organization.industry", "operator": "IN", "value": ["manufacturing", "machinery", "industrial_equipment", "import_trade"]} + ] + }, + "legal_basis": [ + {"norm": "EU-Maschinenverordnung", "article": "Art. 25", "title": "Marktueberwachung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 25 VO (EU) 2023/1230"} + ], + "category": "Organisatorisch", + "responsible": "Regulatory-Affairs", + "evidence": ["Kommunikationsprotokoll Behoerden", "Korrekturmassnahmenplan"], + "priority": "hoch", + "valid_from": "2027-01-20", + "valid_until": null, + "version": "1.0" + }, + { + "id": "EUMACH-OBL-015", + "title": "Meldepflicht bei Nichtkonformitaet", + "description": "Hersteller und Einfuehrer muessen die Marktueberwachungsbehoerden unverzueglich informieren, wenn sie Grund zur Annahme haben, dass eine Maschine nicht konform ist oder ein Risiko darstellt. Dokumentation aller Korrekturmassnahmen.", + "applies_when": "manufacturer_or_importer", + "applies_when_condition": { + "all_of": [ + {"field": "organization.industry", "operator": "IN", "value": ["manufacturing", "machinery", "industrial_equipment", "import_trade"]} + ] + }, + "legal_basis": [ + {"norm": "EU-Maschinenverordnung", "article": "Art. 25 Abs. 4", "title": "Meldepflicht Nichtkonformitaet"} + ], + "sources": [ + {"type": "article", "ref": "Art. 25 VO (EU) 2023/1230"} + ], + "category": "Meldepflicht", + "responsible": "Geschaeftsfuehrung", + "deadline": {"type": "on_event", "event": "Feststellung der Nichtkonformitaet", "duration": "P0D"}, + "sanctions": {"max_fine": "Bussgeld nach nationalem Recht, Marktzuruecknahme", "personal_liability": true}, + "evidence": ["Meldung an Behoerde", "Korrekturmassnahmen-Dokumentation"], + "priority": "kritisch", + "valid_from": "2027-01-20", + "valid_until": null, + "version": "1.0" + } + ], + "controls": [ + { + "id": "EUMACH-CTRL-001", + "name": "Risikobeurteilung Maschinen", + "description": "Systematische Risikobeurteilung aller Maschinen nach EN ISO 12100 mit Dokumentation der Gefahrenanalyse, Risikoeinschaetzung und Risikominderungsmassnahmen.", + "category": "Technisch", + "what_to_do": "EN ISO 12100 Risikobeurteilung fuer jede Maschine durchfuehren, Ergebnisse dokumentieren und Schutzmassnahmen implementieren.", + "iso27001_mapping": [], + "priority": "kritisch" + }, + { + "id": "EUMACH-CTRL-002", + "name": "Technische Dokumentation Lifecycle", + "description": "Verwaltung der technischen Dokumentation ueber den gesamten Produktlebenszyklus: Erstellung, Aktualisierung, Archivierung (mind. 10 Jahre), Bereitstellung fuer Behoerden.", + "category": "Dokumentation", + "what_to_do": "Dokumentenmanagementsystem einrichten, Verantwortlichkeiten definieren, Aufbewahrungsfristen ueberwachen.", + "iso27001_mapping": ["A.5.37"], + "priority": "hoch" + }, + { + "id": "EUMACH-CTRL-003", + "name": "KI-Sicherheitsvalidierung", + "description": "Spezifische Validierung von KI-Komponenten in Maschinen: Funktionale Sicherheit, Robustheit gegen Stoerungen, Nachvollziehbarkeit von KI-Entscheidungen in sicherheitsrelevanten Funktionen.", + "category": "Technisch", + "what_to_do": "KI-Sicherheitstests definieren und durchfuehren, Human-Oversight fuer sicherheitskritische KI-Funktionen implementieren.", + "iso27001_mapping": ["A.8.25", "A.8.29"], + "priority": "kritisch" + } + ], + "incident_deadlines": [ + { + "phase": "Sofortmeldung", + "deadline": "Unverzueglich nach Kenntnis", + "content": "Meldung an zustaendige Marktueberwachungsbehoerde bei Kenntnis eines schwerwiegenden Unfalls oder einer Nichtkonformitaet", + "recipient": "Marktueberwachungsbehoerde", + "legal_basis": [{"norm": "EU-Maschinenverordnung", "article": "Art. 25"}] + }, + { + "phase": "Korrekturmassnahmen", + "deadline": "Ohne ungebuerliche Verzoegerung", + "content": "Ergreifen aller erforderlichen Korrekturmassnahmen zur Herstellung der Konformitaet oder Ruecknahme/Rueckruf", + "recipient": "Marktueberwachungsbehoerde + betroffene Wirtschaftsakteure", + "legal_basis": [{"norm": "EU-Maschinenverordnung", "article": "Art. 25"}] + } + ] +} \ No newline at end of file diff --git a/ai-compliance-sdk/policies/obligations/v2/nis2_v2.json b/ai-compliance-sdk/policies/obligations/v2/nis2_v2.json new file mode 100644 index 0000000..77b969e --- /dev/null +++ b/ai-compliance-sdk/policies/obligations/v2/nis2_v2.json @@ -0,0 +1,1425 @@ +{ + "regulation": "nis2", + "name": "NIS2-Richtlinie / BSIG-E", + "description": "EU-Richtlinie 2022/2555 ueber Massnahmen fuer ein hohes gemeinsames Cybersicherheitsniveau + deutsches NIS2UmsuCG", + "version": "2.0", + "effective_date": "2024-10-18", + "obligations": [ + { + "id": "NIS2-OBL-001", + "title": "BSI-Registrierung", + "description": "Registrierung beim BSI ueber das Meldeportal innerhalb von 3 Monaten nach Identifikation als betroffene Einrichtung. Anzugeben sind: Name und Anschrift der Einrichtung, Kontaktdaten (E-Mail, Telefon) eines Ansprechpartners, IP-Adressbereiche der Einrichtung, Sektor und Taetigkeitsbereich.", + "applies_when": "classification in ['wichtige_einrichtung', 'besonders_wichtige_einrichtung']", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true}, + {"field": "sector.nis2_classification", "operator": "IN", "value": ["wichtige_einrichtung", "besonders_wichtige_einrichtung"]} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 3 Abs. 4", "title": "Anwendungsbereich und Registrierung"}, + {"norm": "BSIG-E", "article": "§ 33", "title": "Registrierungspflicht"} + ], + "sources": [ + {"type": "article", "ref": "Art. 3 Abs. 4 NIS2"}, + {"type": "national_law", "ref": "§ 33 BSIG-E"} + ], + "category": "Meldepflicht", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "500.000 EUR", "personal_liability": false}, + "evidence": [ + "Registrierungsbestaetigung des BSI", + "Dokumentierte Ansprechpartner mit Kontaktdaten", + "Liste der registrierten IP-Bereiche" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.02"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-002", + "title": "Risikomanagement-Massnahmen implementieren", + "description": "Umsetzung angemessener und verhaeltnismaessiger technischer, operativer und organisatorischer Massnahmen zur Beherrschung der Risiken fuer die Sicherheit der Netz- und Informationssysteme. Die Massnahmen muessen dem Stand der Technik entsprechen und Risikoanalyse, Sicherheitskonzepte, Incident-Bewaeltigung, BCM, Lieferkettensicherheit, Schwachstellenmanagement, Wirksamkeitsbewertung, Cyberhygiene, Kryptographie, Personalsicherheit und Zugangskontrollen abdecken.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 21", "title": "Risikomanagementmassnahmen im Bereich der Cybersicherheit"}, + {"norm": "BSIG-E", "article": "§ 30", "title": "Risikomanagementmassnahmen"} + ], + "sources": [ + {"type": "article", "ref": "Art. 21 NIS2"}, + {"type": "national_law", "ref": "§ 30 BSIG-E"} + ], + "category": "Governance", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "ISMS-Dokumentation", + "Risikoanalyse und -bewertung", + "Massnahmenkatalog mit Umsetzungsstatus", + "Sicherheitskonzept" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.02", "TOM.GOV.03", "TOM.OPS.01"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-003", + "title": "Geschaeftsfuehrungs-Verantwortung und Genehmigung", + "description": "Die Leitungsorgane (Geschaeftsfuehrung, Vorstand) muessen die Risikomanagementmassnahmen billigen und deren Umsetzung ueberwachen. Bei Verstoessen koennen sie persoenlich haftbar gemacht werden. Die Geschaeftsfuehrung ist verpflichtet: Risikomanagement-Massnahmen zu genehmigen, Umsetzung regelmaessig zu ueberpruefen, ausreichende Ressourcen bereitzustellen und Cybersicherheit als strategisches Thema zu behandeln.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 20", "title": "Governance"}, + {"norm": "BSIG-E", "article": "§ 38", "title": "Billigung, Ueberwachung und Schulung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 20 NIS2"}, + {"type": "national_law", "ref": "§ 38 BSIG-E"} + ], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Vorstandsbeschluss zur Cybersicherheitsstrategie", + "Dokumentierte Genehmigung der Risikomanagement-Massnahmen", + "Protokolle der regelmaessigen Reviews", + "Nachweis der Ressourcenbereitstellung" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.04", "TOM.GOV.05"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-004", + "title": "Cybersicherheits-Schulung der Geschaeftsfuehrung", + "description": "Mitglieder der Leitungsorgane muessen an regelmaessigen Schulungen teilnehmen, um ausreichende Kenntnisse und Faehigkeiten zur Erkennung und Bewertung von Cybersicherheitsrisiken und deren Auswirkungen zu erlangen. Themen: Aktuelle Bedrohungslage, Grundlagen der Informationssicherheit, relevante gesetzliche Anforderungen (NIS2, DSGVO), risikobasierter Ansatz, Incident Response und Krisenmanagement.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 20 Abs. 2", "title": "Schulungspflicht der Leitungsorgane"}, + {"norm": "BSIG-E", "article": "§ 38 Abs. 3", "title": "Schulungspflicht"} + ], + "sources": [ + {"type": "article", "ref": "Art. 20 Abs. 2 NIS2"}, + {"type": "national_law", "ref": "§ 38 Abs. 3 BSIG-E"} + ], + "category": "Schulung", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Schulungsnachweise/Zertifikate der Geschaeftsfuehrung", + "Schulungsplan mit Themen und Terminen", + "Teilnahmelisten" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.HR.01", "TOM.HR.02", "TOM.GOV.06"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-005", + "title": "Incident-Response-Prozess und Meldepflichten", + "description": "Etablierung eines Prozesses zur Erkennung, Analyse, Eindaemmung und Meldung von erheblichen Sicherheitsvorfaellen. Dreistufige Meldung: 1) Fruehwarnung (24h) — ob boesartiger Angriff vermutet wird und grenzueberschreitende Auswirkungen moeglich sind; 2) Vorfallmeldung (72h) — erste Bewertung, Schweregrad, Auswirkungen, IoCs; 3) Abschlussbericht (1 Monat) — ausfuehrliche Beschreibung, Ursachenanalyse, ergriffene Massnahmen.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 23", "title": "Berichtspflichten"}, + {"norm": "BSIG-E", "article": "§ 32", "title": "Meldepflichten"} + ], + "sources": [ + {"type": "article", "ref": "Art. 23 NIS2"}, + {"type": "national_law", "ref": "§ 32 BSIG-E"} + ], + "category": "Meldepflicht", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Incident-Response-Plan", + "Meldeprozess-Dokumentation", + "24/7-Erreichbarkeit der Ansprechpartner", + "Kontaktdaten BSI und ggf. sektorale Behoerden", + "Vorlagen fuer Meldungen" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.OPS.08", "TOM.OPS.09", "TOM.OPS.10", "TOM.LOG.01"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-006", + "title": "Business Continuity Management", + "description": "Implementierung von Massnahmen zur Aufrechterhaltung des Betriebs: Backup-Management und -Strategie, Notfallwiederherstellung (Disaster Recovery), Krisenmanagement, Notfallplanung. Regelmaessige Tests der BCM-Massnahmen sind durchzufuehren.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 21 Abs. 2 lit. c", "title": "Betriebskontinuitaet und Krisenmanagement"}, + {"norm": "BSIG-E", "article": "§ 30 Abs. 2 Nr. 3", "title": "BCM-Massnahmen"} + ], + "sources": [ + {"type": "article", "ref": "Art. 21 Abs. 2 lit. c NIS2"}, + {"type": "national_law", "ref": "§ 30 Abs. 2 Nr. 3 BSIG-E"} + ], + "category": "Technisch", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "BCM-Dokumentation", + "Backup-Konzept mit RTO/RPO", + "Disaster-Recovery-Plan", + "Krisenmanagement-Handbuch", + "Testprotokolle (mindestens jaehrlich)" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.BCP.01", "TOM.BCP.02", "TOM.BCP.03", "TOM.BCP.04"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-007", + "title": "Lieferketten-Sicherheit", + "description": "Sicherstellung der Sicherheit in der Lieferkette: Bewertung der Sicherheitspraktiken von Lieferanten, vertragliche Sicherheitsanforderungen, regelmaessige Ueberpruefung der Lieferanten, Beruecksichtigung von Konzentrationsrisiken, Dokumentation kritischer Lieferanten.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 21 Abs. 2 lit. d", "title": "Sicherheit der Lieferkette"}, + {"norm": "BSIG-E", "article": "§ 30 Abs. 2 Nr. 4", "title": "Sicherheit der Lieferkette"} + ], + "sources": [ + {"type": "article", "ref": "Art. 21 Abs. 2 lit. d NIS2"}, + {"type": "national_law", "ref": "§ 30 Abs. 2 Nr. 4 BSIG-E"} + ], + "category": "Organisatorisch", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Lieferanten-Risikobewertung", + "Sicherheitsanforderungen in Vertraegen", + "Liste kritischer Lieferanten", + "Audit-Berichte von Lieferanten" + ], + "priority": "mittel", + "tom_control_ids": ["TOM.VENDOR.01", "TOM.VENDOR.02", "TOM.VENDOR.03", "TOM.VENDOR.04"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-008", + "title": "Schwachstellenmanagement", + "description": "Etablierung von Prozessen zum Umgang mit Schwachstellen: regelmaessige Schwachstellen-Scans, Priorisierung nach Risiko, zeitnahe Behebung (Patch-Management), koordinierte Offenlegung von Schwachstellen.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 21 Abs. 2 lit. e", "title": "Sicherheit bei Erwerb, Entwicklung und Wartung"}, + {"norm": "BSIG-E", "article": "§ 30 Abs. 2 Nr. 5", "title": "Schwachstellenmanagement"} + ], + "sources": [ + {"type": "article", "ref": "Art. 21 Abs. 2 lit. e NIS2"}, + {"type": "national_law", "ref": "§ 30 Abs. 2 Nr. 5 BSIG-E"} + ], + "category": "Technisch", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Schwachstellen-Management-Prozess", + "Patch-Management-Richtlinie", + "Vulnerability-Scan-Berichte", + "Statistiken zur Behebungszeit" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.OPS.04", "TOM.OPS.05", "TOM.SDLC.01", "TOM.SDLC.02"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-009", + "title": "Zugangs- und Identitaetsmanagement", + "description": "Implementierung von Konzepten fuer: Zugangskontrolle (Need-to-know-Prinzip), Management von Benutzerkonten und Berechtigungen, Multi-Faktor-Authentifizierung (MFA), sichere Authentifizierungsmethoden, regelmaessige Ueberpruefung von Berechtigungen.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 21 Abs. 2 lit. i", "title": "Zugangskontrollen und Anlageverwaltung"}, + {"norm": "BSIG-E", "article": "§ 30 Abs. 2 Nr. 9", "title": "Zugangskontrolle"} + ], + "sources": [ + {"type": "article", "ref": "Art. 21 Abs. 2 lit. i NIS2"}, + {"type": "national_law", "ref": "§ 30 Abs. 2 Nr. 9 BSIG-E"} + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Zugangskontroll-Richtlinie", + "MFA-Implementierungsnachweis", + "Identity-Management-Dokumentation", + "Berechtigungsmatrix", + "Review-Protokolle" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.IAM.01", "TOM.IAM.02", "TOM.IAM.03", "TOM.AC.01", "TOM.AC.02"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-010", + "title": "Kryptographie und Verschluesselung", + "description": "Konzepte und Verfahren fuer den Einsatz von Kryptographie: Verschluesselung von Daten in Ruhe und Transit, sichere Schluesselverwaltung, Verwendung aktueller kryptographischer Standards, regelmaessige Ueberpruefung der eingesetzten Verfahren.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 21 Abs. 2 lit. h", "title": "Kryptographie und Verschluesselung"}, + {"norm": "BSIG-E", "article": "§ 30 Abs. 2 Nr. 8", "title": "Kryptographie"} + ], + "sources": [ + {"type": "article", "ref": "Art. 21 Abs. 2 lit. h NIS2"}, + {"type": "national_law", "ref": "§ 30 Abs. 2 Nr. 8 BSIG-E"} + ], + "category": "Technisch", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Kryptographie-Richtlinie", + "Verschluesselungskonzept", + "Key-Management-Dokumentation", + "Liste eingesetzter Algorithmen" + ], + "priority": "mittel", + "tom_control_ids": ["TOM.CRYPTO.01", "TOM.CRYPTO.02", "TOM.CRYPTO.03"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-011", + "title": "Personalsicherheit und Awareness", + "description": "Sicherstellung der Personalsicherheit: Hintergrundueberpruefungen fuer kritische Rollen, regelmaessige Sicherheitsschulungen fuer alle Mitarbeiter, Awareness-Programme, klare Verantwortlichkeiten, Prozesse bei Personalwechsel.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 21 Abs. 2 lit. g", "title": "Cyberhygiene und Schulungen"}, + {"norm": "NIS2", "article": "Art. 21 Abs. 2 lit. j", "title": "Personalsicherheit"}, + {"norm": "BSIG-E", "article": "§ 30 Abs. 2 Nr. 7", "title": "Cyberhygiene-Verfahren"}, + {"norm": "BSIG-E", "article": "§ 30 Abs. 2 Nr. 10", "title": "Personalsicherheit"} + ], + "sources": [ + {"type": "article", "ref": "Art. 21 Abs. 2 lit. g NIS2"}, + {"type": "article", "ref": "Art. 21 Abs. 2 lit. j NIS2"}, + {"type": "national_law", "ref": "§ 30 Abs. 2 Nr. 7 BSIG-E"}, + {"type": "national_law", "ref": "§ 30 Abs. 2 Nr. 10 BSIG-E"} + ], + "category": "Organisatorisch", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Personalsicherheits-Richtlinie", + "Schulungskonzept und -nachweise", + "Awareness-Materialien", + "Onboarding/Offboarding-Prozesse" + ], + "priority": "mittel", + "tom_control_ids": ["TOM.HR.01", "TOM.HR.02", "TOM.HR.03", "TOM.HR.04"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-012", + "title": "Regelmaessige Sicherheitsaudits (besonders wichtige Einrichtungen)", + "description": "Besonders wichtige Einrichtungen unterliegen regelmaessigen Sicherheitsueberpruefungen durch das BSI. Diese koennen Vor-Ort-Pruefungen, Remote-Audits, Dokumentenpruefungen und technische Pruefungen umfassen. Die Einrichtungen muessen auf Anforderung Nachweise vorlegen.", + "applies_when": "classification == 'besonders_wichtige_einrichtung'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true}, + {"field": "sector.nis2_classification", "operator": "EQUALS", "value": "besonders_wichtige_einrichtung"} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 32", "title": "Aufsichtsmassnahmen fuer besonders wichtige Einrichtungen"}, + {"norm": "BSIG-E", "article": "§ 39", "title": "Nachweisprueufung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 32 NIS2"}, + {"type": "national_law", "ref": "§ 39 BSIG-E"} + ], + "category": "Audit", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Audit-Berichte", + "Massnahmenplaene aus Audits", + "Nachweise der Umsetzung" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.07", "TOM.GOV.08"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-013", + "title": "Netzsegmentierung und Netzwerksicherheit", + "description": "Implementierung von Netzwerksicherheitsmassnahmen: Segmentierung kritischer Systeme, Firewalls und Zugangskontrolle, sichere Netzwerkarchitektur, Ueberwachung des Netzwerkverkehrs.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 21 Abs. 2 lit. a", "title": "Risikoanalyse und Sicherheitskonzepte"}, + {"norm": "BSIG-E", "article": "§ 30 Abs. 2 Nr. 1", "title": "Risikoanalyse und Sicherheitskonzepte"} + ], + "sources": [ + {"type": "article", "ref": "Art. 21 Abs. 2 lit. a NIS2"}, + {"type": "national_law", "ref": "§ 30 Abs. 2 Nr. 1 BSIG-E"} + ], + "category": "Technisch", + "responsible": "IT-Leitung", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Netzwerkarchitektur-Dokumentation", + "Firewall-Regelwerke", + "Segmentierungskonzept" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.NET.01", "TOM.NET.02", "TOM.NET.03", "TOM.NET.04"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-014", + "title": "Security Monitoring und Protokollierung", + "description": "Kontinuierliche Ueberwachung der IT-Sicherheit: Sicherheitsrelevante Protokollierung, SIEM oder vergleichbare Loesung, Anomalie-Erkennung, regelmaessige Auswertung der Logs.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 21 Abs. 2 lit. b", "title": "Bewaeltigung von Sicherheitsvorfaellen"}, + {"norm": "BSIG-E", "article": "§ 30 Abs. 2 Nr. 2", "title": "Bewaeltigung von Sicherheitsvorfaellen"} + ], + "sources": [ + {"type": "article", "ref": "Art. 21 Abs. 2 lit. b NIS2"}, + {"type": "national_law", "ref": "§ 30 Abs. 2 Nr. 2 BSIG-E"} + ], + "category": "Technisch", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Log-Management-Konzept", + "SIEM-Dokumentation", + "Monitoring-Dashboards", + "Incident-Berichte aus Monitoring" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.LOG.01", "TOM.LOG.02", "TOM.LOG.03", "TOM.LOG.04"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-015", + "title": "Bewertung der Wirksamkeit von Cybersicherheitsmassnahmen", + "description": "Regelmaessige Bewertung der Wirksamkeit der implementierten Risikomanagementmassnahmen. Einrichtungen muessen Konzepte und Verfahren zur Bewertung der Wirksamkeit vorhalten, einschliesslich Penetrationstests, Sicherheitsaudits und Uebungen. Die Ergebnisse muessen dokumentiert und zur kontinuierlichen Verbesserung genutzt werden.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 21 Abs. 2 lit. f", "title": "Bewertung der Wirksamkeit von Risikomanagementmassnahmen"}, + {"norm": "BSIG-E", "article": "§ 30 Abs. 2 Nr. 6", "title": "Bewertung der Wirksamkeit"} + ], + "sources": [ + {"type": "article", "ref": "Art. 21 Abs. 2 lit. f NIS2"}, + {"type": "national_law", "ref": "§ 30 Abs. 2 Nr. 6 BSIG-E"} + ], + "category": "Audit", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Penetrationstest-Berichte", + "Wirksamkeitsbewertungs-Dokumentation", + "KPI-Dashboard fuer Sicherheitsmassnahmen", + "Verbesserungsplaene aus Bewertungen" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.09", "TOM.GOV.10", "TOM.OPS.06"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-016", + "title": "Stand der Technik bei Sicherheitsmassnahmen", + "description": "Alle Risikomanagementmassnahmen muessen unter Beruecksichtigung des Stands der Technik, einschlaegiger europaeischer und internationaler Normen sowie der Kosten der Umsetzung im Verhaeltnis zum Risiko implementiert werden. Relevante Standards wie ISO 27001, BSI IT-Grundschutz und branchenspezifische Normen sind zu beruecksichtigen.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 21 Abs. 3", "title": "Stand der Technik und Verhaeltnismaessigkeit"}, + {"norm": "BSIG-E", "article": "§ 30 Abs. 1", "title": "Stand der Technik"} + ], + "sources": [ + {"type": "article", "ref": "Art. 21 Abs. 3 NIS2"}, + {"type": "national_law", "ref": "§ 30 Abs. 1 BSIG-E"}, + {"type": "bsi_standard", "ref": "BSI IT-Grundschutz Kompendium"} + ], + "category": "Governance", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Referenz auf angewandte Normen und Standards", + "Dokumentation der Verhaeltnismaessigkeitspruefung", + "Technologie-Bewertungen und Benchmark-Analysen" + ], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.03", "TOM.GOV.11"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-017", + "title": "Umsetzungsakte der Kommission beachten", + "description": "Die Europaeische Kommission kann Durchfuehrungsrechtsakte erlassen, die technische und methodische Anforderungen an die Risikomanagementmassnahmen naeher spezifizieren. Einrichtungen muessen diese Umsetzungsakte bei Veroeffentlichung umsetzen und ihre Massnahmen entsprechend anpassen. Dies gilt insbesondere fuer DNS-Diensteanbieter, TLD-Namenregister, Cloud-Computing-Dienstleister, Rechenzentren, CDN-Anbieter, Managed-Service-Provider und Online-Marktplaetze.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 21 Abs. 4", "title": "Durchfuehrungsrechtsakte der Kommission"}, + {"norm": "NIS2", "article": "Art. 21 Abs. 5", "title": "Technische Anforderungen"} + ], + "sources": [ + {"type": "article", "ref": "Art. 21 Abs. 4 NIS2"}, + {"type": "article", "ref": "Art. 21 Abs. 5 NIS2"}, + {"type": "eu_guidance", "ref": "EU-Durchfuehrungsverordnung zu NIS2 (ausstehend)"} + ], + "category": "Compliance", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Monitoring-Prozess fuer EU-Durchfuehrungsrechtsakte", + "Gap-Analyse bei Veroeffentlichung neuer Rechtsakte", + "Umsetzungsplan und Nachweis der Anpassungen" + ], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.12"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-018", + "title": "Grenzueberschreitende Auswirkungen melden", + "description": "Wenn ein erheblicher Sicherheitsvorfall Auswirkungen auf andere EU-Mitgliedstaaten haben kann, muss die Einrichtung dies in der Fruehwarnung und der Vorfallmeldung angeben. Das BSI leitet die Meldung an die betroffenen Mitgliedstaaten weiter. Die Einrichtung muss in der Lage sein, grenzueberschreitende Auswirkungen fruehzeitig zu erkennen und zu bewerten.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true}, + {"field": "organization.eu_member", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 23 Abs. 4", "title": "Grenzueberschreitende Auswirkungen"}, + {"norm": "BSIG-E", "article": "§ 32 Abs. 4", "title": "Weiterleitung an betroffene Mitgliedstaaten"} + ], + "sources": [ + {"type": "article", "ref": "Art. 23 Abs. 4 NIS2"}, + {"type": "national_law", "ref": "§ 32 Abs. 4 BSIG-E"} + ], + "category": "Meldepflicht", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Prozess zur Erkennung grenzueberschreitender Auswirkungen", + "Kontaktliste der betroffenen EU-Behoerden", + "Dokumentation frueherer grenzueberschreitender Meldungen" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.OPS.09", "TOM.OPS.10"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-019", + "title": "Nutzung europaeischer Zertifizierungsschemata", + "description": "Mitgliedstaaten koennen von Einrichtungen verlangen, bestimmte IKT-Produkte, -Dienste und -Prozesse im Rahmen europaeischer Cybersicherheitszertifizierungsschemata nach der CSA-Verordnung (EU 2019/881) zu zertifizieren. Einrichtungen sollten prueben, ob fuer ihren Sektor verpflichtende Zertifizierungen vorgeschrieben sind und diese umsetzen.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 24", "title": "Nutzung europaeischer Zertifizierungsschemata"}, + {"norm": "CSA", "article": "Verordnung (EU) 2019/881", "title": "Cybersicherheitsakt"} + ], + "sources": [ + {"type": "article", "ref": "Art. 24 NIS2"}, + {"type": "eu_guidance", "ref": "Verordnung (EU) 2019/881 (Cybersecurity Act)"} + ], + "category": "Compliance", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": [ + "Uebersicht verpflichtender Zertifizierungen fuer den Sektor", + "Gueltige Zertifikate nach EU-Schema", + "Zertifizierungsplanung und Zeitplan" + ], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.13", "TOM.VENDOR.05"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-020", + "title": "Koordinierte Schwachstellenoffenlegung", + "description": "Einrichtungen muessen Verfahren fuer die koordinierte Offenlegung von Schwachstellen (Coordinated Vulnerability Disclosure, CVD) unterstuetzen. Dies umfasst die Einrichtung eines Meldeverfahrens fuer Sicherheitsforscher, die verantwortungsvolle Behandlung gemeldeter Schwachstellen und die koordinierte Veroeffentlichung mit Patches oder Workarounds.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 25", "title": "Koordinierte Schwachstellenoffenlegung"}, + {"norm": "BSIG-E", "article": "§ 30 Abs. 2 Nr. 5", "title": "Schwachstellenmanagement"} + ], + "sources": [ + {"type": "article", "ref": "Art. 25 NIS2"}, + {"type": "national_law", "ref": "§ 30 Abs. 2 Nr. 5 BSIG-E"} + ], + "category": "Organisatorisch", + "responsible": "CISO", + "sanctions": {"max_fine": "7 Mio. EUR oder 1,4% des weltweiten Jahresumsatzes", "personal_liability": false}, + "evidence": [ + "CVD-Richtlinie (Vulnerability Disclosure Policy)", + "security.txt auf der Unternehmenswebsite", + "Dokumentierter CVD-Prozess", + "Protokoll behandelter Schwachstellenmeldungen" + ], + "priority": "mittel", + "tom_control_ids": ["TOM.OPS.04", "TOM.OPS.05", "TOM.SDLC.03"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-021", + "title": "Cybersicherheits-Informationsaustausch", + "description": "Einrichtungen koennen auf freiwilliger Basis Cybersicherheitsinformationen austauschen, einschliesslich Bedrohungsdaten (Threat Intelligence), IoCs, Taktiken/Techniken/Prozeduren (TTPs) und Sicherheitswarnungen. Der Austausch muss unter Beachtung des Datenschutzes und des Wettbewerbsrechts erfolgen. ISAC-Mitgliedschaften (Information Sharing and Analysis Centers) werden empfohlen.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 26", "title": "Vereinbarungen ueber den Informationsaustausch"}, + {"norm": "BSIG-E", "article": "§ 30 Abs. 4", "title": "Informationsaustausch"} + ], + "sources": [ + {"type": "article", "ref": "Art. 26 NIS2"}, + {"type": "national_law", "ref": "§ 30 Abs. 4 BSIG-E"} + ], + "category": "Organisatorisch", + "responsible": "CISO", + "sanctions": {"max_fine": "keine direkte Sanktion", "personal_liability": false}, + "evidence": [ + "ISAC-Mitgliedschaftsnachweis", + "Threat-Intelligence-Sharing-Vereinbarungen", + "Datenschutz-Folgenabschaetzung fuer Informationsaustausch", + "Protokoll geteilter und empfangener Bedrohungsinformationen" + ], + "priority": "niedrig", + "tom_control_ids": ["TOM.OPS.11", "TOM.GOV.14"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-022", + "title": "ENISA Schwachstellendatenbank nutzen", + "description": "ENISA fuehrt eine europaeische Schwachstellendatenbank. Einrichtungen sollen erkannte Schwachstellen an die zustaendige nationale Behoerde oder das CSIRT melden, damit diese in die Datenbank aufgenommen werden koennen. Hersteller und Anbieter von IKT-Produkten sollen koordiniert mit der Datenbank zusammenarbeiten.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 28", "title": "Europaeische Schwachstellendatenbank"} + ], + "sources": [ + {"type": "article", "ref": "Art. 28 NIS2"}, + {"type": "eu_guidance", "ref": "ENISA Vulnerability Database"} + ], + "category": "Organisatorisch", + "responsible": "CISO", + "sanctions": {"max_fine": "keine direkte Sanktion", "personal_liability": false}, + "evidence": [ + "Prozess zur Meldung von Schwachstellen an ENISA/BSI", + "Nutzungsnachweis der ENISA-Datenbank", + "Dokumentation gemeldeter Schwachstellen" + ], + "priority": "niedrig", + "tom_control_ids": ["TOM.OPS.04", "TOM.OPS.05"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-023", + "title": "Freiwillige Meldung von Sicherheitsvorfaellen", + "description": "Auch nicht-erhebliche Sicherheitsvorfaelle, Beinahe-Vorfaelle und Cyberbedrohungen koennen freiwillig an das BSI/CSIRT gemeldet werden. Freiwillige Meldungen werden vertraulich behandelt und fuehren nicht zu zusaetzlichen Pflichten fuer die meldende Einrichtung. Freiwillige Meldungen staerken das Lagebild und die Fruehwarnung.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 31", "title": "Freiwillige Meldungen"} + ], + "sources": [ + {"type": "article", "ref": "Art. 31 NIS2"} + ], + "category": "Meldepflicht", + "responsible": "CISO", + "sanctions": {"max_fine": "keine Sanktion (freiwillig)", "personal_liability": false}, + "evidence": [ + "Interner Prozess fuer freiwillige Meldungen", + "Protokoll freiwillig gemeldeter Vorfaelle", + "Formular/Vorlage fuer freiwillige Meldungen" + ], + "priority": "niedrig", + "tom_control_ids": ["TOM.OPS.09"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-024", + "title": "Aufsichtsmassnahmen besonders wichtige Einrichtungen dulden", + "description": "Besonders wichtige Einrichtungen muessen Aufsichtsmassnahmen des BSI dulden und unterstuetzen. Dies umfasst: regelmaessige und gezielte Sicherheitspruefungen, Vor-Ort-Inspektionen, Off-Site-Ueberpruefungen, Ad-hoc-Pruefungen bei begruendetem Verdacht, Sicherheitsscans, Anforderung von Informationen und Zugang zu Daten/Dokumenten. Die Einrichtung muss Pruefern angemessenen Zugang gewaehren.", + "applies_when": "classification == 'besonders_wichtige_einrichtung'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true}, + {"field": "sector.nis2_classification", "operator": "EQUALS", "value": "besonders_wichtige_einrichtung"} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 32", "title": "Aufsicht und Durchsetzung — besonders wichtige Einrichtungen"}, + {"norm": "BSIG-E", "article": "§ 39", "title": "Nachweisprueufung besonders wichtige Einrichtungen"} + ], + "sources": [ + {"type": "article", "ref": "Art. 32 NIS2"}, + {"type": "national_law", "ref": "§ 39 BSIG-E"} + ], + "category": "Audit", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Prozess fuer Umgang mit Aufsichtspruefungen", + "Bereitstellungsplan fuer Pruefer-Zugang", + "Dokumentationsarchiv fuer Nachweispflichten", + "Kommunikationsprotokoll mit BSI" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.07", "TOM.GOV.08"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-025", + "title": "Aufsichtsmassnahmen wichtige Einrichtungen dulden", + "description": "Wichtige Einrichtungen unterliegen einer nachtraeglichen Aufsicht (ex-post). Bei begruendetem Verdacht auf Nichtkonformitaet kann das BSI Pruefungen anordnen, Informationen anfordern und Sicherheitsscans durchfuehren. Wichtige Einrichtungen muessen auf Anfrage Nachweise erbringen und mit den Aufsichtsbehoerden kooperieren.", + "applies_when": "classification == 'wichtige_einrichtung'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true}, + {"field": "sector.nis2_classification", "operator": "EQUALS", "value": "wichtige_einrichtung"} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 33", "title": "Aufsicht und Durchsetzung — wichtige Einrichtungen"}, + {"norm": "BSIG-E", "article": "§ 39", "title": "Aufsicht wichtige Einrichtungen"} + ], + "sources": [ + {"type": "article", "ref": "Art. 33 NIS2"}, + {"type": "national_law", "ref": "§ 39 BSIG-E"} + ], + "category": "Audit", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "7 Mio. EUR oder 1,4% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Dokumentierter Kooperationsprozess mit BSI", + "Nachweisdokumente fuer Aufsichtsanfragen", + "Kommunikationsprotokoll" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.07", "TOM.GOV.08"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-026", + "title": "Sanktionskonformitaet und Bussgeldvermeidung", + "description": "Einrichtungen muessen die Sanktionsbestimmungen der NIS2-Richtlinie und des BSIG-E kennen und Massnahmen ergreifen, um Verstoesse zu vermeiden. Bussgelder koennen bis zu 10 Mio. EUR oder 2% des weltweiten Jahresumsatzes (besonders wichtige Einrichtungen) bzw. 7 Mio. EUR oder 1,4% (wichtige Einrichtungen) betragen. Bei wiederholten Verstoessen koennen zusaetzliche Massnahmen wie die temporaere Aussetzung von Genehmigungen angeordnet werden.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 34", "title": "Allgemeine Bedingungen fuer Sanktionen"}, + {"norm": "NIS2", "article": "Art. 36", "title": "Bussen"}, + {"norm": "BSIG-E", "article": "§ 64", "title": "Bussgelder"} + ], + "sources": [ + {"type": "article", "ref": "Art. 34 NIS2"}, + {"type": "article", "ref": "Art. 36 NIS2"}, + {"type": "national_law", "ref": "§ 64 BSIG-E"} + ], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Compliance-Management-System", + "Bussgeld-Risikobewertung", + "Massnahmenplan zur Bussgeldvermeidung", + "Regelmaessige Compliance-Audits" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.15"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-027", + "title": "Durchsetzungsmassnahmen des BSI befolgen", + "description": "Das BSI kann Durchsetzungsmassnahmen anordnen, wenn Einrichtungen ihren Pflichten nicht nachkommen. Massnahmen umfassen: Warnungen, verbindliche Anweisungen, Anordnung zur Behebung von Maengeln, Anordnung zur Information betroffener Nutzer, Anordnung zur Umsetzung von Audit-Empfehlungen innerhalb einer gesetzten Frist. Einrichtungen muessen diesen Anordnungen fristgerecht nachkommen.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 35", "title": "Durchsetzung"}, + {"norm": "BSIG-E", "article": "§ 40", "title": "Anordnungen des BSI"}, + {"norm": "BSIG-E", "article": "§ 41", "title": "Weitere Anordnungsbefugnisse"} + ], + "sources": [ + {"type": "article", "ref": "Art. 35 NIS2"}, + {"type": "national_law", "ref": "§ 40 BSIG-E"}, + {"type": "national_law", "ref": "§ 41 BSIG-E"} + ], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Eskalationsprozess fuer BSI-Anordnungen", + "Fristenmanagement fuer Anordnungen", + "Dokumentation der Umsetzung von Anordnungen", + "Kommunikationsprotokoll mit BSI" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.15"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-028", + "title": "Anwendungsbereich pruefen (wichtig vs. besonders wichtig)", + "description": "Jede Organisation muss eigenstaendig pruefen, ob sie in den Anwendungsbereich des NIS2UmsuCG faellt und welcher Kategorie sie angehoert. Besonders wichtige Einrichtungen: Annex-I-Sektoren mit >= 250 Mitarbeitern oder > 50 Mio. EUR Umsatz, KRITIS-Betreiber, qualifizierte Vertrauensdiensteanbieter, TLD-Register, DNS-Anbieter. Wichtige Einrichtungen: Annex-I/II-Sektoren mit >= 50 Mitarbeitern oder > 10 Mio. EUR Umsatz.", + "applies_when": "Alle Organisationen muessen pruefen", + "applies_when_condition": { + "any_of": [ + {"field": "sector.is_annex_i", "operator": "EQUALS", "value": true}, + {"field": "sector.is_annex_ii", "operator": "EQUALS", "value": true}, + {"field": "sector.is_kritis", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "BSIG-E", "article": "§ 28", "title": "Anwendungsbereich — besonders wichtige und wichtige Einrichtungen"} + ], + "sources": [ + {"type": "national_law", "ref": "§ 28 BSIG-E"}, + {"type": "article", "ref": "Art. 2 NIS2"}, + {"type": "article", "ref": "Art. 3 NIS2"} + ], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "500.000 EUR", "personal_liability": false}, + "evidence": [ + "Dokumentierte Betroffenheitsanalyse", + "Sektorklassifizierung und Schwellenwertpruefung", + "Beschluss der Geschaeftsfuehrung zur NIS2-Klassifizierung" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-029", + "title": "Sektorspezifische Anforderungen umsetzen", + "description": "Fuer bestimmte Sektoren koennen zusaetzliche spezifische Anforderungen gelten, die ueber die allgemeinen NIS2-Pflichten hinausgehen. Diese sektorspezifischen Anforderungen werden durch Rechtsverordnung naeher bestimmt und koennen branchenspezifische Sicherheitsstandards (B3S), spezifische Meldeformate und technische Mindestanforderungen umfassen.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "BSIG-E", "article": "§ 29", "title": "Sektorspezifische Anforderungen"} + ], + "sources": [ + {"type": "national_law", "ref": "§ 29 BSIG-E"}, + {"type": "bsi_standard", "ref": "Branchenspezifische Sicherheitsstandards (B3S)"} + ], + "category": "Compliance", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Uebersicht sektorspezifischer Anforderungen", + "Umsetzungsnachweis sektorspezifischer Standards", + "B3S-Konformitaetsnachweis (falls vorhanden)" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.03", "TOM.GOV.11"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-030", + "title": "Detailmassnahmen nach §30 BSIG-E", + "description": "Umsetzung der zehn Mindestmassnahmen gemaess §30 Abs. 2 BSIG-E: (1) Risikoanalyse und Sicherheitskonzepte, (2) Bewaeltigung von Sicherheitsvorfaellen, (3) Betriebskontinuitaet und Krisenmanagement, (4) Sicherheit der Lieferkette, (5) Sicherheit bei Erwerb/Entwicklung/Wartung, (6) Bewertung der Wirksamkeit, (7) Cyberhygiene und Schulungen, (8) Kryptographie, (9) Personalsicherheit/Zugangskontrollen, (10) MFA und sichere Kommunikation.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "BSIG-E", "article": "§ 30", "title": "Risikomanagementmassnahmen besonderer und wichtiger Einrichtungen"} + ], + "sources": [ + {"type": "national_law", "ref": "§ 30 BSIG-E"}, + {"type": "article", "ref": "Art. 21 NIS2"} + ], + "category": "Governance", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Umsetzungsmatrix aller 10 Mindestmassnahmen", + "Dokumentation je Massnahmenbereich", + "Regelmaessige Fortschrittskontrolle" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.02", "TOM.GOV.03", "TOM.OPS.01", "TOM.BCP.01", "TOM.VENDOR.01", "TOM.SDLC.01", "TOM.HR.01", "TOM.CRYPTO.01", "TOM.IAM.01"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-031", + "title": "Nachweispflicht gegenueber dem BSI", + "description": "Besonders wichtige Einrichtungen muessen dem BSI die Umsetzung der Risikomanagementmassnahmen nachweisen. Dies kann durch Sicherheitsaudits, Pruefungen oder Zertifizierungen erfolgen. Wichtige Einrichtungen muessen Nachweise auf Anforderung des BSI erbringen. Die Kosten traegt die Einrichtung.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "BSIG-E", "article": "§ 31", "title": "Nachweispflicht"}, + {"norm": "BSIG-E", "article": "§ 39", "title": "Nachweisprueufung"} + ], + "sources": [ + {"type": "national_law", "ref": "§ 31 BSIG-E"}, + {"type": "national_law", "ref": "§ 39 BSIG-E"} + ], + "category": "Audit", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Aktuelle Zertifizierung (z.B. ISO 27001) oder Audit-Berichte", + "Massnahmennachweis-Dokumentation", + "Budget fuer Nachweisfuehrung" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.07", "TOM.GOV.08"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-032", + "title": "Kontaktstelle benennen und pflegen", + "description": "Einrichtungen muessen eine Kontaktstelle fuer die Kommunikation mit dem BSI und den zustaendigen Behoerden benennen. Die Kontaktstelle muss erreichbar sein und ueber ausreichende Befugnisse verfuegen. Aenderungen der Kontaktdaten sind dem BSI unverzueglich mitzuteilen.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true}, + {"field": "sector.nis2_classification", "operator": "IN", "value": ["wichtige_einrichtung", "besonders_wichtige_einrichtung"]} + ] + }, + "legal_basis": [ + {"norm": "BSIG-E", "article": "§ 34", "title": "Kontaktstelle"} + ], + "sources": [ + {"type": "national_law", "ref": "§ 34 BSIG-E"} + ], + "category": "Organisatorisch", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "500.000 EUR", "personal_liability": false}, + "evidence": [ + "Benannte Kontaktstelle mit Kontaktdaten", + "Bestaetigungsschreiben an das BSI", + "Prozess zur Aktualisierung bei Aenderungen" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.02"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-033", + "title": "Besondere Registrierungspflicht DNS/TLD/Cloud/CDN/Rechenzentren", + "description": "Anbieter von DNS-Diensten, TLD-Namenregistern, Cloud-Computing-Diensten, Rechenzentrumsdiensten, Content-Delivery-Networks, Managed Services und Managed Security Services unterliegen einer besonderen Registrierungspflicht. Sie muessen sich beim BSI registrieren und erweiterte Informationen bereitstellen, einschliesslich IP-Bereiche, Standorte der Rechenzentren und Kundensegmente.", + "applies_when": "Anbieter von DNS, TLD, Cloud, CDN, Rechenzentren, Managed Services", + "applies_when_condition": { + "any_of": [ + {"field": "sector.provides_dns", "operator": "EQUALS", "value": true}, + {"field": "sector.provides_cloud", "operator": "EQUALS", "value": true}, + {"field": "sector.provides_cdn", "operator": "EQUALS", "value": true}, + {"field": "sector.provides_data_center", "operator": "EQUALS", "value": true}, + {"field": "sector.provides_managed_services", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "BSIG-E", "article": "§ 35", "title": "Besondere Registrierungspflicht"} + ], + "sources": [ + {"type": "national_law", "ref": "§ 35 BSIG-E"}, + {"type": "article", "ref": "Art. 27 NIS2"} + ], + "category": "Meldepflicht", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "500.000 EUR", "personal_liability": false}, + "evidence": [ + "Erweiterte Registrierung beim BSI", + "Dokumentation der Dienste und Standorte", + "Kundensegment-Uebersicht (anonymisiert)" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.02"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-034", + "title": "Billigung der Cybersicherheitsmassnahmen durch die Geschaeftsfuehrung", + "description": "Die Geschaeftsfuehrung muss die Risikomanagementmassnahmen formal billigen. Diese Billigung muss dokumentiert werden und umfasst die Genehmigung des Sicherheitskonzepts, der Risikoanalyse, der Massnahmenplaene und der Ressourcenzuweisung. Die Billigung ist regelmaessig zu erneuern.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "BSIG-E", "article": "§ 36", "title": "Billigung durch die Geschaeftsfuehrung"}, + {"norm": "NIS2", "article": "Art. 20 Abs. 1", "title": "Billigung durch Leitungsorgane"} + ], + "sources": [ + {"type": "national_law", "ref": "§ 36 BSIG-E"}, + {"type": "article", "ref": "Art. 20 Abs. 1 NIS2"} + ], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Unterschriebener Billigungsbeschluss", + "Protokoll der Geschaeftsfuehrungssitzung", + "Datum der letzten Billigung", + "Naechster Billigungstermin" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.04", "TOM.GOV.05"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-035", + "title": "Persoenliche Haftung der Leitungsorgane", + "description": "Mitglieder der Leitungsorgane koennen persoenlich haftbar gemacht werden, wenn sie ihre Pflichten zur Billigung und Ueberwachung der Risikomanagementmassnahmen verletzen. Die Haftung richtet sich nach den gesellschaftsrechtlichen Vorschriften. Leitungsorgane koennen nicht auf den Ersatz des Schadens verzichten und die Organisation darf keine Regressverzichtsvereinbarungen treffen.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 20 Abs. 3", "title": "Haftung der Leitungsorgane"}, + {"norm": "NIS2", "article": "Art. 20 Abs. 4", "title": "Kein Regressverzicht"}, + {"norm": "BSIG-E", "article": "§ 37", "title": "Persoenliche Haftung der Geschaeftsfuehrung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 20 Abs. 3 NIS2"}, + {"type": "article", "ref": "Art. 20 Abs. 4 NIS2"}, + {"type": "national_law", "ref": "§ 37 BSIG-E"} + ], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true, "criminal_liability": false}, + "evidence": [ + "D&O-Versicherungspruefung bzgl. NIS2-Deckung", + "Rechtliche Beratung zur Haftungsminimierung", + "Dokumentation der Sorgfaltspflichterfuellung", + "Protokolle der Ueberwachungsaktivitaeten" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.04", "TOM.GOV.05", "TOM.GOV.06"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-036", + "title": "Billigung und Schulung nach §38 BSIG-E", + "description": "Zusammenfassende Pflicht aus §38 BSIG-E: Die Geschaeftsfuehrung muss (1) die Risikomanagementmassnahmen billigen, (2) deren Umsetzung ueberwachen und (3) an Schulungen teilnehmen. Diese dreifache Pflicht ist unteilbar — alle drei Elemente muessen erfuellt sein. Verletzen Leitungsorgane diese Pflichten, haften sie der Einrichtung fuer Schaeden nach gesellschaftsrechtlichen Vorschriften.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "BSIG-E", "article": "§ 38", "title": "Billigung, Ueberwachung und Schulung"} + ], + "sources": [ + {"type": "national_law", "ref": "§ 38 BSIG-E"} + ], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Billigungsbeschluss der Geschaeftsfuehrung", + "Ueberwachungsprotokolle", + "Schulungsnachweise der Geschaeftsfuehrung", + "Jaehrlicher Compliance-Bericht an Geschaeftsfuehrung" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.04", "TOM.GOV.05", "TOM.GOV.06", "TOM.HR.01"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-037", + "title": "Nachweisprueufung vorbereiten (§39 BSIG-E)", + "description": "Besonders wichtige Einrichtungen muessen erstmalig innerhalb von zwei Jahren nach Inkrafttreten und danach alle zwei Jahre dem BSI die Erfuellung der Risikomanagementmassnahmen nachweisen. Dies kann durch Sicherheitsaudits, Pruefungen oder anerkannte Zertifizierungen (z.B. ISO 27001) erfolgen. Die Kosten traegt die Einrichtung. Das BSI kann die Vorlage bestimmter Nachweise anordnen.", + "applies_when": "classification == 'besonders_wichtige_einrichtung'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true}, + {"field": "sector.nis2_classification", "operator": "EQUALS", "value": "besonders_wichtige_einrichtung"} + ] + }, + "legal_basis": [ + {"norm": "BSIG-E", "article": "§ 39", "title": "Nachweisprueufung"} + ], + "sources": [ + {"type": "national_law", "ref": "§ 39 BSIG-E"} + ], + "category": "Audit", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Zertifizierungsplan (ISO 27001 oder BSI IT-Grundschutz)", + "Audit-Berichte", + "Budget-Planung fuer Nachweisprueufung", + "Zeitplan fuer Erst- und Folgenachweise" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.07", "TOM.GOV.08", "TOM.GOV.09"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-038", + "title": "Anordnungen des BSI befolgen (§40-41 BSIG-E)", + "description": "Das BSI kann bei besonders wichtigen Einrichtungen Anordnungen erlassen: Durchfuehrung bestimmter Sicherheitspruefungen, Behebung festgestellter Maengel innerhalb angemessener Frist, Information der Oeffentlichkeit oder betroffener Nutzer, Benennung eines Ueberwachungsbeauftragten. Bei wichtigen Einrichtungen sind Anordnungen auf begruendeten Verdacht beschraenkt. Nichtbefolgen fuehrt zu Bussgeldern.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "BSIG-E", "article": "§ 40", "title": "Anordnungen des BSI — besonders wichtige Einrichtungen"}, + {"norm": "BSIG-E", "article": "§ 41", "title": "Anordnungen des BSI — wichtige Einrichtungen"} + ], + "sources": [ + {"type": "national_law", "ref": "§ 40 BSIG-E"}, + {"type": "national_law", "ref": "§ 41 BSIG-E"} + ], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Interner Prozess fuer BSI-Anordnungen", + "Fristenkalender", + "Dokumentation umgesetzter Anordnungen", + "Kommunikationshistorie mit BSI" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.15"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-039", + "title": "Bussgeldtatbestaende kennen und vermeiden (§64 BSIG-E)", + "description": "§64 BSIG-E definiert die Bussgeldtatbestaende im Detail. Ordnungswidrig handelt, wer: Risikomanagementmassnahmen nicht umsetzt (bis 10 Mio. EUR / 2%), Meldepflichten verletzt (bis 10 Mio. EUR / 2%), Registrierungspflicht nicht erfuellt (bis 500.000 EUR), Nachweispflichten nicht erfuellt (bis 10 Mio. EUR / 2%), Anordnungen des BSI nicht befolgt (bis 10 Mio. EUR / 2%). Bei Fahrlassigkeit halbiert sich der Hoechstbetrag.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "BSIG-E", "article": "§ 64", "title": "Bussgelder"} + ], + "sources": [ + {"type": "national_law", "ref": "§ 64 BSIG-E"}, + {"type": "article", "ref": "Art. 36 NIS2"} + ], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Bussgeld-Risikomatrix", + "Compliance-Dashboard mit Pflichtenstatus", + "Regelmaessige Compliance-Reviews", + "Rechtliche Beratung zu Bussgeldrisiken" + ], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.GOV.15"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + }, + { + "id": "NIS2-OBL-040", + "title": "Sicherheit bei Erwerb, Entwicklung und Wartung von IT-Systemen", + "description": "Einrichtungen muessen die Sicherheit bei Erwerb, Entwicklung und Wartung von Netz- und Informationssystemen gewaehrleisten. Dies umfasst: Sicherheitsanforderungen in Beschaffungsprozessen, Secure Software Development Lifecycle (SSDLC), Sicherheitspruefungen vor Inbetriebnahme, regelmaessige Sicherheitsupdates und Wartung, sowie die Dokumentation von Sicherheitsanforderungen fuer zugekaufte Komponenten.", + "applies_when": "classification != 'nicht_betroffen'", + "applies_when_condition": { + "all_of": [ + {"field": "sector.nis2_applicable", "operator": "EQUALS", "value": true} + ] + }, + "legal_basis": [ + {"norm": "NIS2", "article": "Art. 21 Abs. 2 lit. e", "title": "Sicherheit bei Erwerb, Entwicklung und Wartung"}, + {"norm": "BSIG-E", "article": "§ 30 Abs. 2 Nr. 5", "title": "Sicherheit bei Erwerb, Entwicklung und Wartung"} + ], + "sources": [ + {"type": "article", "ref": "Art. 21 Abs. 2 lit. e NIS2"}, + {"type": "national_law", "ref": "§ 30 Abs. 2 Nr. 5 BSIG-E"} + ], + "category": "Technisch", + "responsible": "CISO", + "sanctions": {"max_fine": "10 Mio. EUR oder 2% des weltweiten Jahresumsatzes", "personal_liability": true}, + "evidence": [ + "Secure-SDLC-Dokumentation", + "Sicherheitsanforderungen in Beschaffungsprozessen", + "Abnahmeprotokolle fuer neue Systeme", + "Wartungs- und Update-Konzept", + "Code-Review-Richtlinien" + ], + "priority": "hoch", + "tom_control_ids": ["TOM.SDLC.01", "TOM.SDLC.02", "TOM.SDLC.03", "TOM.SDLC.04", "TOM.SDLC.05"], + "valid_from": "2024-10-18", + "valid_until": null, + "version": "1.0" + } + ], + "controls": [ + { + "id": "NIS2-CTRL-001", + "name": "ISMS implementieren", + "description": "Implementierung eines Informationssicherheits-Managementsystems nach anerkanntem Standard", + "category": "Governance", + "what_to_do": "Aufbau eines ISMS nach ISO 27001 oder BSI IT-Grundschutz", + "iso27001_mapping": ["4", "5", "6", "7"], + "priority": "high" + }, + { + "id": "NIS2-CTRL-002", + "name": "Netzwerksegmentierung", + "description": "Segmentierung kritischer Netzwerkbereiche zur Reduzierung der Angriffsflaeche", + "category": "Technisch", + "what_to_do": "Implementierung von VLANs, Firewalls und Mikrosegmentierung fuer kritische Systeme", + "iso27001_mapping": ["A.13.1"], + "priority": "high" + }, + { + "id": "NIS2-CTRL-003", + "name": "Security Monitoring", + "description": "Kontinuierliche Ueberwachung der IT-Sicherheit", + "category": "Technisch", + "what_to_do": "Implementierung von SIEM, Log-Management und Anomalie-Erkennung", + "iso27001_mapping": ["A.12.4"], + "priority": "high" + }, + { + "id": "NIS2-CTRL-004", + "name": "Awareness-Programm", + "description": "Regelmaessige Sicherheitsschulungen fuer alle Mitarbeiter", + "category": "Organisatorisch", + "what_to_do": "Durchfuehrung von Phishing-Simulationen, E-Learning und Praesenzschulungen", + "iso27001_mapping": ["A.7.2.2"], + "priority": "medium" + }, + { + "id": "NIS2-CTRL-005", + "name": "Multi-Faktor-Authentifizierung", + "description": "MFA fuer alle administrativen Zugaenge und kritischen Systeme", + "category": "Technisch", + "what_to_do": "Einfuehrung von MFA fuer VPN, E-Mail, Admin-Zugaenge und kritische Anwendungen", + "iso27001_mapping": ["A.9.4"], + "priority": "high" + }, + { + "id": "NIS2-CTRL-006", + "name": "Backup & Recovery", + "description": "Regelmaessige Backups und getestete Wiederherstellung", + "category": "Technisch", + "what_to_do": "Implementierung von 3-2-1 Backup-Strategie mit regelmaessigen Recovery-Tests", + "iso27001_mapping": ["A.12.3"], + "priority": "high" + }, + { + "id": "NIS2-CTRL-007", + "name": "Vulnerability Management", + "description": "Systematisches Schwachstellenmanagement", + "category": "Technisch", + "what_to_do": "Regelmaessige Scans, Priorisierung nach CVSS, zeitnahe Patches", + "iso27001_mapping": ["A.12.6"], + "priority": "high" + }, + { + "id": "NIS2-CTRL-008", + "name": "Incident Response Team", + "description": "Dediziertes Team fuer Sicherheitsvorfaelle", + "category": "Organisatorisch", + "what_to_do": "Aufbau eines CSIRT/CERT mit klaren Rollen und Eskalationspfaden", + "iso27001_mapping": ["A.16.1"], + "priority": "high" + } + ], + "incident_deadlines": [ + { + "phase": "Fruehwarnung", + "deadline": "24 Stunden", + "content": "Unverzuegliche Meldung erheblicher Sicherheitsvorfaelle. Angabe: Ob boesartiger Angriff vermutet wird, ob grenzueberschreitende Auswirkungen moeglich sind.", + "recipient": "BSI", + "legal_basis": [{"norm": "§ 32 Abs. 1 BSIG-E"}] + }, + { + "phase": "Vorfallmeldung", + "deadline": "72 Stunden", + "content": "Aktualisierung der Fruehwarnung mit: Erste Bewertung des Vorfalls, Schweregrad und Auswirkungen, Kompromittierungsindikatoren (IoCs).", + "recipient": "BSI", + "legal_basis": [{"norm": "§ 32 Abs. 2 BSIG-E"}] + }, + { + "phase": "Abschlussbericht", + "deadline": "1 Monat", + "content": "Ausfuehrlicher Bericht mit: Ausfuehrliche Beschreibung des Vorfalls, Ursachenanalyse (Root Cause), ergriffene Abhilfemassnahmen, grenzueberschreitende Auswirkungen.", + "recipient": "BSI", + "legal_basis": [{"norm": "§ 32 Abs. 3 BSIG-E"}] + } + ] +} diff --git a/ai-compliance-sdk/policies/obligations/v2/ttdsg_v2.json b/ai-compliance-sdk/policies/obligations/v2/ttdsg_v2.json new file mode 100644 index 0000000..e4260e0 --- /dev/null +++ b/ai-compliance-sdk/policies/obligations/v2/ttdsg_v2.json @@ -0,0 +1,459 @@ +{ + "regulation": "ttdsg", + "regulation_full_name": "Telekommunikation-Telemedien-Datenschutz-Gesetz (TTDSG)", + "version": "1.0", + "obligations": [ + { + "id": "TTDSG-OBL-001", + "title": "Wahrung des Fernmeldegeheimnisses", + "description": "Der Inhalt der Telekommunikation und ihre naeheren Umstaende unterliegen dem Fernmeldegeheimnis. Diensteanbieter sind zur Wahrung verpflichtet.", + "applies_when": "organization provides telecommunication services", + "applies_when_condition": { "all_of": [{ "field": "organization.provides_telecom_services", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 3", "title": "Vertraulichkeit der Kommunikation" }], + "sources": [{ "type": "national_law", "ref": "§ 3 TTDSG" }], + "category": "Governance", + "responsible": "Geschaeftsfuehrung", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "300.000 EUR", "criminal_liability": true }, + "evidence": [{ "name": "Fernmeldegeheimnis-Richtlinie", "required": true }], + "priority": "kritisch", + "tom_control_ids": ["TOM.CRY.01", "TOM.AC.01"], + "breakpilot_feature": null, + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-002", + "title": "Technische Schutzmassnahmen Fernmeldegeheimnis", + "description": "Diensteanbieter muessen technische Vorkehrungen zum Schutz des Fernmeldegeheimnisses treffen, insbesondere gegen unbefugtes Abhoeren und Mitlesen.", + "applies_when": "organization provides telecommunication services", + "applies_when_condition": { "all_of": [{ "field": "organization.provides_telecom_services", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 4", "title": "Durchsetzung des Fernmeldegeheimnisses" }], + "sources": [{ "type": "national_law", "ref": "§ 4 TTDSG" }], + "category": "Technisch", + "responsible": "IT-Sicherheitsbeauftragter", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "300.000 EUR" }, + "evidence": [{ "name": "Verschluesselungskonzept TK", "required": true }, "Penetrationstest-Bericht"], + "priority": "kritisch", + "tom_control_ids": ["TOM.CRY.01", "TOM.NET.01"], + "breakpilot_feature": "/sdk/tom", + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-003", + "title": "Bestandsdatenauskunft TK-Dienste", + "description": "Bestandsdaten der Teilnehmer duerfen nur erhoben und verwendet werden, soweit dies zur Begruendung, Ausgestaltung oder Aenderung eines Vertragsverhaeltnisses erforderlich ist.", + "applies_when": "organization provides telecommunication services with subscriber data", + "applies_when_condition": { "all_of": [{ "field": "organization.provides_telecom_services", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 7", "title": "Bestandsdaten TK-Anbieter" }], + "sources": [{ "type": "national_law", "ref": "§ 7 TTDSG" }], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "300.000 EUR" }, + "evidence": [{ "name": "Bestandsdaten-Verarbeitungskonzept", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.AC.01"], + "breakpilot_feature": null, + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-004", + "title": "Bestandsdatenauskunft an Behoerden", + "description": "Die Erteilung von Auskuenften ueber Bestandsdaten an Sicherheitsbehoerden ist nur unter den Voraussetzungen des § 8 TTDSG zulaessig.", + "applies_when": "organization provides telecom and receives authority requests", + "applies_when_condition": { "all_of": [{ "field": "organization.provides_telecom_services", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 8", "title": "Bestandsdatenauskunft Behoerden" }], + "sources": [{ "type": "national_law", "ref": "§ 8 TTDSG" }], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "on_event", "event": "Bei Behoerdenanfrage" }, + "sanctions": { "max_fine": "300.000 EUR", "personal_liability": true }, + "evidence": [{ "name": "Auskunftserteilungs-Protokoll", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.02", "TOM.LOG.01"], + "breakpilot_feature": null, + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-005", + "title": "Verkehrsdaten — Zweckbindung und Loeschung", + "description": "Verkehrsdaten duerfen nur fuer Abrechnungszwecke, Stoerungsbeseitigung und Missbrauchsbekaempfung gespeichert werden und sind nach Zweckerfuellung unverzueglich zu loeschen.", + "applies_when": "organization collects traffic data from telecom services", + "applies_when_condition": { "all_of": [{ "field": "organization.provides_telecom_services", "operator": "EQUALS", "value": true }, { "field": "data_protection.collects_traffic_data", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 9", "title": "Verkehrsdaten" }], + "sources": [{ "type": "national_law", "ref": "§ 9 TTDSG" }], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { "type": "on_event", "event": "Nach Rechnungsstellung/Zweckerfuellung" }, + "sanctions": { "max_fine": "300.000 EUR" }, + "evidence": [{ "name": "Loeschkonzept Verkehrsdaten", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.DEL.01", "TOM.GOV.01"], + "breakpilot_feature": "/sdk/loeschfristen", + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-006", + "title": "Standortdaten — Einwilligung erforderlich", + "description": "Standortdaten duerfen nur mit ausdruecklicher Einwilligung des Nutzers verarbeitet werden. Die Einwilligung muss jederzeit widerrufbar sein.", + "applies_when": "organization processes location data", + "applies_when_condition": { "all_of": [{ "field": "data_protection.processes_location_data", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 10", "title": "Standortdaten" }], + "sources": [{ "type": "national_law", "ref": "§ 10 TTDSG" }], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "on_event", "event": "Vor Verarbeitung von Standortdaten" }, + "sanctions": { "max_fine": "300.000 EUR" }, + "evidence": [{ "name": "Einwilligungsnachweis Standortdaten", "required": true }, "Widerrufsmechanismus"], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.02"], + "breakpilot_feature": "/sdk/consent", + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-007", + "title": "Anonymisierung von Standortdaten", + "description": "Wenn Standortdaten fuer Mehrwertdienste verwendet werden, muessen sie anonymisiert oder pseudonymisiert werden, sofern der Zweck dies erlaubt.", + "applies_when": "organization uses location data for value-added services", + "applies_when_condition": { "all_of": [{ "field": "data_protection.processes_location_data", "operator": "EQUALS", "value": true }, { "field": "organization.offers_value_added_services", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 10 Abs. 2", "title": "Standortdaten Mehrwertdienste" }], + "sources": [{ "type": "national_law", "ref": "§ 10 TTDSG" }], + "category": "Technisch", + "responsible": "IT-Sicherheitsbeauftragter", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "300.000 EUR" }, + "evidence": [{ "name": "Anonymisierungskonzept Standortdaten", "required": true }], + "priority": "mittel", + "tom_control_ids": ["TOM.CRY.02"], + "breakpilot_feature": null, + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-008", + "title": "Bestandsdaten Telemedien — Erhebung und Verwendung", + "description": "Anbieter von Telemedien duerfen Bestandsdaten nur erheben und verwenden, soweit sie fuer die Begruendung, Ausgestaltung oder Aenderung eines Vertragsverhaeltnisses erforderlich sind.", + "applies_when": "organization provides telemedia services", + "applies_when_condition": { "all_of": [{ "field": "organization.provides_telemedia_services", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 13", "title": "Bestandsdaten Telemedien" }], + "sources": [{ "type": "national_law", "ref": "§ 13 TTDSG" }], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "300.000 EUR" }, + "evidence": [{ "name": "Datenschutzerklaerung Telemedien", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01"], + "breakpilot_feature": null, + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-009", + "title": "Nutzungsdaten Telemedien — Zweckbindung", + "description": "Nutzungsdaten duerfen nur erhoben werden, soweit dies zur Ermogeglichung der Inanspruchnahme von Telemedien erforderlich ist. Profilerstellung bedarf der Einwilligung.", + "applies_when": "organization collects telemedia usage data", + "applies_when_condition": { "all_of": [{ "field": "organization.provides_telemedia_services", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 15", "title": "Nutzungsdaten Telemedien" }], + "sources": [{ "type": "national_law", "ref": "§ 15 TTDSG" }], + "category": "Governance", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "300.000 EUR" }, + "evidence": [{ "name": "Nutzungsdaten-Konzept", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01", "TOM.DEL.01"], + "breakpilot_feature": null, + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-010", + "title": "Vertraulichkeit Nachrichteninhalte", + "description": "Anbieter von interpersonellen TK-Diensten muessen die Vertraulichkeit der uebermittelten Nachrichteninhalte gewaehrleisten (§ 19 TTDSG).", + "applies_when": "organization provides messaging or communication services", + "applies_when_condition": { "all_of": [{ "field": "organization.provides_messaging_services", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 19", "title": "Nachrichteninhalte" }], + "sources": [{ "type": "national_law", "ref": "§ 19 TTDSG" }], + "category": "Technisch", + "responsible": "IT-Sicherheitsbeauftragter", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "300.000 EUR", "criminal_liability": true }, + "evidence": [{ "name": "Ende-zu-Ende-Verschluesselungsnachweis", "required": true }], + "priority": "kritisch", + "tom_control_ids": ["TOM.CRY.01", "TOM.NET.01"], + "breakpilot_feature": "/sdk/tom", + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-011", + "title": "Schutz vor Spam und unerwuenschten Nachrichten", + "description": "Anbieter nummernunabhaengiger interpersoneller TK-Dienste muessen Massnahmen gegen unerwuenschte Nachrichten (Spam) ergreifen.", + "applies_when": "organization provides interpersonal communication services", + "applies_when_condition": { "all_of": [{ "field": "organization.provides_messaging_services", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 19 Abs. 2", "title": "Spam-Schutz" }], + "sources": [{ "type": "national_law", "ref": "§ 19 TTDSG" }], + "category": "Technisch", + "responsible": "IT-Leitung", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "300.000 EUR" }, + "evidence": [{ "name": "Anti-Spam-Massnahmen Dokumentation", "required": true }], + "priority": "mittel", + "tom_control_ids": ["TOM.NET.01"], + "breakpilot_feature": null, + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-012", + "title": "Einwilligung fuer Cookies und Tracking", + "description": "Die Speicherung von Informationen in der Endeinrichtung des Nutzers oder der Zugriff auf dort gespeicherte Informationen ist nur mit Einwilligung des Nutzers zulaessig (§ 25 Abs. 1 TTDSG).", + "applies_when": "organization uses cookies or similar tracking technologies", + "applies_when_condition": { "any_of": [{ "field": "data_protection.uses_cookies", "operator": "EQUALS", "value": true }, { "field": "data_protection.uses_tracking", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 25 Abs. 1", "title": "Schutz der Privatsphaere bei Endeinrichtungen" }], + "sources": [{ "type": "national_law", "ref": "§ 25 TTDSG" }, { "type": "eu_guidance", "ref": "ePrivacy-Richtlinie Art. 5 Abs. 3" }], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "on_event", "event": "Vor Setzen von Cookies/Trackern" }, + "sanctions": { "max_fine": "300.000 EUR" }, + "evidence": [{ "name": "Cookie-Consent-Banner", "required": true }, { "name": "Consent-Management-Platform Nachweis", "required": true }], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.02", "TOM.WEB.01"], + "breakpilot_feature": "/sdk/cookie-banner", + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-013", + "title": "Ausnahmen von der Cookie-Einwilligung", + "description": "Keine Einwilligung ist erforderlich, wenn die Speicherung/der Zugriff technisch erforderlich ist, um den vom Nutzer ausdruecklich gewuenschten Dienst bereitzustellen (§ 25 Abs. 2 TTDSG).", + "applies_when": "organization uses technically necessary cookies", + "applies_when_condition": { "all_of": [{ "field": "data_protection.uses_cookies", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 25 Abs. 2", "title": "Ausnahme technisch notwendige Cookies" }], + "sources": [{ "type": "national_law", "ref": "§ 25 Abs. 2 TTDSG" }, { "type": "dsk_kurzpapier", "ref": "DSK Orientierungshilfe Telemedien 2021" }], + "category": "Dokumentation", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "recurring", "interval": "jaehrlich" }, + "sanctions": { "max_fine": "300.000 EUR" }, + "evidence": [{ "name": "Cookie-Klassifizierung (notwendig vs. optional)", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.WEB.01"], + "breakpilot_feature": "/sdk/cookie-banner", + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-014", + "title": "Cookie-Consent Anforderungen — Informiertheit", + "description": "Die Einwilligung nach § 25 Abs. 1 TTDSG muss informiert erfolgen. Der Nutzer muss klar und umfassend ueber Zweck, Dauer und Empfaenger informiert werden.", + "applies_when": "organization collects cookie consent", + "applies_when_condition": { "all_of": [{ "field": "data_protection.uses_cookies", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 25 Abs. 1", "title": "Informierte Einwilligung" }, { "norm": "DSGVO", "article": "Art. 7", "title": "Bedingungen fuer die Einwilligung" }], + "sources": [{ "type": "national_law", "ref": "§ 25 TTDSG" }, { "type": "case_law", "ref": "BGH I ZR 7/16 — Planet49" }], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "300.000 EUR" }, + "evidence": [{ "name": "Cookie-Banner mit vollstaendiger Information", "required": true }, "Dokumentation Consent-Flow"], + "priority": "kritisch", + "tom_control_ids": ["TOM.WEB.01", "TOM.GOV.02"], + "breakpilot_feature": "/sdk/cookie-banner", + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-015", + "title": "Anerkannte Dienste zur Einwilligungsverwaltung", + "description": "Die Bundesregierung kann durch Rechtsverordnung Anforderungen an anerkannte Dienste zur Einwilligungsverwaltung (PIMS) festlegen (§ 26 TTDSG).", + "applies_when": "organization provides or uses a Personal Information Management Service", + "applies_when_condition": { "all_of": [{ "field": "organization.uses_pims", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 26", "title": "Anerkannte Dienste zur Einwilligungsverwaltung" }], + "sources": [{ "type": "national_law", "ref": "§ 26 TTDSG" }], + "category": "Compliance", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "recurring", "interval": "jaehrlich" }, + "sanctions": { "max_fine": "300.000 EUR" }, + "evidence": [{ "name": "PIMS-Zertifizierung/Anerkennung", "required": false }], + "priority": "niedrig", + "tom_control_ids": ["TOM.GOV.02"], + "breakpilot_feature": "/sdk/consent", + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-016", + "title": "Endnutzerinformation bei Rufnummernanzeige", + "description": "Bei der Anzeige von Rufnummern muessen Diensteanbieter den Endnutzer ueber die Moeglichkeit der Unterdrueckung informieren (§ 11 TTDSG).", + "applies_when": "organization provides telephony services with caller ID", + "applies_when_condition": { "all_of": [{ "field": "organization.provides_telecom_services", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 11", "title": "Rufnummernanzeige" }], + "sources": [{ "type": "national_law", "ref": "§ 11 TTDSG" }], + "category": "Organisatorisch", + "responsible": "Produktmanagement", + "deadline": { "type": "on_event", "event": "Bei Vertragsschluss" }, + "sanctions": { "max_fine": "300.000 EUR" }, + "evidence": [{ "name": "Kundeninformation Rufnummernanzeige", "required": true }], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.02"], + "breakpilot_feature": null, + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-017", + "title": "Automatische Anrufweiterleitung — Einwilligung", + "description": "Automatische Anrufweiterleitungen duerfen nur mit Einwilligung des Anschlussinhabers eingerichtet werden (§ 12 TTDSG).", + "applies_when": "organization provides call forwarding services", + "applies_when_condition": { "all_of": [{ "field": "organization.provides_telecom_services", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 12", "title": "Anrufweiterschaltung" }], + "sources": [{ "type": "national_law", "ref": "§ 12 TTDSG" }], + "category": "Organisatorisch", + "responsible": "Produktmanagement", + "deadline": { "type": "on_event", "event": "Vor Einrichtung der Weiterleitung" }, + "sanctions": { "max_fine": "300.000 EUR" }, + "evidence": [{ "name": "Einwilligungsnachweis Anrufweiterleitung", "required": true }], + "priority": "niedrig", + "tom_control_ids": ["TOM.GOV.02"], + "breakpilot_feature": null, + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-018", + "title": "Bussgeldvorschriften TTDSG", + "description": "Verstoesse gegen die Vorschriften des TTDSG koennen als Ordnungswidrigkeiten mit Bussgeldern bis zu 300.000 EUR geahndet werden (§ 28 TTDSG).", + "applies_when": "always for organizations under TTDSG scope", + "applies_when_condition": { "any_of": [{ "field": "organization.provides_telecom_services", "operator": "EQUALS", "value": true }, { "field": "organization.provides_telemedia_services", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 28", "title": "Bussgeldvorschriften" }], + "sources": [{ "type": "national_law", "ref": "§ 28 TTDSG" }], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "300.000 EUR", "personal_liability": true }, + "evidence": [{ "name": "TTDSG-Compliance-Pruefbericht", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.GOV.01"], + "breakpilot_feature": "/sdk/risk-assessment", + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-019", + "title": "Strafvorschriften — Verstoesse Fernmeldegeheimnis", + "description": "Wer unbefugt einer anderen Person Kenntnis vom Inhalt oder den naeheren Umstaenden der Telekommunikation verschafft, wird strafrechtlich verfolgt (§ 27 TTDSG).", + "applies_when": "organization handles telecommunication data", + "applies_when_condition": { "all_of": [{ "field": "organization.provides_telecom_services", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 27", "title": "Strafvorschriften" }], + "sources": [{ "type": "national_law", "ref": "§ 27 TTDSG" }], + "category": "Compliance", + "responsible": "Geschaeftsfuehrung", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "max_fine": "Freiheitsstrafe bis 2 Jahre oder Geldstrafe", "personal_liability": true, "criminal_liability": true }, + "evidence": [{ "name": "Schulungsnachweis Fernmeldegeheimnis", "required": true }], + "priority": "kritisch", + "tom_control_ids": ["TOM.HR.02", "TOM.AC.01"], + "breakpilot_feature": "/sdk/training", + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + }, + { + "id": "TTDSG-OBL-020", + "title": "Teilnehmerverzeichnisse — Einwilligung", + "description": "Die Aufnahme in oeffentliche Teilnehmerverzeichnisse und die Bereitstellung von Auskunftsdiensten bedarf der vorherigen Einwilligung des Teilnehmers (§ 17 TTDSG).", + "applies_when": "organization maintains subscriber directories", + "applies_when_condition": { "all_of": [{ "field": "organization.provides_telecom_services", "operator": "EQUALS", "value": true }, { "field": "organization.maintains_directories", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "TTDSG", "article": "§ 17", "title": "Teilnehmerverzeichnisse" }], + "sources": [{ "type": "national_law", "ref": "§ 17 TTDSG" }], + "category": "Organisatorisch", + "responsible": "Datenschutzbeauftragter", + "deadline": { "type": "on_event", "event": "Vor Aufnahme in Verzeichnis" }, + "sanctions": { "max_fine": "300.000 EUR" }, + "evidence": [{ "name": "Einwilligungsnachweis Verzeichniseintrag", "required": true }], + "priority": "mittel", + "tom_control_ids": ["TOM.GOV.02"], + "breakpilot_feature": "/sdk/consent", + "valid_from": "2021-12-01", + "valid_until": null, + "version": "1.0" + } + ], + "controls": [ + { + "id": "TTDSG-CTRL-001", + "name": "Cookie-Consent-Management", + "description": "Kontrolle zur Sicherstellung der gesetzeskonformen Einholung und Verwaltung von Cookie-Einwilligungen nach § 25 TTDSG.", + "category": "Organisatorisch", + "what_to_do": "Cookie-Banner implementieren, Cookie-Klassifizierung durchfuehren, Consent-Log fuehren, regelmaessige Audits der Cookie-Nutzung.", + "iso27001_mapping": ["A.5.34"], + "priority": "kritisch" + }, + { + "id": "TTDSG-CTRL-002", + "name": "Fernmeldegeheimnis-Schutz", + "description": "Kontrolle zur Gewaehrleistung des Fernmeldegeheimnisses durch technische und organisatorische Massnahmen.", + "category": "Technisch", + "what_to_do": "Verschluesselung implementieren, Zugriffskontrolle auf TK-Daten, Mitarbeiterschulung zum Fernmeldegeheimnis, Protokollierung.", + "iso27001_mapping": ["A.8.24", "A.5.14"], + "priority": "kritisch" + }, + { + "id": "TTDSG-CTRL-003", + "name": "Verkehrs- und Standortdaten-Governance", + "description": "Kontrolle zur Einhaltung der Zweckbindung und Loeschpflichten fuer Verkehrs- und Standortdaten.", + "category": "Governance", + "what_to_do": "Datenklassifizierung erstellen, automatische Loeschmechanismen implementieren, Einwilligungsprozesse fuer Standortdaten pruefen.", + "iso27001_mapping": ["A.5.33", "A.8.10"], + "priority": "hoch" + } + ], + "incident_deadlines": [ + { + "phase": "Meldung TK-Sicherheitsvorfall an BNetzA", + "deadline": "Unverzueglich (i.d.R. 24 Stunden)", + "content": "Art und Umfang des Vorfalls, betroffene Dienste, ergriffene Massnahmen", + "recipient": "Bundesnetzagentur (BNetzA)", + "legal_basis": [{ "norm": "TKG", "article": "§ 168" }] + }, + { + "phase": "Benachrichtigung betroffener Teilnehmer", + "deadline": "Unverzueglich bei Risiko fuer persoenliche Daten", + "content": "Art des Vorfalls, Kontaktdaten, empfohlene Schutzmassnahmen", + "recipient": "Betroffene Teilnehmer", + "legal_basis": [{ "norm": "DSGVO", "article": "Art. 34" }] + }, + { + "phase": "Meldung an BSI bei erheblichen Stoerungen", + "deadline": "Unverzueglich", + "content": "Technische Rahmenbedingungen, vermutete Ursache, Auswirkungen", + "recipient": "Bundesamt fuer Sicherheit in der Informationstechnik (BSI)", + "legal_basis": [{ "norm": "TKG", "article": "§ 169" }] + } + ] +} \ No newline at end of file diff --git a/ai-compliance-sdk/policies/tom_controls_v1.json b/ai-compliance-sdk/policies/tom_controls_v1.json new file mode 100644 index 0000000..060a6d6 --- /dev/null +++ b/ai-compliance-sdk/policies/tom_controls_v1.json @@ -0,0 +1,6523 @@ +{ + "version": "1.0", + "schema": "iso_annex_a", + "generated": "2026-03-05", + "total_controls": 180, + "domains": [ + { + "id": "GOV", + "name": "Governance & Policies", + "objective": "Datenschutz-Governance-Rahmen etablieren, Verantwortlichkeiten definieren und regelmaessige Reviews sicherstellen", + "controls": [ + { + "id": "TOM.GOV.01", + "title": "ISMS/Privacy Governance", + "description": "Rollen, Verantwortlichkeiten und Review-Zyklen fuer das Datenschutz-Management definieren und dokumentieren.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Rollen, Verantwortlichkeiten und Review-Zyklen fuer das Datenschutz-Management definieren und dokumentieren.", + "evidence": [ + "Organigramm", + "Governance-Policy", + "Review-Protokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 5(2)", + "Art. 24" + ], + "iso27001": [ + "A.5.1" + ], + "bsi": [ + "ISMS.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.GOV.02", + "title": "Datenschutzbeauftragter (DSB)", + "description": "Bestellung eines DSB gemaess Art. 37 DSGVO, Sicherstellung der Unabhaengigkeit und Ressourcenausstattung.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Bestellung eines DSB gemaess Art. 37 DSGVO, Sicherstellung der Unabhaengigkeit und Ressourcenausstattung.", + "evidence": [ + "DSB-Bestellungsurkunde", + "Aufgabenbeschreibung", + "Schulungsnachweise" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 37", + "Art. 38", + "Art. 39" + ], + "iso27001": [ + "A.5.2" + ], + "bsi": [ + "ORP.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "CRITICAL", + "complexity": "LOW" + }, + { + "id": "TOM.GOV.03", + "title": "Datenschutz-Leitlinie", + "description": "Unternehmensweite Datenschutz-Policy erstellen, von der Geschaeftsfuehrung genehmigen und an alle Mitarbeiter kommunizieren.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Unternehmensweite Datenschutz-Policy erstellen, von der Geschaeftsfuehrung genehmigen und an alle Mitarbeiter kommunizieren.", + "evidence": [ + "Datenschutz-Leitlinie", + "Freigabenachweis", + "Kommunikationsprotokoll" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 24", + "Art. 5(2)" + ], + "iso27001": [ + "A.5.1" + ], + "bsi": [ + "ORP.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.GOV.04", + "title": "Richtlinien-Review-Zyklus", + "description": "Alle Datenschutz-Richtlinien mindestens jaehrlich pruefen und bei Aenderungen der Rechtslage aktualisieren.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Alle Datenschutz-Richtlinien mindestens jaehrlich pruefen und bei Aenderungen der Rechtslage aktualisieren.", + "evidence": [ + "Review-Protokolle", + "Aenderungshistorie", + "Versionsverwaltung" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 24(1)" + ], + "iso27001": [ + "A.5.1" + ], + "bsi": [ + "ORP.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.GOV.05", + "title": "Compliance-Monitoring", + "description": "Regelmaessige interne Pruefungen der Datenschutz-Compliance durchfuehren und Abweichungen dokumentieren.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Regelmaessige interne Pruefungen der Datenschutz-Compliance durchfuehren und Abweichungen dokumentieren.", + "evidence": [ + "Audit-Berichte", + "Massnahmenplaene", + "Nachverfolgung" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 5(2)", + "Art. 32(1d)" + ], + "iso27001": [ + "A.5.36" + ], + "bsi": [ + "DER.3.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.GOV.06", + "title": "Datenschutz-Risikoregister", + "description": "Zentrales Register aller datenschutzrelevanten Risiken fuehren, bewerten und Massnahmen zuordnen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Zentrales Register aller datenschutzrelevanten Risiken fuehren, bewerten und Massnahmen zuordnen.", + "evidence": [ + "Risikoregister", + "Risikobewertungen", + "Massnahmenplan" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 24(1)", + "Art. 35" + ], + "iso27001": [ + "A.5.3" + ], + "bsi": [ + "ISMS.1" + ], + "sdm": [ + "Transparenz", + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.GOV.07", + "title": "Management-Review", + "description": "Geschaeftsfuehrung informiert sich regelmaessig ueber den Stand der Datenschutz-Compliance und trifft strategische Entscheidungen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Geschaeftsfuehrung informiert sich regelmaessig ueber den Stand der Datenschutz-Compliance und trifft strategische Entscheidungen.", + "evidence": [ + "Management-Review-Protokoll", + "Praesentationen", + "Entscheidungsprotokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 24" + ], + "iso27001": [ + "A.5.1" + ], + "bsi": [ + "ISMS.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "MEDIUM", + "complexity": "LOW" + }, + { + "id": "TOM.GOV.08", + "title": "Datenschutz-Folgenabschaetzung Prozess", + "description": "Standardisierten DSFA-Prozess gemaess Art. 35 etablieren mit Schwellwertanalyse, Durchfuehrung und Massnahmenableitung.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Standardisierten DSFA-Prozess gemaess Art. 35 etablieren mit Schwellwertanalyse, Durchfuehrung und Massnahmenableitung.", + "evidence": [ + "DSFA-Vorlage", + "Schwellwertanalyse", + "DSFA-Dokumentation" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 35", + "Art. 36" + ], + "iso27001": [ + "A.5.34" + ], + "bsi": [ + "CON.2" + ], + "sdm": [ + "Transparenz", + "Datenminimierung" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.GOV.09", + "title": "Datenschutz-Budgetplanung", + "description": "Dediziertes Budget fuer Datenschutz-Massnahmen, Tools und Schulungen planen und jaehrlich ueberpruefen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Dediziertes Budget fuer Datenschutz-Massnahmen, Tools und Schulungen planen und jaehrlich ueberpruefen.", + "evidence": [ + "Budgetplanung", + "Ausgabenberichte", + "Investitionsplan" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 24" + ], + "iso27001": [ + "A.5.1" + ], + "bsi": [ + "ISMS.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "MEDIUM", + "complexity": "LOW" + }, + { + "id": "TOM.GOV.10", + "title": "Datenschutz bei Projekten (Privacy by Design)", + "description": "Bei jedem neuen IT-Projekt oder Geschaeftsprozess Datenschutzanforderungen fruehzeitig einbeziehen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Bei jedem neuen IT-Projekt oder Geschaeftsprozess Datenschutzanforderungen fruehzeitig einbeziehen.", + "evidence": [ + "Projekt-Checkliste", + "DSFA-Schwellwertanalyse", + "Freigabeprotokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 25(1)" + ], + "iso27001": [ + "A.5.8" + ], + "bsi": [ + "CON.2" + ], + "sdm": [ + "Datenminimierung", + "Zweckbindung" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.GOV.11", + "title": "Verzeichnis von Verarbeitungstaetigkeiten", + "description": "VVT gemaess Art. 30 DSGVO fuehren und aktuell halten mit allen Pflichtangaben.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "VVT gemaess Art. 30 DSGVO fuehren und aktuell halten mit allen Pflichtangaben.", + "evidence": [ + "VVT-Dokument", + "Update-Protokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 30" + ], + "iso27001": [ + "A.5.9" + ], + "bsi": [ + "CON.2" + ], + "sdm": [ + "Transparenz", + "Zweckbindung" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.GOV.12", + "title": "Eskalationsprozess Datenschutzvorfaelle", + "description": "Klaren Eskalationspfad fuer Datenschutzvorfaelle definieren mit Meldewegen, Fristen und Zustaendigkeiten.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Klaren Eskalationspfad fuer Datenschutzvorfaelle definieren mit Meldewegen, Fristen und Zustaendigkeiten.", + "evidence": [ + "Eskalationsmatrix", + "Prozessbeschreibung", + "Kontaktliste" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 33", + "Art. 34" + ], + "iso27001": [ + "A.5.24" + ], + "bsi": [ + "DER.2.1" + ], + "sdm": [ + "Vertraulichkeit", + "Integritaet" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.GOV.13", + "title": "Externe Datenschutz-Audits", + "description": "Regelmaessige externe Audits der Datenschutz-Compliance durch unabhaengige Pruefer durchfuehren lassen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Regelmaessige externe Audits der Datenschutz-Compliance durch unabhaengige Pruefer durchfuehren lassen.", + "evidence": [ + "Audit-Berichte extern", + "Zertifikate", + "Massnahmenplan" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 5(2)", + "Art. 42" + ], + "iso27001": [ + "A.5.35" + ], + "bsi": [ + "DER.3.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.GOV.14", + "title": "Datenschutz-Kennzahlen (KPIs)", + "description": "Messbare KPIs fuer Datenschutz definieren und regelmaessig berichten (z.B. offene DSR, Schulungsquote, Vorfaelle).", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Messbare KPIs fuer Datenschutz definieren und regelmaessig berichten (z.B. offene DSR, Schulungsquote, Vorfaelle).", + "evidence": [ + "KPI-Dashboard", + "Quartalsberichte", + "Trend-Analysen" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 5(2)" + ], + "iso27001": [ + "A.5.1" + ], + "bsi": [ + "ISMS.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "MEDIUM", + "complexity": "MEDIUM" + }, + { + "id": "TOM.GOV.15", + "title": "Datenschutz-Zertifizierung", + "description": "Anstreben einer Datenschutz-Zertifizierung (z.B. Art. 42 DSGVO, ISO 27701) zur Nachweisfuehrung.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Anstreben einer Datenschutz-Zertifizierung (z.B. Art. 42 DSGVO, ISO 27701) zur Nachweisfuehrung.", + "evidence": [ + "Zertifikat", + "Audit-Bericht", + "Massnahmenplan" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 42", + "Art. 43" + ], + "iso27001": [ + "A.5.35" + ], + "bsi": [ + "ISMS.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "MEDIUM", + "complexity": "HIGH" + } + ] + }, + { + "id": "HR", + "name": "Personnel & Awareness", + "objective": "Mitarbeiter fuer Datenschutz sensibilisieren, Verpflichtungen sicherstellen und kontinuierliche Kompetenzentwicklung foerdern", + "controls": [ + { + "id": "TOM.HR.01", + "title": "Datenschutz-Verpflichtung Mitarbeiter", + "description": "Alle Mitarbeiter auf das Datengeheimnis verpflichten und Vertraulichkeitserklaerungen einholen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Alle Mitarbeiter auf das Datengeheimnis verpflichten und Vertraulichkeitserklaerungen einholen.", + "evidence": [ + "Vertraulichkeitserklaerung", + "Verpflichtungsnachweis" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 28(3b)", + "Art. 29" + ], + "iso27001": [ + "A.6.6" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "CRITICAL", + "complexity": "LOW" + }, + { + "id": "TOM.HR.02", + "title": "Datenschutz-Grundschulung", + "description": "Verpflichtende Datenschutz-Grundschulung fuer alle neuen Mitarbeiter innerhalb des Onboardings.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Verpflichtende Datenschutz-Grundschulung fuer alle neuen Mitarbeiter innerhalb des Onboardings.", + "evidence": [ + "Schulungsteilnahme", + "Zertifikat", + "Schulungsunterlagen" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 39(1b)" + ], + "iso27001": [ + "A.6.3" + ], + "bsi": [ + "ORP.3" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.HR.03", + "title": "Jaehrliche Auffrischungsschulung", + "description": "Mindestens jaehrliche Datenschutz-Auffrischung fuer alle Mitarbeiter mit aktuellen Themen und Fallbeispielen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Mindestens jaehrliche Datenschutz-Auffrischung fuer alle Mitarbeiter mit aktuellen Themen und Fallbeispielen.", + "evidence": [ + "Teilnehmerlisten", + "Schulungsinhalte", + "Evaluationsboegen" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 39(1b)" + ], + "iso27001": [ + "A.6.3" + ], + "bsi": [ + "ORP.3" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.HR.04", + "title": "Rollenspezifische Schulungen", + "description": "Vertiefte Schulungen fuer Mitarbeiter mit besonderen Datenschutzaufgaben (IT, HR, Marketing, Vertrieb).", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Vertiefte Schulungen fuer Mitarbeiter mit besonderen Datenschutzaufgaben (IT, HR, Marketing, Vertrieb).", + "evidence": [ + "Schulungsplan", + "Teilnahmenachweise", + "Kompetenzmatrix" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 39(1b)" + ], + "iso27001": [ + "A.6.3" + ], + "bsi": [ + "ORP.3" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.HR.05", + "title": "Datenschutz-Onboarding-Checkliste", + "description": "Standardisiertes Onboarding mit Datenschutz-Briefing, Verpflichtung, Systemzugaenge und Schulungstermin.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Standardisiertes Onboarding mit Datenschutz-Briefing, Verpflichtung, Systemzugaenge und Schulungstermin.", + "evidence": [ + "Onboarding-Checkliste", + "Unterschriften", + "IT-Zugangsprotokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 24", + "Art. 29" + ], + "iso27001": [ + "A.6.1" + ], + "bsi": [ + "ORP.2" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.HR.06", + "title": "Datenschutz-Offboarding-Prozess", + "description": "Beim Austritt Zugriffe entziehen, Geraete zuruecknehmen und Vertraulichkeitspflichten bekraeftigen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Beim Austritt Zugriffe entziehen, Geraete zuruecknehmen und Vertraulichkeitspflichten bekraeftigen.", + "evidence": [ + "Offboarding-Checkliste", + "Zugangsentzugs-Protokoll", + "Geraeterueckgabe" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32" + ], + "iso27001": [ + "A.6.5" + ], + "bsi": [ + "ORP.2" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.HR.07", + "title": "Phishing-Awareness-Training", + "description": "Regelmaessige Phishing-Simulationen und Trainings zur Erkennung von Social-Engineering-Angriffen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Regelmaessige Phishing-Simulationen und Trainings zur Erkennung von Social-Engineering-Angriffen.", + "evidence": [ + "Phishing-Test-Ergebnisse", + "Schulungsnachweise", + "Klickraten-Report" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.6.3" + ], + "bsi": [ + "ORP.3" + ], + "sdm": [ + "Vertraulichkeit", + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.HR.08", + "title": "Datenschutz-Champions/Botschafter", + "description": "In jeder Abteilung einen Datenschutz-Ansprechpartner benennen als Multiplikator und Erstanlaufstelle.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "In jeder Abteilung einen Datenschutz-Ansprechpartner benennen als Multiplikator und Erstanlaufstelle.", + "evidence": [ + "Benennungsliste", + "Aufgabenbeschreibung", + "Schulungsnachweise" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 24" + ], + "iso27001": [ + "A.5.2" + ], + "bsi": [ + "ORP.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "MEDIUM", + "complexity": "LOW" + }, + { + "id": "TOM.HR.09", + "title": "Schulung besondere Datenkategorien", + "description": "Spezialschulung fuer Mitarbeiter mit Zugang zu Art. 9/10 Daten zu erhoehten Schutzanforderungen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Spezialschulung fuer Mitarbeiter mit Zugang zu Art. 9/10 Daten zu erhoehten Schutzanforderungen.", + "evidence": [ + "Teilnahmenachweise", + "Sonderschulungsunterlagen" + ], + "applies_if": { + "field": "special_categories", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 9", + "Art. 10" + ], + "iso27001": [ + "A.6.3" + ], + "bsi": [ + "ORP.3" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.HR.10", + "title": "Kinder-Datenschutz-Schulung", + "description": "Schulung fuer Mitarbeiter die mit Daten von Minderjaehrigen arbeiten zu besonderen Schutzpflichten.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Schulung fuer Mitarbeiter die mit Daten von Minderjaehrigen arbeiten zu besonderen Schutzpflichten.", + "evidence": [ + "Schulungsunterlagen", + "Teilnahmenachweise" + ], + "applies_if": { + "field": "vulnerable_persons", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 8", + "ErwGr. 38" + ], + "iso27001": [ + "A.6.3" + ], + "bsi": [ + "ORP.3" + ], + "sdm": [ + "Vertraulichkeit", + "Datenminimierung" + ] + }, + "review_frequency": "ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.HR.11", + "title": "Disziplinarprozess bei Datenschutzverstoessen", + "description": "Klaren Prozess fuer arbeitsrechtliche Konsequenzen bei vorsaetzlichen Datenschutzverstoessen definieren.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Klaren Prozess fuer arbeitsrechtliche Konsequenzen bei vorsaetzlichen Datenschutzverstoessen definieren.", + "evidence": [ + "Disziplinarordnung", + "Dokumentierte Vorfaelle", + "Sanktionskatalog" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 24" + ], + "iso27001": [ + "A.6.4" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "MEDIUM", + "complexity": "LOW" + }, + { + "id": "TOM.HR.12", + "title": "Datenschutz-Wissenstest", + "description": "Nach Schulungen Verstaendnistests durchfuehren um die Wirksamkeit der Schulungsmassnahmen zu pruefen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Nach Schulungen Verstaendnistests durchfuehren um die Wirksamkeit der Schulungsmassnahmen zu pruefen.", + "evidence": [ + "Testergebnisse", + "Bestehensquoten", + "Nachschulungsplaene" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 5(2)" + ], + "iso27001": [ + "A.6.3" + ], + "bsi": [ + "ORP.3" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "MEDIUM", + "complexity": "LOW" + }, + { + "id": "TOM.HR.13", + "title": "Externe Datenschutz-Zertifizierung Mitarbeiter", + "description": "Fachkraefte zu externen Datenschutz-Zertifizierungen (CIPP/E, CIPM, DSB-Zertifikat) entsenden.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Fachkraefte zu externen Datenschutz-Zertifizierungen (CIPP/E, CIPM, DSB-Zertifikat) entsenden.", + "evidence": [ + "Zertifikate", + "Fortbildungsnachweise" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 37(5)" + ], + "iso27001": [ + "A.6.3" + ], + "bsi": [ + "ORP.3" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "LOW", + "complexity": "HIGH" + }, + { + "id": "TOM.HR.14", + "title": "Awareness-Kampagnen", + "description": "Regelmaessige Datenschutz-Awareness durch Poster, Newsletter, Intranet-Beitraege und Quiz-Aktionen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Regelmaessige Datenschutz-Awareness durch Poster, Newsletter, Intranet-Beitraege und Quiz-Aktionen.", + "evidence": [ + "Kampagnen-Material", + "Reichweiten-Statistiken", + "Feedback" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 39(1b)" + ], + "iso27001": [ + "A.6.3" + ], + "bsi": [ + "ORP.3" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "MEDIUM", + "complexity": "LOW" + }, + { + "id": "TOM.HR.15", + "title": "Notfall-Kommunikationsschulung", + "description": "Schulung zur korrekten Kommunikation bei Datenpannen (intern, extern, Behoerden, Betroffene).", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Schulung zur korrekten Kommunikation bei Datenpannen (intern, extern, Behoerden, Betroffene).", + "evidence": [ + "Schulungsunterlagen", + "Uebungsprotokolle", + "Kommunikationsvorlagen" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 33", + "Art. 34" + ], + "iso27001": [ + "A.5.24" + ], + "bsi": [ + "DER.2.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + } + ] + }, + { + "id": "IAM", + "name": "Identity & Access Management", + "objective": "Sichere Identitaetsverwaltung und Authentifizierung fuer alle Systeme und Benutzer gewaehrleisten", + "controls": [ + { + "id": "TOM.IAM.01", + "title": "Zentrales Identitaetsmanagement", + "description": "Zentrales IAM-System (z.B. LDAP, Azure AD) fuer einheitliche Benutzerverwaltung einsetzen.", + "type": "TECHNICAL", + "implementation_guidance": "Zentrales IAM-System (z.B. LDAP, Azure AD) fuer einheitliche Benutzerverwaltung einsetzen.", + "evidence": [ + "IAM-Systemdokumentation", + "Benutzerlisten", + "Konfiguration" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1b)" + ], + "iso27001": [ + "A.5.15" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.IAM.02", + "title": "Multi-Faktor-Authentifizierung (MFA)", + "description": "MFA fuer alle administrativen Zugaenge und Systeme mit personenbezogenen Daten verpflichtend einsetzen.", + "type": "TECHNICAL", + "implementation_guidance": "MFA fuer alle administrativen Zugaenge und Systeme mit personenbezogenen Daten verpflichtend einsetzen.", + "evidence": [ + "MFA-Konfiguration", + "Aktivierungsstatistik", + "Ausnahmeliste" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.5" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit", + "Integritaet" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.IAM.03", + "title": "Passwort-Policy", + "description": "Mindeststandards fuer Passwoerter definieren: Laenge, Komplexitaet, Aenderungsintervalle, Sperrung.", + "type": "TECHNICAL", + "implementation_guidance": "Mindeststandards fuer Passwoerter definieren: Laenge, Komplexitaet, Aenderungsintervalle, Sperrung.", + "evidence": [ + "Passwort-Richtlinie", + "Technische Konfiguration", + "Compliance-Report" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.5.17" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.IAM.04", + "title": "Single Sign-On (SSO)", + "description": "SSO-Loesung implementieren fuer sichere und benutzerfreundliche Authentifizierung ueber alle Systeme.", + "type": "TECHNICAL", + "implementation_guidance": "SSO-Loesung implementieren fuer sichere und benutzerfreundliche Authentifizierung ueber alle Systeme.", + "evidence": [ + "SSO-Konfiguration", + "Angebundene Systeme", + "Audit-Logs" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.5" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.IAM.05", + "title": "Benutzer-Provisioning/Deprovisioning", + "description": "Automatisierte Prozesse fuer Anlegen und Deaktivieren von Benutzerkonten bei Ein-/Austritt.", + "type": "TECHNICAL", + "implementation_guidance": "Automatisierte Prozesse fuer Anlegen und Deaktivieren von Benutzerkonten bei Ein-/Austritt.", + "evidence": [ + "Provisioning-Workflows", + "Audit-Trail", + "SLA-Einhaltung" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1b)" + ], + "iso27001": [ + "A.5.18" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.IAM.06", + "title": "Service-Account-Management", + "description": "Service-Accounts inventarisieren, mit minimalen Rechten versehen und regelmaessig pruefen.", + "type": "TECHNICAL", + "implementation_guidance": "Service-Accounts inventarisieren, mit minimalen Rechten versehen und regelmaessig pruefen.", + "evidence": [ + "Service-Account-Inventar", + "Berechtigungsmatrix", + "Review-Protokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.5.18" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit", + "Nichtverkettung" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.IAM.07", + "title": "Privileged Access Management (PAM)", + "description": "Verwaltung privilegierter Zugaenge mit Session-Recording, Just-in-Time-Access und Genehmigungsworkflows.", + "type": "TECHNICAL", + "implementation_guidance": "Verwaltung privilegierter Zugaenge mit Session-Recording, Just-in-Time-Access und Genehmigungsworkflows.", + "evidence": [ + "PAM-Konfiguration", + "Session-Logs", + "Genehmigungsprotokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.2" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit", + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "CRITICAL", + "complexity": "HIGH" + }, + { + "id": "TOM.IAM.08", + "title": "Biometrische Authentifizierung", + "description": "Bei Bedarf biometrische Verfahren einsetzen unter Beachtung der besonderen Schutzanforderungen Art. 9.", + "type": "TECHNICAL", + "implementation_guidance": "Bei Bedarf biometrische Verfahren einsetzen unter Beachtung der besonderen Schutzanforderungen Art. 9.", + "evidence": [ + "DSFA", + "Konfiguration", + "Einwilligungsnachweise" + ], + "applies_if": { + "field": "special_categories", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 9", + "Art. 32" + ], + "iso27001": [ + "A.8.5" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.IAM.09", + "title": "Session-Management", + "description": "Automatische Session-Timeouts, Inaktivitaets-Sperren und sichere Session-Tokens implementieren.", + "type": "TECHNICAL", + "implementation_guidance": "Automatische Session-Timeouts, Inaktivitaets-Sperren und sichere Session-Tokens implementieren.", + "evidence": [ + "Session-Konfiguration", + "Timeout-Einstellungen", + "Sicherheitstests" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.5" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.IAM.10", + "title": "Account-Sperrung bei Fehlversuchen", + "description": "Automatische Kontosperrung nach konfigurierbarer Anzahl fehlgeschlagener Anmeldeversuche.", + "type": "TECHNICAL", + "implementation_guidance": "Automatische Kontosperrung nach konfigurierbarer Anzahl fehlgeschlagener Anmeldeversuche.", + "evidence": [ + "Sperr-Konfiguration", + "Monitoring-Alerts", + "Entsperr-Prozess" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.5" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.IAM.11", + "title": "Identitaets-Federation", + "description": "Sichere Identity Federation fuer Drittland-Partner mit Standards wie SAML/OIDC.", + "type": "TECHNICAL", + "implementation_guidance": "Sichere Identity Federation fuer Drittland-Partner mit Standards wie SAML/OIDC.", + "evidence": [ + "Federation-Konfiguration", + "Trust-Vereinbarungen", + "Audit-Logs" + ], + "applies_if": { + "field": "third_country_transfer", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 32", + "Art. 44-49" + ], + "iso27001": [ + "A.8.5" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.IAM.12", + "title": "Selbstbedienungs-Passwort-Reset", + "description": "Sicheren Self-Service Passwort-Reset implementieren mit Identitaetsverifikation.", + "type": "TECHNICAL", + "implementation_guidance": "Sicheren Self-Service Passwort-Reset implementieren mit Identitaetsverifikation.", + "evidence": [ + "Konfiguration", + "Nutzungsstatistik", + "Sicherheitstest" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.5" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "MEDIUM", + "complexity": "LOW" + }, + { + "id": "TOM.IAM.13", + "title": "API-Authentifizierung und Token-Management", + "description": "Sichere API-Keys und OAuth2-Tokens mit Ablaufdatum, Rotation und Scope-Einschraenkung verwalten.", + "type": "TECHNICAL", + "implementation_guidance": "Sichere API-Keys und OAuth2-Tokens mit Ablaufdatum, Rotation und Scope-Einschraenkung verwalten.", + "evidence": [ + "API-Key-Inventar", + "Token-Policies", + "Rotations-Logs" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.5" + ], + "bsi": [ + "APP.1" + ], + "sdm": [ + "Vertraulichkeit", + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.IAM.14", + "title": "Conditional Access Policies", + "description": "Kontextabhaengige Zugangssteuerung basierend auf Geraetestatus, Standort, Risikolevel.", + "type": "TECHNICAL", + "implementation_guidance": "Kontextabhaengige Zugangssteuerung basierend auf Geraetestatus, Standort, Risikolevel.", + "evidence": [ + "Policy-Konfiguration", + "Anwendungsberichte", + "Ausnahmen" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.5" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.IAM.15", + "title": "Hardware-Token/FIDO2", + "description": "Phishing-resistente Authentifizierung durch FIDO2/WebAuthn Hardware-Token fuer kritische Systeme.", + "type": "TECHNICAL", + "implementation_guidance": "Phishing-resistente Authentifizierung durch FIDO2/WebAuthn Hardware-Token fuer kritische Systeme.", + "evidence": [ + "Token-Inventar", + "Verteilungsliste", + "Einsatzrichtlinie" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.5" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + } + ] + }, + { + "id": "AC", + "name": "Authorization & Least Privilege", + "objective": "Zugriff auf personenbezogene Daten nach dem Need-to-Know-Prinzip steuern und regelmaessig rezertifizieren", + "controls": [ + { + "id": "TOM.AC.01", + "title": "Rollenbasierte Zugriffskontrolle (RBAC)", + "description": "RBAC-Modell implementieren mit klar definierten Rollen und minimalen Berechtigungen pro Rolle.", + "type": "TECHNICAL", + "implementation_guidance": "RBAC-Modell implementieren mit klar definierten Rollen und minimalen Berechtigungen pro Rolle.", + "evidence": [ + "Rollenmatrix", + "Berechtigungskonzept", + "RBAC-Konfiguration" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1b)" + ], + "iso27001": [ + "A.5.15" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit", + "Nichtverkettung" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.AC.02", + "title": "Need-to-Know-Prinzip", + "description": "Zugriff auf personenbezogene Daten nur fuer Mitarbeiter die diese fuer ihre Aufgaben benoetigen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Zugriff auf personenbezogene Daten nur fuer Mitarbeiter die diese fuer ihre Aufgaben benoetigen.", + "evidence": [ + "Berechtigungskonzept", + "Zugriffsantraege", + "Genehmigungsprotokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 25(2)", + "Art. 32" + ], + "iso27001": [ + "A.5.15" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Datenminimierung", + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "LOW" + }, + { + "id": "TOM.AC.03", + "title": "Zugriffsrezertifizierung", + "description": "Regelmaessige Ueberpruefung aller vergebenen Berechtigungen durch Vorgesetzte oder Dateneigentuemer.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Regelmaessige Ueberpruefung aller vergebenen Berechtigungen durch Vorgesetzte oder Dateneigentuemer.", + "evidence": [ + "Rezertifizierungs-Protokolle", + "Aenderungsnachweise", + "Fristenueberwachung" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1d)" + ], + "iso27001": [ + "A.5.18" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.AC.04", + "title": "Attributbasierte Zugriffskontrolle (ABAC)", + "description": "Feingramulaere Zugriffssteuerung basierend auf Benutzer-Attributen, Datenklassifizierung und Kontext.", + "type": "TECHNICAL", + "implementation_guidance": "Feingramulaere Zugriffssteuerung basierend auf Benutzer-Attributen, Datenklassifizierung und Kontext.", + "evidence": [ + "ABAC-Policies", + "Attribut-Schema", + "Test-Ergebnisse" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 25(1)", + "Art. 32" + ], + "iso27001": [ + "A.5.15" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit", + "Nichtverkettung" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.AC.05", + "title": "Trennung kritischer Funktionen (SoD)", + "description": "Separation of Duties sicherstellen um Interessenkonflikte und Missbrauchsrisiken zu minimieren.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Separation of Duties sicherstellen um Interessenkonflikte und Missbrauchsrisiken zu minimieren.", + "evidence": [ + "SoD-Matrix", + "Rollenkonflikte-Analyse", + "Ausnahmen-Register" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.5.3" + ], + "bsi": [ + "ORP.1" + ], + "sdm": [ + "Integritaet", + "Nichtverkettung" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.AC.06", + "title": "Datenklassifizierung und Labeling", + "description": "Systematische Klassifizierung aller Daten nach Schutzbedarf (oeffentlich, intern, vertraulich, streng vertraulich).", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Systematische Klassifizierung aller Daten nach Schutzbedarf (oeffentlich, intern, vertraulich, streng vertraulich).", + "evidence": [ + "Klassifizierungsschema", + "Dateninventar", + "Label-Statistik" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.5.12" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Vertraulichkeit", + "Integritaet" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.AC.07", + "title": "Zugriff auf besondere Datenkategorien", + "description": "Zusaetzliche Zugriffsbeschraenkungen fuer Art. 9/10 Daten mit expliziter Genehmigung und Protokollierung.", + "type": "TECHNICAL", + "implementation_guidance": "Zusaetzliche Zugriffsbeschraenkungen fuer Art. 9/10 Daten mit expliziter Genehmigung und Protokollierung.", + "evidence": [ + "Sonder-Berechtigungskonzept", + "Genehmigungsnachweise", + "Zugriffsprotokolle" + ], + "applies_if": { + "field": "special_categories", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 9", + "Art. 10" + ], + "iso27001": [ + "A.5.15" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit", + "Nichtverkettung" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.AC.08", + "title": "Temporaere Zugriffsrechte", + "description": "Zeitlich befristete Zugaenge fuer Projekte, externe Berater oder Notfaelle mit automatischem Ablauf.", + "type": "TECHNICAL", + "implementation_guidance": "Zeitlich befristete Zugaenge fuer Projekte, externe Berater oder Notfaelle mit automatischem Ablauf.", + "evidence": [ + "Befristungsrichtlinie", + "Ablauf-Konfiguration", + "Review-Protokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.5.18" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "MEDIUM", + "complexity": "MEDIUM" + }, + { + "id": "TOM.AC.09", + "title": "Zugriffsentzug bei Rollenwechsel", + "description": "Bei internem Wechsel alte Berechtigungen entziehen und neue rollenkonform vergeben.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Bei internem Wechsel alte Berechtigungen entziehen und neue rollenkonform vergeben.", + "evidence": [ + "Wechsel-Checkliste", + "Berechtigungs-Audit", + "Freigabeprotokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.5.18" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.AC.10", + "title": "Protokollierung von Zugriffsaenderungen", + "description": "Jede Aenderung an Zugriffsrechten lueckenlos protokollieren mit Zeitstempel, Antragsteller und Genehmiger.", + "type": "TECHNICAL", + "implementation_guidance": "Jede Aenderung an Zugriffsrechten lueckenlos protokollieren mit Zeitstempel, Antragsteller und Genehmiger.", + "evidence": [ + "Aenderungs-Audit-Trail", + "Log-Archivierung", + "Integritaetsschutz" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 5(2)" + ], + "iso27001": [ + "A.8.15" + ], + "bsi": [ + "OPS.1.2" + ], + "sdm": [ + "Transparenz", + "Integritaet" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.AC.11", + "title": "Mandantentrennung", + "description": "Strikte Trennung von Mandanten-/Kundendaten auf Datenbank- und Anwendungsebene.", + "type": "TECHNICAL", + "implementation_guidance": "Strikte Trennung von Mandanten-/Kundendaten auf Datenbank- und Anwendungsebene.", + "evidence": [ + "Mandantenkonzept", + "Trennungstests", + "Konfiguration" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 32(1b)" + ], + "iso27001": [ + "A.5.15" + ], + "bsi": [ + "APP.1" + ], + "sdm": [ + "Nichtverkettung", + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "HIGH" + }, + { + "id": "TOM.AC.12", + "title": "Datenmaskierung und Anonymisierung", + "description": "Produktionsdaten in Test- und Entwicklungsumgebungen maskieren oder anonymisieren.", + "type": "TECHNICAL", + "implementation_guidance": "Produktionsdaten in Test- und Entwicklungsumgebungen maskieren oder anonymisieren.", + "evidence": [ + "Maskierungsregeln", + "Anonymisierungsnachweise", + "Test-Compliance-Report" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 25(1)", + "Art. 32" + ], + "iso27001": [ + "A.8.11" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Datenminimierung", + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.AC.13", + "title": "Break-Glass-Verfahren", + "description": "Notfall-Zugriffsverfahren fuer Ausnahmesituationen mit nachtraeglicher Genehmigung und Protokollierung.", + "type": "TECHNICAL", + "implementation_guidance": "Notfall-Zugriffsverfahren fuer Ausnahmesituationen mit nachtraeglicher Genehmigung und Protokollierung.", + "evidence": [ + "Break-Glass-Policy", + "Nutzungsprotokolle", + "Review-Berichte" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.5.18" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit", + "Verfuegbarkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.AC.14", + "title": "Zugriffskontrolle fuer Kinderdaten", + "description": "Besonders restriktive Zugriffskontrollen fuer Systeme mit Daten von Minderjaehrigen.", + "type": "TECHNICAL", + "implementation_guidance": "Besonders restriktive Zugriffskontrollen fuer Systeme mit Daten von Minderjaehrigen.", + "evidence": [ + "Sonderberechtigungskonzept", + "Altersverifikation", + "Zugriffsprotokolle" + ], + "applies_if": { + "field": "vulnerable_persons", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 8", + "ErwGr. 38" + ], + "iso27001": [ + "A.5.15" + ], + "bsi": [ + "ORP.4" + ], + "sdm": [ + "Vertraulichkeit", + "Datenminimierung" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.AC.15", + "title": "Zero-Trust-Zugriffsmodell", + "description": "Vertrauenswuerdigkeit bei jedem Zugriff neu bewerten statt implizit durch Netzwerkzugehoerigkeit.", + "type": "TECHNICAL", + "implementation_guidance": "Vertrauenswuerdigkeit bei jedem Zugriff neu bewerten statt implizit durch Netzwerkzugehoerigkeit.", + "evidence": [ + "Zero-Trust-Architektur", + "Policy-Engine-Konfiguration", + "Bewertungsregeln" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.5" + ], + "bsi": [ + "NET.1.1" + ], + "sdm": [ + "Vertraulichkeit", + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "HIGH" + } + ] + }, + { + "id": "CRYPTO", + "name": "Encryption & Key Management", + "objective": "Vertraulichkeit und Integritaet personenbezogener Daten durch angemessene Verschluesselung sicherstellen", + "controls": [ + { + "id": "TOM.CRYPTO.01", + "title": "TLS/HTTPS fuer alle Verbindungen", + "description": "Ausschliesslich TLS 1.2+ fuer alle Netzwerkverbindungen verwenden, unsichere Protokolle deaktivieren.", + "type": "TECHNICAL", + "implementation_guidance": "Ausschliesslich TLS 1.2+ fuer alle Netzwerkverbindungen verwenden, unsichere Protokolle deaktivieren.", + "evidence": [ + "TLS-Konfiguration", + "SSL-Scan-Berichte", + "Cipher-Suite-Pruefung" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1a)" + ], + "iso27001": [ + "A.8.24" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Vertraulichkeit", + "Integritaet" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "LOW" + }, + { + "id": "TOM.CRYPTO.02", + "title": "Verschluesselung ruhender Daten (at rest)", + "description": "Datenbanken, Dateisysteme und Backups mit AES-256 oder vergleichbar verschluesseln.", + "type": "TECHNICAL", + "implementation_guidance": "Datenbanken, Dateisysteme und Backups mit AES-256 oder vergleichbar verschluesseln.", + "evidence": [ + "Verschluesselungskonfiguration", + "Key-Inventar", + "Audit-Berichte" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1a)" + ], + "iso27001": [ + "A.8.24" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.CRYPTO.03", + "title": "E-Mail-Verschluesselung", + "description": "S/MIME oder PGP fuer den Versand personenbezogener Daten per E-Mail einsetzen.", + "type": "TECHNICAL", + "implementation_guidance": "S/MIME oder PGP fuer den Versand personenbezogener Daten per E-Mail einsetzen.", + "evidence": [ + "E-Mail-Policy", + "Verschluesselungskonfiguration", + "Zertifikatsverwaltung" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1a)" + ], + "iso27001": [ + "A.8.24" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.CRYPTO.04", + "title": "Key-Management-Prozess", + "description": "Dokumentierten Prozess fuer Erstellung, Verteilung, Rotation und Vernichtung kryptographischer Schluessel.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Dokumentierten Prozess fuer Erstellung, Verteilung, Rotation und Vernichtung kryptographischer Schluessel.", + "evidence": [ + "Key-Management-Policy", + "Schluesselinventar", + "Rotationsplan" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1a)" + ], + "iso27001": [ + "A.8.24" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Vertraulichkeit", + "Integritaet" + ] + }, + "review_frequency": "ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.CRYPTO.05", + "title": "Schluessel-Rotation", + "description": "Kryptographische Schluessel regelmaessig rotieren gemaess definiertem Zeitplan und bei Kompromittierungsverdacht.", + "type": "TECHNICAL", + "implementation_guidance": "Kryptographische Schluessel regelmaessig rotieren gemaess definiertem Zeitplan und bei Kompromittierungsverdacht.", + "evidence": [ + "Rotationsplan", + "Rotations-Logs", + "Automatisierungsnachweis" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1a)" + ], + "iso27001": [ + "A.8.24" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.CRYPTO.06", + "title": "Hardware Security Module (HSM)", + "description": "HSM fuer die Speicherung und Verwaltung von Master-Keys in Hochsicherheitsumgebungen einsetzen.", + "type": "TECHNICAL", + "implementation_guidance": "HSM fuer die Speicherung und Verwaltung von Master-Keys in Hochsicherheitsumgebungen einsetzen.", + "evidence": [ + "HSM-Dokumentation", + "Zugriffsprotokolle", + "FIPS-140-2-Zertifikat" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 32(1a)" + ], + "iso27001": [ + "A.8.24" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Vertraulichkeit", + "Integritaet" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.CRYPTO.07", + "title": "Datei-/Ordner-Verschluesselung", + "description": "Endgeraete-Verschluesselung (BitLocker, FileVault) fuer alle Laptops und mobilen Geraete.", + "type": "TECHNICAL", + "implementation_guidance": "Endgeraete-Verschluesselung (BitLocker, FileVault) fuer alle Laptops und mobilen Geraete.", + "evidence": [ + "Verschluesselungs-Policy", + "Aktivierungsstatus", + "MDM-Report" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1a)" + ], + "iso27001": [ + "A.8.1" + ], + "bsi": [ + "SYS.2.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.CRYPTO.08", + "title": "Verschluesselung bei Drittlandtransfer", + "description": "Ende-zu-Ende-Verschluesselung als ergaenzende Massnahme bei Datentransfers in Drittlaender.", + "type": "TECHNICAL", + "implementation_guidance": "Ende-zu-Ende-Verschluesselung als ergaenzende Massnahme bei Datentransfers in Drittlaender.", + "evidence": [ + "E2E-Konfiguration", + "Schluesselhoheit-Nachweis", + "Transfer-Protokolle" + ], + "applies_if": { + "field": "third_country_transfer", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 32(1a)", + "Art. 46" + ], + "iso27001": [ + "A.8.24" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "CRITICAL", + "complexity": "HIGH" + }, + { + "id": "TOM.CRYPTO.09", + "title": "Datenbank-Verschluesselung (TDE)", + "description": "Transparent Data Encryption fuer Datenbanken mit personenbezogenen Daten aktivieren.", + "type": "TECHNICAL", + "implementation_guidance": "Transparent Data Encryption fuer Datenbanken mit personenbezogenen Daten aktivieren.", + "evidence": [ + "TDE-Konfiguration", + "Key-Management", + "Performance-Test" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1a)" + ], + "iso27001": [ + "A.8.24" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.CRYPTO.10", + "title": "Verschluesselung besonderer Kategorien", + "description": "Verstaerkte Verschluesselung (z.B. Feldverschluesselung) fuer Art. 9/10 Daten auf Anwendungsebene.", + "type": "TECHNICAL", + "implementation_guidance": "Verstaerkte Verschluesselung (z.B. Feldverschluesselung) fuer Art. 9/10 Daten auf Anwendungsebene.", + "evidence": [ + "Feldverschluesselungskonzept", + "Schluesselmanagement", + "Zugriffsprotokolle" + ], + "applies_if": { + "field": "special_categories", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 9", + "Art. 32(1a)" + ], + "iso27001": [ + "A.8.24" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "HIGH" + }, + { + "id": "TOM.CRYPTO.11", + "title": "Zertifikatsverwaltung (PKI)", + "description": "Zentralisierte Verwaltung aller digitalen Zertifikate mit Ablaufueberwachung und automatischer Erneuerung.", + "type": "TECHNICAL", + "implementation_guidance": "Zentralisierte Verwaltung aller digitalen Zertifikate mit Ablaufueberwachung und automatischer Erneuerung.", + "evidence": [ + "Zertifikatsinventar", + "Ablaufueberwachung", + "PKI-Dokumentation" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1a)" + ], + "iso27001": [ + "A.8.24" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Vertraulichkeit", + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.CRYPTO.12", + "title": "Sichere Zufallszahlengenerierung", + "description": "Kryptographisch sichere Zufallszahlengeneratoren (CSPRNG) fuer Schluessel, Tokens und IDs verwenden.", + "type": "TECHNICAL", + "implementation_guidance": "Kryptographisch sichere Zufallszahlengeneratoren (CSPRNG) fuer Schluessel, Tokens und IDs verwenden.", + "evidence": [ + "Implementierungsdokumentation", + "Code-Review", + "Test-Berichte" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.24" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Integritaet" + ] + }, + "review_frequency": "ANNUAL", + "priority": "MEDIUM", + "complexity": "LOW" + }, + { + "id": "TOM.CRYPTO.13", + "title": "Tokenisierung sensibler Daten", + "description": "Ersetzen sensibler Daten durch nicht-reversible Token wo moeglich zur Risikominimierung.", + "type": "TECHNICAL", + "implementation_guidance": "Ersetzen sensibler Daten durch nicht-reversible Token wo moeglich zur Risikominimierung.", + "evidence": [ + "Tokenisierungskonzept", + "Mapping-Schutz", + "Einsatzbereiche" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 25(1)", + "Art. 32" + ], + "iso27001": [ + "A.8.11" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Datenminimierung", + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.CRYPTO.14", + "title": "Post-Quantum-Readiness", + "description": "Kryptographische Verfahren auf Post-Quantum-Sicherheit evaluieren und Migrationsplan erstellen.", + "type": "TECHNICAL", + "implementation_guidance": "Kryptographische Verfahren auf Post-Quantum-Sicherheit evaluieren und Migrationsplan erstellen.", + "evidence": [ + "Evaluierungsbericht", + "Migrationsplan", + "Algorithmus-Inventar" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.24" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "MEDIUM", + "complexity": "HIGH" + }, + { + "id": "TOM.CRYPTO.15", + "title": "Verschluesselung mobiler Datentraeger", + "description": "Alle mobilen Datentraeger (USB, externe Festplatten) verschluesseln oder deren Nutzung einschraenken.", + "type": "TECHNICAL", + "implementation_guidance": "Alle mobilen Datentraeger (USB, externe Festplatten) verschluesseln oder deren Nutzung einschraenken.", + "evidence": [ + "USB-Policy", + "Verschluesselungstool", + "DLP-Konfiguration" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1a)" + ], + "iso27001": [ + "A.8.1" + ], + "bsi": [ + "SYS.4.5" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + } + ] + }, + { + "id": "LOG", + "name": "Logging, Monitoring & Detection", + "objective": "Lueckenlose Protokollierung und proaktive Ueberwachung zur Erkennung und Aufklaerung von Datenschutzvorfaellen", + "controls": [ + { + "id": "TOM.LOG.01", + "title": "Zentrale Protokollierung", + "description": "Alle sicherheits- und datenschutzrelevanten Ereignisse zentral sammeln und korrelieren.", + "type": "TECHNICAL", + "implementation_guidance": "Alle sicherheits- und datenschutzrelevanten Ereignisse zentral sammeln und korrelieren.", + "evidence": [ + "SIEM/Log-Management", + "Log-Quellen-Inventar", + "Konfiguration" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 5(2)", + "Art. 32(1d)" + ], + "iso27001": [ + "A.8.15" + ], + "bsi": [ + "OPS.1.2" + ], + "sdm": [ + "Transparenz", + "Integritaet" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.LOG.02", + "title": "Audit-Trail personenbezogener Zugriffe", + "description": "Jeden Zugriff auf personenbezogene Daten protokollieren mit Wer, Wann, Was, Warum.", + "type": "TECHNICAL", + "implementation_guidance": "Jeden Zugriff auf personenbezogene Daten protokollieren mit Wer, Wann, Was, Warum.", + "evidence": [ + "Zugriffsprotokolle", + "Audit-Trail-Konfiguration", + "Stichproben-Reports" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 5(2)" + ], + "iso27001": [ + "A.8.15" + ], + "bsi": [ + "OPS.1.2" + ], + "sdm": [ + "Transparenz", + "Nichtverkettung" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.LOG.03", + "title": "Integritaetsschutz fuer Logs", + "description": "Protokolldaten gegen nachtraegliche Manipulation schuetzen (Write-Once, Signierung, WORM).", + "type": "TECHNICAL", + "implementation_guidance": "Protokolldaten gegen nachtraegliche Manipulation schuetzen (Write-Once, Signierung, WORM).", + "evidence": [ + "Log-Integritaetskonfiguration", + "Hash-Pruefprotokolle", + "Zugriffsschutz" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 5(2)" + ], + "iso27001": [ + "A.8.15" + ], + "bsi": [ + "OPS.1.2" + ], + "sdm": [ + "Integritaet" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.LOG.04", + "title": "Aufbewahrungsfristen fuer Logs", + "description": "Log-Retention-Policies definieren: ausreichend lang fuer Nachvollziehbarkeit, konform mit Speicherbegrenzung.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Log-Retention-Policies definieren: ausreichend lang fuer Nachvollziehbarkeit, konform mit Speicherbegrenzung.", + "evidence": [ + "Retention-Policy", + "Loeschautomatisierung", + "Compliance-Nachweis" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 5(1e)" + ], + "iso27001": [ + "A.8.15" + ], + "bsi": [ + "OPS.1.2" + ], + "sdm": [ + "Speicherbegrenzung", + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.LOG.05", + "title": "Security Information Event Management (SIEM)", + "description": "SIEM-System zur Korrelation und Analyse von Sicherheitsereignissen in Echtzeit einsetzen.", + "type": "TECHNICAL", + "implementation_guidance": "SIEM-System zur Korrelation und Analyse von Sicherheitsereignissen in Echtzeit einsetzen.", + "evidence": [ + "SIEM-Architektur", + "Regelwerk", + "Alert-Konfiguration", + "Tuning-Reports" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1d)" + ], + "iso27001": [ + "A.8.16" + ], + "bsi": [ + "OPS.1.2" + ], + "sdm": [ + "Integritaet", + "Verfuegbarkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.LOG.06", + "title": "Alerting bei Anomalien", + "description": "Automatische Alerts bei ungewoehnlichen Zugriffsmustern, massenhaften Downloads oder Rechteeskalationen.", + "type": "TECHNICAL", + "implementation_guidance": "Automatische Alerts bei ungewoehnlichen Zugriffsmustern, massenhaften Downloads oder Rechteeskalationen.", + "evidence": [ + "Alert-Regeln", + "Eskalationsprozess", + "False-Positive-Rate" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1d)" + ], + "iso27001": [ + "A.8.16" + ], + "bsi": [ + "DER.1" + ], + "sdm": [ + "Integritaet", + "Vertraulichkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.LOG.07", + "title": "Datenzugriffs-Monitoring bei Art. 9 Daten", + "description": "Verstaerktes Monitoring und Alerting fuer Zugriffe auf besondere Datenkategorien.", + "type": "TECHNICAL", + "implementation_guidance": "Verstaerktes Monitoring und Alerting fuer Zugriffe auf besondere Datenkategorien.", + "evidence": [ + "Monitoring-Regeln", + "Alert-Protokolle", + "Review-Berichte" + ], + "applies_if": { + "field": "special_categories", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 9", + "Art. 32" + ], + "iso27001": [ + "A.8.16" + ], + "bsi": [ + "DER.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.LOG.08", + "title": "Login-/Logout-Protokollierung", + "description": "Erfolgreiche und fehlgeschlagene Anmeldeversuche mit Zeitstempel, IP und Geraet protokollieren.", + "type": "TECHNICAL", + "implementation_guidance": "Erfolgreiche und fehlgeschlagene Anmeldeversuche mit Zeitstempel, IP und Geraet protokollieren.", + "evidence": [ + "Login-Logs", + "Konfiguration", + "Auswertungs-Reports" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1d)" + ], + "iso27001": [ + "A.8.15" + ], + "bsi": [ + "OPS.1.2" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.LOG.09", + "title": "Administrationsaktivitaeten-Logging", + "description": "Alle administrativen Taetigkeiten (Konfigurationsaenderungen, Benutzeraenderungen) protokollieren.", + "type": "TECHNICAL", + "implementation_guidance": "Alle administrativen Taetigkeiten (Konfigurationsaenderungen, Benutzeraenderungen) protokollieren.", + "evidence": [ + "Admin-Audit-Trail", + "Change-Log", + "Four-Eyes-Nachweis" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 5(2)" + ], + "iso27001": [ + "A.8.15" + ], + "bsi": [ + "OPS.1.2" + ], + "sdm": [ + "Transparenz", + "Integritaet" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.LOG.10", + "title": "Datenloesch-Protokollierung", + "description": "Jede Loeschung personenbezogener Daten dokumentieren mit Zeitpunkt, Umfang und Rechtsgrundlage.", + "type": "TECHNICAL", + "implementation_guidance": "Jede Loeschung personenbezogener Daten dokumentieren mit Zeitpunkt, Umfang und Rechtsgrundlage.", + "evidence": [ + "Loeschprotokolle", + "Automatisierungsnachweis", + "Stichproben" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 5(2)", + "Art. 17" + ], + "iso27001": [ + "A.8.10" + ], + "bsi": [ + "OPS.1.2" + ], + "sdm": [ + "Transparenz", + "Speicherbegrenzung" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.LOG.11", + "title": "Netzwerk-Traffic-Monitoring", + "description": "Netzwerkverkehr auf ungewoehnliche Muster, Datenexfiltration und unerlaubte Verbindungen ueberwachen.", + "type": "TECHNICAL", + "implementation_guidance": "Netzwerkverkehr auf ungewoehnliche Muster, Datenexfiltration und unerlaubte Verbindungen ueberwachen.", + "evidence": [ + "Flow-Analyse-Berichte", + "IDS-Konfiguration", + "Alert-Reports" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.16" + ], + "bsi": [ + "NET.3.2" + ], + "sdm": [ + "Vertraulichkeit", + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.LOG.12", + "title": "Grossvolumige Zugriffs-Alerts", + "description": "Alerts bei massenhaftem Datenexport oder -zugriff der auf Datenabfluss hindeuten koennte.", + "type": "TECHNICAL", + "implementation_guidance": "Alerts bei massenhaftem Datenexport oder -zugriff der auf Datenabfluss hindeuten koennte.", + "evidence": [ + "Alert-Schwellwerte", + "DLP-Integration", + "Eskalationsprotokoll" + ], + "applies_if": { + "field": "large_scale", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 32", + "Art. 33" + ], + "iso27001": [ + "A.8.16" + ], + "bsi": [ + "DER.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.LOG.13", + "title": "Log-Anonymisierung und Pseudonymisierung", + "description": "Personenbezogene Daten in Logs nach Moeglichkeit pseudonymisieren oder anonymisieren.", + "type": "TECHNICAL", + "implementation_guidance": "Personenbezogene Daten in Logs nach Moeglichkeit pseudonymisieren oder anonymisieren.", + "evidence": [ + "Anonymisierungsregeln", + "Konfiguration", + "Stichproben" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 25(1)", + "Art. 5(1c)" + ], + "iso27001": [ + "A.8.11" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Datenminimierung" + ] + }, + "review_frequency": "ANNUAL", + "priority": "MEDIUM", + "complexity": "MEDIUM" + }, + { + "id": "TOM.LOG.14", + "title": "24/7 Security Operations Center (SOC)", + "description": "Rund-um-die-Uhr-Ueberwachung durch internes oder externes SOC fuer kritische Systeme.", + "type": "TECHNICAL", + "implementation_guidance": "Rund-um-die-Uhr-Ueberwachung durch internes oder externes SOC fuer kritische Systeme.", + "evidence": [ + "SOC-Vertrag/Aufstellung", + "Eskalationsprozess", + "Incident-Reports" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.16" + ], + "bsi": [ + "DER.1" + ], + "sdm": [ + "Verfuegbarkeit", + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.LOG.15", + "title": "Forensik-Faehigkeit", + "description": "Log-Infrastruktur so gestalten, dass forensische Analysen nach Sicherheitsvorfaellen moeglich sind.", + "type": "TECHNICAL", + "implementation_guidance": "Log-Infrastruktur so gestalten, dass forensische Analysen nach Sicherheitsvorfaellen moeglich sind.", + "evidence": [ + "Forensik-Richtlinie", + "Log-Archivierung", + "Chain-of-Custody-Prozess" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 33", + "Art. 34" + ], + "iso27001": [ + "A.5.28" + ], + "bsi": [ + "DER.2.2" + ], + "sdm": [ + "Integritaet", + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "HIGH" + } + ] + }, + { + "id": "SDLC", + "name": "Secure Development", + "objective": "Datenschutz und Sicherheit fruehzeitig in den Software-Entwicklungsprozess integrieren", + "controls": [ + { + "id": "TOM.SDLC.01", + "title": "Secure Coding Guidelines", + "description": "Verbindliche Richtlinien fuer sichere Softwareentwicklung (OWASP, SANS) etablieren und schulen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Verbindliche Richtlinien fuer sichere Softwareentwicklung (OWASP, SANS) etablieren und schulen.", + "evidence": [ + "Secure Coding Policy", + "Schulungsnachweise", + "Code-Standards" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 25(1)", + "Art. 32" + ], + "iso27001": [ + "A.8.25" + ], + "bsi": [ + "APP.1" + ], + "sdm": [ + "Integritaet", + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.SDLC.02", + "title": "Code-Review-Prozess", + "description": "Peer-Reviews fuer alle Codeaenderungen mit Fokus auf Sicherheits- und Datenschutzaspekte.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Peer-Reviews fuer alle Codeaenderungen mit Fokus auf Sicherheits- und Datenschutzaspekte.", + "evidence": [ + "Review-Policy", + "Pull-Request-Statistik", + "Review-Checkliste" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 25(1)" + ], + "iso27001": [ + "A.8.25" + ], + "bsi": [ + "APP.1" + ], + "sdm": [ + "Integritaet" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.SDLC.03", + "title": "Statische Code-Analyse (SAST)", + "description": "Automatisierte SAST-Tools in der CI/CD-Pipeline fuer Sicherheitsluecken-Erkennung einsetzen.", + "type": "TECHNICAL", + "implementation_guidance": "Automatisierte SAST-Tools in der CI/CD-Pipeline fuer Sicherheitsluecken-Erkennung einsetzen.", + "evidence": [ + "SAST-Tool-Konfiguration", + "Scan-Berichte", + "Behebungsquoten" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.25" + ], + "bsi": [ + "APP.1" + ], + "sdm": [ + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.SDLC.04", + "title": "Dependency-/Supply-Chain-Scanning", + "description": "Automatisierte Pruefung von Abhaengigkeiten auf bekannte Schwachstellen (SCA) und Lizenzen.", + "type": "TECHNICAL", + "implementation_guidance": "Automatisierte Pruefung von Abhaengigkeiten auf bekannte Schwachstellen (SCA) und Lizenzen.", + "evidence": [ + "SCA-Tool-Konfiguration", + "SBOM", + "Vulnerability-Reports" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.25" + ], + "bsi": [ + "APP.1" + ], + "sdm": [ + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.SDLC.05", + "title": "Secrets-Scanning", + "description": "Automatisierte Erkennung von hartcodierten Zugangsdaten, API-Keys und Tokens in Code-Repositories.", + "type": "TECHNICAL", + "implementation_guidance": "Automatisierte Erkennung von hartcodierten Zugangsdaten, API-Keys und Tokens in Code-Repositories.", + "evidence": [ + "Scanner-Konfiguration", + "Findings-Report", + "Remediation-Tracking" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.25" + ], + "bsi": [ + "APP.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "CRITICAL", + "complexity": "LOW" + }, + { + "id": "TOM.SDLC.06", + "title": "Privacy by Design in der Entwicklung", + "description": "Datenschutzanforderungen als fester Bestandteil in User Stories, Akzeptanzkriterien und Definition of Done.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Datenschutzanforderungen als fester Bestandteil in User Stories, Akzeptanzkriterien und Definition of Done.", + "evidence": [ + "DoD-Checkliste", + "Story-Templates", + "Sprint-Review-Protokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 25(1)" + ], + "iso27001": [ + "A.8.25" + ], + "bsi": [ + "APP.1" + ], + "sdm": [ + "Datenminimierung", + "Zweckbindung" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.SDLC.07", + "title": "Penetration Testing", + "description": "Regelmaessige Penetration Tests durch interne oder externe Experten fuer kritische Anwendungen.", + "type": "TECHNICAL", + "implementation_guidance": "Regelmaessige Penetration Tests durch interne oder externe Experten fuer kritische Anwendungen.", + "evidence": [ + "Pentest-Berichte", + "Massnahmenplan", + "Nachtest-Ergebnisse" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1d)" + ], + "iso27001": [ + "A.8.8" + ], + "bsi": [ + "DER.3.1" + ], + "sdm": [ + "Integritaet", + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.SDLC.08", + "title": "Getrennte Umgebungen (Dev/Staging/Prod)", + "description": "Strikte Trennung von Entwicklungs-, Test- und Produktionsumgebungen mit eigenen Zugaengen.", + "type": "TECHNICAL", + "implementation_guidance": "Strikte Trennung von Entwicklungs-, Test- und Produktionsumgebungen mit eigenen Zugaengen.", + "evidence": [ + "Umgebungsarchitektur", + "Zugangskonzept", + "Netzwerktrennung" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1b)" + ], + "iso27001": [ + "A.8.31" + ], + "bsi": [ + "APP.1" + ], + "sdm": [ + "Nichtverkettung", + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.SDLC.09", + "title": "CI/CD Security Gates", + "description": "Automatisierte Sicherheitschecks als Quality Gates in der Deployment-Pipeline.", + "type": "TECHNICAL", + "implementation_guidance": "Automatisierte Sicherheitschecks als Quality Gates in der Deployment-Pipeline.", + "evidence": [ + "Pipeline-Konfiguration", + "Gate-Kriterien", + "Compliance-Rate" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.25" + ], + "bsi": [ + "APP.1" + ], + "sdm": [ + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.SDLC.10", + "title": "DSGVO-Testdaten-Management", + "description": "Keine Produktionsdaten in Test-Umgebungen verwenden; stattdessen synthetische oder anonymisierte Testdaten.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Keine Produktionsdaten in Test-Umgebungen verwenden; stattdessen synthetische oder anonymisierte Testdaten.", + "evidence": [ + "Testdaten-Policy", + "Anonymisierungstool", + "Compliance-Nachweis" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 25(1)", + "Art. 5(1c)" + ], + "iso27001": [ + "A.8.33" + ], + "bsi": [ + "APP.1" + ], + "sdm": [ + "Datenminimierung" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.SDLC.11", + "title": "Threat Modeling", + "description": "Bei neuen Features systematische Bedrohungsanalyse durchfuehren (STRIDE, LINDDUN) mit Datenschutzfokus.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Bei neuen Features systematische Bedrohungsanalyse durchfuehren (STRIDE, LINDDUN) mit Datenschutzfokus.", + "evidence": [ + "Threat-Model-Dokumente", + "Massnahmenableitung", + "Review-Protokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 25(1)", + "Art. 35" + ], + "iso27001": [ + "A.5.8" + ], + "bsi": [ + "CON.2" + ], + "sdm": [ + "Integritaet", + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.SDLC.12", + "title": "API-Security-Standards", + "description": "REST/GraphQL APIs nach OWASP API Security Top 10 absichern mit Rate-Limiting, Input-Validation, AuthZ.", + "type": "TECHNICAL", + "implementation_guidance": "REST/GraphQL APIs nach OWASP API Security Top 10 absichern mit Rate-Limiting, Input-Validation, AuthZ.", + "evidence": [ + "API-Security-Richtlinie", + "Scan-Berichte", + "Test-Ergebnisse" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.25" + ], + "bsi": [ + "APP.1" + ], + "sdm": [ + "Integritaet", + "Vertraulichkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.SDLC.13", + "title": "Security-Champions-Programm", + "description": "In jedem Entwicklungsteam einen Security Champion ausbilden als Ansprechpartner fuer Sicherheitsfragen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "In jedem Entwicklungsteam einen Security Champion ausbilden als Ansprechpartner fuer Sicherheitsfragen.", + "evidence": [ + "Champion-Liste", + "Schulungsnachweise", + "Aktivitaetsprotokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.6.3" + ], + "bsi": [ + "ORP.3" + ], + "sdm": [ + "Integritaet" + ] + }, + "review_frequency": "ANNUAL", + "priority": "MEDIUM", + "complexity": "LOW" + }, + { + "id": "TOM.SDLC.14", + "title": "Bug-Bounty/Responsible-Disclosure", + "description": "Programm fuer verantwortungsvolle Offenlegung von Schwachstellen durch externe Sicherheitsforscher.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Programm fuer verantwortungsvolle Offenlegung von Schwachstellen durch externe Sicherheitsforscher.", + "evidence": [ + "Disclosure-Policy", + "Kontaktinformationen", + "Belohnungsrichtlinie" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 32(1d)" + ], + "iso27001": [ + "A.5.7" + ], + "bsi": [ + "DER.3.1" + ], + "sdm": [ + "Integritaet" + ] + }, + "review_frequency": "ANNUAL", + "priority": "MEDIUM", + "complexity": "MEDIUM" + }, + { + "id": "TOM.SDLC.15", + "title": "Sichere Software-Lieferkette", + "description": "Integritaet der gesamten Build- und Deploy-Pipeline sicherstellen (Signierung, SBOM, Provenance).", + "type": "TECHNICAL", + "implementation_guidance": "Integritaet der gesamten Build- und Deploy-Pipeline sicherstellen (Signierung, SBOM, Provenance).", + "evidence": [ + "SBOM", + "Signierungskonfiguration", + "Pipeline-Audit", + "Provenance-Logs" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.5.21" + ], + "bsi": [ + "APP.1" + ], + "sdm": [ + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "HIGH" + } + ] + }, + { + "id": "OPS", + "name": "Operations & Hardening", + "objective": "Sichere Konfiguration und laufende Haertung aller IT-Systeme gewaehrleisten", + "controls": [ + { + "id": "TOM.OPS.01", + "title": "Patch-Management-Prozess", + "description": "Zeitnahe Installation von Sicherheits-Patches mit definierten SLAs (kritisch: 24h, hoch: 7 Tage).", + "type": "TECHNICAL", + "implementation_guidance": "Zeitnahe Installation von Sicherheits-Patches mit definierten SLAs (kritisch: 24h, hoch: 7 Tage).", + "evidence": [ + "Patch-Policy", + "Patch-Status-Reports", + "SLA-Einhaltung" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.8" + ], + "bsi": [ + "OPS.1.1" + ], + "sdm": [ + "Integritaet", + "Verfuegbarkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.OPS.02", + "title": "System-Haertung (Hardening)", + "description": "Betriebssysteme und Anwendungen nach CIS-Benchmarks oder BSI-Vorgaben haerten.", + "type": "TECHNICAL", + "implementation_guidance": "Betriebssysteme und Anwendungen nach CIS-Benchmarks oder BSI-Vorgaben haerten.", + "evidence": [ + "Hardening-Checklisten", + "CIS-Benchmark-Reports", + "Konfigurationsdokumentation" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.9" + ], + "bsi": [ + "SYS.1.1" + ], + "sdm": [ + "Integritaet", + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.OPS.03", + "title": "Vulnerability Management", + "description": "Regelmaessige Schwachstellen-Scans und systematische Behebung nach Risikobewertung.", + "type": "TECHNICAL", + "implementation_guidance": "Regelmaessige Schwachstellen-Scans und systematische Behebung nach Risikobewertung.", + "evidence": [ + "Scan-Berichte", + "Behebungs-Tracking", + "Risikobewertungen" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1d)" + ], + "iso27001": [ + "A.8.8" + ], + "bsi": [ + "OPS.1.1" + ], + "sdm": [ + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.OPS.04", + "title": "Configuration Management", + "description": "Definierte und dokumentierte Konfigurationsstandards fuer alle Systeme mit Abweichungserkennung.", + "type": "TECHNICAL", + "implementation_guidance": "Definierte und dokumentierte Konfigurationsstandards fuer alle Systeme mit Abweichungserkennung.", + "evidence": [ + "Konfigurations-Baseline", + "Drift-Detection-Reports", + "Change-Logs" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.9" + ], + "bsi": [ + "OPS.1.1" + ], + "sdm": [ + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.OPS.05", + "title": "Asset-/Inventar-Management", + "description": "Vollstaendiges Inventar aller IT-Assets mit Klassifizierung und Datenschutzrelevanz-Bewertung.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Vollstaendiges Inventar aller IT-Assets mit Klassifizierung und Datenschutzrelevanz-Bewertung.", + "evidence": [ + "Asset-Inventar", + "Klassifizierung", + "Verantwortlichkeiten" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 30", + "Art. 32" + ], + "iso27001": [ + "A.5.9" + ], + "bsi": [ + "ORP.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.OPS.06", + "title": "Endgeraete-Sicherheit (EDR/MDM)", + "description": "Endpoint Detection & Response und Mobile Device Management fuer alle Endgeraete einsetzen.", + "type": "TECHNICAL", + "implementation_guidance": "Endpoint Detection & Response und Mobile Device Management fuer alle Endgeraete einsetzen.", + "evidence": [ + "EDR-Konfiguration", + "MDM-Policy", + "Geraetestatus-Reports" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.1" + ], + "bsi": [ + "SYS.3.2" + ], + "sdm": [ + "Vertraulichkeit", + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.OPS.07", + "title": "Server-Haertung kritischer Systeme", + "description": "Verstaerkte Haertung fuer Systeme die besondere Datenkategorien verarbeiten.", + "type": "TECHNICAL", + "implementation_guidance": "Verstaerkte Haertung fuer Systeme die besondere Datenkategorien verarbeiten.", + "evidence": [ + "Haertungsdokumentation", + "Compliance-Scans", + "Abweichungsbericht" + ], + "applies_if": { + "field": "special_categories", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 9", + "Art. 32" + ], + "iso27001": [ + "A.8.9" + ], + "bsi": [ + "SYS.1.1" + ], + "sdm": [ + "Vertraulichkeit", + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.OPS.08", + "title": "Change-Management-Prozess", + "description": "Formaler Change-Management-Prozess fuer alle Aenderungen an produktiven Systemen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Formaler Change-Management-Prozess fuer alle Aenderungen an produktiven Systemen.", + "evidence": [ + "Change-Requests", + "Genehmigungen", + "Rollback-Plaene" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1d)" + ], + "iso27001": [ + "A.8.32" + ], + "bsi": [ + "OPS.1.1" + ], + "sdm": [ + "Integritaet", + "Verfuegbarkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.OPS.09", + "title": "Automatisierte Compliance-Checks", + "description": "Infrastructure-as-Code Compliance-Pruefungen fuer Cloud- und Container-Umgebungen.", + "type": "TECHNICAL", + "implementation_guidance": "Infrastructure-as-Code Compliance-Pruefungen fuer Cloud- und Container-Umgebungen.", + "evidence": [ + "Compliance-Scan-Reports", + "Policy-as-Code", + "Abweichungs-Alerts" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.9" + ], + "bsi": [ + "OPS.1.1" + ], + "sdm": [ + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.OPS.10", + "title": "Container-Security", + "description": "Container-Images scannen, minimale Base-Images verwenden, Runtime-Schutz implementieren.", + "type": "TECHNICAL", + "implementation_guidance": "Container-Images scannen, minimale Base-Images verwenden, Runtime-Schutz implementieren.", + "evidence": [ + "Image-Scan-Reports", + "Dockerfile-Reviews", + "Runtime-Policy" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.25" + ], + "bsi": [ + "APP.4" + ], + "sdm": [ + "Integritaet", + "Vertraulichkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.OPS.11", + "title": "Dekommissionierung von Systemen", + "description": "Sichere Ausserbetriebnahme von IT-Systemen mit Datenloeschung, Dokumentation und Inventar-Update.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Sichere Ausserbetriebnahme von IT-Systemen mit Datenloeschung, Dokumentation und Inventar-Update.", + "evidence": [ + "Dekommissionierungsprotokoll", + "Loeschnachweis", + "Inventar-Update" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 17", + "Art. 32" + ], + "iso27001": [ + "A.8.10" + ], + "bsi": [ + "SYS.1.1" + ], + "sdm": [ + "Speicherbegrenzung", + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.OPS.12", + "title": "Malware-Schutz", + "description": "Aktuelle Anti-Malware-Loesung auf allen Systemen mit automatischen Updates und Echtzeit-Scan.", + "type": "TECHNICAL", + "implementation_guidance": "Aktuelle Anti-Malware-Loesung auf allen Systemen mit automatischen Updates und Echtzeit-Scan.", + "evidence": [ + "AV-Konfiguration", + "Scan-Reports", + "Update-Status" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.7" + ], + "bsi": [ + "OPS.1.1" + ], + "sdm": [ + "Integritaet", + "Verfuegbarkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.OPS.13", + "title": "Zeitliche Synchronisation (NTP)", + "description": "Alle Systeme mit verlaesslicher Zeitquelle synchronisieren fuer konsistente Protokollierung.", + "type": "TECHNICAL", + "implementation_guidance": "Alle Systeme mit verlaesslicher Zeitquelle synchronisieren fuer konsistente Protokollierung.", + "evidence": [ + "NTP-Konfiguration", + "Sync-Status", + "Abweichungs-Alerts" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 5(2)" + ], + "iso27001": [ + "A.8.17" + ], + "bsi": [ + "OPS.1.1" + ], + "sdm": [ + "Integritaet", + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "MEDIUM", + "complexity": "LOW" + }, + { + "id": "TOM.OPS.14", + "title": "Sichere Entsorgung von Datentraegern", + "description": "Physische Datentraeger vor Entsorgung oder Wiederverwendung sicher loeschen (NIST SP 800-88).", + "type": "TECHNICAL", + "implementation_guidance": "Physische Datentraeger vor Entsorgung oder Wiederverwendung sicher loeschen (NIST SP 800-88).", + "evidence": [ + "Loeschprotokolle", + "Zertifikate Datentraegervernichtung", + "Entsorgungsvertrag" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 5(1e)", + "Art. 17" + ], + "iso27001": [ + "A.7.14" + ], + "bsi": [ + "INF.1" + ], + "sdm": [ + "Speicherbegrenzung", + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.OPS.15", + "title": "Immutable Infrastructure", + "description": "Unveraenderbare Server-Infrastruktur um Konfigurationsdrift und nachtraegliche Manipulation zu verhindern.", + "type": "TECHNICAL", + "implementation_guidance": "Unveraenderbare Server-Infrastruktur um Konfigurationsdrift und nachtraegliche Manipulation zu verhindern.", + "evidence": [ + "IaC-Repository", + "Deployment-Logs", + "Drift-Detection" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.9" + ], + "bsi": [ + "OPS.1.1" + ], + "sdm": [ + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "MEDIUM", + "complexity": "HIGH" + } + ] + }, + { + "id": "NET", + "name": "Network Security", + "objective": "Netzwerksicherheit durch Segmentierung, Filterung und Ueberwachung gewaehrleisten", + "controls": [ + { + "id": "TOM.NET.01", + "title": "Netzwerksegmentierung", + "description": "Netzwerk in Sicherheitszonen aufteilen und Datenverarbeitung nach Schutzbedarf separieren.", + "type": "TECHNICAL", + "implementation_guidance": "Netzwerk in Sicherheitszonen aufteilen und Datenverarbeitung nach Schutzbedarf separieren.", + "evidence": [ + "Netzwerkplan", + "Segmentierungskonzept", + "Firewall-Regeln" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1b)" + ], + "iso27001": [ + "A.8.22" + ], + "bsi": [ + "NET.1.1" + ], + "sdm": [ + "Nichtverkettung", + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.NET.02", + "title": "Firewall-Management", + "description": "Restriktive Firewall-Regeln nach Whitelist-Prinzip mit regelmaessiger Review und Aufraeum-Zyklen.", + "type": "TECHNICAL", + "implementation_guidance": "Restriktive Firewall-Regeln nach Whitelist-Prinzip mit regelmaessiger Review und Aufraeum-Zyklen.", + "evidence": [ + "Firewall-Regelwerk", + "Review-Protokolle", + "Change-Logs" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.20" + ], + "bsi": [ + "NET.3.2" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.NET.03", + "title": "Web Application Firewall (WAF)", + "description": "WAF vor oeffentlich erreichbaren Webanwendungen zum Schutz gegen OWASP-Top-10-Angriffe.", + "type": "TECHNICAL", + "implementation_guidance": "WAF vor oeffentlich erreichbaren Webanwendungen zum Schutz gegen OWASP-Top-10-Angriffe.", + "evidence": [ + "WAF-Konfiguration", + "Regelwerk", + "Block-Statistiken" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.20" + ], + "bsi": [ + "NET.3.2" + ], + "sdm": [ + "Integritaet", + "Verfuegbarkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.NET.04", + "title": "Intrusion Detection/Prevention (IDS/IPS)", + "description": "Netzwerkbasierte Angriffserkennung und -verhinderung fuer kritische Netzwerkuebergaenge.", + "type": "TECHNICAL", + "implementation_guidance": "Netzwerkbasierte Angriffserkennung und -verhinderung fuer kritische Netzwerkuebergaenge.", + "evidence": [ + "IDS/IPS-Konfiguration", + "Alert-Reports", + "Tuning-Protokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.23" + ], + "bsi": [ + "NET.3.2" + ], + "sdm": [ + "Integritaet", + "Vertraulichkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.NET.05", + "title": "DMZ-Architektur", + "description": "Demilitarisierte Zone fuer oeffentlich erreichbare Dienste mit strikter Trennung vom internen Netz.", + "type": "TECHNICAL", + "implementation_guidance": "Demilitarisierte Zone fuer oeffentlich erreichbare Dienste mit strikter Trennung vom internen Netz.", + "evidence": [ + "DMZ-Architektur", + "Datenflussdiagramm", + "Firewall-Regeln" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1b)" + ], + "iso27001": [ + "A.8.22" + ], + "bsi": [ + "NET.1.1" + ], + "sdm": [ + "Vertraulichkeit", + "Nichtverkettung" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.NET.06", + "title": "VPN/Sichere Fernzugriffe", + "description": "Alle Fernzugriffe ueber verschluesselte VPN-Tunnel mit Authentifizierung und Geraetepruefung.", + "type": "TECHNICAL", + "implementation_guidance": "Alle Fernzugriffe ueber verschluesselte VPN-Tunnel mit Authentifizierung und Geraetepruefung.", + "evidence": [ + "VPN-Konfiguration", + "Zugangsprotokoll", + "Split-Tunneling-Policy" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1a)" + ], + "iso27001": [ + "A.8.20" + ], + "bsi": [ + "NET.1.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.NET.07", + "title": "DNS-Security (DNSSEC, DNS-Filtering)", + "description": "DNS-Anfragen filtern und absichern zum Schutz gegen DNS-basierte Angriffe und Malware.", + "type": "TECHNICAL", + "implementation_guidance": "DNS-Anfragen filtern und absichern zum Schutz gegen DNS-basierte Angriffe und Malware.", + "evidence": [ + "DNS-Konfiguration", + "Filtering-Policy", + "Block-Statistiken" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.20" + ], + "bsi": [ + "NET.1.1" + ], + "sdm": [ + "Integritaet" + ] + }, + "review_frequency": "ANNUAL", + "priority": "MEDIUM", + "complexity": "MEDIUM" + }, + { + "id": "TOM.NET.08", + "title": "Netzwerk-Zugriffskontrolle (NAC)", + "description": "Network Access Control um nur autorisierte und konforme Geraete ins Netzwerk zu lassen.", + "type": "TECHNICAL", + "implementation_guidance": "Network Access Control um nur autorisierte und konforme Geraete ins Netzwerk zu lassen.", + "evidence": [ + "NAC-Konfiguration", + "Policy-Regeln", + "Geraeteinventar" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.20" + ], + "bsi": [ + "NET.1.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.NET.09", + "title": "Mikrosegmentierung", + "description": "Feingranulare Segmentierung auf Workload-Ebene insbesondere fuer Systeme mit Art. 9 Daten.", + "type": "TECHNICAL", + "implementation_guidance": "Feingranulare Segmentierung auf Workload-Ebene insbesondere fuer Systeme mit Art. 9 Daten.", + "evidence": [ + "Mikrosegmentierungskonzept", + "Policy-Regeln", + "Flow-Analyse" + ], + "applies_if": { + "field": "special_categories", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 9", + "Art. 32" + ], + "iso27001": [ + "A.8.22" + ], + "bsi": [ + "NET.1.1" + ], + "sdm": [ + "Nichtverkettung", + "Vertraulichkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.NET.10", + "title": "DDoS-Schutz", + "description": "Schutzmassnahmen gegen Distributed-Denial-of-Service-Angriffe fuer oeffentliche Dienste.", + "type": "TECHNICAL", + "implementation_guidance": "Schutzmassnahmen gegen Distributed-Denial-of-Service-Angriffe fuer oeffentliche Dienste.", + "evidence": [ + "DDoS-Mitigation-Service", + "Konfiguration", + "Incident-Reports" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1b)" + ], + "iso27001": [ + "A.8.20" + ], + "bsi": [ + "NET.3.2" + ], + "sdm": [ + "Verfuegbarkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.NET.11", + "title": "WLAN-Sicherheit", + "description": "Sichere WLAN-Konfiguration mit WPA3/Enterprise, Gaestenetz-Trennung, Rogue-AP-Detection.", + "type": "TECHNICAL", + "implementation_guidance": "Sichere WLAN-Konfiguration mit WPA3/Enterprise, Gaestenetz-Trennung, Rogue-AP-Detection.", + "evidence": [ + "WLAN-Konfiguration", + "Gaestenetz-Konzept", + "Scan-Berichte" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.20" + ], + "bsi": [ + "NET.2.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.NET.12", + "title": "Datentransfer-Monitoring bei Drittlandtransfer", + "description": "Netzwerkseitige Ueberwachung und Kontrolle von Datenfluessen in Drittlaender.", + "type": "TECHNICAL", + "implementation_guidance": "Netzwerkseitige Ueberwachung und Kontrolle von Datenfluessen in Drittlaender.", + "evidence": [ + "Transfer-Monitoring-Tool", + "Alert-Regeln", + "Laenderlisten" + ], + "applies_if": { + "field": "third_country_transfer", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 44-49" + ], + "iso27001": [ + "A.8.16" + ], + "bsi": [ + "NET.3.2" + ], + "sdm": [ + "Vertraulichkeit", + "Transparenz" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "CRITICAL", + "complexity": "HIGH" + }, + { + "id": "TOM.NET.13", + "title": "Netzwerk-Dokumentation", + "description": "Aktuelle Netzwerkdokumentation mit Topologie, Datenflussdiagrammen und Sicherheitszonen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Aktuelle Netzwerkdokumentation mit Topologie, Datenflussdiagrammen und Sicherheitszonen.", + "evidence": [ + "Netzwerkdiagramme", + "Datenflussplaene", + "Zonenkonzept" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 5(2)" + ], + "iso27001": [ + "A.5.9" + ], + "bsi": [ + "NET.1.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.NET.14", + "title": "Zero-Trust-Network-Access (ZTNA)", + "description": "Anwendungsspezifischer Zugang statt VPN mit kontinuierlicher Vertrauensbewertung.", + "type": "TECHNICAL", + "implementation_guidance": "Anwendungsspezifischer Zugang statt VPN mit kontinuierlicher Vertrauensbewertung.", + "evidence": [ + "ZTNA-Architektur", + "Policy-Engine", + "Zugangsstatistiken" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.20" + ], + "bsi": [ + "NET.1.1" + ], + "sdm": [ + "Vertraulichkeit", + "Integritaet" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.NET.15", + "title": "Honeypots/Deception Technology", + "description": "Taeuschnungssysteme zur fruehzeitigen Erkennung von Angreifern im Netzwerk einsetzen.", + "type": "TECHNICAL", + "implementation_guidance": "Taeuschnungssysteme zur fruehzeitigen Erkennung von Angreifern im Netzwerk einsetzen.", + "evidence": [ + "Deception-Konfiguration", + "Alert-Protokolle", + "Incident-Reports" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.16" + ], + "bsi": [ + "DER.1" + ], + "sdm": [ + "Integritaet" + ] + }, + "review_frequency": "ANNUAL", + "priority": "LOW", + "complexity": "HIGH" + } + ] + }, + { + "id": "BCP", + "name": "Backup, DR & Business Continuity", + "objective": "Verfuegbarkeit und Wiederherstellbarkeit personenbezogener Daten sicherstellen", + "controls": [ + { + "id": "TOM.BCP.01", + "title": "Backup-Konzept", + "description": "Definiertes Backup-Konzept mit RPO/RTO-Zielen, Backup-Typen und Aufbewahrungsfristen.", + "type": "TECHNICAL", + "implementation_guidance": "Definiertes Backup-Konzept mit RPO/RTO-Zielen, Backup-Typen und Aufbewahrungsfristen.", + "evidence": [ + "Backup-Konzept", + "RPO/RTO-Matrix", + "Backup-Schedule" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1b)", + "Art. 32(1c)" + ], + "iso27001": [ + "A.8.13" + ], + "bsi": [ + "CON.3" + ], + "sdm": [ + "Verfuegbarkeit", + "Integritaet" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.BCP.02", + "title": "Regelmaessige Backup-Tests", + "description": "Restore-Tests regelmaessig durchfuehren und dokumentieren um die Wiederherstellbarkeit zu verifizieren.", + "type": "TECHNICAL", + "implementation_guidance": "Restore-Tests regelmaessig durchfuehren und dokumentieren um die Wiederherstellbarkeit zu verifizieren.", + "evidence": [ + "Test-Protokolle", + "Wiederherstellungszeiten", + "Erfolgsquoten" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1d)" + ], + "iso27001": [ + "A.8.13" + ], + "bsi": [ + "CON.3" + ], + "sdm": [ + "Verfuegbarkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.BCP.03", + "title": "Verschluesselte Backups", + "description": "Alle Backup-Medien und -Daten verschluesseln um Vertraulichkeit auch bei physischem Verlust zu gewaehrleisten.", + "type": "TECHNICAL", + "implementation_guidance": "Alle Backup-Medien und -Daten verschluesseln um Vertraulichkeit auch bei physischem Verlust zu gewaehrleisten.", + "evidence": [ + "Verschluesselungskonfiguration", + "Key-Management", + "Compliance-Nachweis" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1a)" + ], + "iso27001": [ + "A.8.13" + ], + "bsi": [ + "CON.3" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.BCP.04", + "title": "Offsite-/Georedundante Backups", + "description": "Backup-Kopien an geographisch getrenntem Standort lagern fuer Desaster-Recovery.", + "type": "TECHNICAL", + "implementation_guidance": "Backup-Kopien an geographisch getrenntem Standort lagern fuer Desaster-Recovery.", + "evidence": [ + "Offsite-Standort", + "Replikationskonfiguration", + "Transfer-Verschluesselung" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1b)" + ], + "iso27001": [ + "A.8.14" + ], + "bsi": [ + "CON.3" + ], + "sdm": [ + "Verfuegbarkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.BCP.05", + "title": "Immutable Backups", + "description": "Unveraenderbare Backup-Kopien erstellen die auch bei Ransomware-Befall nicht verschluesselt werden koennen.", + "type": "TECHNICAL", + "implementation_guidance": "Unveraenderbare Backup-Kopien erstellen die auch bei Ransomware-Befall nicht verschluesselt werden koennen.", + "evidence": [ + "WORM-Konfiguration", + "Retention-Lock", + "Test-Protokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1)" + ], + "iso27001": [ + "A.8.13" + ], + "bsi": [ + "CON.3" + ], + "sdm": [ + "Verfuegbarkeit", + "Integritaet" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.BCP.06", + "title": "Disaster-Recovery-Plan (DRP)", + "description": "Dokumentierter und getesteter Plan zur Wiederherstellung kritischer Systeme nach Katastrophen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Dokumentierter und getesteter Plan zur Wiederherstellung kritischer Systeme nach Katastrophen.", + "evidence": [ + "DRP-Dokument", + "Kontaktlisten", + "Wiederherstellungsprioritaeten" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 32(1c)" + ], + "iso27001": [ + "A.5.29" + ], + "bsi": [ + "DER.4" + ], + "sdm": [ + "Verfuegbarkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.BCP.07", + "title": "DR-Uebungen", + "description": "Mindestens jaehrliche Disaster-Recovery-Uebungen einschliesslich Failover-Tests.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Mindestens jaehrliche Disaster-Recovery-Uebungen einschliesslich Failover-Tests.", + "evidence": [ + "Uebungsprotokolle", + "Lessons-Learned", + "Verbesserungsmassnahmen" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1d)" + ], + "iso27001": [ + "A.5.29" + ], + "bsi": [ + "DER.4" + ], + "sdm": [ + "Verfuegbarkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.BCP.08", + "title": "Business Continuity Plan (BCP)", + "description": "Uebergreifender BCP der alle kritischen Geschaeftsprozesse und deren Datenschutzrelevanz abdeckt.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Uebergreifender BCP der alle kritischen Geschaeftsprozesse und deren Datenschutzrelevanz abdeckt.", + "evidence": [ + "BCP-Dokument", + "BIA-Ergebnisse", + "Eskalationspfade" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 32(1c)" + ], + "iso27001": [ + "A.5.30" + ], + "bsi": [ + "DER.4" + ], + "sdm": [ + "Verfuegbarkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.BCP.09", + "title": "Hochverfuegbarkeits-Cluster", + "description": "Redundante Systemarchitektur fuer kritische Dienste mit automatischem Failover.", + "type": "TECHNICAL", + "implementation_guidance": "Redundante Systemarchitektur fuer kritische Dienste mit automatischem Failover.", + "evidence": [ + "HA-Architektur", + "Failover-Tests", + "SLA-Monitoring" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 32(1b)" + ], + "iso27001": [ + "A.8.14" + ], + "bsi": [ + "SYS.1.1" + ], + "sdm": [ + "Verfuegbarkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.BCP.10", + "title": "Backup-Loeschung nach Aufbewahrungsfrist", + "description": "Automatische Loeschung von Backups nach Ablauf der definierten Aufbewahrungsfrist.", + "type": "TECHNICAL", + "implementation_guidance": "Automatische Loeschung von Backups nach Ablauf der definierten Aufbewahrungsfrist.", + "evidence": [ + "Retention-Policy", + "Loeschautomatisierung", + "Loeschprotokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 5(1e)", + "Art. 17" + ], + "iso27001": [ + "A.8.10" + ], + "bsi": [ + "CON.3" + ], + "sdm": [ + "Speicherbegrenzung" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.BCP.11", + "title": "Verstaerkte Backup-Frequenz bei Massendaten", + "description": "Erhoehte Backup-Frequenz fuer Systeme mit grossem Datenvolumen und vielen Betroffenen.", + "type": "TECHNICAL", + "implementation_guidance": "Erhoehte Backup-Frequenz fuer Systeme mit grossem Datenvolumen und vielen Betroffenen.", + "evidence": [ + "Backup-Schedule", + "RPO-Analyse", + "Speicherplanung" + ], + "applies_if": { + "field": "large_scale", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 32(1b)" + ], + "iso27001": [ + "A.8.13" + ], + "bsi": [ + "CON.3" + ], + "sdm": [ + "Verfuegbarkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.BCP.12", + "title": "Backup-Verschluesselung besonderer Kategorien", + "description": "Separate Verschluesselung fuer Backups die Art. 9/10 Daten enthalten mit eigenem Schluesselmanagement.", + "type": "TECHNICAL", + "implementation_guidance": "Separate Verschluesselung fuer Backups die Art. 9/10 Daten enthalten mit eigenem Schluesselmanagement.", + "evidence": [ + "Sonder-Verschluesselungskonzept", + "Key-Separation", + "Zugriffsprotokolle" + ], + "applies_if": { + "field": "special_categories", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 9", + "Art. 32(1a)" + ], + "iso27001": [ + "A.8.13" + ], + "bsi": [ + "CON.3" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "HIGH" + }, + { + "id": "TOM.BCP.13", + "title": "Cloud-Backup-Souveraenitaet", + "description": "Bei Cloud-Backups sicherstellen dass Daten im EWR verbleiben und Schluesselhoheit beim Verantwortlichen.", + "type": "TECHNICAL", + "implementation_guidance": "Bei Cloud-Backups sicherstellen dass Daten im EWR verbleiben und Schluesselhoheit beim Verantwortlichen.", + "evidence": [ + "Cloud-Vertrag", + "Standort-Nachweis", + "BYOK-Konfiguration" + ], + "applies_if": { + "field": "third_country_transfer", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 44-49", + "Art. 32" + ], + "iso27001": [ + "A.8.13" + ], + "bsi": [ + "CON.3" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.BCP.14", + "title": "Automatisches Failover fuer Kinderdaten", + "description": "Besonders hohe Verfuegbarkeitsanforderungen fuer Systeme mit Daten von Minderjaehrigen.", + "type": "TECHNICAL", + "implementation_guidance": "Besonders hohe Verfuegbarkeitsanforderungen fuer Systeme mit Daten von Minderjaehrigen.", + "evidence": [ + "HA-Konfiguration", + "SLA-Definition", + "Monitoring" + ], + "applies_if": { + "field": "vulnerable_persons", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 8", + "Art. 32(1c)" + ], + "iso27001": [ + "A.8.14" + ], + "bsi": [ + "SYS.1.1" + ], + "sdm": [ + "Verfuegbarkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.BCP.15", + "title": "Notfall-Kommunikationsplan", + "description": "Kommunikationsplan fuer IT-Notfaelle mit internen und externen Stakeholdern.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Kommunikationsplan fuer IT-Notfaelle mit internen und externen Stakeholdern.", + "evidence": [ + "Kommunikationsplan", + "Kontaktlisten", + "Vorlagen" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 33", + "Art. 34" + ], + "iso27001": [ + "A.5.29" + ], + "bsi": [ + "DER.4" + ], + "sdm": [ + "Transparenz", + "Verfuegbarkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + } + ] + }, + { + "id": "VENDOR", + "name": "Supplier/Processor Controls", + "objective": "Datenschutz-Compliance bei der Einbindung von Auftragsverarbeitern und Dienstleistern sicherstellen", + "controls": [ + { + "id": "TOM.VENDOR.01", + "title": "Auftragsverarbeitungsvertrag (AVV)", + "description": "Wirksamen AVV gemaess Art. 28 DSGVO vor Beginn der Verarbeitung abschliessen mit allen Pflichtinhalten.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Wirksamen AVV gemaess Art. 28 DSGVO vor Beginn der Verarbeitung abschliessen mit allen Pflichtinhalten.", + "evidence": [ + "AVV-Vertrag", + "Checkliste Art. 28", + "Unterschriften" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 28" + ], + "iso27001": [ + "A.5.20" + ], + "bsi": [ + "OPS.2.1" + ], + "sdm": [ + "Vertraulichkeit", + "Zweckbindung" + ] + }, + "review_frequency": "ANNUAL", + "priority": "CRITICAL", + "complexity": "LOW" + }, + { + "id": "TOM.VENDOR.02", + "title": "Dienstleister-Datenschutz-Pruefung", + "description": "Vor Beauftragung Datenschutz-Due-Diligence beim Auftragsverarbeiter durchfuehren.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Vor Beauftragung Datenschutz-Due-Diligence beim Auftragsverarbeiter durchfuehren.", + "evidence": [ + "Due-Diligence-Checkliste", + "Bewertungsbericht", + "Freigabeprotokoll" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 28(1)" + ], + "iso27001": [ + "A.5.19" + ], + "bsi": [ + "OPS.2.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.VENDOR.03", + "title": "Sub-Prozessor-Management", + "description": "Genehmigungsprozess fuer Unter-Auftragsverarbeiter mit Informationspflicht und Widerspruchsrecht.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Genehmigungsprozess fuer Unter-Auftragsverarbeiter mit Informationspflicht und Widerspruchsrecht.", + "evidence": [ + "Sub-Prozessor-Liste", + "Genehmigungsprotokolle", + "Informationsschreiben" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 28(2)", + "Art. 28(4)" + ], + "iso27001": [ + "A.5.20" + ], + "bsi": [ + "OPS.2.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.VENDOR.04", + "title": "TOM-Nachweis vom Auftragsverarbeiter", + "description": "Regelmaessige Nachweise der technisch-organisatorischen Massnahmen vom Auftragsverarbeiter einfordern.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Regelmaessige Nachweise der technisch-organisatorischen Massnahmen vom Auftragsverarbeiter einfordern.", + "evidence": [ + "TOM-Dokumentation", + "Zertifikate", + "Audit-Berichte" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 28(3f)" + ], + "iso27001": [ + "A.5.20" + ], + "bsi": [ + "OPS.2.1" + ], + "sdm": [ + "Vertraulichkeit", + "Integritaet" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.VENDOR.05", + "title": "Lieferanten-Audit-Recht", + "description": "Vertragliches Audit-Recht beim Auftragsverarbeiter sicherstellen und regelmaessig ausueben.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Vertragliches Audit-Recht beim Auftragsverarbeiter sicherstellen und regelmaessig ausueben.", + "evidence": [ + "Audit-Klausel im AVV", + "Audit-Berichte", + "Massnahmenplaene" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 28(3h)" + ], + "iso27001": [ + "A.5.22" + ], + "bsi": [ + "OPS.2.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.VENDOR.06", + "title": "Risikobewertung Auftragsverarbeiter", + "description": "Auftragsverarbeiter nach Risiko klassifizieren und Prueftiefe entsprechend anpassen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Auftragsverarbeiter nach Risiko klassifizieren und Prueftiefe entsprechend anpassen.", + "evidence": [ + "Risikobewertungsmatrix", + "Klassifizierungsergebnisse", + "Pruefplaene" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 24", + "Art. 28" + ], + "iso27001": [ + "A.5.19" + ], + "bsi": [ + "OPS.2.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.VENDOR.07", + "title": "SLA-Monitoring Auftragsverarbeiter", + "description": "Laufende Ueberwachung der Service-Level-Agreements insbesondere Verfuegbarkeit und Reaktionszeiten.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Laufende Ueberwachung der Service-Level-Agreements insbesondere Verfuegbarkeit und Reaktionszeiten.", + "evidence": [ + "SLA-Reports", + "Eskalationsprotokolle", + "Performance-Dashboard" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 28(3)" + ], + "iso27001": [ + "A.5.22" + ], + "bsi": [ + "OPS.2.1" + ], + "sdm": [ + "Verfuegbarkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "MEDIUM", + "complexity": "LOW" + }, + { + "id": "TOM.VENDOR.08", + "title": "Verstaerkte Pruefung bei Drittlandtransfer", + "description": "Erhoehte Due-Diligence fuer Auftragsverarbeiter in Drittlaendern inklusive Transfer Impact Assessment.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Erhoehte Due-Diligence fuer Auftragsverarbeiter in Drittlaendern inklusive Transfer Impact Assessment.", + "evidence": [ + "TIA-Dokument", + "Supplementary Measures", + "SCC-Vertrag" + ], + "applies_if": { + "field": "third_country_transfer", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 28", + "Art. 44-49" + ], + "iso27001": [ + "A.5.19" + ], + "bsi": [ + "OPS.2.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "HIGH" + }, + { + "id": "TOM.VENDOR.09", + "title": "Exit-Strategie Auftragsverarbeiter", + "description": "Fuer jeden kritischen Auftragsverarbeiter eine Exit-Strategie mit Datenmigration und Loeschung planen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Fuer jeden kritischen Auftragsverarbeiter eine Exit-Strategie mit Datenmigration und Loeschung planen.", + "evidence": [ + "Exit-Plan", + "Datenmigrations-Konzept", + "Loeschbestaetigung-Template" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 28(3g)" + ], + "iso27001": [ + "A.5.20" + ], + "bsi": [ + "OPS.2.1" + ], + "sdm": [ + "Verfuegbarkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "MEDIUM", + "complexity": "MEDIUM" + }, + { + "id": "TOM.VENDOR.10", + "title": "Vorfallmeldung durch Auftragsverarbeiter", + "description": "Vertragliche Pflicht zur unverzueglichen Meldung von Datenschutzvorfaellen durch den Auftragsverarbeiter.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Vertragliche Pflicht zur unverzueglichen Meldung von Datenschutzvorfaellen durch den Auftragsverarbeiter.", + "evidence": [ + "AVV-Vorfallklausel", + "Meldeprozess", + "Kontaktdaten" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 28(3f)", + "Art. 33" + ], + "iso27001": [ + "A.5.24" + ], + "bsi": [ + "DER.2.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "ANNUAL", + "priority": "CRITICAL", + "complexity": "LOW" + }, + { + "id": "TOM.VENDOR.11", + "title": "Auftragsverarbeiter-Register", + "description": "Zentrales Verzeichnis aller Auftragsverarbeiter mit Zweck, Datenkategorien und Standort.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Zentrales Verzeichnis aller Auftragsverarbeiter mit Zweck, Datenkategorien und Standort.", + "evidence": [ + "AV-Register", + "Klassifizierung", + "Ablaufdaten" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 30(2)" + ], + "iso27001": [ + "A.5.9" + ], + "bsi": [ + "OPS.2.1" + ], + "sdm": [ + "Transparenz" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.VENDOR.12", + "title": "Cloud-Service-Provider-Compliance", + "description": "Besondere Datenschutzanforderungen an Cloud-Provider: Datenstandort, Verschluesselung, Zugriffskontrolle.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Besondere Datenschutzanforderungen an Cloud-Provider: Datenstandort, Verschluesselung, Zugriffskontrolle.", + "evidence": [ + "Cloud-Security-Checkliste", + "Zertifikate (SOC2, ISO 27001)", + "Konfigurationsnachweise" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 28", + "Art. 32" + ], + "iso27001": [ + "A.5.23" + ], + "bsi": [ + "OPS.2.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.VENDOR.13", + "title": "Regelmaessige AV-Vertragspruefung", + "description": "Bestehende AVV regelmaessig auf Aktualitaet pruefen und an geaenderte Verarbeitungen anpassen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Bestehende AVV regelmaessig auf Aktualitaet pruefen und an geaenderte Verarbeitungen anpassen.", + "evidence": [ + "Review-Protokolle", + "Aenderungsnachtraege", + "Versionierung" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 28" + ], + "iso27001": [ + "A.5.20" + ], + "bsi": [ + "OPS.2.1" + ], + "sdm": [ + "Zweckbindung" + ] + }, + "review_frequency": "ANNUAL", + "priority": "MEDIUM", + "complexity": "LOW" + }, + { + "id": "TOM.VENDOR.14", + "title": "Auftragsverarbeiter-Monitoring bei Kinderdaten", + "description": "Verstaerkte Ueberwachung von Auftragsverarbeitern die Daten von Minderjaehrigen verarbeiten.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Verstaerkte Ueberwachung von Auftragsverarbeitern die Daten von Minderjaehrigen verarbeiten.", + "evidence": [ + "Sonder-Pruefplan", + "Erhoehte Audit-Frequenz", + "Dokumentation" + ], + "applies_if": { + "field": "vulnerable_persons", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 8", + "Art. 28" + ], + "iso27001": [ + "A.5.22" + ], + "bsi": [ + "OPS.2.1" + ], + "sdm": [ + "Vertraulichkeit" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "CRITICAL", + "complexity": "HIGH" + }, + { + "id": "TOM.VENDOR.15", + "title": "Joint-Controller-Vereinbarung", + "description": "Bei gemeinsamer Verantwortlichkeit transparente Vereinbarung gemaess Art. 26 DSGVO abschliessen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Bei gemeinsamer Verantwortlichkeit transparente Vereinbarung gemaess Art. 26 DSGVO abschliessen.", + "evidence": [ + "Art.-26-Vereinbarung", + "Aufgabenverteilung", + "Betroffenen-Kontaktinfo" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 26" + ], + "iso27001": [ + "A.5.20" + ], + "bsi": [ + "OPS.2.1" + ], + "sdm": [ + "Transparenz", + "Zweckbindung" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + } + ] + }, + { + "id": "DATA", + "name": "Data Lifecycle", + "objective": "Personenbezogene Daten ueber den gesamten Lebenszyklus datenschutzkonform verwalten", + "controls": [ + { + "id": "TOM.DATA.01", + "title": "Datenminimierung als Designprinzip", + "description": "Nur fuer den definierten Zweck erforderliche personenbezogene Daten erheben und verarbeiten.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Nur fuer den definierten Zweck erforderliche personenbezogene Daten erheben und verarbeiten.", + "evidence": [ + "Dateninventar", + "Zweckbeschreibungen", + "Minimierungsanalyse" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 5(1c)", + "Art. 25(2)" + ], + "iso27001": [ + "A.5.12" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Datenminimierung" + ] + }, + "review_frequency": "ANNUAL", + "priority": "CRITICAL", + "complexity": "LOW" + }, + { + "id": "TOM.DATA.02", + "title": "Loeschkonzept und Aufbewahrungsfristen", + "description": "Dokumentiertes Loeschkonzept mit Fristen je Datenkategorie, Rechtsgrundlagen und Automatisierung.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Dokumentiertes Loeschkonzept mit Fristen je Datenkategorie, Rechtsgrundlagen und Automatisierung.", + "evidence": [ + "Loeschkonzept", + "Fristenkatalog", + "Automatisierungsnachweis" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 5(1e)", + "Art. 17" + ], + "iso27001": [ + "A.8.10" + ], + "bsi": [ + "CON.6" + ], + "sdm": [ + "Speicherbegrenzung" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.DATA.03", + "title": "Automatisierte Datenloeschung", + "description": "Technische Umsetzung der automatisierten Loeschung nach Fristablauf mit Protokollierung.", + "type": "TECHNICAL", + "implementation_guidance": "Technische Umsetzung der automatisierten Loeschung nach Fristablauf mit Protokollierung.", + "evidence": [ + "Loeschjob-Konfiguration", + "Ausfuehrungsprotokolle", + "Ausnahmeliste" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 5(1e)", + "Art. 17" + ], + "iso27001": [ + "A.8.10" + ], + "bsi": [ + "CON.6" + ], + "sdm": [ + "Speicherbegrenzung" + ] + }, + "review_frequency": "QUARTERLY", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.DATA.04", + "title": "Betroffenenrechte-Prozess (DSR)", + "description": "Standardisierten Prozess fuer Auskunft, Berichtigung, Loeschung, Einschraenkung und Datenportabilitaet.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Standardisierten Prozess fuer Auskunft, Berichtigung, Loeschung, Einschraenkung und Datenportabilitaet.", + "evidence": [ + "DSR-Prozessbeschreibung", + "Formulare", + "SLA-Definition", + "Protokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 15-22" + ], + "iso27001": [ + "A.5.34" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Intervenierbarkeit", + "Transparenz" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.DATA.05", + "title": "Datenportabilitaet (Art. 20)", + "description": "Export personenbezogener Daten in strukturiertem, gaengigem und maschinenlesbarem Format ermoeglichen.", + "type": "TECHNICAL", + "implementation_guidance": "Export personenbezogener Daten in strukturiertem, gaengigem und maschinenlesbarem Format ermoeglichen.", + "evidence": [ + "Export-Funktion", + "Formatdokumentation", + "Test-Exports" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 20" + ], + "iso27001": [ + "A.5.34" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Intervenierbarkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.DATA.06", + "title": "Zweckbindungs-Kontrolle", + "description": "Sicherstellen dass personenbezogene Daten nicht ueber den definierten Zweck hinaus verarbeitet werden.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Sicherstellen dass personenbezogene Daten nicht ueber den definierten Zweck hinaus verarbeitet werden.", + "evidence": [ + "Zweckbeschreibungen im VVT", + "Zugriffsbeschraenkungen", + "Audit-Ergebnisse" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 5(1b)" + ], + "iso27001": [ + "A.5.12" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Zweckbindung", + "Nichtverkettung" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.DATA.07", + "title": "Speicherbegrenzungs-Review", + "description": "Regelmaessige Ueberpruefung ob gespeicherte personenbezogene Daten noch fuer den Zweck erforderlich sind.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Regelmaessige Ueberpruefung ob gespeicherte personenbezogene Daten noch fuer den Zweck erforderlich sind.", + "evidence": [ + "Review-Protokolle", + "Loeschempfehlungen", + "Umsetzungsnachweis" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 5(1e)" + ], + "iso27001": [ + "A.8.10" + ], + "bsi": [ + "CON.6" + ], + "sdm": [ + "Speicherbegrenzung" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "HIGH", + "complexity": "LOW" + }, + { + "id": "TOM.DATA.08", + "title": "Richtigkeit der Daten sicherstellen", + "description": "Prozesse zur Sicherstellung der Datenrichtigkeit: Validierung, Aktualisierung, Berichtigungsmechanismen.", + "type": "TECHNICAL", + "implementation_guidance": "Prozesse zur Sicherstellung der Datenrichtigkeit: Validierung, Aktualisierung, Berichtigungsmechanismen.", + "evidence": [ + "Validierungsregeln", + "Aktualisierungsprozess", + "Berichtigungsprotokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "BASELINE", + "mappings": { + "gdpr": [ + "Art. 5(1d)", + "Art. 16" + ], + "iso27001": [ + "A.5.33" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Richtigkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.DATA.09", + "title": "Pseudonymisierung", + "description": "Personenbezogene Daten wo moeglich pseudonymisieren um das Risiko bei unbefugtem Zugriff zu minimieren.", + "type": "TECHNICAL", + "implementation_guidance": "Personenbezogene Daten wo moeglich pseudonymisieren um das Risiko bei unbefugtem Zugriff zu minimieren.", + "evidence": [ + "Pseudonymisierungskonzept", + "Zuordnungstabellen-Schutz", + "Anwendungsbereiche" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 25(1)", + "Art. 32(1a)" + ], + "iso27001": [ + "A.8.11" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Datenminimierung", + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.DATA.10", + "title": "Anonymisierung fuer Statistik/Forschung", + "description": "Wirksame Anonymisierung fuer statistische Auswertungen und Forschungszwecke sicherstellen.", + "type": "TECHNICAL", + "implementation_guidance": "Wirksame Anonymisierung fuer statistische Auswertungen und Forschungszwecke sicherstellen.", + "evidence": [ + "Anonymisierungsverfahren", + "Re-Identifikations-Risikobewertung", + "Freigabeprotokoll" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "ErwGr. 26", + "Art. 89" + ], + "iso27001": [ + "A.8.11" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Datenminimierung" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "HIGH" + }, + { + "id": "TOM.DATA.11", + "title": "Einschraenkung der Verarbeitung (Art. 18)", + "description": "Technische Moeglichkeit zur Markierung und Einschraenkung der Verarbeitung bei Betroffenenantraegen.", + "type": "TECHNICAL", + "implementation_guidance": "Technische Moeglichkeit zur Markierung und Einschraenkung der Verarbeitung bei Betroffenenantraegen.", + "evidence": [ + "Markierungsfunktion", + "Prozessbeschreibung", + "Test-Protokolle" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "ENHANCED", + "mappings": { + "gdpr": [ + "Art. 18" + ], + "iso27001": [ + "A.5.34" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Intervenierbarkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "MEDIUM", + "complexity": "MEDIUM" + }, + { + "id": "TOM.DATA.12", + "title": "Erhoehter Schutz besonderer Kategorien", + "description": "Zusaetzliche organisatorische Massnahmen fuer die Verarbeitung von Art. 9/10 Daten.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Zusaetzliche organisatorische Massnahmen fuer die Verarbeitung von Art. 9/10 Daten.", + "evidence": [ + "Sonderkonzept", + "Zugriffsrichtlinien", + "DSFA-Ergebnisse" + ], + "applies_if": { + "field": "special_categories", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 9", + "Art. 10" + ], + "iso27001": [ + "A.5.12" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Vertraulichkeit", + "Zweckbindung" + ] + }, + "review_frequency": "SEMI_ANNUAL", + "priority": "CRITICAL", + "complexity": "MEDIUM" + }, + { + "id": "TOM.DATA.13", + "title": "Legal-Hold-Prozess", + "description": "Prozess zum Anhalten geplanter Loeschungen bei Rechtsstreitigkeiten oder Behoerdenanfragen.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Prozess zum Anhalten geplanter Loeschungen bei Rechtsstreitigkeiten oder Behoerdenanfragen.", + "evidence": [ + "Legal-Hold-Policy", + "Ausloeserkriterien", + "Aufhebungsprozess" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 17(3)" + ], + "iso27001": [ + "A.5.34" + ], + "bsi": [ + "CON.6" + ], + "sdm": [ + "Speicherbegrenzung" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.DATA.14", + "title": "Datenfluss-Mapping", + "description": "Visualisierung aller Datenfluesse innerhalb der Organisation und zu externen Empfaengern.", + "type": "ORGANIZATIONAL", + "implementation_guidance": "Visualisierung aller Datenfluesse innerhalb der Organisation und zu externen Empfaengern.", + "evidence": [ + "Datenflussdiagramme", + "System-Koppelungen", + "Empfaenger-Uebersicht" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "HIGH_RISK", + "mappings": { + "gdpr": [ + "Art. 30", + "Art. 35" + ], + "iso27001": [ + "A.5.9" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Transparenz", + "Nichtverkettung" + ] + }, + "review_frequency": "ANNUAL", + "priority": "HIGH", + "complexity": "MEDIUM" + }, + { + "id": "TOM.DATA.15", + "title": "Privacy-Enhancing Technologies (PET)", + "description": "Einsatz fortschrittlicher PETs (Differential Privacy, Secure Computation, Synthetic Data) wo angemessen.", + "type": "TECHNICAL", + "implementation_guidance": "Einsatz fortschrittlicher PETs (Differential Privacy, Secure Computation, Synthetic Data) wo angemessen.", + "evidence": [ + "PET-Evaluierung", + "Einsatzbereiche", + "Wirksamkeitsnachweis" + ], + "applies_if": { + "field": "always", + "operator": "EQUALS", + "value": true + }, + "risk_tier": "CRITICAL", + "mappings": { + "gdpr": [ + "Art. 25(1)", + "Art. 32" + ], + "iso27001": [ + "A.8.11" + ], + "bsi": [ + "CON.1" + ], + "sdm": [ + "Datenminimierung", + "Vertraulichkeit" + ] + }, + "review_frequency": "ANNUAL", + "priority": "MEDIUM", + "complexity": "HIGH" + } + ] + } + ] +} \ No newline at end of file