Подправяне на заявки между сайтове (CSRF) е един от най-старите начини за използване на уязвимостите на уебсайта. Той е насочен към сървърни уеб комутатори, които обикновено изискват удостоверяване като влизане. По време на CSRF атака, нападателят има за цел да принуди жертвата си да направи неразрешена, злонамерена уеб заявка от тяхно име.

Слабите или лоши практики за сигурност на уебсайта и невниманието по пътя на потребителя са някои от честите причини за успешна CSRF атака.

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

Как CSRF атаките ви засягат?

CSRF е атака, използвана за изпълнение на неоторизирани заявки по време на уеб действия, които изискват потребителско влизане или удостоверяване. CSRF атаките могат да се възползват от идентификатори на сесии, бисквитки, както и от други уязвимости, базирани на сървъра, за да откраднат идентификационните данни на потребителя.

Например активирането на анти-CSRF процедури предотвратява злонамерени взаимодействия между домейни.

instagram viewer

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

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

Какво е социално инженерство? Ето как бихте могли да бъдете хакнати

Научете как социалното инженерство може да ви повлияе, както и общи примери, които ще ви помогнат да се идентифицирате и да се предпазите от тези схеми.

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

Успешната CSRF атака може да накара упълномощените потребители да загубят своите идентификационни данни за достъп до нападател, особено по време на сървърно базирани действия като заявки за промяна на парола или потребителско име. В по-лоши сценарии нападателят поема цялата сесия и действа от името на потребителите.

CSRF е бил използван за отвличане на транзакции с фондове в мрежата, както и за промяна на потребителски имена и пароли, което води до загуба на потребители до засегнатата услуга.

Как атакуващите отвличат вашите сесии с CSRF: Примери

Основните цели за CSRF атаки са уеб действия, включващи удостоверяване на потребителя. За да бъде успешен, той се нуждае от неволни действия от страна на жертвата.

По време на CSRF атака действията GET, DELETE и PUT, както и уязвимите POST заявки са основните цели на атакуващия.

Нека разгледаме значението на тези термини:

  • ВЗЕМЕТЕ: Искане за събиране на резултат от базата данни; например търсене с Google.
  • ПОЩА: Обикновено за подаване на заявки чрез уеб формуляри. Искането за POST е често срещано по време на регистрацията или влизането на потребителя, иначе известно като удостоверяване.
  • ИЗТРИЙ: За да премахнете ресурс от базата данни. Правите това, когато изтриете акаунта си от определена уеб услуга.
  • СЛАГАМ: Искането за PUT модифицира или актуализира съществуващ ресурс. Пример за това е промяна на вашето име във Facebook.

На практика нападателите използват отвличане на сесии, за да архивират CSRF атака. Когато използва тази комбинация, нападателят може да използва отвличане, за да промени IP адреса на жертвата.

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

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

Пример за GET заявка CSRF атака

Представете си, че се опитвате да извършите онлайн плащане чрез незащитена платформа за електронна търговия. Собствениците на платформата използват заявката GET за обработка на вашата транзакция. Тази GET заявка може да изглежда така:

https://websiteurl/pay? сума = $ 10 & компания = [акаунт на ABC на компанията]

Похитител може лесно да открадне транзакцията ви, като промени параметрите на заявката GET. За да направят това, всичко, което трябва да направят, е да сменят името ви с тяхно и по-лошото, да променят сумата, която възнамерявате да платите. След това те пренасочват оригиналната заявка към нещо подобно:

https://websiteurl/pay? сума = $ 20000 & компания = [акаунт на нападателя]

След като щракнете върху връзката към тази модифицирана GET заявка, в крайна сметка правите неволно прехвърляне към акаунта на нападателя.

Транзакцията чрез GET заявки е лоша практика и прави дейностите уязвими за атаки.

Пример за POST заявка CSRF атака

Много разработчици обаче вярват, че използването на POST заявка е по-сигурно за извършване на уеб транзакции. Макар че това е вярно, за съжаление, POST заявка е податлива и на CSRF атаки.

За да отвлече успешно POST заявка, всичко, от което се нуждае атакуващият, е идентификаторът на текущата ви сесия, някои репликирани невидими форми и понякога малко социално инженерство.

Например формуляр за заявка POST може да изглежда така:







Въпреки това, нападателят може да замени вашите идентификационни данни, като направи нова страница и модифицира формата по-горе в това:









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

След като отвлекат тази текуща сесия, вашата страница за транзакции инициира пренасочване към страницата на нападателя, което ви подканва да щракнете върху връзка, която те знаят, че най-вероятно ще посетите.

Кликването върху това зарежда подаването на репликирания формуляр, който прехвърля вашите средства в сметката на нападателя. Това означава, че не е необходимо да натискате бутони като „изпращане“, за да се осъществи транзакцията, тъй като JavaScript автоматично прави това при зареждане на следващата уеб страница.

Като алтернатива, нападателят може също да изготви вграден в HTML имейл, който ви подканва да щракнете върху връзка, за да извършите същото подаване на формуляр за зареждане на страница.

Друго действие, което е уязвимо за CSRF атака, е потребителско име или промяна на парола, пример за PUT заявка. Нападателят репликира формуляра ви за заявка и замества имейл адреса ви с техния.

След това те открадват сесията ви или ви пренасочват към страница, или ви изпращат имейл, който ви подканва да щракнете върху привлекателна връзка.

След това изпраща манипулиран формуляр, който изпраща връзката за нулиране на паролата на имейл адреса на хакера вместо на вашия. По този начин хакерът променя паролата ви и ви излиза от акаунта ви.

Как да предотвратим атаките на CSRF като разработчик

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

Свързани: Безплатни ръководства за разбиране на цифровата сигурност и защита на вашата поверителност

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

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

Внедряването на система за двуфакторно удостоверяване (2FA) за изпълнение на транзакции във вашето уеб приложение също намалява шансовете за CSRF.

Възможно е да се инициира CSRF чрез скриптове между сайтове (XSS), което включва инжектиране на скриптове в потребителски полета като формуляри за коментари. За да предотвратите това, добра практика е да разрешите автоматично избягване на HTML във всички полета на потребителски формуляри във вашия уебсайт. Това действие пречи на полетата на формуляра да интерпретират HTML елементи.

Как да предотвратим CSRF атаки като потребител

Като потребител на уеб услуга, която включва удостоверяване, вие трябва да изиграете роля за предотвратяване на кражба на вашите идентификационни данни и сесии чрез CSRF.

Уверете се, че използвате надеждни уеб услуги по време на дейности, които включват превод на средства.

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

Свързани: Най-добрите частни търсачки, които зачитат вашите данни

Като потребител можете също да разчитате на автентификатори на трети страни като Google Authenticator или неговите алтернативи за проверка на самоличността ви в мрежата.

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

Подобрете вашата уеб сигурност

Разработчиците трябва редовно да тестват уеб приложения за нарушения на сигурността по време на разработването и внедряването.

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

електронна поща
5 инструменти за парола за създаване на силни паролни фрази и актуализиране на вашата сигурност

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

Свързани теми
  • Сигурност
  • Онлайн сигурност
За автора
Idowu Omisola (46 статии публикувани)

Idowu е запален по всичко интелигентни технологии и производителност. В свободното си време той си играе с кодиране и превключва на шахматната дъска, когато му е скучно, но също така обича да се откъсва от рутината от време на време. Страстта му да показва на хората пътя към съвременните технологии го мотивира да пише повече.

Още от Idowu Omisola

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!

Още една стъпка…!

Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.

.