Nette Sicherheitslücke CVE-2020-15227

21. Oktober 2020

Lang: cs en de es

In dem beliebten PHP-Framework Nette für Webanwendungen wurde eine Sicherheitslücke entdeckt. Wie können Sie Ihre Anwendung oder Ihren Server absichern? In diesem Artikel erfahren Sie, welche Möglichkeiten es gibt, die Sicherheitslücke zu schließen oder die Sicherheit Ihres Servers zu erhöhen.

Lesen Sie die offizielle Erklärung zu der entdeckten Sicherheitslücke in diesem Artikel Erste Sicherheitslücke entdeckt in Nette, Update! vom Autor des Nette-Frameworks. Die beste und einfachste Lösung besteht darin, die Version des Nette-Frameworks zu aktualisieren und und das Sicherheitsproblem wird verschwinden. Die Änderung, die das Update mit sich bringt, hat keinen Einfluss auf die Funktionalität, so dass es eine wirklich einfache und sichere Aufgabe ist.

Sicherheit

Wie gefährlich ist diese Sicherheitslücke? Jeder, der sich mit HTML und JavaScript auskennt oder in BASH skripten kann, kann eine XSS-Injection durchführen oder die Quelldateien inklusive Konfiguration und Datenbankzugriff auslesen und so alle Daten herunterladen.

Nette Versionskontrolle

Wenn Sie mehrere Anwendungen betreiben, sollten Sie auch prüfen, ob Sie eine Version von Nette installiert haben, die den Patch enthält. Der Fehler befindet sich in einem Paket namens nette/application. Eine Liste der derzeit installierten Pakete, einschließlich Versionsinformationen, finden Sie unter composer.loc Sie können also den folgenden Befehl verwenden, um eine Auflistung der Versionen aller installierten nette/application-Pakete zu erhalten:

    grep -r '"name": "nette/application"' */composer.lock -A1
Wenn Sie Nette Version 3 verwenden, sollten Sie v3.0.6 installiert haben.

Protokolle prüfen

Unix-Programme protokollieren, was passiert. Das tut auch der Webserver. Die Logs befinden sich im Verzeichnis /var/log/apache2, wenn Sie den web Apache-Server auf debianähnlichen Distributionen verwenden, im Verzeichnis /var/log/httpd bei RPM-basierten Distributionen. WENN Sie Web-Server Nginx verwenden, befinden sich die Protokolle in einem Verzeichnis in /var/log/nginx.

Der folgende Befehl:

    grep -r callback /var/log/apache2
um die Protokolleinträge zu erhalten, die prüfen, ob die Webanwendung verwundbar ist.

Nach dem, was ich in den Protokollen gesehen habe, testen die Bots verschiedene Websites, wobei sie aus der HTTP-Antwort erraten können, ob die Webanwendung Anwendung das Nette-Framework verwendet.

Fehler beheben

Wenn Sie Composer nicht zum Aktualisieren von Paketen verwenden oder das Archiv nicht mit Nette herunterladen wollen, gibt es andere Möglichkeiten, den Fehler zu beheben.

Composer

Wenn Sie Composer verwenden, was Sie tun sollten! Um die Bibliotheken zu aktualisieren, verwenden Sie den Befehl:

    composer update

Skript zur Fehlerbehebung

Sie können ein Skript verwenden, das Unix-Utilities verwendet, um den Quellcode zu korrigieren Bash-Skript zur Korrektur von Nette. Oder ein PHP-Skript, das auch Nette repariert. Der Reparaturprozess kann dort viel schneller ablaufen. Aber Vorsicht, wenn Sie eine Änderung vornehmen, werden Sie die ursprüngliche Version der Bibliothek, die Nette nicht repariert.

Deaktivieren von URLs

Um einen Angriff durchzuführen, müssen Sie eine bestimmte URL angeben. Sowohl Apache- als auch Nginx-Webserver erlauben es, Regeln auf die URL anzuwenden. So ist es möglich, eine Regel für diese spezifische URL zu erstellen, die die URL direkt auf der Ebene des Webservers blockiert.

Verbesserung der Sicherheit

Sie können die Sicherheit auch generell erhöhen, indem Sie die erlaubten Funktionen auf dem Webserver reduzieren. Sie können die PHP-Konfiguration ändern, die sich in der Datei php.ini befindet. Fügen Sie einfach die folgende Zeile ein:

    disable_functions=exec,passthru,shell_exec,system,proc_open,popen
Damit schränken Sie zumindest einige Arten von Angriffen ein. Gleichzeitig werden aber auch einige Anwendungen eingeschränkt, die diese Funktionen nutzen müssen.

Spaß

Ein Beispiel, Webhosting Wedos blockiert dynamisch den kompletten HTTP/HTTPS-Webverkehr für ein bestimmtes Haus nur über die Ports 80 und 443, und schneidet damit den Besucher von allen bei ihm gehosteten Sites und damit von anderen Kunden ab, auch wenn diese eine Site auf einer anderen Technologie haben oder gepatcht. Auch der Zugriff auf die Hauptseite des Unternehmens wird unterbunden. Und da sie ihn wahrscheinlich nach IP blockieren, machen sie die Websites an ihrem Standort für alle Personen unzugänglich, die für dieselbe IP-Adresse NAT'd sind.

Neuigkeiten

Neue Informationen zu cve-2020-15227 sind in den Nette-Foren zu finden.

Artikel zu einem ähnlichen Thema

Programmiersprache Go
Python-Programm zur Steuerung von Docker über die API
Wie man MailCatcher zum Testen von E-Mails verwendet
Python OpenAI API
Erstellen einer WebSocket-Webanwendung und Einrichten eines Proxys
Projektmanagement: agile Softwareentwicklung
Wie man alte PHP-Anwendungen ausführt
Was ein guter Programmierer wissen sollte
Programmiersprache Rust
NodeJS: Entwicklung, Serverkonfiguration
REST API: Plattform-API
Kundenspezifisches Web- und E-Mail-Hosting mit ISP Config-Software
Programmierung in SQL: PostgreSQL, MySQL/MariaDB
HTTPS: sicheres Web
NoSQL-Datenbank Mongo DB
Herstellen einer Verbindung zu Microsoft SQL Server unter Linux
Was ist die Stellenbeschreibung eines Programmierers?
Lokalisierung von Python-Anwendungen
Welches Mail- und Webhosting Sie wählen sollten
Digispark - Atmel ATtiny Mikrocontroller mit Arduino IDE programmieren
Entwicklung für ARM-Prozessoren mit Arduino IDE
Wie programmiere ich den ESP8266 WiFi-Prozessor?
Offenes Smartphone mit Linux - Openmoko Neo FreeRunner

Newsletter

Wenn Sie daran interessiert sind, gelegentlich Neuigkeiten per E-Mail zu erhalten.
Sie können sich registrieren, indem Sie Ihre E-Mail-Adresse eingeben News-Abonnement.


+