Defaults.Exposed › Taisymai › Apsauga nuo paspaudimų pagrobimo (X-Frame-Options)
Kaip ištaisyti Apsauga nuo paspaudimų pagrobimo (X-Frame-Options)
Vienos eilutės nurodymas, kuris neleidžia kitoms svetainėms tyliai įkelti jūsų svetainės jų viduje. Be jo, sukčius gali paslėpti jūsų tikrus, prijungtus puslapius po netikru puslapiu ir apgauti jūsų klientus spausdinti dalykus, kurių jie niekada neturėjo ketinimo – patvirtinti mokėjimą, pakeisti slaptažodį, suteikti prieigą.
Praktinė reikšmė jūsų verslui: Sukčius gali nematomai apgaubti jūsų gyvą svetainę netikroje ir pavogti pinigus ar paskyros prieigą iš jūsų prisijungusių klientų – ir klientui atrodo, kad jūsų svetainė tai padarė. Pataisymas yra nemokamas ir kūrėjui užtrunka apie 15 minučių; jo neturėjimas yra žinoma spraga, kurią nusikalstėliai ir atsargūs pirkėjai gali pamatyti per kelias sekundes.
Ką tai gali kainuoti
- Sukčius paslėpia jūsų tikrą prisijungimo ar mokėjimo ekraną po nekalto atrodo puslapiu ir apgauna klientą 'patvirtinti' pervedimą ar nustatymų pakeitimą to nesuvokiant – klientas kaltina jus, o ne užpuoliką.
- Jūsų prisijungusi paskyros sritis yra įkeliama nematomai ant 'Laimėjote – spustelėkite jai reikalauti' puslapio; spustelėjimas iš tikrųjų patvirtina tikrą pakeitimą kliento paskyroje su jumis, ir jūs atsakote į pikto palaikymo skambutį.
- Perspektyvios kliento IT komanda paleido greitą saugumo nuskaitymą prieš pasirašydama, pamato, kad jūsų svetainė gali būti įterpta bet keno, ir pažymi ją kaip riziką, kuri stabdo ar žlugdo sandorį.
- Jūsų prekės ženklas tampa masalu sukčiavimo kampanijoje; klientai, kurie buvo pagauti, prisimena tai kaip 'įmonę, kurios svetainė leido tai įvykti'.
- Auditorius ar kibernetinio draudimo nuskaitymas nurodo trūkstamą apsaugą nuo paspaudimų pagrobimo kaip pagrindinės higienos nesėkmę – pigi ištaisyti, gėdinga pažymėti.
Kodėl tai svarbu. Tai yra nemokamas vienos eilutės nustatymas, kuriam prireikia minučių pridėti, ir jis uždaro visą klastingumo klasę, nukreiptą į jūsų prisijungusius klientus. Mūsų vertinime tai yra vertas tikrų taškų žiniatinklio saugumo tikrinimas, vertinamas aukštu rimtumu, nes trūkstama antraštė palieka žinomą, lengvai patikrinimą skylę, kurią nusikalstėliai automatizuoja ir pirkėjai ieško.
Kas tai yra, paprastais žodžiais
Kai kas nors apsilanko jūsų svetainėje, jų naršyklė taip pat gali būti nurodyta įkelti jūsų svetainę kitos svetainės viduje – kaip mažas langas įterptasis didesniame puslapyje. Tai skamba nekaltai, ir kartais taip yra. Bet tai yra mechanizmas, esantis už atakos, vadinamos paspaudimų pagrobimas.
Čia yra gudrybė. Sukčius sukuria savo puslapį ir tyliai įkelia jūsų tikrą svetainę jame – nematomai, padarytą visiškai skaidrią. Tada jie uždeda savo turinį ant viršaus: blizgantį mygtuką, „Žaisti vaizdo įrašą,” „Reikalauti prizą.” Jūsų klientas mato užpuoliko puslapį ir spusteli tai, kas atrodo kaip nekenksmingas mygtukas. Bet kadangi jūsų tikra svetainė sėdi nematomai po jų žymekliu, spustelėjimas iš tikrųjų nusileidžia ant jūsų puslapio – patvirtinant mokėjimą, keičiant slaptažodį, patvirtinant prieigą, priimant leidimą. Klientas mano, kad spustelėjo vieną dalyką; iš tikrųjų spustelėjo kitą, svetainėje, kuria pasitiki.
Apsauga nuo paspaudimų pagrobimo yra trumpas, nematomas nurodymas, kurį jūsų svetainė siunčia kiekvieno lankytojo naršyklei, kuris iš esmės sako:
„Neleiskite kitoms svetainėms įkelti manęs savo viduje. Jei kas nors bando, atsisakykite.”
Šiuolaikinės naršyklės tai paklūsta automatiškai. Kai tai įjungta, triukas tiesiog neveikia – įterptoji jūsų svetainės kopija atsisako įkelti. Be jo jūsų svetainė yra sąžininga žaidimas, kuri bus naudojama kaip paslėptas sluoksnis sukčiavime, ir klientas, kuriam tai atsitinka, susies visą dalyką su jūsų prekės ženklu, ne užpuoliko.
Kiek tai gali jus kainuoti
Tai yra realistiški, kasdieniai scenarijai. Mes niekada nevardijame realių įmonių; tai yra iliustracijos, kaip spraga naudojama.
-
Nematomas “patvirtinkite.” Klientas yra prisijungęs prie jūsų paskyros portalo viename skirtuke. Jie patenka į puslapį (iš skelbimo, el. pašto, paieškos rezultato), kuris žada kažką viliojančio ir rodo didelį “Tęsti” mygtuką. Paslėptas po tuo mygtuku yra jūsų tikras “Patvirtinti pervedimą” ar “Keisti el. paštą” valdiklis, įkeltas iš jų pačių prisijungusios sesijos. Jie spusteli “Tęsti” – ir nesąmoningai leidžia pakeitimą savo tikroje paskyroje su jumis. Jiems ir jūsų palaikymo komandai atrodo, kad jie tai padarė ant jūsų svetainės.
-
Nustatymų užgrobimas. Užpuolikas kadruje rodo jūsų paskyros nustatymų puslapį ir uždeda nekaltos žaidimo ar apklausos sluoksnį. Keletas spustelėjimų teisingose vietose tyliai apverčia nustatymą – prideda užpuoliko el. paštą kaip atkūrimo adresą, suteikia programos leidimą ar išjungia saugumo įspėjimą. Paskyra dabar tyliai yra pažeista, ir viskas atrodė gerai tuo metu.
-
Sandoris, kuris stringa. Didesnis klientas siunčia standartinį saugumo klausimyną prieš pasirašydamas. Viena eilutė klausia, ar jūsų svetainė nustato antikadrų apsaugą (X-Frame-Options / CSP frame-ancestors). Jūsų IT kontaktas turi atsakyti “ne”, ir pirkimų procesas sustoja, kol skubotai taisote nemokamą, 15 minučių nustatymą, kuris dabar atrodo kaip raudona vėliavėlė prieš pirkėją.
-
Prekės ženklas kaip masalas kampanijoje. Kadangi jūsų tikri, patikimi puslapiai gali būti įterpiami, užpuolikas naudoja jūsų prisijungimą ar kasą kaip įtikinantį sluoksnį platesnėje sukčiavimo kampanijoje. Klientai, kurie buvo pagauti, nekaltina šešėlingo užpuoliko – jie prisimena tai kaip laiką, kai “jūsų svetainė” leido jiems būti apgautiems.
-
Audito žyma. Draudiko nuskaitymas ar auditorius, peržiūrintis jūsų saugumo poziciją, nurodo trūkstamą apsaugą nuo paspaudimų pagrobimo tarp radinių. Tai yra tekstūrinio vadovėlio pagrindinės higienos elementas; jo žymėjimas signalizuoja, kad lengvos, nemokamos apsaugos nebuvo savo vietoje – kas dažo, kaip sprendžiama likusio jūsų saugumo.
Bendra gija: žala nusileidžia ant tikro, prisijungusio kliento, kuris daro ką nors, ko jis niekada neatmetė – ir tai neša jūsų vardą, ne užpuoliko.
Kas tai iš tikrųjų yra
Kai naršyklė klausia jūsų svetainės puslapio, jūsų serveris grąžina puslapį plius keletą nematomų “antraščių” – papildomų nurodymų, kuriuos naršyklė skaito, bet lankytojas niekada nemato. Apsauga nuo paspaudimų pagrobimo pristatoma per šias antraštes. Yra du, ir mūsų tikrinimas praeina, jei kuris nors yra:
1. Senesnė antraštė – X-Frame-Options:
X-Frame-Options: SAMEORIGIN
Tai yra ilgalaikis, plačiai palaikomas valdiklis. Jis turi vieną iš dviejų praktinių reikšmių:
SAMEORIGIN– jūsų pačios svetainė gali įterpti savo puslapius, bet jokia išorinė svetainė negali. Saugus numatytas nustatymas beveik visiems.DENY– niekas negali įterpti jūsų puslapių, įskaitant jus. Naudokite tai tik jei jūsų svetainė niekada nekadruo savo turinio.
2. Šiuolaikinė antraštė – Content-Security-Policy frame-ancestors:
Content-Security-Policy: frame-ancestors 'self';
Tai yra naujesnė, lankstesnė valdiklis ir ta, į kurią nurodo dabartiniai standartai. Ji daro tą patį darbą, bet leidžia jums būti tiksliam apie tai, kas gali jus įterpti:
frame-ancestors 'self'– atitikmuoSAMEORIGIN.frame-ancestors 'none'– atitikmuoDENY.frame-ancestors 'self' https://partneris.jusudomenas.com– jūsų pačios svetainė plius vienas pavadintas, patikimas partneris, ir niekas kitas.
Kaip atrodo „gerai”
Stipriausia sąranka naudoja abu: frame-ancestors šiuolaikinėms naršyklėms (ir dėl tikslumo įvardijant leidžiamus įterpėjus) ir X-Frame-Options: SAMEORIGIN kaip atsarginę senesniems klientams. Mūsų tikrinimas patenkinamas bet kurio jų atskirai – bet kadangi abu yra nemokami ir užima tas pačias kelias minutes, nėra jokios priežasties nenustatyti abiejų.
Svarbi detalė, kurią turėtų žinoti jūsų kūrėjas: Content-Security-Policy-Report-Only antraštė nevykdo nieko – ji tik praneša. Jei norite, kad apsauga nuo paspaudimų pagrobimo iš tikrųjų įsigaliotų, ji turi ateiti iš vykdančios antraštės (normalios Content-Security-Policy su frame-ancestors, ar X-Frame-Options), ne tik ataskaitų.
Kaip tai ištaisyti (nemokama, ~15 minučių)
Perduokite šį skyrių tam, kas valdo jūsų svetainę – IT asmeniui, žiniatinklio kūrėjui ar prieglobos palaikymui. Pataisymas yra nemokamas. Tai viena ar dvi atsakymo antraštės, ar taisyklė jūsų CDN. Nėra ko pirkti.
Tikrinimas praeina kai arba X-Frame-Options antraštė (nustatyta į DENY ar SAMEORIGIN) arba CSP frame-ancestors direktyva yra. Rekomenduojama abiejų sąranka prideda abu.
1 žingsnis – Nuspręskite, kaip griežtu būti
- Dauguma verslų:
SAMEORIGIN/frame-ancestors 'self'. Jūsų pačios svetainė toliau veikia; pašaliniai yra blokuojami. - Jei jūsų svetainė niekada neįterpia savo pačios puslapių:
DENY/frame-ancestors 'none'maksimaliam užrakinimui. - Jei tikras partneris turi įterpti konkretų puslapį: aiškiai juos įvardinkite su
frame-ancestors 'self' https://partneris.jusudomenas.com;ir niekas kitas neįeina.
2 žingsnis – Pridėkite antraštes (pasirinkite platformą)
Nginx – savo server bloke:
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Content-Security-Policy "frame-ancestors 'self';" always;
Apache – įsitikinkite, kad mod_headers įjungtas, tada savo virtualiajame priegloboje:
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Content-Security-Policy "frame-ancestors 'self';"
Microsoft IIS – web.config viduje <customHeaders>:
<add name="X-Frame-Options" value="SAMEORIGIN" />
<add name="Content-Security-Policy" value="frame-ancestors 'self';" />
Cloudflare (ar panašus CDN): eikite į Taisyklės → Transformavimo taisyklės → Modifikuoti atsakymo antraštę ir pridėkite dvi taisykles, kurios nustato X-Frame-Options į SAMEORIGIN ir Content-Security-Policy į frame-ancestors 'self'; visuose atsakymuose. Tai yra lengviausias kelias, jei neturite tiesiogios serverio prieigos.
Jau siunčiate Content-Security-Policy dėl kitų priežasčių? Nekurkite antros CSP antraštės – pridėkite frame-ancestors į jūsų esamą politiką. Dvi CSP antraštės gali konfliktuoti.
Svetainių kūrėjai (Squarespace, Wix, Shopify ir panašūs): šios platformos dažnai nustato antikadrų apsaugą jums, todėl galite jau praeiti nieko nedarydami. Jei mūsų tikrinimas tai pažymi, valdiklis paprastai yra platformos saugumo nustatymuose, ar pridedamas CDN, stovinčiame prieš svetainę. (Pastaba: Google Workspace ir Microsoft 365 valdo jūsų el. paštą, ne jūsų svetainę – ši antraštė nustatyta ten, kur jūsų vieša svetainė iš tikrųjų gyvena, ne Workspace/365 administratoriuje.)
3 žingsnis – Perkraukite ir patikrinkite
Perkraukite žiniatinklio serverį ar diegimo CDN taisyklę, tada įkelkite savo gyvą svetainę ir patikrinkite atsakymo antraštes – naršyklės kūrėjo įrankiai → Tinklo skirtukas → spustelėkite puslapio prašymą → Atsakymo antraštės, arba bet kuris nemokamas antraštės tikrinimo įrankis. Patvirtinkite, kad antraštė(-ės) rodosi tikruose puslapio atsakymuose, ne tik pagrindiniame puslapyje. Tada paleiskite tikrinimą iš naujo.
Dažnos klaidos
- Tik ataskaitų CSP naudojimas ir manant, kad tai apsaugo jus.
Content-Security-Policy-Report-Onlytik praneša apie pažeidimus – jis nieko nevykdo. Jums reikia vykdančios antraštės, kad apsauga įsigaliotų. - Dviejų atskirų
Content-Security-Policyantraščių nustatymas. Jei jau turite CSP, pridėkiteframe-ancestorsį jį, o ne išsiunčiant antrą politiką; konfliktuojančios CSP antraštės gali sukelti netikėtą elgesį. DENYnustatymas, kai jūsų pačios svetainė įterpia savo pačios puslapius.DENYblokuoja visus kadravimus, įskaitant jūsų pačios. Jei kuri nors jūsų svetainės dalis naudoja savo iframe, naudokiteSAMEORIGIN/frame-ancestors 'self'vietoje to, arba palaušite savo pačios puslapius.- Tik pagrindinio puslapio apsauga. Puslapiai, kurie labiausiai svarbus paspaudimų pagrobimui, yra prisijungę – paskyros nustatymai, mokėjimo patvirtinimas, administravimas. Įsitikinkite, kad antraštės taikomos visoje svetainėje, ne tik priekiniame puslapyje.
- Manant, kad HTTPS ar spyna jau tai apima. Šifravimas ir antikadrų apsauga nėra susiję. Puikus sertifikatas nieko nedaro, kad stabdytų jūsų puslapius nuo įterpimo.
- Pasitikėjimas senomis sprendimais. „Kadro laužymas” JavaScript (scenarijai, bandantys pabėgti iš kadrų) yra nepatikimas ir gali būti apeitas. Antraštės yra teisingas, naršyklės vykdomas pataisymas.
DUK
Aš nesu technikas – ar galiu tai sutvarkyti pats?
Nereikia atlikti techninės dalies. Tai yra vienas nustatymas, pridedamas prie jūsų svetainės serverio ar CDN, ir bet kuris žiniatinklio kūrėjas ar IT tiekėjas gali jį pridėti per kelias minutes. Perduokite jiems toliau pateiktą 'Kaip tai ištaisyti' skyrių – jis tiksliai pasako jiems, ką pridėti. Pataisymas yra nemokamas; mes imame mokestį tik jei norite, kad toliau stebėtume, kad jis išliktų savo vietoje.
Ar tai sustabdys mano pačios svetainę ar teisėtus partnerius nuo mano puslapių rodymo?
Tik jei per griežtai nustatote. Bendras nustatymas ('SAMEORIGIN', ar 'frame-ancestors self') vis tiek leidžia jūsų pačios svetainei įterpti savo puslapius įprastai – tai blokuoja tik išorines svetaines. Jei tikras partneris turi įterpti vieną konkretų jūsų puslapį, jūsų kūrėjas gali leisti tą vieną šaltinį vis dar blokuodamas visus kitus.
Mes esame mažas verslas – ar kas nors tikrai vargtų mus taikyti?
Šie išpuoliai vykdomi masiniai automatizuotais įrankiais, ne rankiniu būdu. Mažesnės svetainės dažnai yra smogamos tiksliai todėl, kad jiems trūksta pagrindinių apsaugų kaip ši. Užpuolikui nereikia žinoti, kas jūs esate – jam tik reikia jūsų svetainės, kuri gali būti įterpiama. Spraga uždarymas nieko jums nekainuoja.
Kaip iš tikrųjų atrodo 'gerai'?
Arba X-Frame-Options antraštė nustatyta į SAMEORIGIN (ar DENY), arba Content-Security-Policy su frame-ancestors direktyva – idealiai abu. Mūsų tikrinimas praeina, jei yra vienas iš jų. Šiuolaikinis, lankstesnis valdiklis yra frame-ancestors; X-Frame-Options yra senesnė antraštė, kuri vis dar apima kai kurias senąsias naršykles, todėl abi naudojama diržo ir petnešų sąranka.
Argi tai nesusijęs su SSL spyna ar HTTPS?
Ne – jie apsaugo nuo visiškai skirtingų dalykų. HTTPS šifruoja ryšį, kad niekas negalėtų jo perskaityti tranzitu. Apsauga nuo paspaudimų pagrobimo sustabdo jūsų puslapiams nuo įkėlimo kas nors kito svetainėje. Galite turėti tobulą spyną ir vis tiek būti atviras paspaudimų pagrobimui. Tai yra atskiri tikrinimai ir norite abiejų.
Jei neištaisysime, ar tai sumažina mūsų vertinimą?
Taip. Tai yra vertinamas žiniatinklio saugumo tikrinimas, ne informacinis – trūkstama antraštė kainuoja taškų ir yra vertinamas aukštu rimtumu, nes tiesiogiai atskleidžia jūsų prisijungusius klientus sukčiavimui. Tai taip pat yra vienas pigiausių taškų atgauti: viena nemokama antraštė, apie 15 minučių kūrėjo laiko.