OWASP ZAP 發現 Nginx 伺服器容易遭受「代理外洩」攻擊。必須感謝幫助解決這個問題

OWASP ZAP 發現 Nginx 伺服器容易遭受「代理外洩」攻擊。必須感謝幫助解決這個問題

我在我的網站上執行了 OWASP ZAP,它引發了代理披露警報等。

代理披露警報https://www.zaproxy.org/docs/alerts/40025/

OWASP 說明 偵測到 1 個代理伺服器或對其進行指紋辨識。此資訊有助於潛在攻擊者確定

  • 針對應用程式的攻擊目標清單。

  • 為應用程式提供服務的代理伺服器上的潛在漏洞。

  • 是否存在任何基於代理的元件可能會導致對應用程式的攻擊被偵測、阻止或減輕。

建議的解決方案
停用代理伺服器以及來源 Web/應用程式伺服器上的“TRACE”方法。如果其他目的不需要,例如「CORS」(跨來源資源共用),請停用代理伺服器以及來源 Web/應用程式伺服器上的「OPTIONS」方法。使用自訂錯誤頁面設定 Web 和應用程式伺服器,以防止在發生 HTTP 錯誤(例如針對不存在頁面的「TRACK」請求)時將「可指紋識別」的產品特定錯誤頁面洩漏給使用者。配置所有代理程式、應用程式伺服器和 Web 伺服器,以防止洩漏「Server」和「X-Powered-By」HTTP 回應標頭中的技術和版本資訊。

到目前為止我所做的嘗試: 我聽從了這個建議網站並向 nginx.conf 新增了停用 PATCH、TRACE 和 OPTIONS 的條件。不確定這是否有效以及我是否正確地做到了這一點。關於修復「配置所有代理、應用程式伺服器和 Web 伺服器以防止洩漏「伺服器」和「X-Powered-By」HTTP 回應標頭中的技術和版本資訊」有什麼建議嗎?謝謝。

http-request-methods.html 伺服器{ 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;
            }
    }
}

答案1

我認為你走在正確的道路上。

關於修復「配置所有代理、應用程式伺服器和 Web 伺服器以防止洩漏「伺服器」和「X-Powered-By」HTTP 回應標頭中的技術和版本資訊」有什麼建議嗎?謝謝。

伺服器令牌關閉;

proxy_hide_header X-Powered-By;

然後重新載入Nginx。

您可能需要執行另一個測試以確保修復了漏洞。

相關內容