Skip to main content

PCI-Compliance-Sicherheit mit SAST und SCA verbessern

Artikel von
Headshot of DeveloperSteve Coochin

DeveloperSteve Coochin

blog feature snyk open source blue

8. Februar 2022

0 Min. Lesezeit

Der Payment Card Industry Data Security Standard, auch bekannt als PCI DSS, ist ein umfassendes Verfahren zur Überprüfung der Systeme und Richtlinien eines Unternehmens für den Umgang mit und die Speicherung von sensiblen Zahlungskartendaten.

PCI DSS ist ein wichtiger Bestandteil der Zahlungsbranche. Der Standard trägt dazu bei, die Daten von Endnutzern zu schützen. Verwaltet und betreut wird er vom PCI Security Standards Council, der auch Aspekte wie die Anforderungen des Standards regelt, die akkreditierte Anbieter für eine PCI-DSS-Zertifizierung erfüllen müssen. Derzeit schreiben MasterCard und Visa Händlern und Dienstleistern mit einigen Ausnahmen die PCI-DSS-Compliance vor. Kommt es zu einem Sicherheitsvorfall und war die betroffene Organisation zum Zeitpunkt des Vorfalls nicht PCI-DSS-konform, drohen zusätzliche Sanktionen wie Geldbußen.

Diese Prüfungen sind nicht nur für die gesamte Zahlungsbranche entscheidend. Sie schaffen auch Vertrauen bei den Nutzern, die wissen möchten, dass ihre Daten geschützt sind. Der PCI-Compliance-Prozess umfasst eine Reihe von Prüfungen, die in der Regel von einer akkreditierten Drittpartei durchgeführt werden, um sicherzustellen, dass sichere Verfahren für den Umgang mit Daten vorhanden sind.

In diesem Beitrag sehen wir uns die Anforderungen des PCI DSS genauer an und zeigen, wie Sie sie mithilfe von Tools für Static Application Security Testing (SAST) und Software Composition Analysis (SCA) einfacher erfüllen können. Außerdem zeigen wir Ihnen, wie Sie Snyk für Ihre SAST- und SCA-Anforderungen im Rahmen des PCI DSS einsetzen. Los geht’s!

Anforderungen der PCI-Compliance

Der PCI DSS umfasst 12 Anforderungen für den Aufbau und die Wartung sicherer Netzwerke und Systeme. Sie betreffen unter anderem den Zugriff auf sensible Karteninhaberdaten, interne Systeme und die Anwendungsinfrastruktur sowie die Entwicklung und Wartung sicherer Systeme und Anwendungen.

Hier finden Sie eine Übersicht über alle Anforderungen:

  1. Installieren und warten Sie eine Firewall -Konfiguration, um Karteninhaberdaten zu schützen. Eine Firewall prüft den gesamten Netzwerkverkehr und blockiert den Zugriff nicht vertrauenswürdiger Netzwerke auf das System.

  2. Ändern Sie die vom Anbieter vorgegebenen Standardpasswörter für Systeme und andere Sicherheitsparameter. Standardpasswörter lassen sich anhand öffentlicher Informationen leicht herausfinden und können von Angreifern genutzt werden, um unbefugten Zugriff auf Systeme zu erhalten.

  3. Schützen Sie gespeicherte Karteninhaberdaten. Verschlüsselung, Hashing, Maskierung und Kürzung sind Methoden, mit denen Karteninhaberdaten geschützt werden.

  4. Verschlüsseln Sie die Übertragung von Karteninhaberdaten über offene, öffentliche Netzwerke. Starke Verschlüsselung, bei der ausschließlich vertrauenswürdige Schlüssel und Zertifikate verwendet werden, verringert das Risiko gezielter Hackerangriffe.

  5. Schützen Sie alle Systeme vor Malware und aktualisieren Sie regelmäßig die Antivirensoftware. Malware kann auf vielerlei Wegen in ein Netzwerk gelangen, etwa über die Internetnutzung, E-Mails von Mitarbeitern, Mobilgeräte oder Speichermedien. Aktuelle Antivirensoftware oder ergänzende Anti-Malware-Software senkt das Risiko, dass Malware Schwachstellen ausnutzt.

  6. Entwickeln und warten Sie sichere Systeme und Anwendungen. Schwachstellen in Systemen und Anwendungen können Angreifern privilegierten Zugriff ermöglichen. Installieren Sie Sicherheitspatches umgehend, um Schwachstellen zu beheben und die Ausnutzung sowie die Offenlegung von Karteninhaberdaten zu verhindern.

  7. Beschränken Sie den Zugriff auf Karteninhaberdaten auf autorisiertes Personal. Systeme und Prozesse müssen sicherstellen, dass der Zugriff auf Karteninhaberdaten nach dem Need-to-know-Prinzip beschränkt wird.

  8. Identifizieren und authentifizieren Sie den Zugriff auf Systemkomponenten. Jede Person mit Zugriff auf Systemkomponenten sollte eine eindeutige Kennung (ID) erhalten, damit der Zugriff auf kritische Datensysteme nachvollziehbar ist.

  9. Beschränken Sie den physischen Zugriff auf Karteninhaberdaten. Der physische Zugriff auf Karteninhaberdaten oder Systeme, in denen diese gespeichert sind, muss gesichert werden, um unbefugten Zugriff oder die unbefugte Entfernung von Daten zu verhindern.

  10. Erfassen und überwachen Sie jeden Zugriff auf Karteninhaberdaten und Netzwerkressourcen. Protokollierungsmechanismen sollten Benutzeraktivitäten nachverfolgen, um die Auswirkungen von Datenkompromittierungen zu verhindern, zu erkennen oder zu minimieren.

  11. Testen Sie Sicherheitssysteme und -prozesse regelmäßig. Es werden laufend neue Schwachstellen entdeckt. Systeme, Prozesse und Software müssen häufig getestet werden, um Schwachstellen aufzudecken, die Angreifer ausnutzen könnten.

  12. Führen Sie eine Informationssicherheitsrichtlinie für alle Mitarbeiter ein. Eine wirksame Sicherheitsrichtlinie vermittelt den Mitarbeitern, wie sensibel die Daten sind und welche Verantwortung sie für deren Schutz tragen.

Die vollständige Liste der Compliance-Anforderungen auf der Website des PCI Security Standards Council enthält viele weitere Details. So behandelt Anforderung 6 zur Entwicklung und Wartung sicherer Systeme beispielsweise bestimmte Schwachstellentypen wie:

  • Cross-Site-Scripting (XSS)

  • Injektionsfehler (SQL-Injection)

  • Pufferüberläufe

  • Unsichere kryptografische Speicherung

  • Unsichere Kommunikation

  • Fehlerhafte Fehlerbehandlung

  • Fehlerhafte Zugriffskontrolle

  • Cross-Site-Request-Forgery (CSRF)

  • Fehlerhafte Authentifizierung und Sitzungsverwaltung.

Wenn Sie Snyk verwenden, lassen sich all diese Sicherheitsprobleme in den Workflows und Pipelines Ihres Teams leicht finden und automatisch beheben.

So unterstützen Snyk Code und Snyk Open Source

Um PCI-Compliance in der Praxis zu zeigen, sichern wir mit Snyk PrestaShop, eine Open-Source-E-Commerce-Plattform aus dem PHP-Ökosystem. Snyk bietet verschiedene Möglichkeiten, Schwachstellen zu finden und zu beheben. In diesem Beispiel scannen wir mit der Snyk CLI nach Schwachstellen in Abhängigkeiten und prüfen anschließend den Code mit PHPStorm und dem Snyk-Plugin.

Um das folgende Beispiel nachzuvollziehen, benötigen Sie Git, PHP und den Abhängigkeitsmanager Composer.

E-Commerce-Startseite mit Werbebanner, Navigationsmenü, Suchleiste und beliebten Produkten wie Kleidung und gerahmten Drucken

Einrichtung

Um mitzumachen, müssen Sie zunächst ein kostenloses Snyk-Konto erstellen. Sie können in wenigen Minuten loslegen – eine Kreditkarte ist nicht erforderlich!

Als Nächstes müssen Sie die Snyk CLI lokal installieren. Das Tolle an der Snyk CLI: Sie müssen sie nur einmal für die gesamte Plattform installieren. Damit können Sie Ihren Code, Abhängigkeiten, Container und IaC scannen. Starten Sie schnell durch und werfen Sie einen Blick auf unseren Snyk-CLI-Spickzettel.

Klonen Sie anschließend das PrestaShop-Repository (zum Zeitpunkt der Erstellung dieses Beitrags Version 1.7.8.3) in Ihre lokale Umgebung:

git clone https://github.com/PrestaShop/PrestaShop.git

Installieren Sie dann PHP Composer und führen Sie Folgendes aus:

composer update

Nach Open-Source-Schwachstellen suchen

Prüfen wir zunächst das Composer-Manifest auf Open-Source-Schwachstellen. Führen Sie dazu im Stammverzeichnis des geklonten Repositorys Folgendes aus:

snyk test

In diesem Fall werden 8 Probleme und 11 anfällige Pfade gefunden. Außerdem erhalten Sie einige Vorschläge zur Behebung.

Terminal-Scan mit Sicherheitslücken hoher und kritischer Schwere in PHP-Abhängigkeiten, darunter Verzeichnis-Traversal und Remote-Code-Ausführung

Um diese Schwachstellen zu beheben, muss ich offenbar die Bibliotheken auf Versionen aktualisieren, in denen die Probleme behoben sind. Glücklicherweise kann Snyk nicht nur anfällige Pfade identifizieren, sondern Probleme auch über einen automatischen Pull Request im verbundenen Repository beheben.

Weitere Informationen zum Verbinden eines Repositorys finden Sie in unserer Dokumentation zu Git-Repository-Integrationen.

Code auf Schwachstellen scannen

Nachdem Sie die Snyk CLI in Aktion gesehen haben, prüfen wir nun den Codebestand mit PHPStorm und dem Snyk-Plugin auf Schwachstellen.

Dabei wird jede Datei mit Programmcode im Projekt auf mögliche Schwachstellen geprüft. In unserem Beispiel werden 252 mögliche Schwachstellen gefunden (99 [high], 131 [medium], 22 [low]), die genauer untersucht werden müssen.

Snyk-Code-Sicherheitsscan in einer IDE mit Cross-Site-Scripting-Schwachstellen (XSS) in PHP-Dateien

Um diese Schwachstellen zu beheben, kann ich mir die im Scan hervorgehobenen Code-Stellen genauer ansehen, die Ergebnisse dokumentieren und Korrekturen festhalten. Mit PHPStorm und dem Snyk-Plugin ist das einfacher: Ich kann jede Datei Schritt für Schritt durchgehen und den Code genauer untersuchen.

Mit dem PHPStorm-Snyk-Plugin kann ich außerdem den Aufrufpfad jeder Funktion in einer Datei zurückverfolgen. Zudem zeigt es Beispiele für Korrekturen aus anderen Projekten, in denen dasselbe Problem aufgetreten ist.

Sicherheits-Scan-Oberfläche mit Code-Schwachstellen und einer hervorgehobenen Behebung eines Cross-Site-Scripting-Problems in PHP-Code

PCI-Compliance sicherstellen

Ob Entwickler oder CTO/CISO: Der PCI-DSS-Compliance-Prozess muss keine mühsame Aufgabe sein, wenn die richtigen Prozesse und Tools zur Verfügung stehen, um ihn effizienter zu gestalten. Entscheidend ist, die Anforderungen zu kennen und über die nötigen Tools und Prozesse zu verfügen, um compliant zu bleiben. Für Entwickler ist außerdem die Dokumentation des Codes ein wichtiger Bestandteil der PCI-Anforderungen und eine gute Möglichkeit, Änderungen und Hinweise für zukünftige Entwickler festzuhalten.

Wie Sie gesehen haben, kann Snyk den PCI-DSS-Compliance-Prozess effizienter gestalten. Besonders hilfreich: Sie können Snyk-Scans ganz einfach in CI/CD- und Code-Pipelines integrieren und so laufende Probleme automatisch erfassen und dokumentieren. Erstellen Sie ein kostenloses Konto und bleiben Sie einfacher compliant.

Sichern Sie Ihren Code mit modernsten Erkenntnissen

Lernen Sie in nur 30 Minuten das gesamte Funktionsspektrum von Snyk Code SAST kennen.

Weiterlesen

blog feature snyk container custom base recommendations
Blog

Evo Agentic AppSec: Sicherheit, die mit der KI-Entwicklung Schritt hält

KI-gestützte Entwicklung überholt herkömmliche Security-Workflows. Snyk Agentic AppSec setzt Security-Agenten ein, die Schwachstellen kontinuierlich finden, beheben und überprüfen – während Menschen die Maßstäbe festlegen.

blog feature ai violet
Blog

VulnBump: Können KI-Agenten anfällige Abhängigkeiten beheben, ohne den Build zu beschädigen?

VulnBump testet KI-Agenten anhand von 307 realen Dependency-Upgrades. Eine Lösung zählt nur, wenn die Sicherheitslücke behoben ist und Build sowie Tests weiterhin erfolgreich sind.

Blog

Frontier-Modelle fanden die Schwachstellen. Nur der Angreifer fand die Angriffsketten.

Die statische Analyse fand die Schwachstellen, doch erst Live-Angriffstests bewiesen, wie sie sich zu Angriffen verketten lassen. Ein Vergleich von Evo COS, Claude Security und Claude Code Security.