Defaults.Exposed

Defaults.ExposedParandused › 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

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:

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:

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.

  1. Alustage ainult-aruande režiimist — ärge veel jõustage. Lisage Content-Security-Policy-Report-Only vastuse 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.)

  2. 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.

  3. 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 nagu https: 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.

  4. 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) ja object-src 'none', et blokeerida pistikprogrammipõhised rünnakud.

  5. Lülitage ainult-aruandest jõustamisele. Kui aruanded on puhtad ja sait töötab, muutke päise nimi Content-Security-Policy-Report-Only-st Content-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-Policy poliitikaga väärtusena.
  6. Kontrollige oma domeeni uuesti, et kinnitada, et poliitika näitab nüüd sisselülitatuna ja jõustatuna, ilma nõrgendavate lünkadeta.

Levinud vead

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.