Com implementar les capçaleres HTTP de seguretat per prevenir les vulnerabilitats?

Sabeu que la majoria de les vulnerabilitats de seguretat es poden solucionar mitjançant la implementació de capçaleres necessàries a l’encapçalament de resposta?


La seguretat és tan essencial com el contingut i el SEO del vostre lloc web, i milers de llocs web es pirategen a causa d’una configuració errònia o falta de protecció. Si sou propietari d’un lloc web o enginyer en seguretat i voleu protegir el vostre lloc web Clickjacking, injecció de codi, tipus MIME, XSS, etc atacs, llavors aquesta guia us ajudarà.

En aquest article, parlaré de diverses capçaleres HTTP a implementar en diversos servidors web, vora de la xarxa & Proveïdors de CDN per a una millor protecció del lloc web.

Notes:

  • Se us demana que feu una còpia de seguretat del fitxer de configuració abans de fer canvis
  • És possible que alguns dels encapçalaments no siguin compatibles a tots els navegadors comproveu la compatibilitat abans de la implementació.
  • Mod_headers ha d’estar habilitat a Apache per implementar aquestes capçaleres. Assegureu-vos que la línia següent no es produeixi un comentari al fitxer httpd.conf.

Models modulus / mod_headers.so LoadModule headers_module

  • Després de la implementació, podeu utilitzar l’eina en línia de capçaleres segures per verificar els resultats.

Feu servir WordPress ?: és possible que vulgueu provar d’utilitzar Complement de capçaleres HTTP, que té cura d’aquestes capçaleres i molt més.

Protecció X-XSS

La capçalera de protecció X-XSS pot evitar cert nivell XSS Els atacs (scripts de lloc) i això és compatible amb IE 8+, Chrome, Opera, Safari & Android.

Google, Facebook, Github utilitzen aquesta capçalera i la majoria de la consultoria de proves de penetració us demanarà que la implementeu.

Hi ha quatre maneres possibles de configurar aquesta capçalera.

Valor del paràmetreSignificat
0Filtre XSS desactivat
1El filtre XSS va activar i desinfectar la pàgina si es detectava un atac
1; mode = blocEl filtre XSS es va activar i va impedir la reproducció de la pàgina si es detectava un atac
1; report = http: //example.com/report_URIEl filtre XSS va activar i va denunciar la violació si es detectava un atac

Posem en pràctica 1; mode = bloc als servidors web següents.

Servidor HTTP Apache

Afegiu la següent entrada a httpd.conf del vostre servidor web Apache

Conjunt de capçalera X-XSS-Protection "1; mode = bloc"

Reinicieu l’apache per verificar-ho

Nginx

Afegiu el següent a nginx.conf al bloc http

add_header X-XSS-Protection "1; mode = bloc";

El reinici de Nginx és necessari perquè es reflecteixi a la capçalera de resposta de la pàgina web.

MaxCDN

Si utilitzeu MaxCDN, A continuació, afegir capçalera és fàcil i vola.

Vés a les regles de vora >> feu clic a “Nova regla” i seleccioneu “Afegeix capçalera de protecció X-XSS” al desplegable.

edgerules

Microsoft IIS

  • Obriu el gestor d’IIS
  • Seleccioneu el lloc del qual heu d’habilitar la capçalera
  • Vés a “Capçaleres de resposta HTTP”.
  • Feu clic a “Afegeix” a les accions
  • Introduïu el nom, el valor i feu clic a D’acord

iis-x-xss-protection

  • Reinicieu IIS per veure els resultats

Seguretat de transport estricta HTTP

Capçalera de HSTS (HTTP Strict Transport Security) per assegurar que tota comunicació d’un navegador s’envia mitjançant HTTPS (HTTP Secure). D’aquesta manera, s’evita que HTTPS faci clic a través de les indicacions i redirigeix ​​les sol·licituds HTTP a HTTPS.

Abans d’implementar aquesta capçalera, heu d’assegurar-vos que tota la pàgina del vostre lloc web sigui accessible a través d’HTTPS, si no, estaran bloquejats.

La capçalera de HSTS és compatible amb totes les versions més recents d’un navegador com IE, Firefox, Opera, Safari i Chrome. Hi ha tres paràmetres de configuració.

Valor del paràmetreSignificat
edat màximaDurada (en segons) per indicar al navegador que les sol·licituds només estan disponibles mitjançant HTTPS.
includeSubDomainsLa configuració també és vàlida per al subdomini.
precàrregaFeu servir si voleu que el vostre domini s’inclogui al programa Llista de precàrrega de HSTS

Per tant, posem un exemple de configuració HSTS durant un any, inclosa la precàrrega de domini i sub-domini.

Servidor HTTP Apache

Podeu implementar HSTS a Apache afegint l’entrada següent al fitxer httpd.conf

Conjunt d’encapçalament Strict-Transport-Security "edat màxima = 31536000; inclouSubDomains; precàrrega"

Reinicieu apache per veure els resultats

Nginx

Per configurar HSTS a Nginx, afegiu la següent entrada a nginx.conf sota la directiva del servidor (SSL).

add_header Strict-Transport-Security ‘max-age = 31536000; inclouSubDomains; precàrrega ‘;

Com és habitual, haureu de reiniciar Nginx per verificar-lo

Flama de núvols

Si utilitzeu Cloudflare, llavors podeu habilitar HSTS en només uns clics.

  • Iniciar Sessió en Flama de núvols i seleccioneu el lloc
  • Vés a la pestanya “Crypto” i fes clic a “Activa HSTS”.

cloudflare-hsts-config

Seleccioneu la configuració que necessiteu i els canvis s’aplicaran al mateix temps.

Microsoft IIS

Inicieu el Gestor IIS i afegiu la capçalera si aneu a “Capçaleres de resposta HTTP” per al lloc respectiu.

iis-hsts

Reinicieu el lloc

Opcions de fotogrames X

Utilitzeu la capçalera X-Frame-Options Clickjacking vulnerabilitat al vostre lloc web. Implementant aquesta capçalera, demaneu que el navegador no incrusti la vostra pàgina web a frame / iframe. Això té algunes limitacions en el suport del navegador, així que heu de comprovar abans d’implementar-lo.

Podeu configurar els tres paràmetres següents.

Valor del paràmetreSignificat
SAMEORIGINEl marc / iframe del contingut només està permès des del mateix origen del lloc.
DENYEviteu que qualsevol domini incrusti el vostre contingut mitjançant frame / iframe.
PERMETPermet emmarcar el contingut només en un URI concret.

Vegem com implementar “DENY”, Per tant, cap domini no incrusta la pàgina web.

Apache

Afegiu la línia següent a httpd.conf i reinicieu el servidor web per verificar els resultats.

La capçalera sempre s’afegeix a X-Frame Options DENY

Nginx

Afegiu el següent a nginx.conf sota directiva / bloc del servidor.

add_header X-Frame-Options “DENY”;

Reinicieu per verificar els resultats

F5 LTM

Creeu un iRule amb el següent i associat amb el servidor virtual respectiu.

quan HTTP_RESPONSE {

HTTP :: inserció de capçalera "OPCIONS MARQUES X" "DENY"

}

No cal que reinicieu res, els canvis es reflecteixen a l’aire.

WordPress

També podeu obtenir aquesta capçalera implementada mitjançant WordPress. Afegiu el següent en un fitxer wp-config.php

capçalera (‘Opcions de fotograma X: DENY);

Si no us convé editar el fitxer, podeu utilitzar un complement tal com s’explica aquí o esmentat anteriorment.

Microsoft IIS

Afegiu la capçalera si aneu a “Capçaleres de resposta HTTP” per al lloc respectiu.

iis-x-frame-options

Reinicieu el lloc per veure els resultats.

Opcions de tipus de contingut X

Prevenir MIME afegint aquest capçalera a la resposta HTTP de la vostra pàgina web. Quan tingueu aquesta capçalera, indiqueu al navegador que consideri els tipus de fitxers com a definits i que no permeti que el contingut pugui arrasar. Només hi ha un paràmetre que heu d’afegir “nosniff”.

Anem a veure com anunciar aquesta capçalera.

Apache

Podeu fer-ho afegint la línia següent al fitxer httpd.conf

Conjunt d’encapçalament X-Content-Type-Options Opcions

No oblideu reiniciar el servidor web d’Apache per activar la configuració.

Nginx

Afegiu la línia següent al fitxer nginx.conf al bloc del servidor.

add_header X-Content-Type-Options-Nosniff;

Com és habitual, heu de reiniciar Nginx per comprovar els resultats.

Microsoft IIS

Obriu IIS i aneu a les capçaleres de resposta HTTP

Feu clic a Afegeix i introduïu el nom i el valor

tipus iis-mime

Feu clic a D’acord i reinicieu l’IIS per verificar els resultats.

Fixació de claus públiques HTTP

Minimitzar l’home al mig (MITM) risc d’atacs mitjançant el certificat de fixació. Això és possible amb HPKP Capçalera (Pinció de clau pública HTTP).

Podeu fixar la clau pública del certificat arrel o el certificat immediat. En el moment d’escriure, HPKP actualment funciona a Firefox i Chrome i suporta l’algorisme de hash SHA-256.

Hi ha quatre configuracions possibles de paràmetres.

Valor del paràmetreSignificat
report-uri = “url”Informeu a l’URL especificat si falla la validació de pins. Això és opcional.
pin-sha256 = “sha256key”Especifiqueu els pins aquí
edat màxima =El navegador recorda l’hora en segons que el lloc només és accessible mitjançant una de les tecles fixades.
IncludeSubDomainsAixò també és aplicable a un subdomini.

Veiem l’exemple de capçalera de HPKP a facebook.com

public-key-pins-report-only: max-age = 500; pin-sha256 ="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18 ="; pin-sha256 ="r / mIkG3eEpVdm + u / ko / cwxzOMo1bk4TyHIlByibiA5E ="; pin-sha256 ="q4PO2G2cbkZhZ82 + JgmRUyGMoAeozA + BSXVXQWB8XWQ ="; report-uri = http: //reports.fb.com/hpkp/

Si necessiteu implementar el vostre lloc web, dirigiu-vos al directori guia d’implementació redactada per Scott Helme.

Política de seguretat de contingut

Eviteu l’XSS, el clickjacking, injecció de codi els atacs implementant la capçalera de la Política de seguretat de contingut (CSP) de la vostra resposta HTTP de la pàgina web. CSP instruïu al navegador que carregui contingut permès a carregar al lloc web.

Tots els navegadors no admeten CSP, així que heu de verificar abans d’implementar-lo. Hi ha tres maneres d’aconseguir encapçalaments CSP.

  1. Política de seguretat de contingut – Nivell 2 / 1.0
  2. Política de seguretat de X-Contingut: obsolet
  3. X-Webkit-CSP: obsolet

Si encara l’utilitzaveu, ja podeu utilitzar l’actualització a la més recent.

Hi ha diversos paràmetres possibles per implementar CSP i podeu fer-ne referència PROPIETARI per una idea. Tanmateix, anem a passar els dos paràmetres més utilitzats.

Valor del paràmetreSignificat
predeterminat-srcCarregueu-ho tot d’una font definida
script-srcCarregueu només scripts des d’una font definida

El següent exemple de carregar-ho tot des del mateix origen en diversos servidors web.

Apache

Obteniu el següent afegit al fitxer httpd.conf i reinicieu el servidor web per tal que sigui efectiu.

Conjunt de capçaleres Política de seguretat de contingut "default-src ‘auto’;"

Nginx

Afegiu el següent al bloc del servidor al fitxer nginx.conf

add_header Política de seguretat de contingut "default-src ‘auto’;";

Microsoft IIS

Vés a les capçaleres de resposta HTTP del seu lloc respectiu al gestor d’IIS i afegeix el següent

iis-csp

Polítiques de dominis creuats per a permissions X

Feu servir productes Adobe com PDF, Flash, etc.? Podeu implementar aquesta capçalera per instruir al navegador com gestionar les sol·licituds a través d’un domini creuat. En implementar aquesta capçalera, restringiu la càrrega dels recursos del vostre lloc des d’altres dominis per evitar l’abús de recursos.

Hi ha algunes opcions disponibles.

ValorDescripció
capno es permet cap política
només per a mestrespermetre només la política mestra
tottot està permès
només per contingutPermet només un tipus de contingut determinat. Exemple: XML
només per ftpaplicable només per a un servidor FTP

Apache

Si no voleu permetre cap política.

Conjunt de capçaleres: polítiques de dominis creuats de permís X "cap"

Heu de veure la capçalera com la següent.

Nginx

I diguem que heu d’implementar el programa principal només afegiu el següent a nginx.conf sota el bloc del servidor.

add_header X-només permès per a polítiques de domini creuat de domini;

I el resultat.

Política de remitent

Voleu controlar la política de referència del vostre lloc? Hi ha certs beneficis de privacitat i seguretat. Tot i això, no totes les opcions són compatibles amb tots els navegadors, així que reviseu els vostres requisits abans de la implementació.

Referrer-Policy admet la sintaxi següent.

ValorDescripció
sense referènciaLa informació del remitent no s’enviarà amb la sol·licitud.
no-referrer-when-downgradeLa configuració predeterminada on s’envia el remitent al mateix protocol que HTTP a HTTP, HTTPS a HTTPS.
url no segurL’URL complet s’enviarà amb la sol·licitud.
del mateix origenEl remitent només s’enviarà pel mateix lloc d’origen.
d’origen estricteenviar només quan un protocol és HTTPS
d’origen estricte-quan-creuat-origenl’URL complet s’enviarà mitjançant un protocol estricte com HTTPS
origenenvieu l’URL d’origen a totes les sol·licituds
origen quan origen creuatenvia un URL complet al mateix origen. Tanmateix, envieu només l’URL d’origen en altres casos.

Apache

Podeu afegir el següent si voleu establir cap referència.

Conjunt d’encapçalament Política de referència "sense referència"

I després del reinici, haureu de tenir a les capçaleres de resposta.

Nginx

Suposem que heu d’implementar el mateix origen, així que heu d’afegir el següent.

add_header-Referència-Política del mateix origen;

Un cop configurats, hauríeu de tenir els resultats a continuació.

Esperen-CT

Una nova capçalera que encara està en estat experimental consisteix a instruir el navegador per validar la connexió amb servidors web per a la transparència de certificats (CT). Aquest projecte de Google té com a objectiu solucionar alguns dels defectes del sistema de certificats SSL / TLS.

Les tres variables següents estan disponibles per a la capçalera Expect-CT.

ValorDescripció
edat màximaEn segons, durant el temps que el navegador ha de mantenir la memòria cau de la política.
fer complirUna directiva opcional per fer complir la política.
informe-uriNavegador per enviar un informe a l’URL especificat quan no s’ha rebut la transparència del certificat vàlid.

Apache

Suposem que voleu aplicar aquesta política, els informes i la memòria cau durant 12 hores i haureu d’afegir el següent.

Conjunt d’encapçal Expect-CT ‘enforce, max-age = 43200, report-uri ="https://somedomain.com/report"’

I aquí teniu el resultat.

Nginx

Què passa si voleu informar i emmagatzemar la memòria cau durant 1 hora?

add_header Espereu-CT ‘edat màxima = 60, informe-uri ="https://mydomain.com/report"’;

La sortida seria.

Característica de la política

Controleu les funcions del navegador com ara geolocalització, pantalla completa, altaveu, USB, reproducció automàtica, altaveu, vibració, micròfon, pagament, contra, etc. per activar o desactivar dins d’una aplicació web.

Apache

Suposem que cal desactivar la funció de pantalla completa i, per fer-ho, podeu afegir el següent a httpd.conf o apache2.conf.

La capçalera sempre ha establert la Política de característiques "pantalla completa “cap” "

Què tal d’afegir múltiples funcions en una sola línia?

També és possible!

La capçalera sempre ha establert la Política de característiques "pantalla completa ‘cap’; micròfon ‘cap’"

Reinicieu Apache HTTP per veure el resultat.

El codi anterior indicarà al navegador que desactiveu pantalla completa i micròfon.

Nginx

Prenem un altre exemple: desactiva la funció de vibració.

add_header Política de funcions "vibrar ‘cap’;";

O desactiva la geolocalització, la càmera i l’altaveu.

add_header Política de funcions "geolocalització ‘cap’; càmera “cap”; altaveu ‘cap’;";

Aquí teniu la sortida després de reiniciar Nginx.

Tota la configuració de Nginx passa sota el bloc http de nginx.conf o qualsevol fitxer personalitzat que utilitzeu.

Conclusió

La seguretat d’un lloc web és difícil, i espero que implementant les capçaleres anteriors, afegiu una capa de seguretat. Si teniu un lloc web de negocis, també podeu considerar l’ús de WAF com a núvol SUCURI per protegir el vostre negoci en línia. El bo de SUCURI és que ofereix seguretat i rendiment, tant.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map