Hogyan valósíthatjuk meg a biztonsági HTTP-fejléceket a biztonsági rések megelőzésére?

Tudja, hogy a legtöbb biztonsági rést ki lehet javítani a szükséges fejlécek beépítésével a válasz fejlécébe?


A biztonság olyan nélkülözhetetlen, mint a webhely tartalma és SEO, és több ezer webhelyet hibás konfiguráció vagy a védelem hiánya miatt csapkodnak fel. Ha Ön egy weboldal tulajdonosa vagy biztonsági mérnök, és védi a webhelyet a Clickjacking, kódinjekció, MIME típusok, XSS, támadások stb., akkor ez az útmutató segít.

Ebben a cikkben különféle HTTP fejlécekről fogok beszélni, amelyeket több webszerverre be kell építeni, hálózati élükön & CDN szolgáltatók a webhelyek jobb védelme érdekében.

Megjegyzés:

  • Javasoljuk, hogy a módosítások elvégzése előtt készítsen biztonsági másolatot a konfigurációs fájlról
  • Előfordulhat, hogy néhány fejlécet nem támogatja az összes böngésző, tehát nézd meg a kompatibilitást a megvalósítás előtt.
  • A fejlécek végrehajtásához az Apache-ban engedélyezni kell a Mod_headers-t. Győződjön meg arról, hogy a következő sort nem kommentálja a httpd.conf fájl.

LoadModule fejlécek_modul modulok / mod_headers.so

  • A megvalósítás utáni biztonságos fejlécek online eszközt használhat az eredmények ellenőrzéséhez.

A WordPress használatát ?: érdemes lehet kipróbálni a felhasználást HTTP fejlécek beépülő modul, amely gondoskodik ezekről a fejlécekről és még sok másról.

X-XSS-Protection

Az X-XSS-Protection fejléc megakadályozhatja a szint bizonyos szintjét XSS (webhelyközi szkriptek) támadások, és ez kompatibilis az IE 8+, Chrome, Opera, Safari alkalmazásokkal & Android.

A Google, a Facebook, a Github használja ezt a fejlécet, és a penetrációs tesztelési tanácsadók nagy része felkéri Önt ennek megvalósítására.

A fejléc négyféle módon konfigurálható.

Paraméter értékeJelentés
0Az XSS szűrő le van tiltva
1Az XSS szűrő engedélyezte és fertőtlenítette az oldalt, ha támadást észleltek
1; mode = blokkAz XSS szűrő engedélyezte és megakadályozta az oldal megjelenítését, ha támadást észleltek
1; jelentés = http: //example.com/report_URIAz XSS szűrő engedélyezve van, és jelentette a jogsértést, ha támadást észleltek

Végezzük el 1; mode = blokk a következő webszerverekben.

Apache HTTP szerver

Adja hozzá a következő bejegyzést az Apache webszerver httpd.conf fájljába

Fejléckészlet X-XSS-Protection "1; mode = block"

Indítsa újra az apache-t, hogy ellenőrizze

nginx

Adja hozzá a következőt az nginx.conf fájlban a http blokk alatt

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

Nginx újraindításra van szükség ahhoz, hogy ez tükröződjön a weboldal válaszfejlécében.

MaxCDN

Ha használ MaxCDN, akkor a fejléc hozzáadása könnyű és gyors.

Ugrás az élszabályokhoz >> kattintson az „Új szabály” elemre, és válassza a legördülő menüből az „X-XSS-védelmi fejléc hozzáadása” elemet.

edgerules

Microsoft IIS

  • Nyissa meg az IIS kezelőt
  • Válassza ki azt a webhelyet, amelyben engedélyezni kell a fejlécet
  • Lépjen a „HTTP válasz fejlécek” oldalra.
  • Kattintson a „Hozzáadás” elemre a műveletek alatt
  • Írja be a nevet, az értéket, majd kattintson az OK gombra

iis-x-XSS-védelem

  • Indítsa újra az IIS-t az eredmények megtekintéséhez

HTTP szigorú szállítási biztonság

A HSTS (HTTP Strict Transport Security) fejléc biztosítja a böngészőből származó összes kommunikáció HTTPS (HTTP Secure) útján történő továbbítását. Ez megakadályozza a HTTPS kattintását a figyelmeztetésekben, és átirányítja a HTTP kéréseket a HTTPS-be.

A fejléc végrehajtása előtt meg kell győződnie arról, hogy minden webhelyed elérhető lesz a HTTPS-en keresztül, különben azok blokkolva vannak.

A HSTS fejlécet támogatja egy olyan böngésző legfontosabb legújabb verziója, mint például az IE, a Firefox, az Opera, a Safari és a Chrome. Három paraméter konfiguráció van.

Paraméter értékeJelentés
max-ageIdőtartam (másodpercben), amely azt jelzi a böngészőnek, hogy a kérések csak HTTPS-en érhetők el.
includeSubDomainsA konfiguráció az aldomainre is érvényes.
előtöltésHasználja, ha szeretné, hogy domainje belekerüljön a HSTS előterhelési lista

Tegyünk például egy példát arra, hogy a HSTS-et egy évre konfiguráltuk, ideértve a domain és az al-domain előterjesztését.

Apache HTTP szerver

A HSTS telepítéséhez az Apache alkalmazásban a következő bejegyzés hozzáadása a httpd.conf fájlba

Fejléckészlet Szigorú-Szállítás-Biztonság "max-kor = 31536000; includeSubDomains; előtöltés"

Indítsa újra az apache alkalmazást az eredmények megtekintéséhez

nginx

A HSTS Nginx-ben történő konfigurálásához adja hozzá az nginx.conf következő bejegyzését a szerver (SSL) irányelv alatt

add_header Szigorú szállítás-biztonság ‘max-age = 31536000; includeSubDomains; előtöltés’;

Mint általában, az ellenőrzéshez újra kell indítania az Nginx-et

CloudFlare

Ha Cloudflare-t használ, akkor néhány kattintással engedélyezheti a HSTS-t.

  • Bejelentkezni CloudFlare és válassza ki a webhelyet
  • Lépjen a „Crypto” fülre, és kattintson az „Enable HSTS” lehetőségre.

CloudFlare-TGV-config

Válassza ki a kívánt beállításokat, és a változtatások menet közben végrehajtásra kerülnek.

Microsoft IIS

Indítsa el az IIS kezelőt, és adja hozzá a fejlécet az adott webhely „HTTP válaszfejlécek” menüpontjába.

iis-TGV

Indítsa újra a webhelyet

X-Frame-Options

Használja az X-Frame-Options fejlécet a megelőzéshez Clickjacking sebezhetőség a webhelyén. A fejléc megvalósításával arra utasítja a böngészőt, hogy ne ágyazza be weboldalát frame / iframe keretbe. Ennek bizonyos korlátozásai vannak a böngésző támogatása terén, ezért ellenőriznie kell a végrehajtását.

A következő három paramétert konfigurálhatja.

Paraméter értékeJelentés
SAMEORIGINA keret / iframe tartalom csak ugyanabból a webhelyből származik.
TAGADNIMegakadályozhatja, hogy bármely domain beágyazza a tartalmat a frame / iframe segítségével.
Allow-FROMEngedélyezze, hogy a tartalom csak egy adott URI-re kereteződjön.

Vessen egy pillantást a „TAGADNI”Tehát egyetlen domain sem ágyazza be a weboldalt.

Apache

Adja hozzá a következő sort a httpd.conf fájlhoz, és indítsa újra a webszervert az eredmények ellenőrzéséhez.

A fejléc mindig csatolja az X-Frame-Options DENY-t

nginx

Adja hozzá a következőt az nginx.conf fájlban a kiszolgálói irányelv / blokk alatt.

add_header X-Frame-Opciók “DENY”;

Indítsa újra az eredmények ellenőrzéséhez

F5 LTM

Hozzon létre egy iRule-ot az alábbiakkal, és társítsa a megfelelő virtuális szerverhez.

amikor HTTP_RESPONSE {

HTTP :: fejléc beillesztése "X-Frame-Options" "TAGADNI"

}

Semmit sem kell újraindítania, a változások a levegőben tükröződnek.

WordPress

Ezt a fejlécet a WordPress segítségével is végrehajthatja. Adja hozzá a következőt egy wp-config.php fájlhoz

fejléc (‘X-Frame-Options: DENY’);

Ha nem szívesen szerkeszti a fájlt, akkor használhat egy plugint, amint az itt kifejtett vagy a fent említett.

Microsoft IIS

Adja hozzá a fejlécet az adott webhely „HTTP válaszfejlécek” részével.

iis-X-frame-opciók

Indítsa újra a webhelyet az eredmények megtekintéséhez.

X-Content-Type-opciók

Prevent PANTOMIM tipizálja a biztonsági kockázatot, ha hozzáadja ezt a fejlécet a weboldal HTTP-válaszához. Ha ezt a fejlécet utasítja a böngészőt, hogy fontolja meg a fájltípusokat a meghatározottak szerint, és tiltja a tartalom szippantását. Csak egy paramétert kell hozzáadnia a „nosniff” -hez..

Lássuk, hogyan hirdetheti ezt a fejlécet.

Apache

Ezt megteheti, ha hozzáteszi az alábbi sort a httpd.conf fájlhoz

Fejléckészlet X-Tartalom-Típus-Opciók nosniff

Ne felejtse el újraindítani az Apache webszervert, hogy aktív legyen a konfiguráció.

nginx

Adja hozzá a következő sort az nginx.conf fájlban a szerverblokk alatt.

add_header X-Content-Type-Options nosniff;

Mint általában, újra kell indítania az Nginx-et az eredmények ellenőrzéséhez.

Microsoft IIS

Nyissa meg az IIS-t, és lépjen a HTTP válasz fejlécekbe

Kattintson a Hozzáadás elemre, és írja be a nevet és az értéket

iis-MIME-típusok

Kattintson az OK gombra, és indítsa újra az IIS-t az eredmények ellenőrzéséhez.

HTTP nyilvános kulcs rögzítése

Minimalizálja a középső embert (MITM) megtámadja a kockázatot a tanúsítvány rögzítésével. Ez lehetséges HPKP (HTTP nyilvános kulcs rögzítése) fejléc.

Rögzítheti a gyökér tanúsítvány nyilvános kulcsát vagy az azonnali tanúsítványt. Az írás idején a HPKP jelenleg Firefoxban és Chrome-ban működik, és támogatja az SHA-256 kivonat algoritmust..

Négy paraméterkonfiguráció lehetséges.

Paraméter értékeJelentés
jelentés-uri =”url”Jelentés a megadott URL-re, ha a PIN-kód ellenőrzése sikertelen. Ez nem kötelező.
pin-sha256 =”sha256key”Itt adja meg a csapokat
max-age =A böngészőnek másodpercekben tartandó emlékezetére kell mutatnia, hogy a webhely csak az egyik rögzített kulcs segítségével elérhető.
IncludeSubDomainsEz az aldomainre is vonatkozik.

Lássuk a HPKP fejléc példáját a facebook.com oldalról

nyilvános kulcsú-csap-jelentés csak: max-age = 500; pin-sha256 ="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18 ="; pin-sha256 ="r / mIkG3eEpVdm + u / ko / cwxzOMo1bk4TyHIlByibiA5E ="; pin-sha256 ="q4PO2G2cbkZhZ82 + JgmRUyGMoAeozA + BSXVXQWB8XWQ ="; jelentés-uri = http: //reports.fb.com/hpkp/

Ha ezt valami meg kell valósítania a webhelyén, akkor lépjen a végrehajtási útmutatót írta Scott Helme.

Tartalombiztonsági politika

Az XSS megakadályozása, a kattintással történő feltörés, kód injekció támadások a Content Security Policy (CSP) fejléc bevezetésével a weboldal HTTP válaszába. CSP utasítsa a böngészőt, hogy töltsön be megengedett tartalmat a weboldalra.

Minden a böngészők nem támogatják a CSP-t, tehát ellenőriznie kell a végrehajtását. Három módon érheti el a CSP fejléceket.

  1. Tartalom-biztonsági politika – 2 / 1.0 szint
  2. X-tartalom-biztonsági politika – elavult
  3. X-Webkit-CSP – elavult

Ha továbbra is elavultat használ, akkor fontolhatja meg frissítését a legújabbra.

A CSP megvalósításához több paraméter létezik, amelyekre utalhat OWASP egy ötletért. Vessük át azonban a két leggyakrabban használt paramétert.

Paraméter értékeJelentés
default-srcTöltsön mindent egy meghatározott forrásból
script srcCsak szkripteket tölthet be egy meghatározott forrásból

A következő példa arra, hogy mindent ugyanabból az eredetből töltsünk be különböző webszerverekre.

Apache

Töltse le a következőt a httpd.conf fájlba, és a hatékonyság érdekében indítsa újra a webszervert.

Fejléckészlet-tartalom-biztonsági politika "default-src ‘én’;"

nginx

Adja hozzá az alábbiakat az nginx.conf fájl szerverblokkjához

add_header Tartalom-biztonsági politika "default-src ‘én’;";

Microsoft IIS

Nyissa meg az adott webhely HTTP válaszfejléceit az IIS Managerben, és adja hozzá a következőket

IIS-csp

X-Megengedett-Cross-Domain-politika

Adobe-termékeket, például PDF, Flash stb. Használ? A fejléc végrehajtásával megtaníthatja a böngészőnek, hogyan kell kezelni a kérelmeket egy tartományon átnyúlóan. A fejléc bevezetésével korlátozza webhelye eszközének más domainekből történő betöltését az erőforrásokkal való visszaélések elkerülése érdekében.

Van néhány lehetőség.

ÉrtékLeírás
egyik semnincs engedélyezve
mester csakcsak a fő házirendet engedélyezzék
mindenminden megengedett
by-tartalom csakCsak egy bizonyos típusú tartalmat szabad engedélyezni. Példa – XML
by-csak ftpcsak FTP szerverre alkalmazható

Apache

Ha nem akarja engedélyezni semmilyen irányelvet.

Fejléckészlet X-megengedett-tartományok közötti házirendek "egyik sem"

A fejlécet a következőképpen kell látnia.

nginx

Tegyük fel, hogy csak a master-master-et kell végrehajtania, majd az nginx.conf fájlban adja hozzá a kiszolgáló blokk alatt a következőket.

add_header X-Engedélyezett-Domain-Cross-Policies csak master;

És az eredmény.

Hivatkozó-Policy

Szeretné ellenőrizni a webhely hivatkozási irányelveit? Vannak bizonyos adatvédelmi és biztonsági előnyök. Azonban a böngészők nem támogatják az összes lehetőséget, ezért a végrehajtás előtt olvassa el a követelményeit.

A Referrer-Policy támogatja a következő szintaxist.

ÉrtékLeírás
no-ajánlóA hivatkozási információkat a kérelemmel együtt nem küldjük el.
no-ajánló-mikor-leminősítésAz alapértelmezett beállítás, amikor az átirányítót ugyanarra a protokollra küldi, mint a HTTP-t a HTTP-re, a HTTPS-t a HTTPS-re.
biztonságos-urlA teljes URL-t a kérelemmel együtt elküldjük.
same-originA hivatkozót csak ugyanarra a származási oldalra küldjük el.
szigorú származásiCsak akkor küldje el, ha a protokoll HTTPS
szigorú-eredetű-ha-cross-eredetűa teljes URL-t egy szigorú protokollon, például a HTTPS-n keresztül kell elküldeni
eredetküldje el a származási URL-t az összes kérésben
származási-ha-cross-eredetűküldjön teljes URL-t ugyanazon a származási helyről. Más esetekben azonban csak a származási URL-t küldje el.

Apache

A következőt adhatja hozzá, ha nem hivatkozót szeretne beállítani.

Header set Referrer-Policy "no-ajánló"

Az újraindítás után a válasz fejlécében kell lennie.

nginx

Tegyük fel, hogy be kell valósítania az azonos származású, tehát hozzá kell adnia a következőket.

add_header Referrer-Policy azonos származású;

A konfigurálás után az alábbi eredményekkel kell rendelkeznie.

Várják-CT

A kísérleti állapotban lévő új fejléc az, hogy utasítsa a böngészőt a webkiszolgálókkal való kapcsolat érvényesítésére a tanúsítvány átlátszósága (CT) érdekében. A Google által tervezett projekt célja az SSL / TLS tanúsítási rendszer néhány hibájának kijavítása.

A következő három változó áll rendelkezésre az Expect-CT fejléchez.

ÉrtékLeírás
max-ageMásodpercek alatt, mennyi ideig kell a böngészőnek gyorsítótárazni a házirendet.
érvényesíteniOpcionális irányelv a politika érvényesítésére.
jelentés-uriA böngésző jelentést küld a megadott URL-re, ha nem érkezett érvényes tanúsítvány-átlátszóság.

Apache

Tegyük fel, hogy ezt az irányelvet, jelentést és gyorsítótárat 12 órán keresztül kényszerítenie kell, majd hozzá kell adnia a következőket.

Fejléckészlet Expect-CT ‘végrehajtása, maximális életkor = 43200, report-uri ="https://somedomain.com/report"’

És itt van az eredmény.

nginx

Mi van, ha jelentést szeretne készíteni és gyorsítótárazni egy órán keresztül?

add_header Várható-CT ‘maximális életkor = 60, report-uri ="https://mydomain.com/report"„

A kimenet lenne.

Feature-Policy

A böngésző olyan funkcióinak vezérlése, mint a földrajzi helyzet, a teljes képernyő, a hangszóró, az USB, az automatikus lejátszás, a hangszóró, a rezgő, a mikrofon, a fizetés, a vr stb., Hogy engedélyezze vagy letiltja a webalkalmazást..

Apache

Tegyük fel, hogy le kell tiltania a teljes képernyős funkciót, és ehhez hozzáteheti a következőt a httpd.conf vagy apache2.conf fájlba..

A fejléc mindig beállította a Szolgáltatás-irányelvet "teljes képernyős ‘nincs’ "

Mi lenne, ha több funkciót hozzáadna egy sorba?

Ez is lehetséges!

A fejléc mindig beállította a Szolgáltatás-irányelvet "teljes képernyős „nincs”; mikrofon „nincs”"

Indítsa újra az Apache HTTP-t az eredmény megjelenítéséhez.

A fenti kód arra utasítja a böngészőt, hogy tiltsa le a teljes képernyőt és a mikrofont.

nginx

Vegyünk egy másik példát – tiltsa le a rezgő funkciót.

add_header Feature-Policy "rezeg „senki”;";

Vagy tiltsa le a földrajzi helymeghatározást, a kamerát és a hangszórót.

add_header Feature-Policy "földrajzi helymeghatározás „nincs”; kamera ‘nincs’; hangszóró „nincs”;";

Itt található a kimenet az Nginx újraindítása után.

Az összes Nginx-konfiguráció http-blokk alá kerül az nginx.conf fájlban, vagy bármilyen más használt fájlban.

Következtetés

A webhely biztosítása kihívást jelent, és remélem, hogy a fenti fejlécek végrehajtásával hozzáad egy biztonsági réteget. Ha üzleti webhelyet működtet, akkor fontolóra veheti a felhő-WAF használatát is SUCURI online üzleti vállalkozásának védelme érdekében. A SUCURI esetében az a jó, hogy biztonságot és teljesítményt nyújt.

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