Ich habe auf meiner Website einen OWASP ZAP ausgeführt und dieser hat unter anderem eine Proxy-Offenlegungswarnung ausgelöst.
Proxy-Offenlegungswarnunghttps://www.zaproxy.org/docs/alerts/40025/
OWASP-Beschreibung 1 Proxy-Server wurden erkannt oder gefingerprintet. Diese Informationen helfen einem potenziellen Angreifer, festzustellen
Eine Liste von Zielen für einen Angriff auf die Anwendung.
Mögliche Schwachstellen auf den Proxyservern, die die Anwendung bedienen.
Das Vorhandensein oder Fehlen proxybasierter Komponenten, die dazu führen könnten, dass Angriffe auf die Anwendung erkannt, verhindert oder abgeschwächt werden.
Vorgeschlagene Lösung
Deaktivieren Sie die Methode „TRACE“ auf den Proxyservern sowie auf dem ursprünglichen Web-/Anwendungsserver. Deaktivieren Sie die Methode „OPTIONS“ auf den Proxyservern sowie auf dem ursprünglichen Web-/Anwendungsserver, wenn sie nicht für andere Zwecke benötigt wird, wie etwa „CORS“ (Cross Origin Resource Sharing). Konfigurieren Sie die Web- und Anwendungsserver mit benutzerdefinierten Fehlerseiten, um zu verhindern, dass im Falle von HTTP-Fehlern, wie etwa „TRACK“-Anfragen für nicht vorhandene Seiten, „fingerabdruckbare“ produktspezifische Fehlerseiten an den Benutzer weitergegeben werden. Konfigurieren Sie alle Proxys, Anwendungsserver und Webserver, um die Offenlegung der Technologie- und Versionsinformationen in den HTTP-Antwortheadern „Server“ und „X-Powered-By“ zu verhindern.
Versuche, die ich bisher gemacht habe: Ich bin dem Rat von diesem gefolgtWebseiteund habe eine Bedingung zum Deaktivieren von PATCH, TRACE und OPTIONS zu nginx.conf hinzugefügt. Ich bin nicht sicher, ob das funktioniert und ob ich es richtig gemacht habe. Irgendwelche Ratschläge zur Behebung von „Konfigurieren Sie alle Proxys, Anwendungsserver und Webserver, um die Offenlegung der Technologie- und Versionsinformationen in den HTTP-Antwortheadern „Server“ und „X-Powered-By“ zu verhindern“? Danke.
http-request-methods.html server{ if ($request_method ~ ^(PATCH|TRACE|OPTIONS)$){ return 405; } }
nginx.conf:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
include /etc/nginx/proxy.conf;
server_tokens off;
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
client_body_timeout 10;
types_hash_max_size 2048;
upstream portal {
server 127.0.0.1:5002;
}
upstream api {
server 127.0.0.1:5000;
}
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml applicati>
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
server{
if ($request_method ~ ^(PATCH|TRACE|OPTIONS)$){
return 405;
}
}
}
Antwort1
Ich denke, Sie sind auf dem richtigen Weg.
Gibt es Ratschläge zur Behebung des Problems „Konfigurieren Sie alle Proxys, Anwendungsserver und Webserver so, dass die Offenlegung der Technologie- und Versionsinformationen in den HTTP-Antwortheadern „Server“ und „X-Powered-By“ verhindert wird“? Danke.
Server-Tokens aus;
Proxy_hide_header X-Powered-By;
Laden Sie dann Nginx neu.
Möglicherweise möchten Sie einen weiteren Test ausführen, um sicherzustellen, dass Sie die Schwachstellen behoben haben.