# Adversarial Test Suite — 30 tricky Cases die Controls/Agent herausfordern version: "1.0" purpose: "Testen ob Controls und Agent bei grenzwertigen Formulierungen korrekt entscheiden" tests: # A. Falsche Rechtsgrundlage (plausibel klingend) — 8 Cases - id: ADV-LIT-001 category: wrong_legal_basis input: "Wir verarbeiten Ihre Daten fuer Webanalyse auf Grundlage unseres berechtigten Interesses (Art. 6 Abs. 1 lit. f DSGVO)." context: "DSE-Abschnitt ueber Google Analytics" expected: finding: true finding_type: wrong_legal_basis correct_basis: "Art. 6 Abs. 1 lit. a (Einwilligung)" reason: "Analytics erfordert Einwilligung, nicht berechtigtes Interesse (EuGH C-673/17 Planet49)" difficulty: medium - id: ADV-LIT-002 category: wrong_legal_basis input: "Der Versand unseres Newsletters erfolgt auf Grundlage des Vertrages (Art. 6 Abs. 1 lit. b DSGVO)." context: "DSE-Abschnitt ueber Marketing" expected: finding: true finding_type: wrong_legal_basis correct_basis: "Art. 6 Abs. 1 lit. a (Einwilligung)" reason: "Newsletter ist kein Vertragsbestandteil, erfordert separate Einwilligung" difficulty: medium - id: ADV-LIT-003 category: wrong_legal_basis input: "Die Ueberwachung der Arbeitsleistung unserer Mitarbeiter erfolgt auf Grundlage unseres berechtigten Interesses." context: "Interne Datenschutzrichtlinie" expected: finding: true finding_type: wrong_legal_basis correct_basis: "Betriebsvereinbarung + Art. 88 DSGVO i.V.m. § 26 BDSG" reason: "Mitarbeiterueberwachung erfordert Betriebsvereinbarung (BAG Keylogger-Urteil)" difficulty: hard - id: ADV-LIT-004 category: wrong_legal_basis input: "Biometrische Zutrittskontrolle auf Basis von Art. 6 Abs. 1 lit. f DSGVO." context: "Sicherheitskonzept" expected: finding: true finding_type: wrong_legal_basis correct_basis: "Art. 9 Abs. 2 DSGVO (ausdrueckliche Einwilligung oder Arbeitsrecht)" reason: "Biometrische Daten = besondere Kategorie nach Art. 9, lit. f reicht nicht" difficulty: hard - id: ADV-LIT-005 category: wrong_legal_basis input: "Wir erstellen automatisierte Kreditentscheidungen auf Grundlage berechtigter Interessen." context: "DSE einer Bank" expected: finding: true finding_type: wrong_legal_basis correct_basis: "Art. 22 DSGVO (ausdrueckliche Einwilligung oder gesetzliche Erlaubnis)" reason: "Automatisierte Einzelentscheidungen erfordern Art. 22 Schutz (EuGH SCHUFA C-634/21)" difficulty: hard - id: ADV-LIT-006 category: wrong_legal_basis input: "Social Login ueber Google wird als Vertragsdurchfuehrung (lit. b) verarbeitet." context: "DSE mit Social Login" expected: finding: true finding_type: wrong_legal_basis correct_basis: "Art. 6 Abs. 1 lit. a (Einwilligung)" reason: "Social Login ist keine Vertragspflicht, Nutzer kann sich auch ohne Google anmelden" difficulty: medium - id: ADV-LIT-007 category: wrong_legal_basis input: "Personalisierte Werbung basiert auf unserem berechtigten Interesse an Direktmarketing." context: "DSE eines marktbeherrschenden Unternehmens" expected: finding: true finding_type: wrong_legal_basis correct_basis: "Art. 6 Abs. 1 lit. a (Einwilligung)" reason: "Marktbeherrschende Unternehmen koennen sich nicht auf lit. f fuer Werbung berufen (EuGH Meta C-252/21)" difficulty: hard - id: ADV-LIT-008 category: wrong_legal_basis input: "Die Einbindung von Facebook Pixel erfolgt zur Vertragserfuellung (Art. 6 Abs. 1 lit. b DSGVO)." context: "DSE eines Online-Shops" expected: finding: true finding_type: wrong_legal_basis correct_basis: "Art. 6 Abs. 1 lit. a (Einwilligung)" reason: "Facebook Pixel dient Tracking/Marketing, nicht der Vertragserfuellung" difficulty: easy # B. Dark Patterns (subtil) — 6 Cases - id: ADV-DP-001 category: dark_pattern input: accept_button: {text: "Alle akzeptieren", size: "16px", color: "#ffffff", background: "#0066cc", prominent: true} reject_button: {text: "Ablehnen", size: "10px", color: "#cccccc", background: "transparent", prominent: false} expected: finding: true finding_type: dark_pattern_visual_bias reason: "Ablehnen-Button ist kleiner, weniger sichtbar (OLG Koeln 6 U 58/21)" difficulty: easy - id: ADV-DP-002 category: dark_pattern input: accept_button: {text: "Alle akzeptieren", clicks_to_complete: 1} reject_option: {text: "Einstellungen verwalten", clicks_to_complete: 3, label: "Einstellungen"} expected: finding: true finding_type: dark_pattern_friction_asymmetry reason: "Ablehnen erfordert 3 Klicks, Akzeptieren nur 1 (CNIL Cookie-Banner)" difficulty: medium - id: ADV-DP-003 category: dark_pattern input: type: "cookie_wall" description: "Inhalt erst nach Cookie-Zustimmung sichtbar" expected: finding: true finding_type: dark_pattern_cookie_wall reason: "Cookie-Wall = keine freiwillige Einwilligung (EDPB Guidelines 05/2020)" difficulty: medium - id: ADV-DP-004 category: dark_pattern input: type: "prechecked_boxes" description: "Checkboxen fuer Marketing und Analytics sind vorausgefuellt" expected: finding: true finding_type: dark_pattern_prechecked reason: "Vorausgefuellte Checkboxen sind keine wirksame Einwilligung (BGH Planet49)" difficulty: easy - id: ADV-DP-005 category: dark_pattern input: type: "confirm_shaming" accept_text: "Ja, ich moechte sicher surfen" reject_text: "Nein, ich verzichte auf Sicherheit" expected: finding: true finding_type: dark_pattern_confirm_shaming reason: "Manipulative Formulierung beeinflusst Entscheidung" difficulty: medium - id: ADV-DP-006 category: dark_pattern input: type: "hidden_reject" description: "Ablehnen-Link ist 3px gross, Farbe #f0f0f0 auf weissem Hintergrund" expected: finding: true finding_type: dark_pattern_hidden_option reason: "Ablehnen-Option praktisch unsichtbar (OLG Koeln)" difficulty: easy # C. Fast-vollstaendige Dokumente — 6 Cases - id: ADV-DOC-001 category: incomplete_document input: "Impressum: Max Mustermann GmbH, Musterstr. 1, 10115 Berlin, info@example.com, HRB 12345" expected: finding: true finding_type: missing_field missing: "USt-ID" reason: "§ 5 Abs. 1 Nr. 6 DDG: USt-IdNr. oder Wirtschafts-ID Pflicht" difficulty: easy - id: ADV-DOC-002 category: incomplete_document input: "Datenschutzerklaerung mit Zwecken, Rechtsgrundlagen, Empfaengern, Betroffenenrechten — aber ohne Speicherdauer" expected: finding: true finding_type: missing_field missing: "Speicherdauer" reason: "Art. 13 Abs. 2 lit. a DSGVO: Dauer der Speicherung oder Kriterien" difficulty: medium - id: ADV-DOC-003 category: incomplete_document input: "DSE ohne Kontaktdaten des Datenschutzbeauftragten" expected: finding: true finding_type: missing_field missing: "DSB-Kontakt" reason: "Art. 13 Abs. 1 lit. b DSGVO: Kontaktdaten des DSB" difficulty: easy - id: ADV-DOC-004 category: incomplete_document input: "Widerrufsbelehrung mit 14-Tage-Frist, Muster-Formular, aber Fristbeginn fehlt" expected: finding: true finding_type: missing_field missing: "Fristbeginn" reason: "Anlage 1 zu Art. 246a § 1 EGBGB: Fristbeginn muss angegeben werden" difficulty: medium - id: ADV-DOC-005 category: incomplete_document input: "AGB eines Online-Shops ohne Angabe des Gerichtsstands" expected: finding: false reason: "Gerichtsstand in AGB ist bei B2C nicht erforderlich (sogar oft unzulaessig)" difficulty: hard - id: ADV-DOC-006 category: incomplete_document input: "Cookie-Policy listet Google Analytics und Facebook Pixel auf, aber nicht das CMP-Cookie selbst" expected: finding: true finding_type: missing_field missing: "CMP-eigene Cookies" reason: "Auch technisch notwendige Cookies muessen in der Cookie-Policy stehen" difficulty: hard # D. Semantisch aehnlich aber verschieden — 5 Cases - id: ADV-SEM-001 category: similar_but_different control_a: "MFA fuer privilegierte Admin-Accounts aktivieren" control_b: "MFA fuer alle Endnutzer-Accounts aktivieren" expected: is_duplicate: false reason: "Verschiedene Scopes (Admin vs. Endnutzer) = verschiedene Controls" difficulty: medium - id: ADV-SEM-002 category: similar_but_different control_a: "Daten nach Vertragsende loeschen" control_b: "Daten nach Ablauf der gesetzlichen Aufbewahrungsfrist loeschen" expected: is_duplicate: false reason: "Verschiedene Trigger (Vertragsende vs. Aufbewahrungsfrist)" difficulty: hard - id: ADV-SEM-003 category: similar_but_different control_a: "Rate Limiting fuer oeffentliche API-Endpunkte" control_b: "Rate Limiting fuer Login-Endpunkte" expected: is_duplicate: false reason: "Verschiedene Asset-Scopes (API vs. Login)" difficulty: medium - id: ADV-SEM-004 category: similar_but_different control_a: "Verschluesselung personenbezogener Daten at rest" control_b: "Verschluesselung personenbezogener Daten in transit" expected: is_duplicate: false reason: "Verschiedene Phasen (Speicherung vs. Uebertragung)" difficulty: easy - id: ADV-SEM-005 category: similar_but_different control_a: "Incident Response Plan erstellen" control_b: "Business Continuity Plan erstellen" expected: is_duplicate: false reason: "IRP = Sicherheitsvorfaelle, BCP = Geschaeftskontinuitaet (verschiedene Ziele)" difficulty: medium # E. Semantisch verschieden aber gleich klingend — 5 Cases - id: ADV-HOM-001 category: homonym_different control_a: "Einwilligung des Nutzers fuer Datenverarbeitung einholen (DSGVO)" control_b: "Einwilligung des Nutzers fuer Werbeanrufe einholen (UWG)" expected: is_duplicate: false reason: "Verschiedene Rechtsgrundlagen (DSGVO vs. UWG) und verschiedene Rechtsfolgen" difficulty: hard - id: ADV-HOM-002 category: homonym_different control_a: "Risikobewertung fuer Datenschutz-Folgenabschaetzung (DSFA)" control_b: "Risikobewertung fuer finanzielle Risiken (MaRisk)" expected: is_duplicate: false reason: "Verschiedene Risikokategorien und verschiedene regulatorische Grundlagen" difficulty: hard - id: ADV-HOM-003 category: homonym_different control_a: "Audit der Datenschutz-Compliance (Art. 5 Abs. 2 DSGVO)" control_b: "Audit der Jahresabschlusspruefung (HGB)" expected: is_duplicate: false reason: "Verschiedene Audit-Typen mit verschiedenen Pruefungsstandards" difficulty: medium - id: ADV-HOM-004 category: homonym_different control_a: "Zertifizierung nach ISO 27001 (Informationssicherheit)" control_b: "Zertifizierung nach CE-Konformitaet (Produktsicherheit)" expected: is_duplicate: false reason: "Verschiedene Zertifizierungsrahmen, verschiedene Pruefer, verschiedene Ziele" difficulty: easy - id: ADV-HOM-005 category: homonym_different control_a: "Verarbeitung personenbezogener Daten dokumentieren (DSGVO VVT)" control_b: "Verarbeitung von Lebensmitteln dokumentieren (HACCP)" expected: is_duplicate: false reason: "Komplett verschiedene Domaenen trotz gleicher Woerter" difficulty: easy