Frajilite oauth | Ki jan yo aplike Otorizasyon san danje nan aplikasyon entènèt ou an

Anonim
Frajilite oauth | Ki jan yo aplike Otorizasyon san danje nan aplikasyon entènèt ou an 2740_1

Atik sa a pral fè fas ak byen li te ye frajilite yo OAuth. Lektè pral aprann tou ki jan yo aplike san danje epi san danje otorizasyon nan aplikasyon an entènèt.

Oauth se yon pwotokòl serye, men degre li yo nan sekirite lajman depann sou konsyans la nan devlopè entènèt lè mete ann aplikasyon otorizasyon. Sa fè sijè sa a trè enpòtan pou pwofesyonèl enfòmasyon sekirite. Yo bezwen bay yon wo nivo de pwoteksyon nan kont nan itilizatè yo. Li se tan jwenn konnen ak pratik efikas ki pral ede redwi danje a nan vann pòv OAuth.

Entrodiksyon

OAuth 2.0 pwotokòl se kounye a lajman itilize nan aplikasyon pou divès kalite. Sèvi ak li, yon koòdone itilizatè pratik vin disponib, pi fasil otantifikasyon ak otorizasyon konpare ak metòd tradisyonèl pou k ap antre nan non itilizatè a ak modpas. Avèk aplikasyon apwopriye ak reflechi, pwotokòl la OAuth yo pral pi an sekirite pase otorizasyon tradisyonèl, depi itilizatè pa bezwen pataje done kontablite yo ak yon aplikasyon twazyèm-pati jwenn aksè nan yon resous espesifik. Itilizatè yo souvan pito ouvri sesyon an lè l sèvi avèk kont Google yo, Facebook oswa LinkedIn, olye pou yo kreye yon nouvo kont chak fwa ou bezwen enskri sou kèk sit entènèt. Kidonk, pwotokòl la OAuth anpil senplifye lavi nou.

An jeneral, popilè founisè sèvis OAuth yo trè serye. Log in ak kont Google oswa Facebook enspire yon sans sèten nan sekirite, epi li se kòrèk. Se pwotokòl la ak anpil atansyon teste pa ekspè nan. Tout frajilite ki disponib yo toujou byen vit korije pa ekip la pwomotè. Sepandan, li se vo anyen ki santi a nan sekirite konplè kapab fo.

OAuth Sèvis Founisè kite devlopè aplikasyon yon anpil nan rezon ki fè yo soutni sekirite a nan pwogram yo. An reyalite, sèvis la okòmansman pwoteje OAuth, mal aplike nan pwosesis la nan enstalasyon li yo, ka vin yon sib fasil pou entrigan. Preyokupacy sa yo ap mennen nan vòl la nan done pèsonèl nan itilizatè.

Apre sa, ou ta dwe konsidere frajilite ki pi komen rankontre nan aplikasyon pou twazyèm-pati ki aplike OAuth Pwotokòl otorize itilizatè yo. Li dwe vin chonje ki pwotokòl la poukont li se san danje epi yo serye. Se sèlman apre aplikasyon kòrèk, li vin vilnerab a atak HACKER.

Oauth torckey vòl lè l sèvi avèk header nan referans

Lè aplikasyon an mande otorizasyon sou non itilizatè a nan sèvè a OAuth, yon moun resevwa kòd la antre nan epi voye tounen nan sèvè a pou chèk ki vin apre li yo. Si pandan travay la itilizatè a pral reyorante resous nan yon lòt paj, yo pral kòd la ka wè nan header nan "refor" nan demann lan HTTP. Kidonk, kòd la pral tonbe sou sit entènèt la ekstèn, ki pral menase done yo itilizatè anrejistre sou sèvè a OAuth.

Remak: header nan referans se yon header rechèch HTTP, li transmèt lame a URL ki soti nan ki demann lan voye.

Adousi konsekans yo nan vilnerabilite sa a, pwomotè a dwe asire w ke aplikasyon entènèt li yo pa gen okenn piki HTML. Si piki yo te detekte, atakè a ka byen fasil mete etikèt la imaj nan sèvè entènèt li yo ak jwenn yon fason yo redireksyon itilizatè a sou li. Se konsa, li pral jwenn opòtinite pou yo nan vole kòd la soti nan header nan "referans" nan demann lan HTTP.

OAuth torckey vòl lè l sèvi avèk paramèt la redireksyon_uri

Aplikasyon an inisye pwosesis otorizasyon an pa voye yon demann pou sèvè OAuth:

https://www.example.com/signin/authorize kiltivatè a? [[&redelirect_uri=htpps://demo.example.com/loginsuccessful.

Rechèch la toujou gen paramèt la "Redirect_uri" itilize pa sèvè a OAuth yo voye marqueur tounen nan aplikasyon an apre itilizatè a te bay konsantman l 'yo. Si valè a nan paramèt sa a pa kontwole oswa ou pa tcheke, atakè a ka byen fasil chanje li ak redireksyon demann lan nan sit entènèt li yo, kote li itilize yon pwogram espesyal pou trete siy ak jwenn aksè nan yon resous limite.

https://www.example.com/signin/authorize kiltivatè? [...&redelirect_uri=htpps://localhost.evil.com.

Pafwa URL ki sanble yo bloke. Atakè a ka redireksyon done yo resevwa sou URL la louvri, tankou sa a:

https://www.example.com/oauth20_authorize.srf?!... *SRF?Tire=htpps://accounts.google.com/backtoouthsubtarget?next=httpset ://evil.com.

Oswa sa a:

https://www.example.com/oauth2/authorize? [...]% Irect_uri = https% 3a% 2f% 2fapps.facebook.com% 2fattacker% 2f.

Lè mete ann aplikasyon OAuth, ou pa janm ka gen ladan domèn antye nan lis la blan. Se sèlman yon URL kèk ta dwe ajoute nan "Redirect_uri" pa reyorante resous yon demann yo voye louvri redireksyon.

Falsifikasyon nan demann kwa-liy

Falsifikatè nan yon demann entèsight ka rive lè yon atakè reyisi nan fè viktim nan klike sou lyen l ', li, konsa, jenere yon demann ke li pa te ale nan jenere. Falsifikasyon nan demann kwa-liy se nòmalman teni ak siy CSRF la, ki asosye avèk sesyon itilizatè a. Li ede aplikasyon an pou tcheke moun nan yon moun ki voye demann lan. "Eta" paramèt la nan Pwotokòl la OAuth sèvi kòm siy CSRF.

Li se vo gade ki jan se atak la CSRF te pote soti sou OAuth ak kòm ka "eta" paramèt la dwe itilize yo bese efè yo nan vilnerabilite.

HACKER ouvè yon aplikasyon entènèt ak lanse pwosesis otorizasyon pou jwenn aksè nan founisè sèvis la lè l sèvi avèk OAuth. Aplikasyon an mande yon founisè sèvis pou jwenn aksè nan ki bezwen yo dwe bay la. HACKER yo pral reyorante resous nan sit entènèt la founisè sèvis, kote ou anjeneral bezwen antre nan non itilizatè ou an ak modpas ou otorize aksè. Olye de sa, HACKER a atrap ak anpeche demann sa a ak ekonomis URL li yo. HACKER yon jan kanmenm lakòz viktim nan louvri URL sa a. Si viktim nan te antre nan sistèm founisè sèvis la lè l sèvi avèk kont li yo, Lè sa a, kalifikasyon li yo pral itilize bay desizyon yon kòd otorizasyon. Echanj Kòd Otorizasyon aksè a siy aksè a. Koulye a, se kont lan HACKER nan aplikasyon an otorize. Li ka jwenn aksè nan kont viktim lan.

Se konsa, ki jan mwen ka anpeche sitiyasyon sa a lè l sèvi avèk "eta" paramèt la?

Aplikasyon an dwe kreye yon valè ki se yon jan kanmenm ki baze sou kont lan sous (pou egzanp, sèvi ak sesyon itilizatè a Hash kle). Li se pa tèlman enpòtan ki sa li ye, bagay la prensipal se ke valè a se inik ak pwodwi lè l sèvi avèk enfòmasyon prive sou itilizatè orijinal la. Li asiyen nan "eta" paramèt la.

Valè sa a transmèt nan founisè sèvis la lè Redireksyon. Koulye a, HACKER a envite viktim nan yo louvri URL la, ki li double klas la.

Se kòd la otorizasyon bay ak voye tounen nan kliyan an nan sesyon an ansanm ak "eta" paramèt la.

Kliyan an jenere yon valè paramèt ki baze sou yon enfòmasyon sesyon epi konpare li ak "eta" valè a, ki te voye tounen soti nan demann lan Otorizasyon founisè sèvis la. Sa a valè pa matche ak "eta" paramèt la nan rechèch la, depi li te pwodwi sèlman sou baz la nan enfòmasyon sou sesyon aktyèl la. Kòm yon rezilta, valè a jwenn pa aksepte pa sistèm nan.

Lòt frajilite detekte lè mete ann aplikasyon OAuth gen ladan kapasite nan fè XSS (kwa-sit scripting) lè l sèvi avèk "Redirect_uri" paramèt la, OAuth prive anviwònman kle a (kle a pafwa ka jwenn lè dekonpleman yon aplikasyon mobil) ak Otorizasyon Kòd Règleman Vyolasyon (lè Kòd la otorizasyon ka yo dwe itilize plis pase yon fwa bay desizyon miltip marqueur aksè). Frajilite sa yo yo gen mwens komen pase sa yo ki dekri anwo a, men li pa fè yo mwens danjere. Pwomotè a ta dwe konnen tout pratik ki nesesè yo asire operasyon serye nan aplikasyon entènèt li yo.

Otè a nan atik la tradui: Simon Saliba.

Enpòtan! Enfòmasyon sèlman pou rezon akademik yo. Tanpri konfòme li avèk lejislasyon epi yo pa aplike enfòmasyon sa a pou rezon ilegal.

Plis materyèl enteresan sou Cisoclub.ru. Abònman nan nou: Facebook | VK | Twitter | Instagram | Telegram | Zen | Messenger | ICQ Nouvo | YouTube | Batman kè.

Li piplis