Im Rahmen des Projekts Ein Modul zur Anbindung an den PHP7-Interpreter, das dazu dient, die Sicherheit der Umgebung zu erhöhen und gĂ€ngige Fehler zu blockieren, die zu Schwachstellen in ausgefĂŒhrten PHP-Anwendungen fĂŒhren. Das Modul ermöglicht auch die Erstellung virtueller Patches zur Behebung spezifischer Probleme, ohne den Quellcode der anfĂ€lligen Anwendung zu Ă€ndern, was in Mass Hosting-Systemen, in denen es nicht möglich ist, alle Nutzeranwendungen aktuell zu halten, von Vorteil ist. Das Modul ist in C geschrieben und wird in Form einer Shared Library ('extension=snuffleupagus.so' in php.ini) eingebunden und unter der Lizenz LGPL 3.0.
Snuffleupagus bietet ein Regelsystem, das sowohl gĂ€ngige Vorlagen zur Erhöhung des Schutzes als auch die Möglichkeit zur Erstellung eigener Regeln zur Kontrolle von Eingaben und Funktionsparametern ermöglicht. Beispielsweise ermöglicht die Regel 'sp.disable_function.function('system').param('command').value_r('[$|;&`\n]').drop();' die EinschrĂ€nkung der Verwendung von Sonderzeichen in den Argumenten der Funktion system(), ohne die Anwendung zu verĂ€ndern. Ăhnlich können erstellt werden um bekannte Schwachstellen zu blockieren.
Laut den durch die Entwickler durchgefĂŒhrten Tests verringert Snuffleupagus die Leistung nahezu nicht. Zur GewĂ€hrleistung der eigenen Sicherheit (mögliche Schwachstellen der Schutzschicht können als zusĂ€tzlicher Angriffsvektor dienen) wird im Projekt eine grĂŒndliche PrĂŒfung jedes Commits in verschiedenen Distributionen angewendet, es werden statische Analysesysteme verwendet, der Code wird strukturiert und dokumentiert, um die DurchfĂŒhrung von Audits zu erleichtern.
Es werden integrierte Methoden zur Blockierung solcher Klassen von Schwachstellen angeboten, wie Probleme, mit der Datenserialisierung, der Verwendung der PHP-Funktion mail(), dem Leck von Cookie-Inhalten bei XSS-Angriffen, Problemen durch den Upload von Dateien mit ausfĂŒhrbarem Code (z. B. im Format ), minderwertiger Zufallszahlen-Generierung und von fehlerhaften XML-Konstruktionen.
Zu den Modi zur Erhöhung des Schutzes von PHP gehören:
- Automatisches Aktivieren der Flags âsecureâ und âsamesiteâ (Schutz vor CSRF) fĂŒr Cookies, von Cookies;
- Ein integriertes Regelset zur Erkennung von Spuren von Angriffen und Kompromittierung von Anwendungen;
- Zwangswerk Globale Aktivierung des Modus ââ (z. B. blockiert die Angabe einer Zeichenfolge, wenn ein ganzzahliger Wert erwartet wird) und Schutz vor ;
- StandardmĂ€Ăiges Blockieren (z. B. Verbot von âphar://â) mit deren ausdrĂŒcklicher Genehmigung auf einer Whitelist;
- Verbot der AusfĂŒhrung von Dateien, die schreibbar sind;
- Schwarze und weiĂe Listen fĂŒr eval;
- Einschalten der obligatorischen TLS-ZertifikatĂŒberprĂŒfung bei der Verwendung von
curl; - HinzufĂŒgen von HMAC zu serialisierten Objekten, um sicherzustellen, dass beim Deserialisieren die vom ursprĂŒnglichen Anwender gespeicherten Daten erhalten bleiben;
- Anfragetagebuchmodus;
- Blockierung des Ladens externer Dateien in libxml ĂŒber Links in XML-Dokumenten;
- Möglichkeit, externe Handler (upload_validation) zur ĂberprĂŒfung und Scannen hochgeladener Dateien anzuschlieĂen;
Das Projekt wurde geschaffen und wird zum Schutz der Benutzer in der Infrastruktur eines der groĂen französischen Hosting-Anbieter genutzt. , wobei die einfache Anbindung von Snuffleupagus den Schutz vor vielen gefĂ€hrlichen Schwachstellen, die in diesem Jahr in Drupal, WordPress und phpBB identifiziert wurden, ermöglicht hĂ€tte. Schwachstellen in Magento und Horde könnten durch die Aktivierung des Modus
'sp.readonly_exec.enable()' blockiert werden.
Quelle: opennet.ru
