Въведение в CSRF?

CSRF, XSRF или Cross Site Reference Forgery е вид атака, която се случва на уебсайт, когато злонамерен уебсайт делегира заявката си на друг уебсайт или уеб приложение, което има удостоверен потребител. При този тип атака, използвайки удостоверения браузър на жертвата, нападател може да получи достъп до уебсайта изцяло или частично.

Как работи?

  • Той работи само ако потенциалната жертва е удостоверена.
  • Нападателят може да влезе в уебсайт, заобикаляйки процеса на удостоверяване, използвайки CSRF атака.
  • CSRF атаките влизат в употреба в сценариите, при които жертва с допълнителни права извършва някакво действие, а други не могат да получат достъп или да извършат тези действия. Например, онлайн банкиране.

CSRF Attack се изпълнява в две основни части

  • Първата стъпка е да привлечете потребителя / жертвата да кликне върху връзка или да зареди страница, която е злонамерена. Социалният инженеринг се използва от нападателя, за да измами жертвата.
  • Втората стъпка е да заблудите жертвата, като изпратите подправена заявка до браузъра на жертвата. Тази връзка ще пренасочи законно изглеждащите заявки към уебсайт. Нападателят ще има ценности или подробности от жертвата, които той трябва да търси, жертвата би го попълнила, мислейки, че искането е законно. Нападателят ще разполага и с данните за асоциираните бисквитки с браузъра на жертвата.

Основни понятия на CSRF

  • Нападателят изпраща злонамерени заявки до сайт, в който потребителят посещава нападател, вярва, че жертвата е валидирана спрямо този конкретен сайт.
  • Браузърът на Victim се удостоверява спрямо целевия сайт и се използва за насочване на злонамерените заявки към целевия сайт.
  • Тук браузърът на жертвата или сайтът с прилагани на нея превантивни методи на CSRF не са уязвими, засегнатият уебсайт е основната уязвимост.

Как може да бъде предотвратено подправяне на заявки за различни сайтове (CSRF)?

Има редица превантивни методи на CSRF, малко от тях са:

  • Излезте от уеб приложенията, докато не работите върху него.
  • Осигурете си потребителски имена и пароли.
  • Не позволявайте на браузърите да запомнят паролата.
  • Докато работите в приложение и влизате в него, избягвайте сърфирането.

Анти-CSRF токени

Най-честата имплементация за спиране на заявката за поддръжка на различни сайтове (CSRF), е да се използва токен, който е свързан с избран потребител и може да се намери като скрита форма във всяка държава, динамична форма, присъстваща в онлайн приложението.

1. Този знак, обозначен като CSRF Token, работи както следва:

  • Клиентът иска HTML страница, която има формуляр.
  • В отговор на това искане сървърът добавя два маркера. Той изпраща един като „бисквитка“ и запазва други маркери в поле с форма, което е скрито. Тези символи се генерират на случаен принцип.
  • Клиентът изпраща и двата маркера обратно на сървъра, след като подаде формуляра. Маркерът на бисквитките се изпраща като маркер, а маркерът на формата се изпраща вътре в данните на формуляра
  • Сървърът не отговаря или отхвърля заявката, ако заявката няма и двете искания.

Сега нападател, който се опитва да подправя заявката, ще трябва да отгатне анти-CSRF маркерите заедно с паролите за удостоверяване на потребителя. Тези маркери се анулират след известно време и след като сесията приключи. Това кара нападателя да отгатне жетона.

2. Същите бисквитки на сайта

Има някои бисквитки, свързани с произход или уебсайт и когато заявка е изпратена до този конкретен произход, бисквитките се изпращат заедно с нея. Такива искания се наричат ​​искания за кръстосан произход. Докато този процес, бисквитките се изпращат на трети страни, което прави възможно атаките на CSRF.

3. Същият атрибут на бисквитките на сайта

  • За да се предотвратят CSRF атаки, може да се използва един и същ атрибут на бисквитки на сайта. Деактивира използването на трети страни за конкретна бисквитка.
  • Извършва се от сървъра, докато настройва бисквитката; След това той изисква от браузъра да изпрати бисквитката само когато потребителят използва директно уеб приложението.
  • Сега, ако някой се опита да поиска нещо от уеб приложението, браузърът няма да изпрати бисквитката.
  • Въпреки това, предотвратява атаката на CSRF.

Това има ограничение, същите бисквитки на сайта не се поддържат в съвременните браузъри, докато уеб приложенията, които използват бисквитки на същия сайт, не се поддържат в по-старите браузъри.

Примери за CSRF

По-долу сме обяснили някои примери за CSRF:

1. Използване на GET заявки:

Да предположим, че сте внедрили и проектирали уебсайт bankking.com за извършване на действия като онлайн транзакции чрез използване на GET заявки. Сега умният нападател, който знае как да изработи злонамерен URL адрес, може да използва елемент, за да накара браузъра безшумно да зареди страницата

Пример за HTML елемент с изображение, съдържащ зловреден URL адрес:

2. Една от по-долу техниката може да се използва за същото:

  • Като изпратите имейл с HTML съдържание
  • Чрез засаждане на скрипт или злонамерен URL адрес на страниците, които потребител вероятно ще посети, докато извършва онлайн транзакции.

3. Използване на POST заявки

Съществува общо погрешно схващане относно HTTP POST заявките, че CSRF атаките могат да бъдат предотвратени, като позволят HTTP POST заявки, което всъщност не е вярно. Нападателят може да създаде формуляр с помощта на HTML или JavaScript и да използва функцията за автоматично подаване, за да изпрати POST заявката, без да се изисква от потребителя да кликне върху бутона за изпращане.

заключение

Бисквитките са уязвими, тъй като се изпращат автоматично със заявката, което позволява на атакуващите да прилагат CSRF и да изпращат злонамерени заявки. Ефектът от уязвимостта на CSRF също зависи от привилегията на жертвата, чиято бисквитка се изпраща с молба на нападателя. Въпреки че извличането на данни не е основният обхват на CSRF атаката, промените в състоянието със сигурност ще имат неблагоприятен ефект върху експлоатацията на уеб приложението. Затова се препоръчва да предотвратите използването на превантивни методи за предпазване на уебсайта Ви от CSRF.

Препоръчителни статии

Това е ръководство за това какво е CSRF. Тук обсъдихме Ключовата концепция, Anti-CSRF токените, как се работи и примери за CSRF. Можете да разгледате и другите ни предложени статии, за да научите повече -

  1. Какво е Java в хибернация?
  2. Какво е ASP.NET?
  3. Какво е AWS Lambda?
  4. Какво е XHTML?