Kako implementirati varnostne glave HTTP za preprečevanje ranljivosti?

Ali veste, da je večino varnostnih ranljivosti mogoče odpraviti z izvajanjem potrebnih glav v odzivni glavi?


Varnost je bistvenega pomena kot vsebina in SEO vašega spletnega mesta, na tisoče spletnih strani pa se zlomi zaradi napačne konfiguracije ali pomanjkanja zaščite. Če ste lastnik spletnega mesta ali varnostni inženir in želite zaščititi svoje spletno mesto pred Clickjacking, vbrizgavanje kode, vrste MIME, XSS, itd. napadi, potem vam bo ta vodnik pomagal.

V tem članku bom govoril o različnih HTTP Headers, ki jih je treba implementirati v več spletnih strežnikov, omrežni rob & CDN ponudniki za boljšo zaščito spletnih strani.

Opombe:

  • Pred spremembami priporočamo, da vzamete varnostno kopijo konfiguracijske datoteke
  • Nekateri naslovi morda niso podprti v vseh brskalnikih preverite združljivost pred izvedbo.
  • Za izvajanje teh glav morajo biti v Apacheu omogočeni mod_headers. Prepričajte se, da je naslednja vrstica brez komentarja v datoteki httpd.conf.

LoadModule headers_module module / mod_headers.so

  • Po izvedbi lahko za preverjanje rezultatov uporabite spletno orodje z varnimi glavami.

Uporaba WordPressa ?: boste morda želeli poskusiti z uporabo HTTP Headers vtičnik, ki skrbi za te glave in še veliko več.

X-XSS-zaščita

Glava zaščite X-XSS lahko prepreči določeno raven XSS (cross-site scripting) napada, in to je združljivo z IE 8+, Chrome, Opera, Safari & Android.

Google, Facebook, Github uporabljajo to glavo in večina svetovalcev za penetracijsko testiranje vas bo prosila, da to izvedete.

Obstajajo štirje možni načini konfiguriranja te glave.

Vrednost parametraPomen
0XSS filter je onemogočen
1XSS filter je omogočil in saniral stran, če je bil odkrit napad
1; način = blokČe je napad odkrit, je omogočen filter XSS in preprečil upodabljanje strani
1; poročilo = http: //example.com/report_URIČe je napad odkrit, je omogočil filter XSS in kršitev prijavil

Uresničimo 1; način = blok v naslednjih spletnih strežnikih.

Apache HTTP Server

V httpd.conf spletnega strežnika Apache dodajte naslednji vnos

Nastavitev glave X-XSS-Protection "1; način = blok"

Znova zaženite apache, da preverite

Nginx

V blok http dodajte naslednje v nginx.conf

add_header X-XSS-zaščita "1; način = blok";

Ponovni zagon Nginx je potreben, da se to odrazi na glavi odzivov na vaši spletni strani.

MaxCDN

Če uporabljate MaxCDN, nato je dodajanje glave enostavno in na poti.

Pojdite na Pravila o robu >> kliknite “Novo pravilo” in na spustnem meniju izberite “Dodaj X-XSS-zaščitno glavo”.

edgerule

Microsoft IIS

  • Odprite upravitelj IIS
  • Izberite spletno mesto, za katerega morate omogočiti glavo
  • Pojdite na “Glave odzivov HTTP.”
  • Kliknite »Dodaj« pod dejanji
  • Vnesite ime, vrednost in kliknite V redu

iis-x-xss-zaščita

  • Za ogled rezultatov znova zaženite IIS

Stroga varnost pri prometu HTTP

Glava HSTS (stroga zaščita prometa HTTP) za zagotovitev, da se vsa komunikacija iz brskalnika pošlje prek HTTPS (HTTP Secure). To prepreči klic HTTPS skozi pozive in preusmeri zahteve HTTP na HTTPS.

Preden začnete uporabljati to glavo, morate zagotoviti, da so vse strani vašega spletnega mesta dostopne prek HTTPS, drugače bodo blokirane.

Glava HSTS je podprta v vseh največjih najnovejših različicah brskalnika, kot so IE, Firefox, Opera, Safari in Chrome. Obstajajo tri konfiguracije parametrov.

Vrednost parametraPomen
maks. starostTrajanje (v sekundah), ki brskalniku pove, da so zahteve na voljo samo prek HTTPS.
includeSubDomainsKonfiguracija velja tudi za poddomene.
prednastavitevUporabite, če želite, da se vaša domena vključi v Seznam prednastavitev HSTS

Vzemimo primer konfiguracije HSTS za eno leto, vključno s prednaložitvijo za domeno in poddeno.

Apache HTTP Server

HSTS lahko implementirate v Apache tako, da v datoteko httpd.conf dodate naslednji vnos

Nastavitev glave Strict-Transport-Security "najvišja starost = 31536000; includeSubDomains; prednastavitev"

Za ogled rezultatov znova zaženite apache

Nginx

Če želite konfigurirati HSTS v Nginxu, dodajte naslednji vnos v nginx.conf pod direktivo server (SSL)

add_header Strict-Transport-Security ‘max-starost = 31536000; includeSubDomains; prednaloži ‘;

Kot ponavadi boste za potrditev morali znova zagnati Nginx

Cloudflare

Če uporabljate Cloudflare, lahko HSTS omogočite v samo nekaj klikih.

  • Prijavite se v Cloudflare in izberite spletno mesto
  • Pojdite na zavihek »Kriptovaluta« in kliknite »Omogoči HSTS«.

cloudflare-hsts-config

Izberite nastavitve, ki jih potrebujete, in spremembe bodo uporabljene med letenjem.

Microsoft IIS

Zaženite upravitelja IIS in dodajte glavo tako, da odprete »Glave odzivov HTTP« za zadevno spletno mesto.

iis-hsts

Znova zaženite spletno mesto

Možnosti X-Frame

Za preprečevanje uporabite glavo X-Frame-Options Clickjacking ranljivost na vašem spletnem mestu. Z izvajanjem te glave brskalniku naročite, naj vaše spletne strani ne vgrajuje v frame / iframe. V podpori brskalnika so nekatere omejitve, zato jih morate preveriti, preden začnete izvajati.

Konfigurirate lahko naslednje tri parametre.

Vrednost parametraPomen
SAMEORIGINOkvir / okvir za vsebino je dovoljen samo iz istega mesta, kjer nastajajo.
ZANIKATIPreprečite, da bi katera koli domena vdelala vašo vsebino s pomočjo frame / iframe.
DOVOLJEN-ODDovoli oblikovanje vsebine samo na določenem URI-ju.

Poglejmo, kako izvajati “ZANIKATI“Tako nobena domena ne vgradi spletne strani.

Apač

V httpd.conf dodajte naslednjo vrstico in znova zaženite spletni strežnik, da preverite rezultate.

Glava vedno doda možnosti X-Frame DENY

Nginx

V nginx.conf pod direktivo / blok strežnika dodajte naslednje.

Možnosti X-Frame add_header »DENY«;

Znova zaženite, da preverite rezultate

F5 LTM

Ustvarite iRule z naslednjim in ga povežite z ustreznim virtualnim strežnikom.

ko HTTP_RESPONSE {

HTTP :: naslov vstavljen "X-OKVIRNE MOŽNOSTI" "ZANIKATI"

}

Ni vam treba znova zagnati, spremembe se odražajo v zraku.

WordPress

Tudi to besedilo lahko izvajate prek WordPress-a. V datoteko wp-config.php dodajte naslednje

header (‘Možnosti X-Frame: DENY);

Če urejate datoteko, vam ni všeč, lahko uporabite vtičnik, kot je razloženo tukaj ali zgoraj omenjeno.

Microsoft IIS

Dodajte glavo tako, da odprete »Glave odgovorov HTTP« za zadevno spletno mesto.

iis-x-frame-možnosti

Znova zaženite spletno mesto, da vidite rezultate.

Možnosti tipa X-vsebina

Preprečiti MIME vrste varnostnega tveganja z dodajanjem te glave v odziv HTTP vaše spletne strani. Ta glava naroči brskalniku, naj upošteva določene vrste datotek in onemogoči vohanje vsebine. Obstaja samo en parameter, ki ga morate dodati “nosniff”.

Poglejmo, kako oglaševati to glavo.

Apač

To lahko storite tako, da v datoteko httpd.conf dodate spodnjo vrstico

Nosilnik nastavitve glave z nastavitvami X-Content-Type-Options

Ne pozabite znova zagnati spletnega strežnika Apache in tako aktivirati konfiguracijo.

Nginx

V datoteko nginx.conf pod blok strežnika dodajte naslednjo vrstico.

add_header noniff X-Content-Type-Options;

Kot ponavadi morate za preverjanje rezultatov znova zagnati Nginx.

Microsoft IIS

Odprite IIS in pojdite na glave odzivov HTTP

Kliknite Dodaj in vnesite ime in vrednost

iis-mime-vrste

Kliknite V redu in znova zaženite IIS, da preverite rezultate.

Pripenjanje javnega ključa HTTP

Minimizirajte človeka v sredini (MITM) tveganje napadov s pripenjanjem potrdila. To je mogoče s HPKP (HTTP pripenjanje javnega ključa).

Lahko pripnete javni ključ korenskega potrdila ali takojšnje potrdilo. HPKP trenutno piše v Firefoxu in Chromu ter podpira hash algoritem SHA-256.

Obstajajo štiri možne konfiguracije parametrov.

Vrednost parametraPomen
report-uri = “URL”Poročajte na določen URL, če preverjanje pin ne uspe. To ni obvezno.
pin-sha256 = ”sha256key”Tu podajte zatiče
največja starost =Brskalnik si zapomni čas v sekundah, do katerega je spletno mesto dostopno le z eno od pripetih tipk.
VključiSubDomainsTo velja tudi za poddomene.

Oglejmo si primer glave HPKP z facebook.com

javni ključi-zatiči-samo za poročilo: največja starost = 500; pin-sha256 ="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18 ="; pin-sha256 ="r / mIkG3eEpVdm + u / ko / cwxzOMo1bk4TyHIlByibiA5E ="; pin-sha256 ="q4PO2G2cbkZhZ82 + JgmRUyGMoAeozA + BSXVXQWB8XWQ ="; report-uri = http: //reports.fb.com/hpkp/

Če je to nekaj, kar morate implementirati na svojem spletnem mestu, pojdite na Navodila za izvajanje napisala Scott Helme.

Pravilnik o varnosti vsebine

Prepreči XSS, klikanje, vbrizgavanje kode napada z izvajanjem glave varnostne politike vsebine (CSP) v odzivu HTTP na vaši spletni strani. CSP navodilo brskalnika, da naloži dovoljeno vsebino za nalaganje na spletno mesto.

Vse brskalniki ne podpirajo CSP, zato jo morate preveriti, preden jo začnete izvajati. Obstajajo trije načini, kako doseči glave CSP.

  1. Varnost vsebine-politika – raven 2 / 1.0
  2. Politika varnosti vsebine X – zastarela
  3. X-Webkit-CSP – zastarelo

Če še vedno uporabljate zastarelo, boste morda morda nadgradili na najnovejšo.

Za uvedbo CSP je možnih več parametrov, na katere se lahko sklicujete OWASP za idejo. Vendar pa pojdimo skozi dva najpogosteje uporabljena parametra.

Vrednost parametraPomen
privzeti-srcVse naložite iz definiranega vira
skript-srcNaložite samo skripte iz določenega vira

Naslednji primer nalaganja vsega istega izvora v različne spletne strežnike.

Apač

V datoteko httpd.conf dobite naslednje in znova zaženite spletni strežnik.

Nastavitev glave za vsebino-varnostna politika "privzeti-src ‘self’;"

Nginx

V strežniški blok v datoteki nginx.conf dodajte naslednje

add_header-varnostna politika-vsebina "privzeti-src ‘self’;";

Microsoft IIS

Pojdite na glave odzivov HTTP za svoje spletno mesto v upravitelju IIS in dodajte naslednje

iis-csp

Politike X-Dovoljene navzkrižne domene

Ali uporabljate izdelke Adobe, kot so PDF, Flash itd.? To glavo lahko implementirate tako, da brskalniku naročite, kako ravnati z zahtevami prek medvrstne domene. Z izvajanjem te glave omejite nalaganje sredstev spletnega mesta z drugih domen, da preprečite zlorabo virov.

Na voljo je nekaj možnosti.

VrednostOpis
nobennobena politika ni dovoljena
samo za mojstradovolite samo glavno politiko
vsevse je dovoljeno
samo vsebinskoDovoli samo določeno vrsto vsebine. Primer – XML
samo-ftp-samovelja samo za FTP strežnik

Apač

Če ne želite dovoliti nobenega pravilnika.

Nastavitev glave X-Dovoljena-navzkrižna domena-politike "noben"

Morali bi videti glavo, kot je naslednja.

Nginx

In recimo, da morate implementirati samo master in nato v nginx.conf pod blok strežnika dodati naslednje.

add_header X-Permissions-Cross-Domain-Policies samo za mojstra;

In rezultat.

Politika napotitve

Želite nadzirati politiko napotitve svojega spletnega mesta? Obstajajo določene prednosti zasebnosti in varnosti. Vendar pa vsi brskalniki ne podpirajo vseh možnosti, zato pred uvedbo preglejte svoje zahteve.

Referrer-Policy podpira naslednjo skladnjo.

VrednostOpis
no-napotiteljPodatki o napotitvi z zahtevo ne bodo poslani.
brez napotitve pri znižanju stopnjePrivzeta nastavitev, kjer se napotitelj pošlje istemu protokolu kot HTTP v HTTP, HTTPS pa v HTTPS.
nevaren-urlcelotni URL bo poslan z zahtevo.
isto porekloReferenca bo poslana samo za isto spletno mesto.
strogega poreklapošlji samo, če je protokol HTTPS
strogega izvora, ko je navzkrižno porekloceloten URL bo poslan po strogem protokolu, kot je HTTPS
poreklapošlje izvorni URL v vseh zahtevah
poreklo, ko je navzkrižno poreklopošljite POPOLNI URL na istem izvoru. Vendar pa pošljite samo izvorni URL v drugih primerih.

Apač

Če želite nastaviti no-reference, lahko dodate naslednje.

Nastavitev glave za usmerjanje "no-napotitelj"

Po ponovnem zagonu bi morali imeti glave odzivov.

Nginx

Recimo, da morate uporabiti isto izvorno različico, zato morate dodati naslednje.

add_header pravilnik o napotitvah z istim izvorom;

Ko ste konfigurirani, bi morali imeti spodnje rezultate.

Pričakujte-CT

Novo poglavje, ki je še v preizkusnem stanju, je navodilo, da brskalnik naroči, da potrdi povezavo s spletnimi strežniki za preglednost certifikata (CT). Google želi s tem projektom odpraviti nekatere pomanjkljivosti v sistemu potrdil SSL / TLS.

Naslednje tri spremenljivke so na voljo za glavo Expect-CT.

VrednostOpis
maks. starostV nekaj sekundah, koliko časa naj brskalnik predpomni pravilnik.
uveljavitiNeobvezna direktiva za uveljavljanje politike.
poročilo-uriBrskalnik pošlje poročilo na določen URL, ko veljavna preglednost potrdila ni prejeta.

Apač

Predpostavimo, da želite uveljaviti ta pravilnik, poročati in predpomniti 12 ur, nato pa morate dodati naslednje.

Nastavitev glave Expect-CT ‘uveljavi, maks. Starost = 43200, poročilo-uri ="https://somedomain.com/report"’

In, tukaj je rezultat.

Nginx

Kaj pa, če želite poročati in predpomniti 1 uro?

add_header Expect-CT ‘max-age = 60, report-uri ="https://mydomain.com/report"’;

Izhod bi bil.

Funkcijska politika

Nadzorite funkcije brskalnika, kot so geolokacija, celozaslonski zvočnik, USB, samodejna igra, zvočnik, vibriranje, mikrofon, plačilo, vr itd., Da omogočite ali onemogočite v spletni aplikaciji.

Apač

Recimo, da morate onemogočiti funkcijo celozaslonskega zaslona in v ta namen lahko dodate naslednje v httpd.conf ali apache2.conf.

Header je vedno nastavljen z lastnostno politiko "celozaslonski način “nič” "

Kako je z dodajanjem več funkcij v eni vrstici?

Tudi to je mogoče!

Header je vedno nastavljen z lastnostno politiko "celozaslonski ‘noben’; mikrofon ‘nič’"

Znova zaženite Apache HTTP in si oglejte rezultat.

Zgornja koda bo brskalniku naročila, da onemogoči celozaslon in mikrofon.

Nginx

Vzemimo še en primer – onemogočite funkcijo vibriranja.

add_header-politika značilnosti "vibrirati ‘nič’;";

Ali pa onemogočite geolokacijo, kamero in zvočnik.

add_header-politika značilnosti "geolokacija „noben“; kamera ‘nobena’; govornik ‘noben’;";

Tu je izhod po ponovnem zagonu Nginx.

Vsa konfiguracija Nginx gre pod blok http v nginx.conf ali katero koli datoteko po meri, ki jo uporabljate.

Zaključek

Zaščita spletnega mesta je zahtevna in upam, da z uvedbo zgornjih glav dodate plast varnosti. Če imate spletno mesto podjetja, potem boste morda želeli uporabiti tudi oblak-WAF SUCURI za zaščito vašega spletnega podjetja. Dobra stvar pri SUCURI je, da ponuja varnost in delovanje obeh.

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