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.
Contents
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éke | Jelentés |
0 | Az XSS szűrő le van tiltva |
1 | Az XSS szűrő engedélyezte és fertőtlenítette az oldalt, ha támadást észleltek |
1; mode = blokk | Az 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_URI | Az 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.
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
- 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éke | Jelentés |
max-age | Időtartam (másodpercben), amely azt jelzi a böngészőnek, hogy a kérések csak HTTPS-en érhetők el. |
includeSubDomains | A konfiguráció az aldomainre is érvényes. |
előtöltés | Haszná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.
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.
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éke | Jelentés |
SAMEORIGIN | A keret / iframe tartalom csak ugyanabból a webhelyből származik. |
TAGADNI | Megakadályozhatja, hogy bármely domain beágyazza a tartalmat a frame / iframe segítségével. |
Allow-FROM | Engedé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.
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
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éke | Jelenté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ő. |
IncludeSubDomains | Ez 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.
- Tartalom-biztonsági politika – 2 / 1.0 szint
- X-tartalom-biztonsági politika – elavult
- 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éke | Jelentés |
default-src | Töltsön mindent egy meghatározott forrásból |
script src | Csak 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
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ék | Leírás |
egyik sem | nincs engedélyezve |
mester csak | csak a fő házirendet engedélyezzék |
minden | minden megengedett |
by-tartalom csak | Csak egy bizonyos típusú tartalmat szabad engedélyezni. Példa – XML |
by-csak ftp | csak 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ék | Leí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és | Az 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-url | A teljes URL-t a kérelemmel együtt elküldjük. |
same-origin | A hivatkozót csak ugyanarra a származási oldalra küldjük el. |
szigorú származási | Csak 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 |
eredet | kü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ék | Leírás |
max-age | Másodpercek alatt, mennyi ideig kell a böngészőnek gyorsítótárazni a házirendet. |
érvényesíteni | Opcionális irányelv a politika érvényesítésére. |
jelentés-uri | A 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.