Kwinningheidheid OAuth | Hoe kinne jo feilige autorisaasje útfiere yn jo web-applikaasje

Anonim
Kwinningheidheid OAuth | Hoe kinne jo feilige autorisaasje útfiere yn jo web-applikaasje 2740_1

Dit artikel sil behannelje mei de bekende OAUTH-kwetsberheden. Lêzers sille ek leare hoe't jo feilige en feilige autorisaasje moatte ymplementearje yn 'e webapplikaasje.

Oauth is in betrouber protokol, mar har graad fan feiligens hinget foar it grutste part fan it bewustwêzen fan it bewustwêzen fan webûntwikkelers by it útfieren fan autorisaasje. Dit makket dit ûnderwerp ekstreem wichtich foar professionals fan ynformaasje. Se moatte in heech nivo fan beskerming jaan fan akkounts fan har brûkers. It is tiid om yn 'e kunde te kommen mei effektive beoefeners dy't sille helpe om it gefaar te ferminderjen fan min te ferkeapjen oauth.

Ynlieding

OAuth 2.0-protokol is op it stuit breed brûkt yn ferskate applikaasjes. Mei help fan it wurdt in maklike brûkersynterface beskikber, makliker ferifikaasje en autorisaasje yn ferliking mei tradisjonele metoaden foar it ynfieren fan it brûkersnamme en wachtwurd. Mei juste en gedachte ymplemintaasje sil it OAuth-protokol wêze as tradisjonele autorisaasje, om't brûkers har boekhâldgegevens net moatte diele mei in applikaasje fan tredde partij om tagong te krijen. Brûkers wolle leaver oanmelde mei har Google-akkounts, Facebook of LinkedIn, ynstee fan in nij akkount te meitsjen elke kear as jo moatte registrearje op ien of oare webside. Sa nimt de Oauth-protokol ús libben sterk ferminderet.

Yn 't algemien binne populêr Outh Service-providers tige betrouber. Meld jo oan by Google of Facebook-akkount ynspireart in bepaald gefoel fan feiligens, en it is korrekt. It protokol wurdt soarchfâldich testen troch saakkundigen. Alle beskikbere kwetsberheden wurde altyd fluch korrizjearre troch it Developer-team. It is lykwols it wurdich te merken dat it gefoel fan folsleine feiligens falsk kin wêze.

OAUTH SERVICE-oanbieders ferlieten applikaasje ûntwikkelers in protte redenen om de feiligens fan har programma's te befoarderjen. Eins is de ynearsten beskerme Outh-tsjinst, ferkeard ymplementearre yn it proses fan syn ynstallaasje, kin in maklik doel wurde foar ynbrekkers. Sokke preoccupacy sil liede ta de diefstal fan persoanlike gegevens fan brûkers.

Folgjende, jo moatte beskôgje de meast foarkommende kwetsberen dy't wurde tsjinkaam by applikaasjes dy't oantrúnje yn tredden dy't Oauth-protokol ymplementearje om har brûkers te autorisearjen. It moat wurde ûnthâlden dat it protokol sels feilich en betrouber is. Allinich nei ferkearde ymplemintaasje wurdt it kwetsber foar haken oanfallen.

Oauth Tockey Diefstal mei de REPERE-koptekst

As de applikaasje autorisaasje freget út namme fan 'e brûker oan' e OUTH-server, krijt in persoan de koade om yn te gean en nei de server werom te gean nei de server foar syn folgjende kontrôle. As jo ​​tidens it wurk trochferwize nei in oare pagina wurde, sil de koade wurde sjoen yn 'e "REPERER" fan it HTTP-oanfraach. Sa sil de koade falle op 'e eksterne webside, dy't de brûkersgegevens op' e OAuth-server sille bedrige.

Opmerking: De referkerkop is in HTTP-fraach-koptekst, it stjoert de URL-host út wêr't it fersyk wurdt ferstjoerd.

Om de gefolgen fan dizze kwetsberens te verzachten, moat de ûntwikkelder derfoar soargje dat syn webapplikaasje gjin HTML-ynjeksjes befettet. As de ynjeksjes waarden ûntdutsen, kin de oanfaller maklik de ôfbyldingssakt kinne ynstelle op syn webserver en in manier fine om de brûker derop te omein om te omein te omein te omein te omein te omein troch te beljen. Sa sil hy de kâns krije om de koade te stielen fan 'e "referer" koptekst fan it HTTP-oanfraach.

OAuth Tockey Diefstal mei de parameter fan 'e trochferwizings_uri

De applikaasje inisjearret it autorisaasjeproses troch in fersyk te stjoeren nei de OAuth-server:

https://www.example.com/signin/authorisearje ?; ..Erem_uri=http://demo.Example.com/loginsocessyf.

De fraach befettet altyd de parameter "Redirect_uri" brûkt troch de OAUTH-server om tokens werom te stjoeren nei de applikaasje nei de applikaasje nei't de brûker syn tastimming joech. As de wearde fan dizze parameter net wurdt kontroleare of net kontroleare, kin de oanfaller it maklik feroarje en trochferwize en omliede dan in spesjaal programma foar it ferwurkjen fan it token en krije tagong ta in beheinde boarne.

https://www.hamts.com/signin/authorisearje ?; ..Ereste&redirect_uri=http://localhost.Evil.com.

Soms binne ferlykbere URL's blokkearre. De oanfaller kin de ûntfongen gegevens trochferwize op 'e iepen url, lykas dizze:

HTTPS://wwww.example.com/oAuth20_AUTHorize.srf?ll аRedirect_uri=http://racounta.pl

OF DIT:

https://www.example.com/oauth2/authorisearje? [...]% irekt_uri = https% 3A% 2F% 2Fapps.Facebook.com% 2Fattacker% 2F.

As jo ​​OAuth útfiere, kinne jo noait heule domeinen opnimme yn 'e Wite list. Allinich in pear URL's moatte wurde tafoege oan "Redirect_uri" net omlaat in fersyk om trochferwizings te iepenjen.

Ferfal fan cross-line-oanfragen

Ferfal fan in krúsj foar krimp kin foarkomme as in oanfaller slagget om it slachtoffer te meitsjen om op syn link te klikken en dus om in fersyk te generearjen dat hy net soe generearje. Ferfal fan krús-line-oanfragen wurdt normaal verzûn mei de CSRF-token, dy't assosjeare is mei de brûkers-sesje. It helpt de applikaasje om de persoan te kontrolearjen fan in persoan dy't it fersyk stjoerde. De parameter "Steat" yn 'e OAuth Protocol tsjinnet as CSRF-token.

It is it wurdich te besjen hoe't de CSRF-oanfal wurdt útfierd op OAUTH en as de "steat"-parameter kin brûkt wurde om de effestaasjes fan kwetsberens te ferminderjen.

Hacker iepenet in webapplikaasje en lanseart it autorisaasjeproses om tagong te krijen ta de tsjinstferliener mei OAUTH. De applikaasje freget in tsjinstferliener oan tagong ta dat moat wurde levere. Hacker sil wurde omlaat nei de webside fan tsjinstferliener, wêr't jo normaal jo brûkersnamme en wachtwurd moatte ynfiere om tagong te autorisearjen. Ynstee fangst de Hacker en foarkomt dit fersyk en besparret syn URL. Hacker feroarsaket op ien of oare manier it slachtoffer dizze URL te iepenjen. As it slachtoffer it systeem fan 'e tsjinstferliener ynfierd hat mei syn akkount, dan sille syn referinsjes brûkt wurde om in autorisaasjekoade út te jaan. De autorisaasjekoade makket tagong ta tagong ta it tagongspunt. No is it hacker-akkount yn 'e applikaasje autorisearre. It kin tagong krije ta it akkount fan it slachtoffer.

Dat, hoe kin ik dizze situaasje foarkomme mei de parameter "State"?

De applikaasje moat in wearde meitsje dy't op ien of oare manier is basearre op it boarne-akkount (bygelyks, brûk de Wash-toets fan it boarne-akkount. It is net sa wichtich wat it is, it wichtichste is dat de wearde unyk is en generearre mei privee ynformaasje oer de oarspronklike brûker. It wurdt tawiisd oan de "State" -parameter.

Dizze wearde wurdt oerbrocht nei de tsjinstferliener by omlieding. No noegje de Hacker it slachtoffer út om de URL te iepenjen, dy't hy behâlden.

De autorisaasjekoade wurdt útjûn en stjoerd nei de kliïnt yn 'e sesje tegearre mei de parameter "State".

De kliïnt genereart in parameterwearde op basis fan in sesjeynformaasje en fergeliket it mei de wearde fan 'State ", dat waard stjoerd út it Autorisaasje-oanfraach fan it Autorisaasjefersyk nei de tsjinstferliener. Dizze wearde komt net oerien mei de parameter "State" yn 'e fraach, om't it allinich is generearre op basis fan ynformaasje oer de hjoeddeistige sesje. As resultaat wurdt de krige wearde net aksepteare troch it systeem.

Oare kwetsberheden ûntdutsen as it útfiering fan OAuth omfettet de mooglikheid om XSS te fieren (Cross-Site-skripting (de kaai kin somtiden in mobile applikaasje) en autorisaasjekoade-yntrekkings wurde. De autorisaasjekoade kin mear brûkt wurde as ien kear om meardere tagongspunten te jaan). Dizze kwetsberheden binne minder gewoan dan dy hjirboppe beskreaun, mar it makket se net minder gefaarlik. De ûntwikkelder moat alle nedige praktiken witte om te soargjen foar betroubere operaasje fan har webapplikaasje.

De auteur fan it oerset artikel: Simon Saliba.

Belangryk! Ynformaasje allinich foar akademyske doelen. Folje asjebleaft mei wetjouwing en tapasse dizze ynformaasje net foar yllegale doelen.

Mear ynteressanter materiaal op cisoclub.ru. Abonnearje op US: Facebook | VK | Twitter | Instagram | Telegram | Zen | Messenger | ICQ Nij | YouTube | Pols.

Lês mear