OWASP ZAP descubrió que el servidor Nginx es vulnerable a la 'divulgación de proxy'. Se debe agradecer ayudar a solucionar este problema.

OWASP ZAP descubrió que el servidor Nginx es vulnerable a la 'divulgación de proxy'. Se debe agradecer ayudar a solucionar este problema.

Realicé un OWASP ZAP en mi sitio web y generó una alerta de divulgación de proxy, entre otras cosas.

Alerta de divulgación de proxyhttps://www.zaproxy.org/docs/alerts/40025/

descripción de OWASP Se detectaron o se tomaron huellas digitales de 1 servidor(es) proxy. Esta información ayuda a un atacante potencial a determinar

  • Una lista de objetivos para un ataque contra la aplicación.

  • Posibles vulnerabilidades en los servidores proxy que dan servicio a la aplicación.

  • La presencia o ausencia de cualquier componente basado en proxy que pueda provocar que se detecten, prevengan o mitiguen ataques contra la aplicación.

Solución sugerida
Deshabilite el método 'TRACE' en los servidores proxy, así como en el servidor web/de aplicaciones de origen. Deshabilite el método 'OPCIONES' en los servidores proxy, así como en el servidor web/aplicación de origen, si no es necesario para otros fines, como 'CORS' (Intercambio de recursos entre orígenes). Configure los servidores web y de aplicaciones con páginas de error personalizadas, para evitar que se filtren al usuario páginas de error específicas del producto "que se pueden imprimir digitalmente" en caso de errores HTTP, como solicitudes de "TRACK" para páginas inexistentes. Configure todos los servidores proxy, servidores de aplicaciones y servidores web para evitar la divulgación de la tecnología y la información de la versión en los encabezados de respuesta HTTP 'Servidor' y 'X-Powered-By'.

Intento que he hecho hasta ahora: Seguí el consejo de esto.sitio weby agregó una condición para deshabilitar PATCH, TRACE y OPTIONS en nginx.conf. No estoy seguro si eso está funcionando y si lo hice correctamente. ¿Algún consejo sobre cómo arreglar 'Configurar todos los servidores proxy, servidores de aplicaciones y servidores web para evitar la divulgación de la tecnología y la información de la versión en los encabezados de respuesta HTTP 'Servidor' y 'X-Powered-By''? Gracias.

servidor 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;
            }
    }
}

Respuesta1

Creo que estás en el camino correcto.

¿Algún consejo sobre cómo arreglar 'Configurar todos los servidores proxy, servidores de aplicaciones y servidores web para evitar la divulgación de la tecnología y la información de la versión en los encabezados de respuesta HTTP 'Servidor' y 'X-Powered-By''? Gracias.

tokens_servidor desactivados;

proxy_hide_header X-Desarrollado-por;

Luego recarga Nginx.

Es posible que desee ejecutar otra prueba para asegurarse de haber solucionado las vulnerabilidades.

información relacionada