HTTP Security Headers

Ti piacciono il sito e la community? Questo è il posto giusto per lasciare commenti, suggerimenti e... critiche.
Regole del forum
Rispondi
Avatar utente
hashcat
Livello: Storage Area Network (12/15)
Livello: Storage Area Network (12/15)
Messaggi: 1946
Iscritto il: gio mag 02, 2013 4:13 pm

HTTP Security Headers

Messaggio da hashcat »

Mentre analizzavo le intestazioni di risposta di TurboLab.it relative ad una richiesta GET ho notato che l'intestazione X-Frame-Options presenta un valore invalido (X-Frame-Options: SAME-ORIGIN).
Colgo l'occasione per suggerire l'adozione di un paio di intestazioni che non richiedono modifiche di alcun genere ma sono benefiche in quanto garantiscono un incremento della sicurezza per chi visita il sito:

X-Frame-Options: SAMEORIGIN o X-Frame-Options: DENY (potrebbe provocare malfunzionamenti).
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block

In particolare sarebbe una buona idea adottare la CSP (Content Security Policy). Appena possibile cercherò di elaborare una configurazione di base permissiva su cui modellare quella definitiva.

:yes

EDIT: Noto solo ora che le intestazioni vengono applicate solo a turbolab.it: bug.turbolab.it, ad esempio, ne è sprovvisto.
“The quieter you become, the more you can hear”

System
System
Bot ufficiale TurboLab.it
Bot
Messaggi:
Iscritto il: sab dic 31, 2016 6:19 pm
Contatta: Contatta

Re: HTTP Security Headers

Messaggio da System » sab feb 01, 2014 1:34 pm


Avatar utente
Zane
Fondatore
Fondatore
Messaggi: 4666
Iscritto il: mer mag 01, 2013 11:20 am
Contatta:

Re: HTTP Security Headers

Messaggio da Zane »

Ho corretto X-Frame-Options (avevo fatto un copia-incolla da un sito che, evidentemente, riportava un'indicazione sbagliata)... Però lo lasciamo a SAMEORIGIN, e non DENY, perché potrei aver bisogno di usare qualche frame interno qua e là.

Bene per gli altri due: ho messo anche loro.... ma cerchiamo di tenere le antenne dritte per captare problemi di compatibilità!!

Per CSP: potrebbe crearci qualche problemino, quindi prima di perdere due ore a farlo tutto per bene... fammi vedere delle bozze che così ne valutiamo insieme la fattibilità!
Zane - TurboLab.it

Avatar utente
hashcat
Livello: Storage Area Network (12/15)
Livello: Storage Area Network (12/15)
Messaggi: 1946
Iscritto il: gio mag 02, 2013 4:13 pm

Re: HTTP Security Headers

Messaggio da hashcat »

Sbaglio o li hai abilitati solo per il sottodominio bug.turbolab.it?
“The quieter you become, the more you can hear”

Avatar utente
Zane
Fondatore
Fondatore
Messaggi: 4666
Iscritto il: mer mag 01, 2013 11:20 am
Contatta:

Re: HTTP Security Headers

Messaggio da Zane »

Immagine
Zane - TurboLab.it

Avatar utente
hashcat
Livello: Storage Area Network (12/15)
Livello: Storage Area Network (12/15)
Messaggi: 1946
Iscritto il: gio mag 02, 2013 4:13 pm

Re: HTTP Security Headers

Messaggio da hashcat »

@Zane
Come non detto (scherzetto di Firefox).
:bam

EDIT: Non mi sbagliavo: per qualche strano motivo, le intestazioni sembrano essere inviate solo in risposta a richieste via HTTPS.

:s
“The quieter you become, the more you can hear”

Avatar utente
Zane
Fondatore
Fondatore
Messaggi: 4666
Iscritto il: mer mag 01, 2013 11:20 am
Contatta:

Re: HTTP Security Headers

Messaggio da Zane »

Vero. Fatto così perché presto sarà tutto solo https
Zane - TurboLab.it

Avatar utente
hashcat
Livello: Storage Area Network (12/15)
Livello: Storage Area Network (12/15)
Messaggi: 1946
Iscritto il: gio mag 02, 2013 4:13 pm

Re: HTTP Security Headers

Messaggio da hashcat »

Zane ha scritto:Vero. Fatto così perché presto sarà tutto solo https
Vi sono nuovi sviluppi riguardo al da farsi alla scadenza dell'attuale certificato?

EDIT: Sto cercando di elaborare la configurazione per il CSP, ho alcune domande: i font vengono caricati da dove (locale, indirizzo remoto ?), quali risorse vengono incorporate nelle pagine (non JS (via frame / iframe, plugin / audio-video)).
Vi sono eval() nel js utilizzato?

Per evitare malfunzionamenti pensavo, in un primo tempo, di abilitare la CSP grezza in modalità solo reporting (non filtra nulla ma registra ed inoltra le violazioni della policy ad una reltiva pagina del sito che le raccoglie). Maggiori informazioni QUI e QUI.

:fiu
“The quieter you become, the more you can hear”

Avatar utente
Zane
Fondatore
Fondatore
Messaggi: 4666
Iscritto il: mer mag 01, 2013 11:20 am
Contatta:

Re: HTTP Security Headers

Messaggio da Zane »

Font: per il momento "locali", ma è possibile che un domani anche "remoti".

Risorse incorporate: oltre a JS, ci sono iframe e Flash. Devono essere acettabili anche <audio> e <video>.

eval(): io non lo uso, ma non so dire a livello di librerie terze.

Bene per il solo-reporting!
Zane - TurboLab.it

Avatar utente
Andy94
Livello: Workstation (10/15)
Livello: Workstation (10/15)
Messaggi: 1364
Iscritto il: mer mag 01, 2013 1:35 pm
Località: Villorba (TV)

Re: HTTP Security Headers

Messaggio da Andy94 »

Zane ha scritto:Font: per il momento "locali", ma è possibile che un domani anche "remoti".
Nota al volo: non è un problema. Se li prenderemo remoti lo faremo da Google Web Fonts, che serve anche in HTTPS.
Se la pazienza è una virtù, attendere è un'arte...
Stiamo tornando...

Avatar utente
hashcat
Livello: Storage Area Network (12/15)
Livello: Storage Area Network (12/15)
Messaggi: 1946
Iscritto il: gio mag 02, 2013 4:13 pm

Re: HTTP Security Headers

Messaggio da hashcat »

Ho completato la policy di prova (in modalità solo report): che faticata!

Google Chrome, Firefox, Opera e Safari:

Codice: Seleziona tutto

Content-Security-Policy-Report-Only: "default-src https:; script-src 'self' 'unsafe-inline' 'unsafe-eval' cdnjs.cloudflare.com/ajax/libs/fullcalendar/ www.google.com/uds/ www.google.com/cse/cse.js www.google.com/ads/search/module/ads/ www.google.com/jsapi www.google-analytics.com/analytics.js ajax.googleapis.com/ajax/libs/jqueryui/ www.googleapis.com/customsearch/ html5shim.googlecode.com/svn/trunk/html5.js code.jquery.com connect.facebook.net apis.google.com platform.twitter.com; style-src 'self' 'unsafe-inline' www.google.com/uds/api/search/ www.google.com/cse/ cdnjs.cloudflare.com/ajax/libs/fullcalendar/; img-src 'self' clients1.google.com www.google.com/cse/ www.googleapis.com www.google.com/uds/css/ i.imgur.com dl.dropboxusercontent.com imageshack.com imageshack.us i.creativecommons.org/l/by-nc-sa/ encrypted-tbn0.gstatic.com encrypted-tbn1.gstatic.com encrypted-tbn2.gstatic.com encrypted-tbn3.gstatic.com caldera1.seflow.it:8444/banda/banda.php; frame-src 'self' www.youtube.com www.google.com/cse; font-src 'self' themes.googleusercontent.com/static/fonts/ fonts.googleapis.com; connect-src 'self'; report-uri https://turbolab.it/csp/report.php"
Internet Explorer (IE 10+):

Codice: Seleziona tutto

X-Content-Security-Policy-Report-Only: "default-src https:; script-src 'self' 'unsafe-inline' 'unsafe-eval' cdnjs.cloudflare.com/ajax/libs/fullcalendar/ www.google.com/uds/ www.google.com/cse/cse.js www.google.com/ads/search/module/ads/ www.google.com/jsapi www.google-analytics.com/analytics.js ajax.googleapis.com/ajax/libs/jqueryui/ www.googleapis.com/customsearch/ html5shim.googlecode.com/svn/trunk/html5.js code.jquery.com connect.facebook.net apis.google.com platform.twitter.com; style-src 'self' 'unsafe-inline' www.google.com/uds/api/search/ www.google.com/cse/ cdnjs.cloudflare.com/ajax/libs/fullcalendar/; img-src 'self' clients1.google.com www.google.com/cse/ www.googleapis.com www.google.com/uds/css/ i.imgur.com dl.dropboxusercontent.com imageshack.com imageshack.us i.creativecommons.org/l/by-nc-sa/ encrypted-tbn0.gstatic.com encrypted-tbn1.gstatic.com encrypted-tbn2.gstatic.com encrypted-tbn3.gstatic.com caldera1.seflow.it:8444/banda/banda.php; frame-src 'self' www.youtube.com www.google.com/cse; font-src 'self' themes.googleusercontent.com/static/fonts/ fonts.googleapis.com; connect-src 'self'; report-uri https://turbolab.it/csp/report.php"
L'ho provata in maniera discretamente approfondita e non sembra causare alcun problema (la mia configurazione di default blocca i plugin sociali, quindi non sono sicuro che questi funzionino correttamente).
Come pagina d'esempio a cui inoltrare il report ho scelto: https://turbolab.it/csp/report.php (può essere cambiata a piacimento).

Cosa fa?
  • Vieta il caricamento di risorse non fornite attraverso https
  • Script: permette l'inclusione di script inline, provenienti dallo stesso host, consente eval (credo sia necessario a jquery) e dai domini consentiti (whitelist di quelli utilizzati su TLI).
  • CSS: permette l'inclusione di css inline, provenienti dallo stesso host e dai domini consentiti (whitelist di quelli utilizzati su TLI).
  • Immagini: permette l'inclusione se provenienti dallo stesso host e dai domini consentiti (whitelist di quelli utilizzati su TLI + imageshack + imgur + dropbox).
  • Font: permette l'inclusione se provenienti dallo stesso host e dai domini consentiti (whitelist per futuri font di google)
  • Media: permette l'inclusione se provenienti dallo stesso host (<audio>, <video>): al momento non utilizzato
  • Embed (non iframe): permette l'inclusione se provenienti dallo stesso host: al momento non utilizzato
  • Frame: permette l'inclusione se provenienti dallo stesso host e dai domini consentiti (whitelist di quelli utilizzati su TLI).
:fiu

P.S.: Vi sono due configurazioni poiché la CSP presenta, in alcuni browser, implementazioni non standard (cambia principalmente il tag). Maggiori informazioni QUI.

EDIT: Mi aspetto una grande quantità di segnalazioni di violazione della policy (inoltrate alla pagina di report) causate dalla presenza di immagini fornite via http o domini non standard (discussioni come "topolone" & co.).

EDIT 2: Ho provato la policy in locale attraverso l'estensione CSP Tester (Chrome).
“The quieter you become, the more you can hear”

Avatar utente
Zane
Fondatore
Fondatore
Messaggi: 4666
Iscritto il: mer mag 01, 2013 11:20 am
Contatta:

Re: HTTP Security Headers

Messaggio da Zane »

nosniff eliminato (crea problemi).
Zane - TurboLab.it

Avatar utente
hashcat
Livello: Storage Area Network (12/15)
Livello: Storage Area Network (12/15)
Messaggi: 1946
Iscritto il: gio mag 02, 2013 4:13 pm

Re: HTTP Security Headers

Messaggio da hashcat »

Zane ha scritto:nosniff eliminato (crea problemi).
Ho risposto QUI (nell'altro topic).

:approvo
“The quieter you become, the more you can hear”

Avatar utente
Zane
Fondatore
Fondatore
Messaggi: 4666
Iscritto il: mer mag 01, 2013 11:20 am
Contatta:

Re: HTTP Security Headers

Messaggio da Zane »

nosniff ripristinato.
Zane - TurboLab.it

Avatar utente
hashcat
Livello: Storage Area Network (12/15)
Livello: Storage Area Network (12/15)
Messaggi: 1946
Iscritto il: gio mag 02, 2013 4:13 pm

Re: HTTP Security Headers

Messaggio da hashcat »

Ho apportato lievi modifiche alla policy di prova poiché il calendario ed i grafici mostrati nella pagina "statistiche" venivano bloccatti.

;)
“The quieter you become, the more you can hear”

Avatar utente
Zane
Fondatore
Fondatore
Messaggi: 4666
Iscritto il: mer mag 01, 2013 11:20 am
Contatta:

Re: HTTP Security Headers

Messaggio da Zane »

Ok!

Tranquillo che non me ne sono dimenticato: porta pazienza ancora qualche tempo e lo attivo, promesso.
Zane - TurboLab.it

Avatar utente
hashcat
Livello: Storage Area Network (12/15)
Livello: Storage Area Network (12/15)
Messaggi: 1946
Iscritto il: gio mag 02, 2013 4:13 pm

Re: R: HTTP Security Headers

Messaggio da hashcat »

Zane ha scritto:Ok!

Tranquillo che non me ne sono dimenticato: porta pazienza ancora qualche tempo e lo attivo, promesso.
Con il precedente messaggio non intendevo in alcun modo fare pressione e metterti fretta.

Questa funzionalità rappresenta sicuramente un miglioramento secondario.
Secondo me, il vero problema che bisogna cercare, in qualche modo, di risolvere è riguardante la posta elettronica inviata da TurboLab.it classificata come spam da Microsoft e (potenzialmente) da altri provider.

P.S.: Pensi sia una buona idea menzionare il problema nelle e-mail inviate (chiedendo il contributo volontario degli utenti nel segnalarle come legittime) ed in fase di registrazione per le iscrizioni non VIP (mediante un avviso) ? Un'ulteriore possibilità sarebbe quella di pubblicare un post informativo sul portale e di porlo in evidenza per informare gli iscritti che non frequentano assiduamente TLI ma postano domande o abilitano gli aggiornamenti di una discussione di cui non verrebbero mai notificati correttamente perchè sepolti nella cartella di posta indesiderata.
“The quieter you become, the more you can hear”

Avatar utente
hashcat
Livello: Storage Area Network (12/15)
Livello: Storage Area Network (12/15)
Messaggi: 1946
Iscritto il: gio mag 02, 2013 4:13 pm

Re: HTTP Security Headers

Messaggio da hashcat »

Segnalo un problema che avevo notato da molto tempo: il CDN non adotta gli header di sicurezza predisposti per il dominio principale

Codice: Seleziona tutto

Strict-Transport-Security: max-age=15768000;
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Tutti, tranne l'X-Frame-Options (che deve valutare Zane a seconda dell'uso che ne fa (ad occhio dovrebbe anch'esso andare bene)), dovrebbero poter essere aggiunti al CDN senza procurare alcun genere di problemi.

;)
“The quieter you become, the more you can hear”

System
System
Bot ufficiale TurboLab.it
Bot
Messaggi:
Iscritto il: sab dic 31, 2016 6:19 pm
Contatta: Contatta

Re: Re: HTTP Security Headers

Messaggio da System » gio ago 20, 2015 5:13 pm


Rispondi
  • Argomenti simili
    Risposte
    Visite
    Ultimo messaggio