Das Snuffleupagus-Projekt entwickelt ein PHP-Modul zur Blockierung von Schwachstellen

Das Projekt Schnupftabak entwickelt sich ein Modul zur Verbindung mit dem PHP7-Interpreter, das die Sicherheit der Umgebung verbessern und häufige Fehler blockieren soll, die zu Schwachstellen bei der Ausführung von PHP-Anwendungen führen. Mit dem Modul können Sie außerdem virtuelle Patches erstellen, um bestimmte Probleme zu beheben, ohne den Quellcode der anfälligen Anwendung zu ändern. Dies ist praktisch für den Einsatz in Massenhosting-Systemen, bei denen es unmöglich ist, alle Benutzeranwendungen auf dem neuesten Stand zu halten. Das Modul ist in C geschrieben, als gemeinsam genutzte Bibliothek enthalten („extension=snuffleupagus.so“ in php.ini) und vertrieben von lizenziert unter LGPL 3.0.

Snuffleupagus bietet ein Regelsystem, mit dem Sie Standardvorlagen zur Erhöhung der Sicherheit verwenden und eigene Regeln zur Steuerung von Eingabedaten und Funktionsparametern erstellen können. Zum Beispiel die Regel „sp.disable_function.function(“system“).param(“command“).value_r(“[$|;&`\\n]“).drop();“ ermöglicht es Ihnen, die Verwendung von Sonderzeichen in den Argumenten der system()-Funktion einzuschränken, ohne die Anwendung zu ändern. Ebenso können Sie erstellen virtuelle Patches um bekannte Schwachstellen zu blockieren.

Den von den Entwicklern durchgeführten Tests zufolge verringert Snuffleupagus die Leistung nahezu nicht. Um die eigene Sicherheit zu gewährleisten (mögliche Schwachstellen in der Schutzschicht können als zusätzlicher Vektor für Angriffe dienen), führt das Projekt gründliche Tests jedes Commits in verschiedenen Distributionen durch, nutzt statische Analysesysteme und erstellt und dokumentiert den Code, um die Prüfung zu vereinfachen .

Es werden integrierte Methoden bereitgestellt, um Schwachstellenklassen wie Probleme, Связанные mit Datenserialisierung, unsicher Verwendung der PHP-Funktion mail(), Verlust von Cookie-Inhalten bei XSS-Angriffen, Probleme beim Laden von Dateien mit ausführbarem Code (z. B. im Format phar), minderwertige Generierung von Zufallszahlen und Auswechslung ungültige XML-Konstrukte.

Von den Modi zur Erhöhung des PHP-Schutzes werden folgende unterstützt:

  • Automatische Aktivierung der Flags „secure“ und „samesite“ (CSRF-Schutz) für Cookies, Verschlüsselung Plätzchen
  • Integriertes Regelwerk zur Erkennung von Spuren von Angriffen und kompromittierten Anwendungen;
  • Globalen Aktivierungsmodus erzwingen "streng» (Blockiert beispielsweise den Versuch, eine Zeichenfolge anzugeben, während ein ganzzahliger Wert als Argument erwartet wird) und Schutz davor Typmanipulation;
  • Standardmäßig blockieren Wrapper für Protokolle (z. B. das Verbot von „phar://“) mit deren ausdrücklicher Genehmigung gemäß der Whitelist;
  • Verbot der Ausführung beschreibbarer Dateien;
  • Schwarze und weiße Listen zur Evaluierung;
  • Aktivieren Sie bei der Verwendung die obligatorische TLS-Zertifikatsvalidierung
    Locken;

  • Hinzufügen von HMAC zu serialisierten Objekten, um sicherzustellen, dass die Deserialisierung die von der ursprünglichen Anwendung gespeicherten Daten abruft;
  • Protokollierungsmodus anfordern;
  • Blockieren des Ladens externer Dateien in libxml über Links in XML-Dokumenten;
  • Möglichkeit, externe Handler (upload_validation) anzuschließen, um hochgeladene Dateien zu prüfen und zu scannen;

Das Projekt wurde erstellt und verwendet, um Benutzer in der Infrastruktur eines der großen französischen Hosting-Betreiber zu schützen. Es ist notiertdass das einfache Einstecken von Snuffleupagus vor vielen der gefährlichen Schwachstellen schützen würde, die dieses Jahr in Drupal, WordPress und phpBB gefunden wurden. Schwachstellen in Magento und Horde könnten durch die Aktivierung des Modus blockiert werden
„sp.readonly_exec.enable()“.

Source: opennet.ru

Kommentar hinzufügen