Perché SSLLab afferma che il nostro sito è vulnerabile a POODLE quando abbiamo disabilitato SSL V3?

3

Un test di sicurezza SSLLabs del nostro sito dice che è vulnerabile a POODLE . Questo tutorial mi ha detto che dovrei disattiva SSL3. Ma quando ho controllato il nostro file .conf di nginx per il sito Web, SSL3 era già spento. Cosa sta succedendo?

# Installed by APT
# serves static files, and passes 404 image requests onto PHP
upstream backend_rental {
    server unix:/srv/rental/tmp/php.sock;
}

# force ekaya.co calls to ekaya.com
server {
    server_name ekaya.co;
    listen 80;
    listen 443;

    ssl on;
    ssl_certificate /etc/ssl/local/ekaya.co.crt;
    ssl_certificate_key /etc/ssl/local/ekaya.co.key;
    ssl_session_timeout 5m;
    ssl_session_cache shared:SSL:50m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
    ssl_prefer_server_ciphers on;

    add_header Strict-Transport-Security max-age=15768000;

    rewrite ^ https://ekaya.com$request_uri? permanent;
}

server {
    server_name ekaya.com ekaya.rental qa.ekaya.volk.co.za;
        listen 80;
    listen 443;

    ssl on;
#   ssl_certificate /etc/ssl/local/ekaya.com.crt;
#   ssl_certificate_key /etc/ssl/local/ekaya.com.key;
        ssl_certificate /etc/letsencrypt/live/ekaya.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/ekaya.com/privkey.pem;
    ssl_session_timeout 5m;
    ssl_session_cache shared:SSL:50m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
    ssl_prefer_server_ciphers on;

    add_header Strict-Transport-Security max-age=15768000;
    add_header X-Clacks-Overhead "GNU Terry Pratchett";

    root /srv/rental/public;
    index index.html index.php;

    access_log /var/log/nginx/ekaya.access.log combined;
    error_log /var/log/nginx/ekaya.error.log;

    # Nginx status
    location /nginx_stub_status {
        # copied from http://blog.kovyrin.net/2006/04/29/monitoring-nginx-with-rrdtool/
        stub_status on;
        access_log off;
        allow 127.0.0.1;
        allow 196.201.6.140;
        deny all;
    }

    # PHP-FPM status
    location /php_status {
        access_log off;
        allow 127.0.0.1;
        allow 196.201.6.140;
        deny all;
        include fastcgi_params;
        fastcgi_pass backend_rental;
    }

    # set expiration of assets to MAX for caching
    location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
        expires max;
    }

    location / {
        # Check if a file exists, or route it to index.php.
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~* \.php$ {
        fastcgi_pass backend_rental;
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_read_timeout 300;
        fastcgi_send_timeout 300;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
    
posta Richard 26.09.2016 - 11:44
fonte

2 risposte

1

Alcuni assegni e domande apparentemente banali:

  • Hai interrotto e riavviato il tuo webserver per assicurarti che la configurazione effettiva sia realmente attiva?
  • Sei sicuro di guardare la configurazione del server web testato (fai attenzione agli host virtuali ecc.)?
  • Sei sicuro che stai guardando il file di configurazione giusto?
risposta data 26.09.2016 - 11:52
fonte
1

Non posso commentare quindi scusami per aver dato una risposta a quello che dovrebbe essere un commento.

Come menzionato da Steffen Ulrich, questa non è la configurazione completa e potrebbe non essere nemmeno quella in vigore (vedere la cache disabilitata quando si tenta di connettersi, abilitata nella configurazione specificata).

Inoltre, da quanto ho capito, il tuo server SSLv3 non è lo stesso di quello che stai tentando di risolvere, principalmente perché non servono lo stesso certificato. Il server TLS fornisce correttamente il certificato Let's Encrypt mentre quello SSLv3 fornisce un certificato StartSSL scaduto. Puoi dare un'occhiata a ciò che il server SSLv3 fornisce con curl -vvv --sslv3 --insecure https://ekaya.com .

Modifica: La vulnerabilità TLS a POODLE non ha origine nelle crittografie ma nell'implementazione del server, quindi sei al sicuro lì.

Verifica utilizzando s_client di OpenSSL

Certificato scaduto tramite SSLv3:

$ echo '' | openssl s_client -connect ekaya.com:443 -servername ekaya.com -ssl3 2>&1 | grep -Ei 'protocol|cipher|subject|issuer|code'
subject=/description=8v0Dwh0DQ9LnEM7c/C=ZA/CN=agent.ekaya.co/[email protected]
issuer=/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 1 Primary Intermediate Server CA
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-SHA
    Protocol  : SSLv3
    Cipher    : ECDHE-RSA-AES256-SHA
    Verify return code: 10 (certificate has expired)

Buono certificato tramite TLS v1.2:

$ echo '' | openssl s_client -connect ekaya.com:443 -servername ekaya.com -tls1_2 2>&1 | grep -Ei 'protocol|cipher|subject|issuer|code'
subject=/CN=ekaya.com
issuer=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-GCM-SHA256
    Verify return code: 0 (ok)
    
risposta data 26.09.2016 - 13:01
fonte

Leggi altre domande sui tag