HTTPS nu este întotdeauna atât de sigur cum pare. Vulnerabilitățile au fost găsite pe 5,5% dintre site-urile HTTPS

HTTPS nu este întotdeauna atât de sigur cum pare. Vulnerabilitățile au fost găsite pe 5,5% dintre site-urile HTTPS
Una dintre cele mai populare site-uri Alexa (cercul central), securizat cu HTTPS, cu subdomenii (gri) și dependențe (alb), dintre care unele sunt vulnerabile (umplutură cu dungi)

În zilele noastre, simbolul de conexiune securizată HTTPS a devenit un atribut standard și chiar necesar pentru orice site serios. Dacă De asemenea, se poate menționa lipsește, aproape toate browserele moderne afișează un avertisment că conexiunea cu site-ul "nu este securizată" și nu recomandă transmiterea de informații confidențiale.

Dar se pare că prezența "lăcătului" în bara de adrese nu garantează întotdeauna securitatea. Verificarea a 10.000 de site-uri de top din clasamentul Alexa a arătat: multe dintre ele sunt expuse unor vulnerabilități critice ale protocoalelor SSL/TLS, de obicei prin subdomenii sau dependențe. Potrivit autorilor studiului, complexitatea aplicațiilor web moderne crește semnificativ suprafața de atac.

Rezultatele cercetării

Studiul a fost realizat de specialiști de la Universitatea Ca' Foscari din Veneția (Italia) și de la Universitatea Tehnică din Viena. Ei vor prezenta un raport detaliat la cea de-a 40-a simpozion IEEE pe securitate și confidențialitate, care va avea loc între 20 și 22 mai 2019 la San Francisco.

Au fost verificate cele mai populare 10.000 de site-uri HTTPS din lista Alexa și 90.816 gazde asociate. Configurațiile criptografice vulnerabile au fost identificate pe 5.574 gazde, adică aproximativ 5,5% din total:

  • 4.818 sunt vulnerabile la MITM
  • 733 sunt vulnerabile la decriptarea completă TLS
  • 912 sunt vulnerabile la decriptarea parțială TLS

898 de site-uri sunt complet deschise pentru atacuri, permițând injectarea scripturilor externe, iar 977 de site-uri încarcă conținut de pe pagini slab securizate, cu care poate interacționa un atacator.

Cercetătorii subliniază că printre cele 898 de resurse "complet compromise" se numără magazine online, servicii financiare și alte site-uri mari. 660 din cele 898 de site-uri încarcă scripturi externe de pe gazde vulnerabile: aceasta este sursa principală de pericol. Potrivit autorilor, complexitatea aplicațiilor web moderne crește semnificativ suprafața de atac.

Au fost descoperite și alte probleme: 10% din formularele de autentificare au probleme cu transmiterea sigură a informațiilor, ceea ce riscă scurgeri de parole, 412 site-uri permit interceptarea cookie-urilor și „furarea sesiunii”, iar 543 de site-uri sunt vulnerabile la atacuri de integritate a cookie-urilor (prin subdomenii).

Problema este că, în ultimii ani, în protocoalele SSL/TLS și software-ul asociat au fost identificate o serie de vulnerabilități: POODLE (CVE-2014-3566), BEAST (CVE-2011-3389), CRIME (CVE-2012-4929), BREACH (CVE-2013-3587) și Heartbleed (CVE-2014-0160). Protecția împotriva acestora necesită o serie de configurații atât pe server, cât și pe client, pentru a evita utilizarea versiunilor vulnerabile mai vechi. Totuși, este o procedură destul de complicată, deoarece aceste configurații implică selectarea dintr-un set extins de cifruri și protocoale, în care este destul de greu de navigat. Nu este întotdeauna clar care seturi de cifruri și protocoale să fie considerate „suficient de sigure”.

Configurări recomandate

Nu există o listă oficială aprobată și convenită a configurațiilor HTTPS recomandate. Astfel, Mozilla SSL Configuration Generator oferă câteva opțiuni de configurare, în funcție de nivelul de protecție dorit. De exemplu, iată configurațiile recomandate pentru serverul nginx 1.14.0:

Mod modern

Cele mai vechi clienți acceptați: Firefox 27, Chrome 30, IE 11 pe Windows 7, Edge, Opera 17, Safari 9, Android 5.0, și Java 8

server {
listen 80 default_server;
listen [::]:80 default_server;

# Redirecționează toate cererile HTTP către HTTPS cu un răspuns 301 Moved Permanently.
return 301 https://$host$request_uri;
}

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;

# certificatele trimise clientului în SERVER HELLO sunt concatenate în ssl_certificate
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;


# configurație modernă. ajustează-o după nevoi.
ssl_protocols TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;

# HSTS (ngx_http_headers_module este necesar) (15768000 sec = 6 luni)
add_header Strict-Transport-Security max-age=15768000;

# OCSP Stapling ---
# preia înregistrările OCSP de la URL-ul din ssl_certificate și le stochează
ssl_stapling on;
ssl_stapling_verify on;

## verifică lanțul de încredere al răspunsului OCSP folosind Root CA și certificate intermediare
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;

resolver ;

....
}

Suport mediu

Cele mai vechi clienți acceptați: Firefox 1, Chrome 1, IE 7, Opera 5, Safari 1, Windows XP IE8, Android 2.3, Java 7

server {
listen 80 default_server;
listen [::]:80 default_server;

# Redirect to HTTPS for all HTTP requests with a 301 Moved Permanently response.
return 301 https://$host$request_uri;
}

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;

# certificates sent to the client in SERVER HELLO are concatenated in ssl_certificate
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;

# Diffie-Hellman parameters for DHE ciphersuites, recommended 2048 bits
ssl_dhparam /path/to/dhparam.pem;

# Intermediate configuration. Adjust to your needs.
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;

# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;

# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;

## verify chain of trust of OCSP response using Root CA and Intermediate certs
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;

resolver ;

....
}

Asistență veche

Cele mai vechi clienți acceptați: Windows XP IE6, Java 6

server {
listen 80 default_server;
listen [::]:80 default_server;

# Redirect to HTTPS for all HTTP requests with a 301 Moved Permanently response.
return 301 https://$host$request_uri;
}

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;

# certificates sent to the client in SERVER HELLO are concatenated in ssl_certificate
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;

# Diffie-Hellman parameters for DHE ciphersuites, recommended 2048 bits
ssl_dhparam /path/to/dhparam.pem;

# Old configuration. Adjust to your needs.
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305: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:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:DES-CBC3-SHA:HIGH:SEED:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!RSAPSK:!aDH:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!SRP';
ssl_prefer_server_ciphers on;

# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;

# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;

## verify chain of trust of OCSP response using Root CA and Intermediate certs
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;

resolver ;

....
}

Se recomandă întotdeauna utilizarea întregului set de cipher-uri și a celei mai recente versiuni OpenSSL. Setul de cipher-uri din setările serverului indică prioritățile în care acestea vor fi utilizate, în funcție de setările clientului.

Cercetările arată că nu este suficient să instalați un certificat HTTPS. „Deși nu mai gestionăm cookie-urile ca în 2005 și ''TLS-ul decent'' a devenit comun, se dovedește că aceste noțiuni de bază nu sunt suficiente pentru a asigura securitatea unui număr surprinzător de mare de site-uri foarte populare”, — spun autorii lucrării. Pentru a asigura o protecție fiabilă a canalului între server și client, este necesar să urmăriți cu atenție infrastructura subdomeniilor proprii și a gazdelor externe de la care se furnizează conținut pentru site. Poate că ar merita să comandați un audit de la o companie externă care se specializează în securitatea informației.

HTTPS nu este întotdeauna atât de sigur cum pare. Vulnerabilitățile au fost găsite pe 5,5% dintre site-urile HTTPS

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster