Kerentanan OAUTH | Cara ngetrapake wewenang sing aman ing aplikasi web sampeyan

Anonim
Kerentanan OAUTH | Cara ngetrapake wewenang sing aman ing aplikasi web sampeyan 2740_1

Artikel iki bakal ngatasi kerentanan OAUTH sing kondhang. Pembaca uga bakal sinau babagan carane ngetrapake wewenang sing aman lan aman ing aplikasi web.

OAUTH minangka protokol sing dipercaya, nanging tingkat keamanan gumantung karo kesadaran pangembang web nalika ngetrapake wewenang. Iki nggawe topik iki penting banget kanggo profesional keamanan informasi. Dheweke kudu nyedhiyakake pangayoman akun sing dhuwur saka pangguna. Iki wektu kanggo njaluk kenal karo praktisi sing efektif sing bakal mbantu nyuda bebaya sing adol sing adol Oauth.

Pambuka

Oauth 2.0 protokol saiki digunakake ing macem-macem aplikasi. Nggunakake, antarmuka pangguna sing cocog kasedhiya, bukti asli lan wewenang dibandhingake cara tradisional kanggo ngetik jeneng pangguna lan sandhi. Kanthi implementasine sing tepat lan protokol OAUTH bakal luwih aman tinimbang wewenang tradisional, amarga pangguna ora kudu nuduhake data akuntansi kanthi aplikasi pihak katelu kanggo ngakses sumber tartamtu. Pangguna asring milih nggunakake akun Google, Facebook utawa LinkedIn, tinimbang nggawe akun anyar saben sampeyan kudu ndhaptar sawetara situs web. Mangkono, protokol OAUTH paling gampang nggawe urip kita.

Umumé, panyedhiya layanan OAUTH sing populer banget dipercaya. Mlebu karo Google utawa akun Facebook sing menehi inspirasi kanggo keamanan tartamtu, lan bener. Protokol diuji kanthi ati-ati dening para ahli. Kabeh kerentanan sing kasedhiya mesthi dibenerake dening tim pangembang. Nanging, kudu dieling-eling manawa rasa safety lengkap bisa dadi salah.

Penyedhiya layanan OAUTH ngasilake aplikasi akeh alasan kanggo nggambarake keamanan program. Kasunyatane, layanan OAAGH sing wiwitan dilindhungi, salah dilaksanakake ing proses instalasi, bisa dadi target sing gampang kanggo intruder. Preoccupasi kasebut bakal nyebabake nyolong data pribadi pangguna.

Sabanjure, sampeyan kudu nimbang kerentanan sing paling umum sing ditemoni ing aplikasi pihak katelu sing ngetrapake Oauth Protocol kanggo menehi wewenang pangguna. Sampeyan kudu eling yen protokol kasebut aman lan dipercaya. Mung sawise implementasine sing ora bener, dadi rawan serangan hacker.

Nyolong oaututh toki nggunakake header referer

Nalika panjaluk aplikasi kanggo wewenang kanggo pangguna pangguna ing server OAUTH, wong nampa kode kanggo mlebu lan dikirim maneh menyang server kanggo mriksa sabanjure. Yen sajrone pakaryan pangguna bakal dialihake menyang kaca liyane, kode bakal katon ing header "referer". Mangkono, kode bakal tiba ing situs web njaba, sing bakal ngancam data pangguna sing didaftar ing server OAUTH.

CATETAN: Header Referer minangka header Query HTT, bisa ngirim host URL sing dikirim.

Kanggo nyuda akibat saka kerentanan iki, pangembang kudu mesthekake yen aplikasi web ora ngemot injeksi HTML apa wae. Yen injeksi kasebut dideteksi, panyerang bisa gampang nyetel tag gambar menyang server Web lan golek cara kanggo pangalihan pangguna. Mangkono, dheweke bakal entuk kesempatan kanggo nyolong kode saka header "referer" panjaluk HTTP.

Nyolong Tokley Oauth nggunakake parameter redirect_uri

Aplikasi miwiti proses wewenang kanthi ngirim panjaluk menyang server OAUTH:

https://www.example.com/signin/authorize? yoo.sredirect_uri=https://Temo.Example.com/loginsuccessful.

Pitakon mesthi ngemot parameter "Redirect_uri" sing digunakake dening server OAuthi kanggo ngirim token bali menyang aplikasi kasebut sawise pangguna menehi idin. Yen nilai parameter iki ora dikontrol utawa ora dicenthang, panyerang bisa ngganti lan pangalihan panjaluk situs web kanggo ngolah token lan entuk akses menyang sumber winates.

https://www.example.com/signin/authorize? yoo.sdirect_uri=https//lompehost./Loocalhost.IVIL.com.

Kadhangkala URL sing padha diblokir. Penyerang bisa pangalihan data sing ditampa ing URL mbukak, kaya iki:

https://www.example.com/oauth20_authorize.srf? yoad.sredirect_uri./REDIRECT_TAVERS.google.com/backtoouthsubstargetgetgetgetget.Next=HtPet=Ht=Ht=Ht=Ht=Ht=Ht=ht=Htpset/Evil.com.

Utawa iki:

https://www.example.com/oauth2/authorize? [...]% iRect_uri = https% 3F% 2f% 2fapps.facebook.com 2f.

Nalika ngetrapake implementing, sampeyan ora bisa nyakup kabeh domain ing dhaptar putih. Mung sawetara URL sing kudu ditambahake "redirect_uri" ora redirected panjaluk kanggo mbukak pangalihan.

Ngatur panjaluk salib

Ngelingi panjaluk kapinteran bisa kedadeyan nalika penyerang sukses kanggo nggawe korban kanggo ngeklik link lan, saéngga, kanggo ngasilake panjaluk dheweke ora bakal ngasilake. Ngelingi panjaluk panyambungan line biasane lemes karo token CSRF, sing ana gandhengane karo sesi pangguna. Iki mbantu aplikasi kanggo mriksa wong wong sing ngirim panjaluk kasebut. Parameter "Negara" ing protokol OAUTH dadi token CSRF.

Sampeyan kudu ndeleng cara serangan CSRF ditindakake ing OAUTH lan minangka parameter "Negara" bisa digunakake kanggo nyuda efek kerentanan.

Hacker mbukak aplikasi Web lan ngluncurake proses wewenang kanggo ngakses panyedhiya layanan nggunakake OAUTH. Aplikasi njaluk panyedhiya layanan kanggo ngakses sing kudu diwenehake. Hacker bakal dialihake menyang situs web panyedhiya layanan, sampeyan biasane kudu ngetik jeneng pangguna lan sandhi kanggo menehi endal akses. Nanging, hacker nyekel lan nyegah panjaluk kasebut lan nyimpen url. Hacker piye wae nyebabake korban mbukak URL iki. Yen korban mlebu ing sistem panyedhiya layanan nggunakake akun kasebut, mula kapercayan bakal digunakake kanggo ngetokake kode wewenang. Kode wewenang kanggo ijol-ijolan menyang token akses. Saiki akun hacker ing aplikasi kasebut sah. Bisa ngakses akun korban.

Dadi, kepiye carane bisa nyegah kahanan iki nggunakake parameter "Negara"?

Aplikasi kasebut kudu nggawe nilai sing adhedhasar adhedhasar sumber sumber (umpamane, nggunakake tombol Sesi pangguna). Pancen penting banget apa, sing utama yaiku nilai kasebut unik lan digawe nggunakake informasi pribadi babagan pangguna asli. Iki ditugasake parameter "Negara".

Nilai iki ditularake menyang panyedhiya layanan nalika pangalihan. Saiki peretak ngajak korban mbukak URL, sing disimpen.

Kode wewenang ditanggepi lan dikirim menyang klien ing sesi bebarengan karo parameter "Negara".

Klien ngasilake nilai parameter adhedhasar informasi sesi lan mbandhingake karo nilai "Negara", sing dikirim maneh saka panjaluk wewenang menyang panyedhiya layanan. Nilai kasebut ora cocog karo parameter "Negara" ing query, amarga wis digawe mung adhedhasar informasi babagan sesi saiki. Akibaté, nilai sing dipikolehi ora ditampa dening sistem kasebut.

Kerentanan liyane sing dideteksi nalika ngetrapake OAUTh kalebu kemampuan kanggo nindakake parameter XSS (skriptur silang "nggunakake aplikasi" redirect_uri "(tombol bisa ngilangake aplikasi seluler) lan kode wewenang nglanggar nglanggar (kapan Kode wewenang bisa digunakake luwih saka sapisan kanggo ngetokake pirang-pirang token akses). Kerentanan kasebut kurang umum tinimbang sing diterangake ing ndhuwur, nanging ora nggawe luwih mbebayani. Pangembang kudu ngerti kabeh praktik sing dibutuhake kanggo njamin operasi aplikasi web.

Penulis artikel sing dijarwakake: Simon Saliba.

PENTING! Informasi mung kanggo tujuan akademik. Mangga tundhuk karo undang-undang lan aja aplikasi informasi iki kanggo tujuan sing ilegal.

Bahan sing luwih menarik ing cisoclub.ru. Lengganan kanggo kita: Facebook | VK | Twitter | Instagram | Telegram | Zen | Messenger | ICQ New | YouTube | Pulsa.

Nyeem ntxiv