HTTP-tietoturvaotsakkeet, jotka jokaisen yrityssivuston pitäisi lähettää
HTTP-tietoturvaotsakkeet ovat ohjeita, jotka verkkopalvelimenne lähettää jokaisen sivun mukana. Ne kertovat selaimelle, miten sivustoanne käsitellään: käytä aina HTTPS:ää, älä anna muiden sivustojen upottaa tätä sivua kehykseen, älä arvaa tiedostotyyppejä, lataa skriptejä vain luotetuista lähteistä. Ne eivät hidasta sivustoa, ja ne asetetaan kerran palvelimen tai CDN:n asetuksissa.
Lyhyt vastaus useimmille yrityssivustoille: lähettäkää Strict-Transport-Security, Content-Security-Policy (vähintään frame-ancestors-direktiivillä), X-Content-Type-Options, Referrer-Policy ja Permissions-Policy, asettakaa evästeille oikeat liput ja poistakaa otsakkeet, jotka paljastavat ohjelmistoversionne. Alla suositellut arvot noudattavat OWASP HTTP Headers Cheat Sheetiä ja MDN:ää.
Puuttuvat otsakkeet ovat harvoin yksinään hätätilanne. Ne kertovat, kuinka huolellisesti sivusto on määritetty, ja ne sulkevat pois kokonaisia selaimen puolella tapahtuvien hyökkäysten luokkia.
Miten tarkistatte otsakkeenne
Pyytäkää palvelimelta etusivunne otsakkeet:
curl -sI https://yourcompany.com/
Tarkistakaa jokainen palvelinnimi, ei vain pääverkkotunnusta: verkkokauppa, kirjautuminen, asiakasportaali ja kaikki vanhat testipalvelimet, jotka yhä vastaavat. Sovelluksessa asetetut otsakkeet katoavat usein virhesivuilta, uudelleenohjauksista ja staattisista tiedostoista, joten testatkaa muutamaa eri osoitetta.
Lähettämisen arvoiset otsakkeet
Strict-Transport-Security (HSTS)
Käskee selainta käyttämään verkkotunnuksellenne vain HTTPS:ää määrätyn ajan, jotta kävijää ei voi huomaamatta pudottaa HTTP-yhteyteen.
Strict-Transport-Security: max-age=63072000; includeSubDomains
max-age ilmoitetaan sekunteina. Lisätkää includeSubDomains vain, jos jokainen aliverkkotunnus toimii HTTPS:llä. Selainten preload-listoille pääsy edellyttää hstspreload.org-palvelun mukaan, että max-age on vähintään 31536000 (1 vuosi) ja mukana ovat includeSubDomains ja preload. Preload-listalta poistuminen on hankalaa, joten lisätkää preload viimeisenä.
Content-Security-Policy (CSP)
Luettelee lähteet, joista sivu saa ladata skriptejä, tyylejä, kuvia ja kehyksiä. Hyvin laadittu CSP on selaimen puolella vahvin suoja sivustojen välistä komentosarjahyökkäystä (XSS) vastaan, mutta se on sovitettava sivustoonne. Aloittakaa raportointitilassa otsakkeella Content-Security-Policy-Report-Only, seuratkaa, mitä estettäisiin, ja ottakaa käytäntö sitten käyttöön estävänä.
Jo ennen täyttä käytäntöä yksi direktiivi on helppo ja hyödyllinen:
Content-Security-Policy: frame-ancestors 'self'
frame-ancestors määrää, mitkä sivustot saavat upottaa sivujanne, mikä estää clickjacking-hyökkäykset. Se on lähetettävä otsakkeena, <meta>-tagissa se ei toimi.
X-Frame-Options
Vanhempi tapa estää kehystäminen. OWASP suosittelee frame-ancestors-direktiiviä aina, kun mahdollista, ja X-Frame-Options: DENY (tai SAMEORIGIN) varakeinona vanhemmille selaimille.
X-Content-Type-Options
X-Content-Type-Options: nosniff
Estää selainta arvaamasta tiedoston tyyppiä, jotta ladattua tiedostoa ei voi suorittaa skriptinä. Varmistakaa, että Content-Type-otsakkeet ovat oikein koko sivustolla.
Referrer-Policy
Referrer-Policy: strict-origin-when-cross-origin
Rajoittaa, kuinka paljon osoitteistanne välittyy muille sivustoille, kun kävijät klikkaavat linkkejä. Tällä on merkitystä, kun osoitteissa on tilausnumeroita, tunnisteita tai hakusanoja.
Permissions-Policy
Permissions-Policy: geolocation=(), camera=(), microphone=()
Kytkee pois selaimen ominaisuudet, joita sivustonne ei käytä, jotta sivulle ujutettu skripti ei voi pyytää niitä.
Myös evästeet tarvitsevat lippuja
Istuntoevästeet tulee asettaa lipuilla Secure (vain HTTPS), HttpOnly (ei luettavissa JavaScriptillä) ja SameSite=Lax tai Strict:
Set-Cookie: session=...; Secure; HttpOnly; SameSite=Lax; Path=/
Tarkistakaa myös evästeen Domain. Evästeen, jonka Domain-arvo on .yourcompany.com, voi lukea jokainen aliverkkotunnus, millä on merkitystä, jos jokin niistä joskus kaapataan orvoksi jääneen DNS-tietueen kautta.
Otsakkeet, jotka kannattaa poistaa tai jättää pois
ServerjaX-Powered-Byversionumeroineen, esimerkiksiApache/2.4.41taiPHP/7.4.3. Ne kertovat kenelle tahansa tarkalleen, mitä ohjelmistoa ja versiota kannattaa tutkia. OWASP suosittelee poistamaanX-Powered-By-otsakkeen ja karsimaanServer-otsakkeen sisällön mahdollisimman niukaksi.X-XSS-Protection. MDN merkitsee sen vanhentuneeksi ja epästandardiksi ja huomauttaa, että se voi aiheuttaa ongelmia muuten turvallisilla sivustoilla. OWASP suosittelee jättämään sen asettamatta tai asettamaanX-XSS-Protection: 0ja nojaamaan CSP:hen.Expect-CT. OWASP neuvoo olemaan käyttämättä sitä ja poistamaan sen nykyisistä määrityksistä.
Mihin otsakkeet asetetaan
Asettakaa otsakkeet yhteen paikkaan, joka kattaa jokaisen vastauksen: verkkopalvelimeen (nginx add_header ... always;, Apache Header always set), CDN:ään tai hosting-alustan otsakeasetuksiin. Nginxin avainsanalla always on merkitystä: ilman sitä otsakkeet lisätään vain onnistuneisiin vastauksiin ja uudelleenohjauksiin, ei virhesivuille.
Lyhyt tarkistuslista
- Ajakaa
curl -sIjokaiselle omistamallenne palvelinnimelle. - Lisätkää HSTS,
X-Content-Type-Options,Referrer-Policy,Permissions-Policyjaframe-ancestors. - Ottakaa täysi CSP käyttöön ensin raportointitilassa.
- Asettakaa istuntoevästeille
Secure,HttpOnlyjaSameSite. - Poistakaa versionumerot otsakkeista
ServerjaX-Powered-Bysekä luopukaa otsakkeistaX-XSS-ProtectionjaExpect-CT. - Tarkistakaa uudelleen jokaisen palvelin-, CDN- tai alustamuutoksen jälkeen.
Kun palvelimen asetukset ovat muutenkin työn alla, varmistakaa samalla, ettei se tarjoa avoimia .env-, .git- tai varmuuskopiotiedostoja.
Datahorsesin rooli
Datahorses valvoo verkkosivustojanne ulkopuolelta joka päivä ja tarkistaa, mitä selaimet ja hyökkääjät saavat: puuttuvat tietoturvaotsakkeet, evästeet ilman lippuja Secure, HttpOnly tai SameSite, palvelimet, jotka paljastavat versionsa, sekä HTTP-sisällön HTTPS-sivuilla. Emme mene järjestelmiinne emmekä tarvitse pääsyoikeuksia, ja jokaiseen havaintoon kuuluu kehittäjällenne tarkka kuvaus tarvittavasta asetusmuutoksesta. Katsokaa koko luettelo siitä, mitä valvomme, tai pyytäkää tarjous.
Lisää artikkeleita
Gmailin ja Yahoon lähettäjävaatimukset: mitä muuttui 2024 ja mitä tarkistaa
Helmikuusta 2024 Gmail ja Yahoo ovat edellyttäneet joukkolähettäjiltä todennettua, kohdistettua postia ja helppoa tilauksen peruutusta. Tässä säännöt ja oman verkkotunnuksen tarkistus.
SSL/TLS-varmenteen vanheneminen: miksi se kaataa yhä verkkosivustoja
Vanhentunut varmenne pysäyttää kävijät selaimen koko sivun varoitukseen ja voi rikkoa rajapinnat ja sähköpostin. Voimassaoloajat lyhenevät, joten uusimisen on onnistuttava joka kerta.
Miten DMARC-koosteraporttia (rua) luetaan ja mitä sillä tehdään
DMARC-koosteraportit luettelevat jokaisen palvelimen, joka lähetti postia verkkotunnuksenne nimissä, ja sen, läpäisikö se tarkistukset. Näin luette XML:n ja teette siitä korjauslistan.