Defaults.Exposed › Parandused › Content-Security-Policy (CSP)
Kuidas parandada Content-Security-Policy (CSP)
Sisuturbepoliitika on turvaereegel, mille teie veebisait annab igale külastaja brauserile, öeldes täpselt, millise koodi käivitamine on lubatud. Ilma selleta käivitab brauser mis tahes pahatahtliku koodi, mis lehel maandub — kommentaarikasti, häkitud pistikprogrammi või kolmanda osapoole skripti kaudu — sealhulgas koodi, mis lihtsalt koopib teie klientide kaardisummasid ja paroole, samal ajal kui tabalukk on ikka nähtaval.
Põhijareldus sinu ettevõttele: Kui teie saidiga on kunagi manipuleeritud, saab pahatahtlik kood lugeda teie klientide maksekaardi ja sisselogimisandmeid otse teie kassalaualt, kuni kõik näib täiesti normaalsena — jättes teile tagasimaksed, pettuse nõuded, teatamiskohustusega andmekaitserikkumise ning kontrolli ebaõnnestumise, mida suuremad kliendid kasutavad tehingute peatamiseks või kaotamiseks.
Mida see sulle maksab
- Peidetud kood libiseb ühele teie lehtedest ja kopeerib vaikselt iga kaardisumma ja parooli, mida teie kliendid kassasse sisestavad, saates selle ründajale, samal ajal kui teie sait näib täiesti normaalsena — te saate sellest teada alles siis, kui pettusekaebused saabuvad.
- Pettur paigaldab teie pärisveebisaidile võlts 'maksa siia' vormi, mis jäädvustab makseid nende kontole; kliendid arvavad, et maksid teile, süüdistavad teid, kui kaup ei tule, ja nõuavad raha tagasi.
- Suurema kliendi turvaülevaatus skannib teie saidi, näeb, et see põhikaitse on välja lülitatud, ja märgib seda — peatades tehingu või kaotades teile selle, kuni saate tõestada, et see on parandatud.
- Rikkumine, mis on jälgitud puuduva standardse kaitsemehhanismini, muutub teatamiskohustuslikuks juhtumiks: regulaatori küsimused, klientide teavitused ja mainekahju, mis maksab palju rohkem kui tasuta parandus.
Miks see on oluline. Tabalukk tõendab, et ühendus teie saidiga on privaatne, kuid see ei kontrolli, milline kood külastaja lehele jõudes käivitub. Sisuturbepoliitika on kaitsemehhanismus, mis seda teeb — see ütleb brauseritele eirata skripti, mis ei tulnud allikast, mida te usaldate, nii et üks rikutud väli, reklaam või pistikprogramm ei saa muutuda tööriistaks teie klientide raha ja andmete varastamiseks. See on hindamisväärt kontroll teie tulemiskaardil, väärtuslik reaalpunkte, ning üks esimesi asju, mida professionaalne turvaülevaatus otsib.
Mis see on lihtsas keeles
Kui keegi külastab teie veebisaiti, laadib nende brauser teie lehe ja käivitab kõik selle koodid — skriptid, mis muudavad menüüd alla tilguvaks, nupud töötavaks, maksevormid esitatavaks ja nii edasi. Vaikimisi usaldab brauser kõike seda. Sellel pole võimalust teada, milline kood on tõesti teie oma ja milline hiilis kellegi teise poolt sisse.
Sisuturbepoliitika (sageli lühendatult CSP) on lühike reeglinimekiri, mille teie veebisait lisab igale lehele, öeldes brauserile: “käivita ainult nende kinnitatud allikatega koodi ja keeldu kõigest muust.” See on vahe ööklubi vahel, mis laseb kõik sisse, ja ühe, kus uksel on külalisnimekiri.
Põhjus, miks see nii palju loeb, on see, et veebisaitidega manipuleeritakse pidevalt — mitte alati teie serveri häkkimise kaudu, vaid enamike saitide avatud tagauste kaudu: kommentaariväljas, otsingulahtris, aegunud pistikprogrammis, reklaami või analüütika kolmanda osapoole skriptis või vestluse vidinas. Kui ründaja saab isegi ühe rea oma koodi ühele teie lehtedest, käivitab brauser seda nagu teie oma. Sealt saab see lugeda kõike, mida teie kliendid kirjutavad — kaardisummad, paroolid, aadressid — ja saata need mujale vaikselt. Sisuturbepoliitika sulgeb selle ukse, keeldudes käivitamast allikast, mida te ei kinnitanud.
Mida see võib teile maksma minna
See pole abstraktne. Rünnak, mida sisuturbepoliitika ennetab — lehele sisestatud kood, mis varastab andmeid teie enda klientidelt — on mõne suurima kaardiskimmimise rikkumise taga. Siin on, kuidas see tavaliselt tavalise ettevõtte puhul mängib:
-
Nähtamatu kassalaua skimmer. Ründaja libistab mõne koodirea teie kassalehele haavatava pistikprogrammi või ohustatud kolmanda osapoole skripti kaudu. Iga kaardisumma, nimi ja CVV, mida teie kliendid kirjutavad, kopeeritakse ja saadetakse ründajale reaalajas. Teie sait näib ja töötab täiuslikult; tabalukk on olemas. Leiate selle nädalaid hiljem, kui teie makseteenuse pakkuja helistab pettusenõuete kogumi kohta, mis kõik jälgivad tagasi teie poodi. Nüüd seisate silmitsi tagasimaksetega, sundusauditiga, kaardimakse õiguste võimaliku kaotusega ja rikkumisega, mida võib-olla peate juriidiliselt teatama.
-
Võlts maksevorm. Pettur sisestab veenva “maksa siia” lahtri teie pärisveebisaidile. Kliendid sisestavad oma andmed teie kaubamärki usaldades; raha ja andmed lähevad ründajale. Kliendid süüdistavad teid — ja neil on õigus, sest see juhtus teie saidil.
-
Kaotatud leping. Suurema potentsiaalse kliendi turvaülevaatus teeb tarnija hoolsuskontrolli ajal teie saidi automaatse skannimise. Puuduv sisuturbepoliitika ilmub koheselt kõrge raskusega lünkana. Hanke- või turvaülevaatajale loetakse see üksik puuduv kaitsemehhanism “see tarnija ei tee põhitõdesid” — ja tehing peatub, samal ajal kui nad küsivad parandust, või läheb vaikselt konkurendile, kes läbis.
-
Teatamiskohustuslik rikkumine. Kui andmekaitserikkumine jälgitakse tagasi puuduva, standardse, tasuta kaitsemehhanismini, lakkab see olemast halb õnnelik juhus ja hakkab näima hooletus. See muudab regulaatori küsimused, klientide teavitamiskohustuse ja kulu — nii trahvi kui mainekahju, mis kestab kaua pärast juhtumi sulgemist.
-
Ohustatud reklaam või vidin. Paljud saidid laadivad väliskolmandate osapoolte koodi — reklaamivõrgud, fondid, tugichat, analüütika. Kui neid mõni on ohustatud, sõidab pahatahtlik kood otse teie lehtedele. Sisuturbepoliitika piirab plahvatuse raadiust, lubades ainult konkreetseid välisallikaid, mida usaldate, nii et ühe tarnija rikkumine ei muutu automaatselt teie rikkumiseks.
Mis see tegelikult on (detail)
Sisuturbepoliitika tarnitatakse ühe HTTP vastuse päisena — rea, mille teie veebiserver saadab iga lehega. Selle väärtus on direktiivide kogum, igaüks nimetab sisu tüübi ja lubatud allikad. Näiteks:
Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none'; frame-ancestors 'self'
Lihtsas keeles: vaikimisi laadige ainult asju minu enda saidilt; käivitage ainult minu enda saidilt skripte; lubage vanamoodsaid pistikprogramme; ärge lubage teistel saitidel minu saiti raami.
Milline näeb välja “hea” tulemus. Meie kontroll ei otsi lihtsalt päise olemasolu — see loeb poliitikat direktiivide kaupa ja hindab, kui tugev see tegelikult on, nii nagu turvavaaetaja teeks. Tugev poliitika:
- Seab piirava algväärtuse (
default-src 'self') ja laiendab seda ainult konkreetsete usaldusväärsete kolmandate osapoolte jaoks, mida tõepoolest kasutate. - Väldib lünki. See ei kasuta
'unsafe-inline'ega'unsafe-eval'skriptide jaoks ega metamärk (*) või tühja skeemi allikaid (naguhttps:) skriptide jaoks — need avavad tõhusalt tagasi ukse, mida poliitika on mõeldud sulgema. Kus sisemised skriptid on tõesti vajalikud, kasutab see noni või räsi, nii et ainult teie konkreetsed kinnitatud koodid käivituvad. - Lukustab raamimise
frame-ancestors 'self'-ga (see blokeerib ka “manista teie sait klientide pettamiseks” rünnaku) ja keelab vananenud pistikprogrammidobject-src 'none'-ga. - On jõustav, mitte ainult-aruanne.
Content-Security-Policy-Report-Onlypäis ainult vaatab; see pakub null käituse kaitset. Meie kontroll annab sellele väikese murdosa krediitiidist ega registreeri seda kunagi läbimisena. Olete kaitstud ainult siis, kui poliitika on jõustamine.
Kuidas seda parandada (tasuta, ~1–2 tundi)
Andke see teie IT-inimesele või kellelele, kes haldab teie veebisaiti — parandus ise on täiesti tasuta. Me küsime tasu ainult selle paigaldatuse ja õigsuse jälgimise eest aja jooksul; selle sisselülitamine ei maksa midagi. Põhjus, miks see võtab tunni või kaks, mitte minuteid, on hoolikas pilootsamm, mis takistab selle enda saidi osade kogemata blokeerimist.
-
Alustage ainult-aruande režiimist — ärge veel jõustage. Lisage
Content-Security-Policy-Report-Onlyvastuse päis. See vaatab ja logib, mida blokeeritaks, ilma tegelikult midagi blokeerimata, nii et reaalsait jätkab tööd, samal ajal kui õpite, millest iga leht tõesti sõltub. (Oluline: ainult-aruanne üksi ei anna külastajatele kaitset — see on ainult ohutu esimene samm.) -
Ehitage poliitika sellest, mida teie sait tegelikult kasutab. Vaadake üle aruanded, et leida iga legitiimne skriptide, stiilide, fontide ja piltide allikas — teie enda domeen, teie analüütika, teie makseteenuse pakkuja, teie fondide host, teie vestluse vidin — ja loetlege need lubatud allikatena. Tugev lähtepunkt on
default-src 'self'pluss konkreetsed kirjed reaalsete usaldusväärsete kolmandate osapoolte jaoks, mida kasutate. -
Vältige lünki, mis rikuvad kogu mõtte. Hoiduge
'unsafe-inline'-ist ja'unsafe-eval'-ist skriptide jaoks ning vältige metamärgi allikaid nagu*ja tühju skeeme naguhttps:skriptide jaoks — need avavad täpselt selle lünga, mille poliitika on mõeldud sulgema. Kus sisemised skriptid on vältimatud, kasutage noni või räsi, nii et ainult teie konkreetsed kinnitatud koodid käivituvad. -
Lukustage raamimine ja pistikprogrammid. Lisage
frame-ancestors 'self'(see peatab ka teisi saite teie saidi manistamast klientide petmiseks, ning see rahuldab seotud klikkimise varguse kontrolli) jaobject-src 'none', et blokeerida pistikprogrammipõhised rünnakud. -
Lülitage ainult-aruandest jõustamisele. Kui aruanded on puhtad ja sait töötab, muutke päise nimi
Content-Security-Policy-Report-Only-stContent-Security-Policy-ks. See on samm, mis tegelikult annab kaitse — ainult-aruande poliitika üksi ei anna seda ega läbi kontrolli.Kus seadistate päise, sõltub teie platvormist:
- Cloudflare: Reeglid → Muutmisreeglid → Muutke vastuse päist → seadke
Content-Security-Policy. - Nginx:
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; object-src 'none'; frame-ancestors 'self';" always; - Apache:
Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; object-src 'none'; frame-ancestors 'self';" - IIS (web.config): lisage kohandatud HTTP vastuse päis nimega
Content-Security-Policypoliitikaga väärtusena.
- Cloudflare: Reeglid → Muutmisreeglid → Muutke vastuse päist → seadke
-
Kontrollige oma domeeni uuesti, et kinnitada, et poliitika näitab nüüd sisselülitatuna ja jõustatuna, ilma nõrgendavate lünkadeta.
Levinud vead
- Ainult-aruandele peatumine. Ainus kõige levinum viga: poliitika lisatakse ainult-aruande režiimis, kõik liiguvad edasi ja sait pole tegelikult kunagi kaitstud. Ainult-aruanne ei blokeeri midagi. Peate lülitama jõustamisele.
'unsafe-inline'järele sirutamine selle “lihtsalt tööle panemine” jaoks. Kui poliitika blokeerib legitiimse sisemise skripti, on kiire parandus lubada kõik sisemised skriptid — kuid see avab täpselt selle augu, mida poliitika pidi sulgema. Kasutage selle asemel noni või räsi.- Metamärgi kasutamine. Tühjas
*(võihttps:)script-src-s lubab skripte kõikjalt, mis tähendab, et poliitika pakub peaaegu mingit reaalset kaitset ega anta ikka madalat skoori. - Kolmanda osapoole allikate unustamine. Range poliitika jõustamine ilma esmalt listelemata tegelikke väliseid teenuseid, mida kasutate (analüütika, fondid, maksete vidinate), võib lõhkuda teie enda saidi osasid — mis on täpselt see, miks ainult-aruande pilootsamm eksisteerib.
- Seadistamine ainult avalehele. Poliitika peab katma iga lehe, eriti kassalaud, sisselogimise ja kontode lehed — need on rünnaku väärt.
- Käsitlemine tabaluku asendajana. Sisuturbepoliitika ja HTTPS/HSTS kaitsevad erinevaid asju. Soovite kõiki; üks ei asenda teist.
KKK
Ma pole tehniline — kas saan ise sellega tegeleda?
Te ei pea üksikasju mõistma. See on seadistus, mille lisab teie veebisaiti või hostiteenust haldav isik, ning Cloudflare'i laadsetes teenustes on see suuresti juhendatud. Andke neile allolev jaotis 'Kuidas seda parandada'. See on tasuta; üks ettevaatusmeede on see, et seda tuleks hoolikalt välja rullida ainult vaatluse piloot-režiimis kõigepealt, nii et see ei blokeeri kogemata teie enda saidi osasid — mis on täpselt see, mida sammud katavad.
Mul on juba tabalukk ja SSL-sertifikaat — kas mu sait pole turvaline?
Tabalukk tagab teie lehe kohaletoimetamise; see ei kontrolli, mis selle sees käivitub. Kui pahatahtlik kood kunagi jõuab lehele — häkitud pistikprogrammi, ohustatud reklaami või sisestatud välja kaudu — ei peata tabalukk seda andmete varastamisest. Sisuturbepoliitika on kiht, mis piirab, mis üldse käivitada lubatud on. Need kaitsevad erinevaid asju ja soovite mõlemat.
Kas selle sisselülitamine võiks minu saidi lõhkuda?
See võib, kui seda lülitatakse aggressiivselt korraga sisse, sest see võib blokeerida legitiimseid skripte, mida tegelikult kasutate. Sellepärast on standardne lähenemine alustada 'ainult-aruanne' piloot-režiimis, mis vaatab blokeerimata, parandada kõik, mida see märgib, ja alles seejärel jõustada. Nii tehes on see ohutu — ja pilootsamm on alloleval parandusele sisse ehitatud.
Panime selle juba 'ainult-aruanne' režiimi — kas oleme kaitstud?
Ei, ja see on kõige levinum vale turvatunne. Ainult-aruanne režiim vaatab ja logib seda, mis oleks blokeeritud, kuid ei blokeeri midagi — külastajad saavad null reaalset kaitset. See on ainult ohutu esimene samm. Meie kontroll annab ainult-aruandele väikese murdosa täisjõustamise krediitiidist ega registreeri seda läbimisena. Olete kaitstud ainult siis, kui lülitate jõustusrežiimile.
Kas see mõjutab meie skoori või on see ainult nõuandlik?
See mõjutab teie skoori. Sisuturbepoliitika kontroll on hindamisväärt ja väärt kuni 25 punkti veebiturvalisuse kategoorias. Puuduv või nõrk poliitika on märgitud kõrge raskusega ning alandab teie hinnet — ning see on täpselt see lünkade tüüp, mida kliendi turvakomplekt küsib.
Meie arendaja lisas poliitika, kuid skoor on ikka madal — miks?
Poliitika võib eksisteerida ja siiski olla nõrk. Kõige levinumad süüdlased on lüngad nagu 'unsafe-inline' ja 'unsafe-eval' skriptide jaoks, või metamärgi allikad (tühjas *), mis avavad uuesti täpselt selle lünga, mille poliitika on mõeldud sulgema. Meie kontroll loeb poliitikat direktiivide kaupa ja hindab need nõrkused maha — poliitika, mis lubab kõike, annab peaaegu sama palju kui üldse mitte olles. Parandus on skriptireegliete kitsendamine nondide või räsiväärtuste abil nende lünkade asemel.