Haavoittuvuudet OAuth | Kuinka toteuttaa turvallisen valtuutuksen Web-sovelluksessa

Anonim
Haavoittuvuudet OAuth | Kuinka toteuttaa turvallisen valtuutuksen Web-sovelluksessa 2740_1

Tämä artikkeli käsittelee tunnettuja OAuth-haavoittuvuuksia. Lukijat oppivat myös turvallisen ja turvallisen luvan toteuttamisen verkkosovelluksessa.

OAuth on luotettava pöytäkirja, mutta sen vakuusaste riippuu suurelta osin Web-kehittäjien tietoisuudesta täytäntöönpanossa. Tämä tekee tästä aiheesta erittäin tärkeä tietoturvan ammattilaisille. Heidän on tarjottava käyttäjiensa tileille korkea taso. On aika tutustua tehokkaisiin ammattilaisiin, jotka auttavat vähentämään huonon myyntiä OAuthia.

Johdanto

OAuth 2.0 -protokollaa käytetään parhaillaan laajalti eri sovelluksissa. Käyttämällä sitä kätevä käyttöliittymä tulee saataville, helpompi todennus ja valtuutus verrattuna perinteisiin menetelmiin käyttäjätunnuksen ja salasanan syöttämiseksi. Oauth-protokolla on oikea ja huomaavainen toteutus on turvallisempi kuin perinteinen valtuutus, koska käyttäjien ei tarvitse jakaa kirjanpitotietojaan kolmannen osapuolen sovelluksella tiettyä resurssia. Käyttäjät haluavat usein kirjautua käyttämällä Google-tilejä, Facebook tai LinkedInia sen sijaan, että luodaan uusi tili joka kerta, kun haluat rekisteröityä joihinkin verkkosivustoihin. Näin ollen OAuth-protokolla yksinkertaistaa suuresti elämäämme.

Yleensä suosittu OAuth-palveluntarjoajat ovat erittäin luotettavia. Kirjaudu sisään Google- tai Facebook-tilillä innostaa tiettyä turvallisuuden tunnetta, ja se on oikein. Asiantuntijat testataan huolellisesti protokolla. Kehittäjätiimi aina korjataan nopeasti nopeasti nopeasti. On kuitenkin syytä huomata, että täydellisen turvallisuuden tunne voi olla väärä.

OAuth-palveluntarjoajat lähtivät sovellusten kehittäjille paljon syitä kantaa ohjelmiensa turvallisuutta. Itse asiassa aluksi suojattu OAuth -palvelu, joka on toteutettu väärin sen asennuksen prosessissa, voi tulla helppo tavoite tunkeilijoille. Tällainen huolenaihe johtaa käyttäjien henkilötietojen varastamiseen.

Seuraavaksi kannattaa harkita yleisintä haavoittuvuuksia, jotka ovat kohdanneet kolmannen osapuolen sovelluksiin, jotka toteuttavat OAuth-pöytäkirjan käyttäjien valtuuttamiseksi. On muistettava, että itse pöytäkirja on turvallinen ja luotettava. Vain virheellisen toteutuksen jälkeen on alttiita hakkeri-iskuille.

OAuth Tockey varkaus Käyttämällä viittausääntä

Kun sovellus pyytää lupaa käyttäjän puolesta OAuth Serverissa, henkilö saa koodin syöttämään ja lähettämään palvelimelle sen myöhempää tarkistusta varten. Jos työn aikana käyttäjä ohjataan toiselle sivulle, koodi näkyy HTTP-pyynnön "Viittaus" -otsikossa. Siten koodi putoaa ulkoiselle verkkosivustolle, joka uhkaa OAuth-palvelimessa rekisteröityjä käyttäjätietoja.

Huomaa: Viittauspäällyste on HTTP-kyselyn otsikko, se lähettää URL-isännän, josta pyyntö lähetetään.

Tämän haavoittuvuuden seurausten pehmentämiseksi kehittäjän on varmistettava, että sen verkkosovellus ei sisällä HTML-injektioita. Jos injektiot havaittiin, hyökkääjä voi helposti asettaa kuvatunnuksen Web-palvelimelle ja löytää tapa ohjata käyttäjälle. Näin ollen hän saa tilaisuuden varastaa koodin HTTP-pyynnön "Referer" -otsauksesta.

OAuth tockey varkaus käyttäen uudelleenohjaus_URI-parametria

Hakemus aloittaa valtuutusprosessin lähettämällä pyynnön OAuth Serverille:

https://www.example.com/signiini/Authorisoi ?[...]&redirect_uri=httpps://demo.example.com/loginskosuhdistusta.

Kysely sisältää aina OAuth-palvelimen "Redirect_uri" -parametrin, jota OAuth Servi käyttää lähettämään rahakkeita takaisin hakemukseen, kun käyttäjä on antanut suostumuksensa. Jos tämän parametrin arvoa ei ole valvottu tai ei tarkistettu, hyökkääjä voi helposti muuttaa sitä ja ohjata pyynnön verkkosivustolleen, jossa se käyttää erityisohjelmaa tunnisteen käsittelemiseksi ja pääsy rajoitettuun resurssiin.

https://www.example.com/signiin/Autheze?[...]&redirect_uri=httpps://localhost.Evil.com.

Joskus samanlaiset URL-osoitteet ovat estettyjä. Hyökkääjä voi ohjata vastaanotetut tiedot avoimesta URL-osoitteesta, kuten tämä:

https://www.example.com/oauth20_Autheize.srf?[...[ ...[ ...[ ...[&redirect_uri=httpps://accounts.google.com/backtoouthsubtarget?next=httpset://evil.com.

Tai tämä:

https://www.example.com/oauth2/Authorisoi? [...]% IRECT_URI = https% 3a% 2f% 2fapps.facebook.com% 2FATACKER% 2F.

OAUTH: n toteuttamisen yhteydessä et voi koskaan sisällyttää koko verkkotunnuksia valkoisessa luettelossa. Vain muutamia URL-osoitteita on lisättävä "Redirect_URI", jota ei ole ohjattu uudelleenohjauksen avaamiseksi.

Ristipyyntöjen väärentäminen

InterSight-pyynnön väärentäminen voi ilmetä, kun hyökkääjä onnistuu tekemään uhrin napsauttamaan hänen linkkiä ja siten luomaan pyynnön, ettei hän aio luoda. Ristipyyntöjen väärentäminen on yleensä pehmennetty CSRF-tunnuksella, joka liittyy käyttäjän istuntoon. Se auttaa hakemuksen tarkistamaan pyynnön lähettämän henkilön henkilö. OAuth-protokollan "valtion" parametri toimii CSRF-tunnuksena.

On syytä katsella, miten CSRF-hyökkäys toteutetaan OAuthissa ja "valtion" parametriksi voidaan käyttää heikentyneiden vaikutusten lieventämiseen.

Hacker avaa web-sovelluksen ja käynnistää valtuutusprosessin käyttää palveluntarjoajaa OAuthin avulla. Hakemus pyytää palveluntarjoajaa pääsyn tähän tarkoitukseen. Hacker ohjataan palveluntarjoajan verkkosivustolle, jossa sinun on yleensä annettava käyttäjätunnuksesi ja salasanasi, jotta pääset käyttämään pääsyä. Sen sijaan hakkeri saaliit ja estää tämän pyynnön ja tallentaa sen URL-osoitteen. Hacker jotenkin aiheuttaa uhrin avataksesi tämän URL-osoitteen. Jos uhri tuli palveluntarjoajan järjestelmään, käyttäen sen tiliä, sen valtakirjoja käytetään antamaan valtuutuskoodi. Valtuutuskoodi vaihtaa pääsyn käyttöoikeuksiin. Nyt hakemuksen hakkeritili on sallittua. Se voi käyttää uhrin tiliä.

Joten, miten voin estää tilanteen käyttämällä "valtion" parametria?

Sovelluksen on luotava arvo, joka on joka tapauksessa perustuen lähdetilille (esimerkiksi käyttäjän istunto-avaimella). Se ei ole niin tärkeä, mikä on, että tärkein asia on, että arvo on ainutlaatuinen ja muodostettu käyttäen yksityisiä tietoja alkuperäisestä käyttäjästä. Se on osoitettu "valtion" parametriin.

Tämä arvo lähetetään palveluntarjoajalle uudelleenohjauksen aikana. Nyt hakkeri kutsuu uhrin avaamaan URL-osoitteen, jonka hän säilyi.

Valtuutuskoodi annetaan ja lähetetään takaisin asiakkaalle istunnossa sekä "valtion" parametrilla.

Asiakas tuottaa parametriarvon, joka perustuu istunnon informaatioon ja vertaa sitä "valtion" -arvoon, joka lähetettiin takaisin valtuutuspyynnöstä palveluntarjoajalle. Tämä arvo ei vastaa kyselyn "valtion" parametria, koska se on syntynyt vain nykyisen istunnon tietojen perusteella. Tämän seurauksena järjestelmä ei hyväksy saada arvoa.

Muita haavoittuvuuksia, jotka on havaittu OAuthin toteutuksessa, ovat kyky suorittaa XSS (Cross-site Scripting) käyttämällä "Redirect_URI" -parametria, OAuth Private -näppäimen asetus (näppäintä voi joskus saada mobiilisovelluksen purkamisen aikana) ja valtuutuskoodin sääntöjen rikkominen (kun Valtuutuskoodia voidaan käyttää useammin kuin kerran määrittää useita pääsy merkkejä). Nämä haavoittuvuudet ovat vähemmän yleisiä kuin edellä kuvatut, mutta se ei tee niitä vähemmän vaarallisia. Kehittäjän on tiedettävä kaikki tarvittavat käytännöt verkkosovelluksen luotettavan toiminnan varmistamiseksi.

Käännetyn artikkelin kirjoittaja: Simon Saliba.

Tärkeä! Tiedot ainoastaan ​​akateemisista tarkoituksista. Ole hyvä ja noudata lainsäädäntöä ja eivät sovella näitä tietoja laittomiin tarkoituksiin.

Mielenkiintoisempi materiaali Cisoclub.ru. Tilaa meille: Facebook | VK | Twitter | Instagram | Telegram Zen | Messenger | ICQ uusi | YouTube | Pulssi.

Lue lisää