HTTPS is niet altijd zo veilig als het lijkt. Kwetsbaarheden gevonden in 5,5% van de HTTPS-sites

HTTPS is niet altijd zo veilig als het lijkt. Kwetsbaarheden gevonden in 5,5% van de HTTPS-sites
Een van de beste sites van Alexa (middelste cirkel), beveiligd met HTTPS, met subdomeinen (grijs) en afhankelijkheden (wit), waarvan sommige kwetsbaar zijn (gestippelde vulling)

Tegenwoordig is het beveiligde HTTPS-verbindingspictogram een ​​standaard en zelfs noodzakelijk kenmerk van elke serieuze website geworden. Als certificaat ontbreekt, geven bijna alle recente browsers een waarschuwing dat verbinding met de site is "niet beveiligd" en raad af om vertrouwelijke informatie naar hen over te brengen.

Maar het blijkt dat de aanwezigheid van een β€˜slotje’ in de adresbalk niet altijd bescherming garandeert. Controle van 10 topsites Uit de Alexa-ranglijst bleek dat veel van hen blootgesteld zijn aan kritieke kwetsbaarheden in de SSL/TLS-protocollen, meestal via subdomeinen of afhankelijkheden. Volgens de auteurs van het onderzoek vergroot de complexiteit van moderne webapplicaties het aanvalsoppervlak aanzienlijk.

Onderzoeksresultaten

Het onderzoek is uitgevoerd door specialisten van de Ca' Foscari Universiteit van VenetiΓ« (ItaliΓ«) en de Technische Universiteit Wenen. Zij zullen een gedetailleerd rapport presenteren tijdens het 40e IEEE Symposium over Beveiliging en Privacy, dat van 20 tot en met 22 mei 2019 in San Francisco plaatsvindt.

De top 10 HTTPS-sites van Alexa en 000 bijbehorende hosts werden gecontroleerd. Kwetsbare cryptografische configuraties werden aangetroffen op 90 hosts, oftewel ongeveer 816% van het totaal:

  • 4818 zijn kwetsbaar voor MITM
  • 733 zijn kwetsbaar voor volledige TLS-decodering
  • 912 zijn kwetsbaar voor gedeeltelijke TLS-decodering

898 sites zijn volledig kwetsbaar voor hacken, dat wil zeggen dat ze de injectie van scripts van derden toestaan ​​en 977 sites laden inhoud van slecht beveiligde pagina's waarmee een aanvaller kan interacteren.

De onderzoekers benadrukken dat de 898 "volledig gecompromitteerde" bronnen online winkels, financiΓ«le dienstverleners en andere grote websites omvatten. 660 van de 898 websites laden externe scripts van kwetsbare hosts: dit is de belangrijkste bron van gevaar. Volgens de auteurs vergroot de complexiteit van moderne webapplicaties het aanvalsoppervlak aanzienlijk.

Er werden ook andere problemen ontdekt: 10% van de autorisatieformulieren kent problemen met de veilige gegevensoverdracht, waardoor er een dreiging bestaat voor wachtwoordlekken, 412 sites staan ​​het onderscheppen van cookies en β€˜sessiekaping’ toe en 543 sites zijn vatbaar voor cookie-integriteitsaanvallen (via subdomeinen).

Het probleem is dat de SSL/TLS-protocollen en -software de afgelopen jaren zijn verbeterd Er zijn een aantal kwetsbaarheden geΓ―dentificeerd: POODLE (CVE-2014-3566), BEAST (CVE-2011-3389), CRIME (CVE-2012-4929), BREACH (CVE-2013-3587) en Heartbleed (CVE-2014-0160). Bescherming hiertegen vereist een aantal server- en client-side instellingen om het gebruik van oudere, kwetsbare versies te voorkomen. Dit is echter geen eenvoudige opgave, omdat dergelijke instellingen vereisen dat er gekozen moet worden uit een breed scala aan cipher suites en protocollen die vrij moeilijk te begrijpen zijn. Het is niet altijd duidelijk welke cipher suites en protocollen als "veilig genoeg" worden beschouwd.

Aanbevolen instellingen

Er bestaat geen enkele officieel goedgekeurde en overeengekomen lijst met aanbevolen HTTPS-instellingen. Bijvoorbeeld: Mozilla SSL-configuratiegenerator Biedt verschillende configuratieopties, afhankelijk van het gewenste beveiligingsniveau. Hieronder vindt u bijvoorbeeld de aanbevolen instellingen voor de nginx 1.14.0-server:

Modern regime

Oudste ondersteunde cliΓ«nten: Firefox 27, Chrome 30, IE 11 en hoger Windows 7, Edge, Opera 17, Safari 9, Android 5.0 en Java 8

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

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

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

# certs 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;


# modern configuration. tweak to your needs.
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 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 <IP DNS resolver>;

....
}

Gemiddelde ondersteuning

Oudste ondersteunde cliΓ«nten: 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 all HTTP requests to HTTPS with a 301 Moved Permanently response.
return 301 https://$host$request_uri;
}

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

# certs 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 parameter for DHE ciphersuites, recommended 2048 bits
ssl_dhparam /path/to/dhparam.pem;

# intermediate configuration. tweak 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 <IP DNS resolver>;

....
}

Oude ondersteuning

Oudste ondersteunde cliΓ«nten: Windows XP IE6, Java 6

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

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

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

# certs 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 parameter for DHE ciphersuites, recommended 2048 bits
ssl_dhparam /path/to/dhparam.pem;

# old configuration. tweak 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 <IP DNS resolver>;

....
}

Het wordt aanbevolen om altijd de volledige cipher suite en de nieuwste versie van OpenSSL te gebruiken. De cipher suite in de serverinstellingen geeft de prioriteit aan waarin deze wordt gebruikt, afhankelijk van de clientinstellingen.

Uit het onderzoek blijkt dat het simpelweg installeren van een HTTPS-certificaat niet voldoende is. "Hoewel we niet meer met cookies omgaan zoals in 2005, en 'goede TLS' een clichΓ© is geworden, blijken deze basisprincipes niet voldoende te zijn om een ​​verrassend groot aantal zeer populaire websites te beveiligen." zeggen auteurs van het werk. Voor een betrouwbare bescherming van het kanaal tussen de server en de client is het noodzakelijk om de infrastructuur van uw eigen subdomeinen en externe hosts van waaruit de content voor de site wordt geleverd, nauwlettend te monitoren. Het kan zinvol zijn om een ​​audit te laten uitvoeren door een extern bedrijf dat gespecialiseerd is in informatiebeveiliging.

HTTPS is niet altijd zo veilig als het lijkt. Kwetsbaarheden gevonden in 5,5% van de HTTPS-sites

Bron: www.habr.com

Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers πŸ”₯ Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster