Cross-Site Request Forgery (CSRF) attacks pose even greater risks to victims of phishing

(suomeksi alla)

A Cross-Site Request Forgery attack exploits a web application’s trust in the user’s browser. This allows the attacker to execute malicious code in the web application via the victim’s browser without the victim noticing.

Let’s look at an example of how a CSRF attack works in an online banking application where a user transfers funds from one account to another. In this example case, the user’s browser sends a request to the online banking application to execute the transfer, using the recipient’s account number and the amount to be transferred, as parameter information. In a CSRF attack, the attacker lures the victim to a malicious website using a phishing email. The phishing email contains a link for a fund transfer request. This is a malicious request designed to execute the bank transfer using the victim’s active online banking session and authentication cookies. Once the victim is logged into their online banking app using their banking credentials, the unauthorized fund transfer request received in the phishing email appears genuine and correct to the online banking app, which then processes the transfer as normal.

In short, when a victim clicks on a malicious link in a phishing message, the victim’s browser automatically sends a fund transfer request to the banking app and executes the transfer without the victim’s knowledge, provided the victim is already logged into the service. The online banking app, which treats the request as legitimate, processes it and transfers funds from the victim’s account to the attacker’s account.

In a real-life scenario, CSRF attacks are not necessarily used to drain consumers’ bank accounts, because banks have additional verification measures to mitigate the practical risks of such attacks. However, the situation is not as good in other web applications, where CSRF attacks can be exploited unnoticed because traditional security methods are difficult, labour-intensive, and expensive to implement and maintain. Worst of all, traditional security methods do not even provide complete protection because, ultimately, human error is always a possibility.

So, is there a quick, low-cost and low-effort solution that provides effective protection against CSRF attacks? The short answer is yes: with FIDO2 security keys.

With FIDO2, possible attacks via a user’s browser are rendered ineffective thanks to these authentication protocol features:

1. Origin binding

FIDO2 binds the authentication request to the origin of the website from which the request originates. The origin (e.g., https://example.com) is included in the data generated by the browser, which is signed by the FIDO2 key. During FIDO2 authentication, the web service verifies that the origin information matches its own domain name. The attacker cannot spoof this value from another site because it doesn’t have access to the server’s credentials.

2. Challenge/Response Handshake

Every FIDO2 authentication includes a random challenge generated by the authentication server. The FIDO2 key signs this challenge along with other data. Since the challenge is unique to each login, an attacker cannot guess or reuse it in a CSRF attack.

3. Credential binding to the service (RP ID)

During service registration, FIDO2 credentials are generated for the specific service (called a Relying Party, or RP). The FIDO2 key will only perform a signature if the domain name in the request matches the RP ID in question. This prevents scripts on one site from requesting a FIDO2 key to use credentials of another service.

4. Browser mediation and user presence

FIDO2 authentication is done on the user’s browser, which requires active user action (press the security key button, swipe NFC, or provide biometrics). This prevents automatic authentication requests in the background without user interaction, which CSRF attacks attempt to exploit.

Put together, we can safely say that FIDO2 authentication is 100% resistant to CSRF attacks and adversary-in-the-middle (AITM) attacks.

SpearID® Standard FIDO2 security keys provide absolute protection against phishing, CSRF and adversary-in-the-middle (AITM) attacks, at a low cost, instantly and easily. Buy yourself a SpearID® Standard FIDO2 security key: https://shop.spear.fi/collections/identification

Cross-Site Request Forgery (CSRF) -hyökkäys tuo entistä enemmän riskejä kalasteluviestien uhreille

Cross-Site Request Forgery -hyökkäys hyödyntää web-sovelluksen luottamusta käyttäjän selaimeen. Tämän avulla hyökkääjä saa uhrin suorittamaan haittakoodia web-sovelluksessa uhrin selaimen kautta ilman, että uhri huomaa tätä. 

Esimerkkinä CSRF-hyökkäyksen toiminnasta voidaan ottaa vaikka verkkopankkisovellus, missä käyttäjä siirtää varoja tililtä toiselle. Tässä tapauksessa käyttäjän selain lähettää verkkopankkisovellukselle pyynnön suorittaa tilisiirto käyttäen tietoinaan vastaanottajan tilinumeroa ja siirrettävää summaa. CSRF-hyökkäyksessä hyökkääjä houkuttelee uhrin menemään haitalliselle verkkosivustolle esim. kalastelusähköpostin avulla, joka sisältää linkin tilisiirtopyyntöön verkkopankkisovellukselle. Tämä pyyntö on suunniteltu suorittamaan tilisiirron uhrin käyttämien verkkopankki-istunnon ja todennusevästeiden avulla. Kun uhri on kirjautuneena verkkopankkisovellukseensa ja tunnistautunut palveluun omilla pankkitunnuksillaan, hyökkääjän etukäteen luoma luvaton tilisiirtopyyntö vaikuttaa verkkopankkisovelluksen kannalta aidolta ja oikealta. 

Lyhyesti sanottuna, kun uhri käyttää kalasteluviestissä olevaa haitallista linkkiä, uhrin selain lähettää automaattisesti tilisiirtopyynnön pankkisovellukseen ja suorittaa rahansiirron uhrin tietämättä silloin kun uhri on jo kirjautunut palveluun sisään. Verkkopankkisovellus, joka pitää pyyntöä aitona, käsittelee sen ja siirtää varoja uhrin tililtä hyökkääjän tilille. 

Vaikka tässä käytetään verkkopankkisovellusta esimerkkinä, ei CSRF-hyökkäyksiä välttämättä käytetä kuluttajien pankkitilien tyhjentämiseen, koska pankeilla on käytössä lisävahvistuksia, joilla hyökkäyksen käytännön riskejä voidaan vähentää. Tilanne ei ole kuitenkaan yhtä hyvä muissa web-sovelluksissa, missä CSRF-hyökkäyksiä voidaan hyödyntää huomaamattomasti koska perinteiset suojausmenetelmät ovat vaikeita, työläitä ja kalliita toteuttaa sekä ylläpitää. Mikä pahinta, perinteiset suojausmenetelmät eivät edes anna täydellistä suojaa koska viimekädessä käyttäjän inhimillinen virhe on aina mahdollinen.   

Voiko siis CSRF-hyökkäykseltä suojautua edullisesti, helposti ja heti? Vastaus on yksinkertaisesti kyllä, FIDO2 suoja-avaimen avulla. 

Näin FIDO2 suojaa CSRF-hyökkäyksiltä:

FIDO2 ansiosta hyökkääjän luoma haittakoodi ei voi huijata käyttäjän selainta tekemään kirjautumista toisen palvelun puolesta. Tämä suojaus perustuu FIDO2-tunnistusprotokollan ominaisuuksiin.

1. Origin binding (alkuperän sitominen)

FIDO2 sitoo tunnistautumispyynnön siihen verkkosivuston alkuperään (origin), josta pyyntö tulee. Alkuperä (esim. https://example.com) sisältyy selaimen muodostamaan ja FIDO2- avaimen allekirjoittamaan dataan. Verkkopalvelu tarkistaa FIDO2-tunnistuksen yhteydessä, että origin -tieto vastaa sen omaa verkkotunnusta. Hyökkääjä ei voi väärentää tätä arvoa toiselta sivustolta koska sillä ei ole pääsyä palvelimen tunnistetietoihin.

2. Haaste/vaste -kättely

Jokainen FIDO2-tunnistautuminen sisältää palvelimen luoman satunnaisen haasteen (challenge). FIDO2-avain allekirjoittaa tämän haasteen yhdessä muiden tietojen kanssa. Koska haaste on yksilöllinen jokaiselle kirjautumiselle, hyökkääjä ei voi arvata tai uudelleen käyttää sitä CSRF-hyökkäyksessä.

3. Tunnisteen sidonta palveluun (RP ID)

FIDO2-tunnisteet (credentials) luodaan tietylle palvelulle, jota kutsutaan luottavaksi osapuoleksi (Relying Party / RP). FIDO2- avain suorittaa allekirjoituksen vain, jos pyynnön verkkotunnus vastaa kyseistä RP-tunnistetta. Näin esim. yhden sivuston skripti ei voi pyytää FIDO2-avainta käyttämään toisen palvelun tunnistetta.

4. Selainvälitys ja käyttäjän läsnäolo

FIDO2-tunnistus tapahtuu selaimen välityksellä, joka vaatii käyttäjän aktiivisen toimenpiteen (suoja-avaimen napin painamisen, biometriikan). Tämä estää taustalla tapahtuvat automaattiset tunnistautumispyynnöt, joita CSRF-hyökkäykset yrittävät hyödyntää.

Yhdessä tämä tekee FIDO2-tunnistuksesta vastustuskykyisen CSRF-hyökkäyksille ja Man-in-the-Middle hyökkäyksiin.

SpearID FIDO2-suojausavaimet antavat täydellisen suojan tietojen kalastelua vastaan, välittömästi, helposti ja edullisesti. Osta SpearID FIDO2-suojausavaimet tästä: https://shop.spear.fi/collections/identification

Previous
Previous

FIDO2 on ajankohtainen askel kohti salasanatonta tunnistautumista

Next
Next

Companies are treating CRA as a burden. That’s your opportunity.