Turvaotsakkeiden tarkistus

Liitä sivun vastausotsikot —curl -sI https://your-site.example/päätteessä tai selaimen Verkko-paneelin lohko — ja tuloksena onArvosana A+:sta F:äänOWASP Secure Headers -tarkistuslistalla:Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options, kehystyssuojaus,Referrer-Policy, Permissions-Policy, ristialkuperäinen eristyskolmikko, versiovuodot, vanhentuneet otsikot ja evästeliput — jokainen havainto parinaan täsmällinennginx, Apache ja Expressrivit, jotka korjaavat sen. Kaikki toimii selaimessa; sivu ei ota yhteyttä sivustoon.
Tilarivi on valinnainen. Kaikki useat Set-Cookie-rivit tarkistetaan. Jotta arvioitavana olisi jokin käytäntö, rakenna se CSP-generaattorilla; jos otsikkolohko halutaan purkaa rivi kerrallaan, käytä HTTP-otsikkojäsennintä.
Ei vielä arvosanaa. Liitä vastausotsikot ja paina Tarkista otsikot, tai lataa esimerkki.
Jokaiselle havainnolle tarvittavat korjausrivit ilmestyvät tähän tarkistuksen jälkeen.
Tämän tarkistimen laajuus verrattuna SSL-turvatarkistukseen. Tämä sivu arvioi tietoturvan vastausotsikot (yllä oleva OWASP-luettelo). SSL-turvatarkistus arvioi HTTPS-asetukset: varmenneketju, protokollaversiot, salausvahvuus ja sekasisältö. HSTS ja evästeliput esiintyvät molemmilla sivuilla, koska molemmat luettelot sisältävät ne, mutta eri näkökulmista - suorita molemmat tarkistukset kokonaiskuvan saamiseksi.
Itsetesti
Ajaa arvioijan uudelleen kiinteitä otsikkolohkoja vastaan: hyvä näyte A+:lla, huono näyte F:llä, kaikki vähennykset käynnistettyinä, jokainen sääntö erikseen (pisteytyksen aritmetiikka), versiovuotokatto, evästeneuvot, CSP:n laatuhuomautukset, frame-ancestors lasketaan kehystyssuojaukseksi, arvosanakynnykset jokaisen rajan molemmin puolin, korjausnipit ja negatiiviset polut. Mitään ei lähetetä minnekään.
Mitä tietoturvan vastausotsikot ovat?
Yhdellä lauseella: tietoturvaotsikot ovat vastausotsikoita, jotka kehottavat selainta noudattamaan suojausta, jota se ei itse osaa päätellä — älä koskaan lataa skriptejä tuntemattomista lähteistä, älä enää koskaan puhu tavallista HTTP:tä tälle isännälle, älä koskaan kehystä tätä sivua — ja kumpikin maksaa yhden konfiguraatiorivin.
Tarkistettavat otsikot
OtsikkoSuojaa seuraavaltaOWASP:n suosittelema arvo
Strict-Transport-Securityprotokollan alentaminen ja evästeen varastaminen ensimmäisellä tavallisella HTTP-pyynnöllämax-age=63072000; includeSubDomains
Content-Security-Policycross-site scripting, haitalliset upotukset, sekasisältödefault-src 'self'; form-action 'self'; base-uri 'self'; object-src 'none'; frame-ancestors 'none'; upgrade-insecure-requests
X-Content-Type-OptionsMIME-sekaannus (skripti tarjoiltuna kuvana)nosniff
X-Frame-Options / CSP frame-ancestorsclickjacking (hyökkääjän kehystämä sivu)deny / 'none'
Referrer-PolicyURL-osoitteiden (joissa on tunnisteita) vuotaminen kolmansien osapuolten sivuilleno-referrer
Permissions-Policysivut ja upotukset käyttävät hiljaa kameraa, mikrofonia, sijaintiakaikki ominaisuudet pois käytöstä
Cross-Origin-Opener-Policymuut ikkunat, jotka yltävät selaustilaansame-origin
Cross-Origin-Embedder-Policyresurssien lataaminen, jotka eivät ole suostuneet siihen (mahdollistaa prosessien eristyksen)require-corp
Cross-Origin-Resource-Policyresurssit, joita muut sivustot upottavatsame-origin
Miten arvosana lasketaan

Aloita 100:sta ja vähennä: −25 puuttuva CSP, −20 puuttuva HSTS, −10 kumpikin puuttuva X-Content-Type-Options, Referrer-Policy tai mikä tahansa kehystyssuojaus, −5 kumpikin ristialkuperäkolmikolle ja Permissions-Policy:lle, −5 versiovuodoista Server/X-Powered-By-otsikoissa (katto), ja −5 nollasta poikkeavasta X-XSS-Protection:sta. Kirjainarvosanat: 100 = A+, 90+ = A, 80+ = B, 70+ = C, 60+ = D, alle = F. Neuvoa-antavat huomautukset (evästelipuut, välimuistin ohjaus, CSP:n laatu) eivät vähennä pisteitä.

Yleisiä virheitä
  • Otsikoiden asettaminen väärille vastauksille. Lisää ne jokaiseen vastaukseen, myös virhesivuihin ja uudelleenohjauksiin - siihen always sanassa add_header ... always; (nginx) ja Header always set (Apache) on tarkoitettu.
  • Vain etusivun testaaminen. Välityspalvelimet, välimuistit ja vanhat sovellukset poistavat tai ohittavat otsikoita usein vain joillakin poluilla. Tarkista sivut, joilla on merkitystä: kirjautuminen, kassa, API-päätepisteet.
  • X-XSS-Protection:n säilyttäminen. Sen ohjaama tarkastaja aiheutti omia haavoittuvuuksiaan; selaimet poistivat sen. Nollasta poikkeava arvo maksaa nyt tarkoituksella pisteitä - poista se ja anna CSP:n hoitaa tehtävä.
  • Uskominen, että X-Frame-Options on ajan tasalla. Se ei voi sallia tiettyjä alkuperiä, eikä se ole CSP-standardissa; frame-ancestors on nykyaikainen korvaaja. Molempien pitäminen siirtymäkaudella on hyväksyttävää - tämä sivu hyväksyy kumman tahansa.
  • Versiobannerien lähettäminen. Server: Apache/2.4.58 (Unix) kaventaa hyökkääjän etsintää tunnetuista virheistä ilman mitään hyötyä. Poista versio; pidä rivien määrä pienenä.
UKK

Miksi COOP/COEP/CORP on arvoltaan vain 5 pistettä kukin? Kolmikko on uusin kerros, ja sitä tarvitaan pääasiassa silloin, kun halutaan prosessien eristystä (SharedArrayBuffer, Spectre-kovennus). Sivusto ilman niitä on yhä ydinsuojauksissaan; niiden kanssa jotkin ristialkuperäiset upotukset vaativat säätöjä - siksi ne painavat vähemmän kuin CSP tai HSTS.

Tarkoittaako korkea arvosana, että sivusto on turvallinen? Ei - se tarkoittaa, että vastausotsikot on asetettu. Tietoturvaotsikot ovat yksi kerros: TLS-asetukset, istunnon käsittely, syötteen validointi ja korjaukset ratkaisevat edelleen, onko sivusto todella turvallinen. Suorita SSL-turvatarkistus TLS-kerroksen osalta.

Miksi Permissions-Policy-arvo on niin pitkä? OWASP-perustaso kytkee jokaisen ominaisuuden nimenomaisesti pois, joten selain, joka lisää uusia ominaisuuksia, ei ota niitä hiljaa käyttöön. Lyhyempi arvo kuten camera=(), microphone=(), geolocation=() on alku - tiedä vain, mitä se jättää päälle.

Voiko tästä tarkistaa minkä tahansa sivuston otsikot? Tämä sivu ei tee lainkaan verkkopyyntöjä - se arvioi täsmälleen liitetyn tekstin, joten se toimii palomuurien takana ja sisäisillä isännillä, eikä mitään tarkistettua poistu koneelta. Otsikoiden hakeminen on yksi curl -sI päätteessä.

Entä Clear-Site-Data ja X-Permitted-Cross-Domain-Policies? Hyödyllisiä kapeissa tilanteissa (uloskirjautumisvastaukset; vanhat PDF/Flash-katselimet). Ne ovat täällä neuvoa-antavia eikä niitä pisteytetä - Clear-Site-Data:n lähettäminen jokaisella vastauksella tyhjentäisi käyttäjien tallennuksen joka sivulatauksella.