Files
breakpilot-compliance/admin-compliance/lib/sdk/dsfa/prohibited-ai-practices.ts
Benjamin Boenisch 4435e7ea0a 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>
2026-02-11 23:47:28 +01:00

387 lines
15 KiB
TypeScript

/**
* 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
}