# Payment Compliance Pack Ausfuehrbares Pruefpaket fuer Payment-Terminal-Systeme. ## Inhalt ### Semgrep-Regeln (25 Regeln) | Datei | Regeln | Controls | |-------|--------|----------| | `payment_logging.yml` | 5 | LOG-001, LOG-002, LOG-014 | | `payment_crypto.yml` | 6 | CRYPTO-001, CRYPTO-008, CRYPTO-009, KEYMGMT-001 | | `payment_api.yml` | 5 | API-004, API-005, API-014, API-017 | | `payment_config.yml` | 5 | CONFIG-001 bis CONFIG-004 | | `payment_data.yml` | 5 | DATA-004, DATA-005, DATA-013, TELEMETRY-001 | ### CodeQL-Specs (5 Queries) | Datei | Ziel | Controls | |-------|------|----------| | `sensitive-data-to-logs.md` | Datenfluss zu Loggern | LOG-001, LOG-002, DATA-013 | | `sensitive-data-to-response.md` | Datenfluss in HTTP-Responses | API-009, ERROR-005 | | `tenant-context-loss.md` | Mandantenkontext-Verlust | TENANT-001, TENANT-002 | | `sensitive-data-to-telemetry.md` | Datenfluss in Telemetrie | TELEMETRY-001, TELEMETRY-002 | | `cache-export-leak.md` | Leaks in Cache/Export | DATA-004, DATA-011 | ### State-Machine-Tests (10 Testfaelle) | Datei | Inhalt | |-------|--------| | `terminal_states.md` | 11 Zustaende, 15 Events, Transitions | | `terminal_invariants.md` | 8 Invarianten | | `terminal_testcases.json` | 10 ausfuehrbare Testfaelle | ### Finding-Schema | Datei | Beschreibung | |-------|-------------| | `finding.schema.json` | JSON Schema fuer Pruefergebnisse | ## Ausfuehrung ### Semgrep ```bash semgrep --config payment-compliance-pack/semgrep/ /path/to/source ``` ### State-Machine-Tests Die Testfaelle in `terminal_testcases.json` definieren: - Ausgangszustand - Event-Sequenz - Erwarteten Endzustand - Zu pruefende Invarianten - Gemappte Controls Diese koennen gegen einen Terminal-Adapter oder Simulator ausgefuehrt werden. ## Priorisierte Umsetzung 1. **Welle 1:** 25 Semgrep-Regeln sofort produktiv 2. **Welle 2:** 5 CodeQL-Queries fuer Datenfluesse 3. **Welle 3:** 10 State-Machine-Tests gegen Terminal-Simulator 4. **Welle 4:** Tender-Mapping (Requirement → Control → Finding → Verdict)