Файлы cookie аднаго сайта з'яўляюцца важным механізмам бяспекі, які можа быць выкарыстаны для змякчэння атак падробкі міжсайтавых запытаў (CSRF) у вэб-праграмах. Атакі CSRF адбываюцца, калі зламыснік падманам прымушае ахвяру выканаць ненаўмыснае дзеянне на сайце, на якім ахвяра прайшла аўтэнтыфікацыю. Выкарыстоўваючы сеанс ахвяры, зламыснік можа выконваць дзеянні ад імя ахвяры без яе згоды.
Файлы cookie аднаго сайта дапамагаюць прадухіліць атакі CSRF, абмяжоўваючы вобласць прымянення файлаў cookie адным паходжаннем. Паходжанне вызначаецца камбінацыяй пратакола (напрыклад, HTTP або HTTPS), дамена і нумара порта. Калі файл cookie ўсталяваны з атрыбутам "SameSite", ён вызначае, ці трэба адпраўляць файлы cookie ў міжсайтавых запытах.
Ёсць тры магчымыя значэнні для атрыбута "SameSite":
1. "Strict": калі атрыбут "SameSite" усталяваны ў "Strict", файлы cookie адпраўляюцца толькі ў запытах, якія паходзяць з таго ж сайта. Гэта азначае, што файлы cookie не будуць адпраўляцца ў міжсайтавых запытах, што эфектыўна прадухіляе атакі CSRF. Напрыклад, калі карыстальнік праходзіць аўтэнтыфікацыю на "example.com" і наведвае шкоднасны сайт, які спрабуе выканаць CSRF-атаку, браўзер не будзе ўключаць у запыт "Strict" файл cookie таго ж сайта, што прадухіляе атаку.
2. "Lax": Калі атрыбут "SameSite" усталяваны ў "Lax", файлы cookie адпраўляюцца ў міжсайтавых запытах, якія лічацца бяспечнымі, напрыклад, калі запыт ініцыяваны навігацыяй верхняга ўзроўню ад карыстальніка. Аднак файлы cookie не адпраўляюцца ў запытах, ініцыяваных староннімі вэб-сайтамі, напрыклад, калі малюнак або тэг сцэнарыя загружаюцца з іншага дамена. Гэта забяспечвае баланс паміж бяспекай і зручнасцю выкарыстання. Напрыклад, карыстальнік, які наведвае шкоднасны сайт па спасылцы, не выкліча атаку CSRF, таму што файл cookie "Lax" таго ж сайта не будзе ўключаны ў запыт.
3. "Няма": калі атрыбут "SameSite" усталяваны ў "Няма", файлы cookie адпраўляюцца ва ўсіх міжсайтавых запытах, незалежна ад іх паходжання. Аднак, каб гарантаваць бяспеку выкарыстання "Няма", файлы cookie таксама павінны быць пазначаны як "Бяспечныя", што азначае, што яны будуць адпраўляцца толькі праз злучэнні HTTPS. Гэта спалучэнне дазваляе вэб-праграмам падтрымліваць міжсайтавую функцыянальнасць, адначасова абараняючы ад атак CSRF. Варта адзначыць, што значэнне «Няма» варта выкарыстоўваць толькі ў выпадку неабходнасці, бо яно павялічвае паверхню атакі і патэнцыял для ўразлівасцяў CSRF.
Каб праілюстраваць выкарыстанне файлаў cookie таго ж сайта для барацьбы з атакамі CSRF, разгледзім наступны сцэнар: вэб-сайт банка, які дазваляе карыстальнікам пераводзіць сродкі. Без файлаў cookie таго ж сайта зламыснік можа стварыць шкоднасны вэб-сайт, які змяшчае схаваную форму, якая аўтаматычна адпраўляе запыт на перавод сродкаў на вэб-сайт банка, калі яго наведвае аўтэнтыфікаваны карыстальнік. Калі браўзер карыстальніка ўключае сесійны файл cookie ў запыце, перадача будзе выканана без згоды карыстальніка. Аднак, усталяваўшы файл cookie сеанса як файл cookie таго ж сайта з атрыбутам "Strict", браўзер не будзе ўключаць файлы cookie ў міжсайтавы запыт, што эфектыўна прадухіляе атаку CSRF.
Файлы cookie з аднаго сайта з'яўляюцца каштоўным механізмам бяспекі для зніжэння атак CSRF у вэб-праграмах. Абмяжоўваючы аб'ём файлаў cookie аднолькавым паходжаннем, гэтыя файлы cookie не дазваляюць зламыснікам выкарыстоўваць сеанс карыстальніка для выканання несанкцыянаваных дзеянняў. Значэнне "Strict" гарантуе, што файлы cookie адпраўляюцца толькі ў запытах, якія паходзяць з таго ж сайта, а значэнне "Lax" дазваляе адпраўляць файлы cookie ў бяспечных міжсайтавых запытах. Значэнне "Няма" ў спалучэнні з атрыбутам "Бяспечны" забяспечвае міжсайтавую функцыянальнасць, адначасова абараняючы ад атак CSRF.
Іншыя апошнія пытанні і адказы адносна Асновы бяспекі вэб-прыкладанняў EITC/IS/WASF:
- Ці абараняе рэалізацыя Do Not Track (DNT) у вэб-браўзерах ад зняцця адбіткаў пальцаў?
- Ці дапамагае строгая транспартная бяспека HTTP (HSTS) абараніць ад нападаў на паніжэнне версіі пратакола?
- Як працуе атака перапрывязкі DNS?
- Ці адбываюцца захаваныя атакі XSS, калі шкоднасны скрыпт уключаны ў запыт да вэб-праграмы, а затым адпраўляўся назад карыстальніку?
- Ці выкарыстоўваецца пратакол SSL/TLS для ўстанаўлення зашыфраванага злучэння ў HTTPS?
- Што такое загалоўкі запытаў на выбарку метададзеных і як іх можна выкарыстоўваць для адрознення паміж запытамі аднолькавага паходжання і міжсайтавымі запытамі?
- Як давераныя тыпы памяншаюць паверхню атакі вэб-праграм і спрашчаюць праверку бяспекі?
- Якая мэта палітыкі па змаўчанні ў давераных тыпах і як яе можна выкарыстоўваць для ідэнтыфікацыі небяспечных прызначэнняў радкоў?
- Які працэс стварэння аб'екта давераных тыпаў з дапамогай API давераных тыпаў?
- Як дырэктыва давераных тыпаў у палітыцы бяспекі змесціва дапамагае паменшыць уразлівасці міжсайтавага сцэнарыя (XSS) на аснове DOM?
Больш пытанняў і адказаў глядзіце ў раздзеле "Асновы бяспекі вэб-прыкладанняў" EITC/IS/WASF

