Nginx + PHP-FPM stürzt nach verdächtiger Pentesting-Anfrage mit hexadezimalem HTTP-Verb/-Methode ab

Nginx + PHP-FPM stürzt nach verdächtiger Pentesting-Anfrage mit hexadezimalem HTTP-Verb/-Methode ab

mein Server stürzt jedes Mal ab, wenn ein nerviger Pentester versucht, Sicherheitslücken in meiner Anwendung zu finden. Ich sehe Folgendes im Fehlerprotokoll:

17:48:48 +0200] "\x16\x03\x01\x00M\x01\x00\x00I\x03\x03\xDBJA\xC5\xB17\xF6\xDA \xD4\xEEEg0\xE0\xF2\xF2\xC9S\xE4\xF9v}\x1E\x00\xC8\xC3d\x 80h;= \x1F\xD2\xAF?\x88\x8A\xA2\xCF\x16G\x99\x1D\x91" 400 173 "-" "-"

Der Server ist wie ein normaler Nginx + PHP-FPM-Server konfiguriert. Port 80 wird auf 443 umgeleitet und SSL ist korrekt konfiguriert.

Ich habe auch diese Zeile hinzugefügt:

if ($request_method !~ ^(GET|HEAD|POST|OPTIONS|DELETE|PUT|PATCH)$) { return 405; }

(in beiden Serverkonfigurationen)

Dies ist auch die einzige „Pentesting“-Anfrage, die zu einer 400 führt. Alle anderen Anfragen führen zu 301 oder 404. Ich habe ein ähnliches Problem gefunden, bei dem der SSL-Abschnitt von Nginx nicht richtig konfiguriert ist. Ich habe meine Konfiguration überprüft, aber sie sieht in Ordnung aus.

Ich habe das gleiche Problem auf einem anderen Server mit einer ähnlichen Konfiguration und auf einem Server mit einer nginx -> apache_mpm_prefork_fpm-Konfiguration.

Irgendwelche Ideen, was das ist und wie man den Server vor Abstürzen schützt? Wie man eine solche Pentesting-Anfrage reproduziert (ich habe es in Postman versucht, aber ein anderes Ergebnis erhalten).

Vielen Dank.

BEARBEITEN

Ich habe herausgefunden, wie ich dieses Protokoll reproduzieren kann: https://servername:80.

Aber ich kann nicht herausfinden, wie ich diese Art von Anfragen blockieren kann. Ich habe es mit $scheme versucht, aber die Anfrage ist verschlüsselt. Ich habe versucht, SSL zur Konfiguration hinzuzufügen, aber nichts hat sich geändert. Es muss einen Grund geben, warum diese Pentesting-/Exploid-Sites versuchen, eine HTTPS-Anfrage an Port 80 zu senden.

verwandte Informationen