Snyk Code unterstützt PHP-Schwachstellenscans jetzt in der Beta
DeveloperSteve Coochin
2. September 2021
0 Min. LesezeitDie Unterstützung für PHP-Schwachstellenscans in Snyk Code ist jetzt als Beta verfügbar. Sicherheitsprobleme in PHP-Code lassen sich nun schnell und einfach erkennen.
Melden Sie sich zunächst bei Snyk an oder registrieren Sie sich für ein kostenloses Konto. Klicken Sie nach der Anmeldung im Dashboard oben rechts auf die Schaltfläche Add Project und verbinden Sie ein Repository, das Sie scannen möchten.

Anschließend können Sie eine Verbindung zu verschiedenen Repository-Plattformen herstellen und alle von Ihnen verwalteten Repositories auf PHP-Schwachstellen scannen – auch private. Sie können auch über die CLI oder eine IDE scannen. Entdecken Sie weitere Möglichkeiten, Snyk Code in Ihre Entwicklungsumgebung zu integrieren.
Sehen wir uns die drei häufigsten Schwachstellen an, die die neuen PHP-Scans möglicherweise erkennen, und schauen wir uns an, worauf Sie im Rahmen der Beta-Version achten sollten.
XSS
Bei Cross-Site-Scripting-Schwachstellen (XSS) schleusen Angreifer schädlichen Code in vertrauenswürdige Anwendungen ein. Dieser kann gezielt im Browser eines Benutzers ausgeführt oder in die Laufzeitumgebung der Anwendung beziehungsweise das Betriebssystem eingeschleust werden.
In PHP kann dies verschiedene Ursachen haben und hängt häufig mit einer unzureichenden Bereinigung von Benutzereingaben zusammen. Ich habe dieses Thema in meinem vorherigen Beitrag über das Vermeiden von Code-Injection ausführlicher behandelt.
Sehen wir uns ein konkretes Beispiel an, um besser zu verstehen, worauf Sie in diesem Pull Request für ein Repository achten sollten.

Im Beispiel sehen Sie einen direkten Vergleich: filter_var wird mit dem Filtertyp FILTER_SANITIZE_NUMBER_INT ergänzt, um die Bereinigung der $_POST-Eingabe zu übernehmen. Dieser Filter entfernt alle Zeichen außer Ziffern sowie Plus- und Minuszeichen.
Unsicherer Hash
Beim Hashing mit Code wird eine Zeichenfolge sicher in einen Wert oder Schlüssel umgewandelt, der die ursprüngliche Zeichenfolge repräsentiert. Das kann beispielsweise zur Speicherung in einer Datenbank oder während der Laufzeit für eine spätere Verwendung erfolgen. Häufig handelt es sich um ein Zwei-Wege-Hashing, bei dem die verschlüsselten Daten gespeichert und später wieder entschlüsselt werden können.
Traditionell galt MD5 – insbesondere in PHP – als Standardmethode zur Verschlüsselung von Dingen wie Benutzerpasswörtern, bis sich 2008 herausstellte, dass das Verfahren „kryptografisch gebrochen und für die weitere Verwendung ungeeignet“ ist.
Betrachten wir dieses Beispiel für eine Korrektur, die für dieses Repository umgesetzt wurde: Dabei wird null als Standardwert im Aufruf der Funktion für den signierten Schlüssel festgelegt. Das bedeutet: Wird kein Wert an die Funktion übergeben, ist der Standardwert null und kann innerhalb der Funktion für den signierten Schlüssel entsprechend verarbeitet werden.

SQL-Injection
Eine SQL-Injection ähnelt XSS. Die Schwachstelle ermöglicht es jedoch, eine schädliche SQL-Nutzlast in eine Datenbank einzuschleusen. In der Anwendungssicherheit kann dies dazu führen, dass ein neuer Benutzer mit erweiterten Berechtigungen hinzugefügt, Daten kompromittiert oder aus der Datenbank gelöscht werden.
Gerade bei Benutzereingaben, die in eine Datenbank gelangen, ist es besonders wichtig, daran zu denken: Eine ordnungsgemäße Bereinigung ist entscheidend.
Anhand eines weiteren Repository-Beispiels sehen Sie, dass der umgesetzte Pull Request PHPs filter_input_array verwendet, um die Eingaben für diese Datenbankfunktion zu verarbeiten.

Scannen Sie Ihren PHP-Code mit Snyk Code
Das waren nur einige Beispiele für häufige Schwachstellen aus der umfangreichen Wissensdatenbank von Snyk Code. Probieren Sie es aus und sehen Sie, welche Probleme in Ihrem Code erkannt werden.
Bitte beachten Sie noch einmal, dass PHP in Snyk Code derzeit in der Beta ist. Wir freuen uns über Ihr Feedback, damit wir unsere PHP-Unterstützung weiter verbessern können. Wenden Sie sich mit Fragen oder wenn Sie über Ihre Ergebnisse sprechen möchten gerne an uns.
Hier finden Sie weitere interessante Beiträge zur PHP-Sicherheit:
Starten Sie mit Capture the Flag
Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.
