Defaults.Exposed

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

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.

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

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

  3. 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ą.

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

  5. 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ų:

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:

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

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

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.