Пређи на садржај

Полиса безбедности садржаја

С Википедије, слободне енциклопедије

Полиса безбедности садржаја (енгл. Цонтент Сецуритy Полицy) је стандард рачунарске безбедности уведен да би се спречило уметање скриптова (енгл. Цросс-сите сцриптинг, XСС), цлицкјацкинг и други напади убризгавања кода (енгл. цоде ињецтион) који произилазе из извршавања злонамерног садржаја у оквиру поуздане веб-странице.[1] То је главна препорука од стране W3Ц групе за безбедност веб-апликација,[2] широко подржана од стране модерних веб-прегледача.[3] Полиса безбедности садржаја даје стандардни метод власницима веб-сајтова да се изјасне о дозвољеном пореклу садржаја за који би прегледачима било дозвољено да учитају на тај веб-сајт — покривени типови су ЈаваСцрипт, ЦСС, ХТМЛ оквири, веб воркери, Веб-типографија, слике, угњеждени објекти као што су Јава аплети, АцтивеX, аудио и видео фајлови, и друга ХТМЛ5 својства.

Стандард, оригинално назван "Ограничења садржаја", био је предложен од стране Роберта Хансена у 2004. години,[4] и први пут реализован у Фирефоx 4 и врло брзо усвојен и од стране осталих прегледача. Прва верзија овог стандарда објављена је 2012. године као главна препорука од стране W3Ц[5] а убрзо је објављена и верзија другог нивоа 2014. године. Ажурирано: 2015. нацрт нивоа 3 се развија са новим карактеристикама које би биле брзо усвојене од стране веб-прегледача.[6]

Наредни називи заглавља се користе као део експерименалне имплементације Полисе безбедности садржаја (ЦСП):[3]

  • Content-Security-Policy — стандардно име заглавља, предложено из W3Ц документа. Гоогле Цхроме подржава ово од своје верзије 25.[7] Фирефоx даје подршку од верзије 23,[8] објављене 6. августа, 2013.[9] WебКит подржава од своје верзије 528.[10]
  • X-WebKit-CSP — застарело; експериментално заглавље, уведено у Гоогле Цхроме и друге прегледаче засноване на WебКит-у (Сафари) у 2011.[11]
  • X-Content-Security-Policy — застарело; експериментално заглавље, уведено у прегледаче засноване на Гецко 2 (Фирефоx 4 то Фирефоx 22, Тхундербирд 3.3, СеаМонкеy 2.1).[12]

Веб-сајт може декларисати различита ЦСП заглавља, као и мешати она која се извршавају и она која служе само за извештавање. Прегледач ће обрађивати свако заглавље посебно.

Такође, ЦСП може бити испоручен и без ХТМЛ кода, коришћењем ХТМЛ МЕТА елемента, само што ће, у овом случају, његова ефикасност бити ограничена.[13]

Подршка за сандбоx директиву је такође доступна у Интернет Еxплорер 10 и Интернет Еxплорер 11 који користе експериментално X-Content-Security-Policy заглавље.[14]

Један број програмских оквира (енгл. фрамеwоркс) подржава ЦСП, као на пример АнгуларЈС[15] и Дјанго.[16] Упутства за Рубy он Раилс су постављена од стране ГитХуб-а.[17] Подршка за веб-програмске оквире је, међутим, потребна само ако ЦСП садржај на неки начин зависи од статуса веб-апликације - као што је коришћење једнократно генерисаних кодова (енгл. nonce). Другим речима, ЦСП је чешће статички и може бити достављен од стране виших слојева веб апликације, нпр. веб сервера.

Од 2015. године су препоручени од стране W3Ц организације нови безбедносни стандарди, највећим делом комплементарни са ЦСП:[18]

  • Суб-Ресоурце Интегритy (СРИ), осигурава добро познате, поуздане фајл ресурсе (обично ЈаваСцрипт, ЦСС) да се учитавају са других сервера (обично ЦДНс)
  • Миxед Цонтент, појашњава политику намењену прегледачима на страницама које се учитавају путем ХТТПС и ХТТП
  • Упграде Инсецуре Реqуестс, наговештава прегледачима како да рукују наслеђеним линковима на страницама мигрираним на ХТТПС
  • Цредентиал Манагемент, обједнињени ЈаваСцрипт АПИ за приступ корисничким акредитацијама, са циљем да олакша сложене пријавне шеме
  • Реферрер Полицy, ЦСП надоградња која упућује прегледач на генерацију Реферер заглавља.[18]

У децембру 2015. године објављен је метод заобилажења једнократно генерисаних кодова (енгл. 'nonce') са беле листе.[19] Други метод употпуњује белу листу ЦСП-а како би се експлоатисале старе и рањиве верзије ЈаваСцрипт библиотека смештене на истим серверима (најчешће са ЦДН сервера).[20]

Начин рада

[уреди | уреди извор]
Мапирање између ХТМЛ5/ЈаваСцрипт и ЦСП контрола

Уколико се Content-Security-Policy заглавље налази у одговору сервера, одговарајући клијент спроводи декларативну политику беле листе. Један пример циља политике је строжији начин извршавања ЈаваСцрипт-а у циљу спречавања одређених цросс-сите сцриптинг напада. У пракси, ово значи да су бројне функционалости онемогућене:

  • Уметнути ЈаваСцрипт код[моо 1]
    • <script> блокови,[моо 2]
    • ДОМ руковаоци догађајима као ХТМЛ атрибути(нпр. onclick)
    • javascript: линкови
  • Уметнути ЦСС код
    • <style> блокови[моо 2]
    • style приписан ХТМЛ елементу
  • Динамичка ЈаваСцрипт евалуација кода[моо 3]
    • eval()
    • стринг аргументи за setTimeout и setInterval функције
    • new Function() конструктор
  • Динамички ЦСС изрази
    • CSSStyleSheet.insertRule() метод

Док употреба ЦСП-а у новој апликацији може бити прилично једноставна, посебно са ЦСП-компатибилним ЈаваСцрипт оквирима, [моо 4] постојеће апликације могу да захтевају рефакторисање - релаксирање политике. У пракси се за ЦСП-компатиблне апликације препоручује да се код учита из спољашњих изворних фајлова (<script src>), парсирање ЈСОН уместо евалуације и коришћење EventTarget.addEventListener() да би се подесили руковаоци догађајима.[21]

Нагласити

[уреди | уреди извор]
  1. ^ Ово понашање може бити онемогућено глобално коришћењем посебног 'unsafe-inline' израза
  2. ^ а б Поверљиви уметнути <script> и <style> блокови могу се индивидуално додати на ЦСП белу листу коришћењем nonce или hash израза.
  3. ^ Ово понашање може бити онемогућено глобално коришћењем посебног 'unsafe-eval' израза
  4. ^ На пример, АнгуларЈС захтева да само један флег за иницијализацију буде постављен на ЦСП-компатибилни мод — <html ng-app ng-csp>

Извештај

[уреди | уреди извор]

Када год затевани ресурс или извршавање скрипта прекрши политику, прегледач ће "испалити" POST захтев за вредношу која је наведена у report-uri[22] и која садржи детаље прекршаја.

ЦСП извештаји су стандардне ЈСОН структуре и могу бити прикупљене било преко сопственог апликацијског АПИ-ја[23] или јавним ЦСП примаоцима извештаја.[24][25]

Додаци прегледача и проширења за изузећа

[уреди | уреди извор]

У складу са ЦСП моделом обраде,[26]ЦПС не би требало да утиче на рад додатака или проширања прегледача инсталираних од стране корисника. Ова ЦПС функционалност омогућава сваком додатку или проширању да уметне скрипт у веб-сајтове, без обзира на извор настајања тог скрипта, и на тај начин буде изузет из ЦПС политика. Радна група за безбедност веб-апликација W3Ц-а разматра да ли би такав скрипт могао да буде део Трустед Цомпутинг Басе имплементације веб-прегледача. Међутим, у радној групи су представници Цоx Цоммуницатионс-а тврдили да би ово изузимање могло бити потенцијални сигурносни пропуст који би могао да буде искоришћен од стране злонамерних или компромитованих додатака или проширења.[27][28]

Погледати остало

[уреди | уреди извор]

Референце

[уреди | уреди извор]
  1. ^ Стамм, Сид (11. 3. 2009). „Сецуритy/ЦСП/Спец - МозиллаWики”. wики.мозилла.орг. Приступљено 29. 6. 2011. „Цонтент Сецуритy Полицy ис интендед то хелп wеб десигнерс ор сервер администраторс специфy хоw цонтент интерацтс он тхеир wеб ситес. Ит хелпс митигате анд детецт тyпес оф аттацкс суцх ас XСС анд дата ињецтион. 
  2. ^ „Стате оф тхе драфт”. 30. 11. 2011. Приступљено 30. 12. 2011. 
  3. ^ а б „Цан I усе Цонтент Сецуритy Полицy?”. Фyрд. Приступљено 22. 2. 2013. 
  4. ^ Хансен, Роберт (1. 6. 2009). „Мозилла'с Цонтент Сецуритy Полицy”. Архивирано из оригинала 18. 3. 2015. г. Приступљено 29. 6. 2011. „Цонтент Рестрицтионс - а wаy фор wебситес то телл тхе броwсер то раисе тхеир сецуритy он пагес wхере тхе сите кноwс тхе цонтент ис усер субмиттед анд тхерефоре потентиаллy дангероус. 
  5. ^ „Цонтент Сецуритy Полицy 1.0”. W3Ц. Приступљено 13. 11. 2015. 
  6. ^ „Цонтент Сецуритy Полицy Левел 3”. W3Ц. Приступљено 13. 11. 2015. 
  7. ^ „Цхроме 25 Бета: Цонтент Сецуритy Полицy анд Схадоw ДОМ”. Гоогле. 14. 1. 2013. Приступљено 22. 2. 2013. 
  8. ^ „Цонтент Сецуритy Полицy 1.0 ландс ин Фирефоx Аурора”. Мозилла Фоундатион. 29. 5. 2013. Приступљено 16. 6. 2013. 
  9. ^ „РапидРелеасе/Цалендар”. Мозилла Фоундатион. 29. 5. 2013. Приступљено 16. 6. 2013. 
  10. ^ „Буг 96765 - Имплемент тхе "Цонтент-Сецуритy-Полицy" хеадер”. WебКит. 31. 10. 2012. Приступљено 7. 8. 2015. 
  11. ^ „Неw Цхромиум сецуритy феатурес, Јуне 2011”. Гоогле. 14. 6. 2011. Приступљено 22. 2. 2013. 
  12. ^ „Интродуцинг Цонтент Сецуритy Полицy”. Мозилла Фоундатион. Приступљено 22. 2. 2013. 
  13. ^ „ХТМЛ МЕТА елемент”. Цонтент Сецуритy Полицy Левел 2. W3Ц. Приступљено 14. 11. 2015. 
  14. ^ „Дефенсе ин Дептх: Лоцкинг Доwн Масх-Упс wитх ХТМЛ5 Сандбоx”. Wиндоwс Интернет Еxплорер Енгинееринг Теам. Приступљено 13. 4. 2014. 
  15. ^ „нгЦсп дирецтиве”. АнгуларЈС. 
  16. ^ „дјанго-сецуритy”. 
  17. ^ „Цонтент сецуритy полицy”. ГитХуб. 
  18. ^ а б „Wеб Апплицатион Сецуритy Wоркинг Гроуп”. Приступљено 13. 11. 2015. 
  19. ^ „ЦСП 2015”. XСС Јигсаw. Архивирано из оригинала 20. 12. 2015. г. Приступљено 12. 12. 2015. 
  20. ^ „Ан Абусиве Релатионсхип wитх АнгуларЈС”. Приступљено 5. 1. 2016. 
  21. ^ Wест, Мике (15. 6. 2012). „Ан Интродуцтион то Цонтент Сецуритy Полицy”. ХТМЛ5 Роцкс. Приступљено 22. 2. 2013. 
  22. ^ Цонтент Сецуритy Полицy Левел 2
  23. ^ На пример у Дјанго ЦСП прималац је доступан у дјанго-сецуритy модулу.
  24. ^ „Цонтент Сецуритy Полицy Буилдер”. Архивирано из оригинала 27. 09. 2013. г. Приступљено 22. 07. 2016. 
  25. ^ „Цонтент Сецуритy Полицy Репортинг”. репорт-ури.ио. Сцотт Хелме. 
  26. ^ „ЦСП Процессинг Модел”. 15. 11. 2012. Приступљено 6. 10. 2013. 
  27. ^ „Субвертинг ЦСП полициес фор броwсер адд-онс (еxтенсионс).”. 25. 9. 2013. Приступљено 6. 10. 2013. 
  28. ^ „Ре: [ЦСП] Реqуест то аменд боокмарклет/еxтенсионс сентенце ин ЦСП1.1”. 3. 8. 2014. Приступљено 8. 10. 2015. 
  29. ^ НоСцрипт Сецуритy Суите :: Адд-онс фор Фирефоx
  30. ^ НоСцрипт - ЈаваСцрипт/Јава/Фласх блоцкер фор а сафер Фирефоx еxпериенце! - wхат ис ит? - ИнформАцтион
  31. ^ „Архивирана копија”. Архивирано из оригинала 17. 08. 2014. г. Приступљено 22. 07. 2016. 
  32. ^ ХТТП Сwитцхбоард еxтенсион - Опера адд-онс

Спољашне везе

[уреди | уреди извор]