Initial commit: breakpilot-compliance - Compliance SDK Platform
Services: Admin-Compliance, Backend-Compliance, AI-Compliance-SDK, Consent-SDK, Developer-Portal, PCA-Platform, DSMS Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
386
admin-compliance/lib/sdk/dsfa/prohibited-ai-practices.ts
Normal file
386
admin-compliance/lib/sdk/dsfa/prohibited-ai-practices.ts
Normal file
@@ -0,0 +1,386 @@
|
||||
/**
|
||||
* Verbotene KI-Anwendungsfaelle nach Art. 5 EU AI Act (2024/1689)
|
||||
*
|
||||
* Seit Februar 2025 sind diese Praktiken in der EU ausdruecklich verboten.
|
||||
* Dieses Modul stellt einen strukturierten Katalog bereit, der sowohl
|
||||
* im SDK-Frontend als auch via RAG fuer den Compliance Advisor nutzbar ist.
|
||||
*
|
||||
* Quellen:
|
||||
* - EU AI Act Art. 5 (Verbotene Praktiken), Verordnung (EU) 2024/1689
|
||||
* - LG Muenchen I, 11.11.2025 (42 O 14139/24) — amtliches Werk nach §5 UrhG
|
||||
*/
|
||||
|
||||
// =============================================================================
|
||||
// Types
|
||||
// =============================================================================
|
||||
|
||||
export type ProhibitionSeverity = 'absolute' | 'conditional'
|
||||
|
||||
export type ProhibitionCategory =
|
||||
| 'manipulation'
|
||||
| 'vulnerability_exploitation'
|
||||
| 'social_scoring'
|
||||
| 'biometric_surveillance'
|
||||
| 'predictive_policing'
|
||||
| 'emotion_recognition'
|
||||
| 'biometric_categorization'
|
||||
| 'copyright_violation'
|
||||
|
||||
export interface ProhibitedAIPractice {
|
||||
id: string
|
||||
title: string
|
||||
titleEN: string
|
||||
category: ProhibitionCategory
|
||||
severity: ProhibitionSeverity
|
||||
legalBasis: string
|
||||
description: string
|
||||
examples: string[]
|
||||
exceptions?: string[]
|
||||
/** Stichworte fuer automatische Erkennung */
|
||||
detectionKeywords: string[]
|
||||
/** Relevante Gerichtsentscheidungen */
|
||||
caseLaw?: CaseLawReference[]
|
||||
}
|
||||
|
||||
export interface CaseLawReference {
|
||||
id: string
|
||||
court: string
|
||||
date: string
|
||||
reference: string
|
||||
title: string
|
||||
summary: string
|
||||
relevance: string
|
||||
sourceUrl?: string
|
||||
/** Amtliche Werke nach §5 UrhG — keine Lizenzpflicht */
|
||||
licenseNote: string
|
||||
}
|
||||
|
||||
// =============================================================================
|
||||
// Verbotskatalog Art. 5 AI Act
|
||||
// =============================================================================
|
||||
|
||||
export const PROHIBITED_AI_PRACTICES: ProhibitedAIPractice[] = [
|
||||
// --- Absolut verboten ---
|
||||
{
|
||||
id: 'VERBOT-01',
|
||||
title: 'Irrefuehrende Manipulation',
|
||||
titleEN: 'Subliminal Manipulation',
|
||||
category: 'manipulation',
|
||||
severity: 'absolute',
|
||||
legalBasis: 'Art. 5 Abs. 1 lit. a AI Act',
|
||||
description:
|
||||
'KI-Systeme, die durch unterschwellige Techniken oder absichtlich manipulative/taeuschende Methoden ' +
|
||||
'das Verhalten von Personen wesentlich beeinflussen und ihnen dadurch erheblichen Schaden zufuegen oder ' +
|
||||
'zufuegen koennen. Beispiel: Sprachgesteuertes Spielzeug, das Kinder zu gefaehrlichem Verhalten animiert.',
|
||||
examples: [
|
||||
'Sprachgesteuertes Spielzeug mit manipulativen Inhalten fuer Kinder',
|
||||
'Unterschwellige Audio-/Videobotschaften zur Verhaltenssteuerung',
|
||||
'Dark Patterns in KI-Interfaces, die zu schaedlichen Entscheidungen fuehren',
|
||||
'KI-generierte Deepfakes zur politischen Manipulation',
|
||||
],
|
||||
detectionKeywords: [
|
||||
'manipulation', 'unterschwellig', 'subliminal', 'taeuschung', 'dark pattern',
|
||||
'verhaltenssteuerung', 'beeinflussung', 'deepfake', 'desinformation',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'VERBOT-02',
|
||||
title: 'Ausnutzung von Schwaechen',
|
||||
titleEN: 'Exploitation of Vulnerabilities',
|
||||
category: 'vulnerability_exploitation',
|
||||
severity: 'absolute',
|
||||
legalBasis: 'Art. 5 Abs. 1 lit. b AI Act',
|
||||
description:
|
||||
'KI-Systeme, die gezielt die Verletzlichkeit bestimmter Personen oder Gruppen ausnutzen — ' +
|
||||
'etwa aufgrund von Alter, Behinderung, sozialer oder wirtschaftlicher Situation — ' +
|
||||
'um deren Verhalten wesentlich zu beeinflussen und ihnen dadurch erheblichen Schaden zuzufuegen.',
|
||||
examples: [
|
||||
'KI-Werbung, die gezielt aeltere oder kognitiv eingeschraenkte Menschen zu Kaeufen verleitet',
|
||||
'Sucht-foerdernde Algorithmen, die psychische Vulnerabilitaet ausnutzen',
|
||||
'Finanzprodukt-Empfehlungen, die wirtschaftliche Notlagen ausnutzen',
|
||||
'Gamification-KI, die Kinder zur uebermassigen Nutzung verleitet',
|
||||
],
|
||||
detectionKeywords: [
|
||||
'schwaeche', 'vulnerabel', 'alter', 'behinderung', 'kinder', 'sucht',
|
||||
'ausnutz', 'manipulation minderjahrig', 'schutzbeduerft',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'VERBOT-03',
|
||||
title: 'Social Scoring',
|
||||
titleEN: 'Social Scoring',
|
||||
category: 'social_scoring',
|
||||
severity: 'absolute',
|
||||
legalBasis: 'Art. 5 Abs. 1 lit. c AI Act',
|
||||
description:
|
||||
'KI-Systeme zur Bewertung oder Klassifizierung natuerlicher Personen auf Grundlage ihres Sozialverhaltens ' +
|
||||
'oder persoenlicher Eigenschaften, wenn dies zu einer ungerechtfertigten oder unverhaeltnismaessigen ' +
|
||||
'Benachteiligung fuehrt — insbesondere in Kontexten, die keinen Bezug zur urspruenglichen Datenerhebung haben.',
|
||||
examples: [
|
||||
'Bewertungssysteme auf Basis von Social-Media-Aktivitaeten',
|
||||
'Scoring anhand von Internet-Surfverhalten fuer Kreditwuerdigkeit',
|
||||
'Verhaltensbasierte Bewertung von Buergern durch Behoerden',
|
||||
'Zugangssteuerung zu oeffentlichen Leistungen basierend auf Verhaltensdaten',
|
||||
],
|
||||
detectionKeywords: [
|
||||
'social scoring', 'sozialkredit', 'verhaltensbewertung', 'buergerscore',
|
||||
'personenbewertung', 'social media scoring', 'reputation score',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'VERBOT-04',
|
||||
title: 'Ungezielte Gesichtsdatensammlung',
|
||||
titleEN: 'Untargeted Facial Image Scraping',
|
||||
category: 'biometric_surveillance',
|
||||
severity: 'absolute',
|
||||
legalBasis: 'Art. 5 Abs. 1 lit. e AI Act',
|
||||
description:
|
||||
'KI-Systeme, die ungezielt Gesichtsbilder aus dem Internet oder von Ueberwachungskameras ' +
|
||||
'sammeln, um biometrische Datenbanken aufzubauen. Prominentes Beispiel: Clearview AI.',
|
||||
examples: [
|
||||
'Scraping von Gesichtsbildern aus sozialen Netzwerken (Clearview AI)',
|
||||
'Aufbau biometrischer Datenbanken aus Ueberwachungskameraaufnahmen',
|
||||
'Sammlung von Portraetfotos ohne Wissen der Betroffenen',
|
||||
'Web-Crawling zur Erstellung von Gesichtserkennungs-Trainingsdaten',
|
||||
],
|
||||
detectionKeywords: [
|
||||
'gesichtserkennung', 'facial recognition', 'biometrisch', 'clearview',
|
||||
'gesichtsdatenbank', 'scraping gesicht', 'face scraping',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'VERBOT-05',
|
||||
title: 'Biometrische Echtzeit-Ueberwachung',
|
||||
titleEN: 'Real-time Biometric Surveillance in Public Spaces',
|
||||
category: 'biometric_surveillance',
|
||||
severity: 'absolute',
|
||||
legalBasis: 'Art. 5 Abs. 1 lit. h AI Act',
|
||||
description:
|
||||
'Biometrische Echtzeit-Fernidentifizierung im oeffentlich zugaenglichen Raum zu Strafverfolgungszwecken ' +
|
||||
'ist grundsaetzlich verboten. Ausnahmen bestehen nur bei konkretem, begruendetem Tatverdacht unter ' +
|
||||
'strikten Voraussetzungen.',
|
||||
examples: [
|
||||
'Live-Gesichtserkennung durch Polizei an oeffentlichen Plaetzen',
|
||||
'Echtzeit-Identifikation an Bahnhoefen oder Flughaefen ohne konkreten Anlass',
|
||||
'Permanente biometrische Ueberwachung in Fussballstadien',
|
||||
],
|
||||
exceptions: [
|
||||
'Gezielte Suche nach Opfern von Entfuehrung oder Menschenhandel',
|
||||
'Verhinderung einer konkreten, erheblichen Bedrohung fuer Leib und Leben',
|
||||
'Identifizierung von Verdaechtigen schwerer Straftaten (unter richterlicher Genehmigung)',
|
||||
],
|
||||
detectionKeywords: [
|
||||
'echtzeit', 'live', 'ueberwachung', 'surveillance', 'oeffentlicher raum',
|
||||
'fernidentifizierung', 'real-time', 'biometric identification',
|
||||
],
|
||||
},
|
||||
|
||||
// --- Bedingt / teilweise verboten ---
|
||||
{
|
||||
id: 'VERBOT-06',
|
||||
title: 'Predictive Policing auf Personenprofilen',
|
||||
titleEN: 'Profile-based Predictive Policing',
|
||||
category: 'predictive_policing',
|
||||
severity: 'conditional',
|
||||
legalBasis: 'Art. 5 Abs. 1 lit. d AI Act',
|
||||
description:
|
||||
'KI-Systeme zur Erstellung von Risikobewertungen natuerlicher Personen zur Vorhersage von Straftaten ' +
|
||||
'allein auf Grundlage von Profiling oder Persoenlichkeitsmerkmalen. Ortsbezogene Analysen ' +
|
||||
'(Hotspot-Policing) sind hiervon nicht erfasst.',
|
||||
examples: [
|
||||
'Persoenlichkeitsprofilbasierte Straftaten-Vorhersage',
|
||||
'KI-Score zur Bewertung der Rueckfallgefahr ohne konkreten Anlass',
|
||||
'Vorausschauende Ueberwachung auf Basis ethnischer Profile',
|
||||
],
|
||||
exceptions: [
|
||||
'Ortsbezogene Kriminalitaetsanalysen (Hotspot-Policing) ohne Personenbezug',
|
||||
'Strafverfolgung mit konkretem Anfangsverdacht und richterlicher Anordnung',
|
||||
],
|
||||
detectionKeywords: [
|
||||
'predictive policing', 'vorhersage straftat', 'risikobewertung person',
|
||||
'profiling polizei', 'rueckfallprognose', 'kriminalitaetsprognose',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'VERBOT-07',
|
||||
title: 'Biometrische Kategorisierung sensibler Merkmale',
|
||||
titleEN: 'Biometric Categorization of Sensitive Attributes',
|
||||
category: 'biometric_categorization',
|
||||
severity: 'conditional',
|
||||
legalBasis: 'Art. 5 Abs. 1 lit. g AI Act',
|
||||
description:
|
||||
'KI-Systeme zur biometrischen Kategorisierung, die Rueckschluesse auf Rasse, politische Meinungen, ' +
|
||||
'Gewerkschaftszugehoerigkeit, religioese oder weltanschauliche Ueberzeugungen, Sexualleben oder ' +
|
||||
'sexuelle Orientierung ziehen. Ausnahme: Strafverfolgung unter engen Voraussetzungen.',
|
||||
examples: [
|
||||
'Gesichtsanalyse zur Erkennung ethnischer Zugehoerigkeit',
|
||||
'Stimmanalyse zur Ableitung sexueller Orientierung',
|
||||
'Gangerkennung zur Kategorisierung nach Religionszugehoerigkeit',
|
||||
],
|
||||
exceptions: [
|
||||
'Strafverfolgung unter eng definierten gesetzlichen Voraussetzungen',
|
||||
'Kennzeichnung oder Filterung rechtmaessig erworbener biometrischer Datensaetze',
|
||||
],
|
||||
detectionKeywords: [
|
||||
'biometrisch', 'rasse', 'ethni', 'religion', 'sexuell', 'kategorisierung',
|
||||
'gesichtsanalyse', 'stimmanalyse', 'gang erkennung',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'VERBOT-08',
|
||||
title: 'Emotionserkennung am Arbeitsplatz und in Schulen',
|
||||
titleEN: 'Emotion Recognition in Workplaces and Schools',
|
||||
category: 'emotion_recognition',
|
||||
severity: 'conditional',
|
||||
legalBasis: 'Art. 5 Abs. 1 lit. f AI Act',
|
||||
description:
|
||||
'KI-Systeme zur fortlaufenden Erkennung von Emotionen von Beschaeftigten am Arbeitsplatz oder ' +
|
||||
'von Lernenden in Bildungseinrichtungen. Erlaubt nur mit medizinischem oder ' +
|
||||
'sicherheitstechnischem Rechtfertigungsgrund.',
|
||||
examples: [
|
||||
'Webcam-basierte Aufmerksamkeitsueberwachung im Unterricht',
|
||||
'Emotionsanalyse von Mitarbeitern waehrend Videokonferenzen',
|
||||
'Stimmungsanalyse von Schuelern ueber Mikrofone',
|
||||
'Stress-Detection bei Mitarbeitern ohne deren Einwilligung',
|
||||
],
|
||||
exceptions: [
|
||||
'Medizinische Zwecke (z.B. Erkennung von Schmerzpatienten in Pflege)',
|
||||
'Sicherheitstechnische Gruende (z.B. Muedigkeitserkennung bei Piloten/Fahrern)',
|
||||
],
|
||||
detectionKeywords: [
|
||||
'emotionserkennung', 'emotion recognition', 'aufmerksamkeit', 'stimmungsanalyse',
|
||||
'arbeitsplatz', 'schule', 'unterricht', 'webcam ueberwachung', 'stress detection',
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
// =============================================================================
|
||||
// Relevante Rechtsprechung
|
||||
// =============================================================================
|
||||
|
||||
export const AI_CASE_LAW: CaseLawReference[] = [
|
||||
{
|
||||
id: 'CASE-01',
|
||||
court: 'LG Muenchen I',
|
||||
date: '2025-11-11',
|
||||
reference: '42 O 14139/24',
|
||||
title: 'Urheberrecht bei KI-generierten Inhalten (Memorisierung)',
|
||||
summary:
|
||||
'Das Gericht stellte fest, dass ein KI-System urheberrechtlich geschuetzte Songtexte ' +
|
||||
'inhaltsgleich reproduzierte, da diese im Modell „memorisiert" waren. Die KI-Modelle ' +
|
||||
'stellen daher Vervielfaeltigungsstuecke i.S.d. Art. 2 InfoSoc-RL, §16 Abs. 1,2 UrhG dar.',
|
||||
relevance:
|
||||
'Zeigt, dass der Einsatz von KI-Systemen, die urheberrechtlich geschuetzte Inhalte ' +
|
||||
'unautorisiert reproduzieren, urheberrechtlich unzulaessig ist. Relevant fuer alle ' +
|
||||
'KI-Module, die auf urheberrechtlich geschuetzten Trainingsdaten basieren.',
|
||||
sourceUrl: 'https://www.gesetze-bayern.de/Content/Document/Y-300-Z-GRURRS-B-2025-N-30204',
|
||||
licenseNote: 'Amtliches Werk nach §5 UrhG — kein Urheberrechtsschutz, frei verwendbar im RAG.',
|
||||
},
|
||||
]
|
||||
|
||||
// =============================================================================
|
||||
// Kategorisierung
|
||||
// =============================================================================
|
||||
|
||||
export const PROHIBITION_CATEGORY_LABELS: Record<ProhibitionCategory, string> = {
|
||||
manipulation: 'Manipulation & Taeuschung',
|
||||
vulnerability_exploitation: 'Ausnutzung von Schwaechen',
|
||||
social_scoring: 'Social Scoring',
|
||||
biometric_surveillance: 'Biometrische Ueberwachung',
|
||||
predictive_policing: 'Predictive Policing',
|
||||
emotion_recognition: 'Emotionserkennung',
|
||||
biometric_categorization: 'Biometrische Kategorisierung',
|
||||
copyright_violation: 'Urheberrechtsverletzung',
|
||||
}
|
||||
|
||||
export const SEVERITY_LABELS: Record<ProhibitionSeverity, string> = {
|
||||
absolute: 'Absolut verboten',
|
||||
conditional: 'Bedingt verboten (Ausnahmen moeglich)',
|
||||
}
|
||||
|
||||
// =============================================================================
|
||||
// Erkennung / Helper Functions
|
||||
// =============================================================================
|
||||
|
||||
/**
|
||||
* Prueft, ob eine Beschreibung oder ein Name auf verbotene Praktiken hinweist.
|
||||
* Gibt alle potenziell zutreffenden Verbote zurueck, sortiert nach Relevanz.
|
||||
*/
|
||||
export function detectProhibitedPractices(
|
||||
description: string,
|
||||
name?: string
|
||||
): { practice: ProhibitedAIPractice; matchCount: number; matchedKeywords: string[] }[] {
|
||||
const searchText = `${name || ''} ${description}`.toLowerCase()
|
||||
|
||||
const results = PROHIBITED_AI_PRACTICES.map(practice => {
|
||||
const matchedKeywords = practice.detectionKeywords.filter(kw =>
|
||||
searchText.includes(kw.toLowerCase())
|
||||
)
|
||||
return {
|
||||
practice,
|
||||
matchCount: matchedKeywords.length,
|
||||
matchedKeywords,
|
||||
}
|
||||
}).filter(r => r.matchCount > 0)
|
||||
|
||||
// Absolut verbotene zuerst, dann nach matchCount
|
||||
results.sort((a, b) => {
|
||||
if (a.practice.severity !== b.practice.severity) {
|
||||
return a.practice.severity === 'absolute' ? -1 : 1
|
||||
}
|
||||
return b.matchCount - a.matchCount
|
||||
})
|
||||
|
||||
return results
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt alle absolut verbotenen Praktiken zurueck.
|
||||
*/
|
||||
export function getAbsoluteProhibitions(): ProhibitedAIPractice[] {
|
||||
return PROHIBITED_AI_PRACTICES.filter(p => p.severity === 'absolute')
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt alle bedingt verbotenen Praktiken zurueck.
|
||||
*/
|
||||
export function getConditionalProhibitions(): ProhibitedAIPractice[] {
|
||||
return PROHIBITED_AI_PRACTICES.filter(p => p.severity === 'conditional')
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft, ob ein KI-Anwendungsfall Urheberrechts-Risiken birgt.
|
||||
* Basierend auf LG Muenchen I Urteil.
|
||||
*/
|
||||
export function hasCopyrightRisk(trainingDataDescription?: string): boolean {
|
||||
if (!trainingDataDescription) return false
|
||||
const keywords = [
|
||||
'urheberrecht', 'copyright', 'lizenz', 'geschuetzt', 'songtext',
|
||||
'buch', 'artikel', 'literatur', 'musik', 'film', 'bild',
|
||||
'web scraping', 'internet', 'crawl',
|
||||
]
|
||||
const lower = trainingDataDescription.toLowerCase()
|
||||
return keywords.some(kw => lower.includes(kw))
|
||||
}
|
||||
|
||||
/**
|
||||
* Generiert einen formatierten Warnungstext fuer ein erkanntes Verbot.
|
||||
*/
|
||||
export function formatProhibitionWarning(practice: ProhibitedAIPractice): string {
|
||||
const severity = practice.severity === 'absolute'
|
||||
? 'ABSOLUT VERBOTEN'
|
||||
: 'BEDINGT VERBOTEN'
|
||||
|
||||
let text = `⚠ ${severity}: ${practice.title}\n`
|
||||
text += `Rechtsgrundlage: ${practice.legalBasis}\n\n`
|
||||
text += `${practice.description}\n`
|
||||
|
||||
if (practice.exceptions?.length) {
|
||||
text += `\nAusnahmen:\n`
|
||||
practice.exceptions.forEach(e => {
|
||||
text += `- ${e}\n`
|
||||
})
|
||||
}
|
||||
|
||||
return text
|
||||
}
|
||||
Reference in New Issue
Block a user