Осалдықтар Oauth | Веб-қосымшада қауіпсіз авторизацияны қалай жүзеге асыруға болады

Anonim
Осалдықтар Oauth | Веб-қосымшада қауіпсіз авторизацияны қалай жүзеге асыруға болады 2740_1

Бұл мақала белгілі оавтың осалдықтарымен айналысады. Оқырмандар сонымен қатар веб-қосымшада қауіпсіз және қауіпсіз авторизацияны қалай жүзеге асыруды үйренеді.

Oauth - сенімді хаттама, бірақ оның қауіпсіздік деңгейі авторизацияны жүзеге асыру кезінде веб-әзірлеушілердің хабардар болуына байланысты. Бұл осы тақырыпты ақпараттық қауіпсіздік мамандары үшін өте маңызды етеді. Олар өздерінің пайдаланушыларының шоттарын қорғаудың жоғары деңгейін қамтамасыз етуі керек. Нашар сатылымның нашарлау қаупін азайтуға көмектесетін тиімді тәжірибешілермен танысады.

Кіріспе

Oauth 2.0 протоколы қазіргі уақытта әр түрлі қосымшаларда кеңінен қолданылады. Оны пайдаланып, ыңғайлы пайдаланушы интерфейсі қол жетімді, пайдаланушы аты мен парольді енгізудің дәстүрлі әдістерімен салыстырғанда оңай аутентификация және авторизация. Дұрыс және ойластырылған жағдайда, OAuth Protocol дәстүрлі авторизациядан гөрі қауіпсіз болады, өйткені пайдаланушыларға белгілі бір ресурсқа қол жеткізу үшін үшінші тарап қолданбасымен олардың есептік деректерін бөлісудің қажеті жоқ. Пайдаланушылар көбінесе кейбір веб-сайтта тіркелу қажет болған кезде жаңа есептік жазбаны жасаудың орнына Google есептік жазбалары, Facebook немесе LinkedIn арқылы кіргенді жөн көреді. Осылайша, Oauth Protocol біздің өмірімізді айтарлықтай жеңілдетеді.

Жалпы, танымал Oauth қызмет көрсетушілері өте сенімді. Google немесе Facebook есептік жазбаларымен кіру белгілі бір қауіпсіздік сезімін оятады және ол дұрыс. Хаттаманы сарапшылар мұқият тексереді. Барлық қол жетімді осалдықтар әрқашан әзірлеуші ​​тобымен толығымен түзетіледі. Алайда, толық қауіпсіздік сезімі жалған болуы мүмкін екенін атап өткен жөн.

Oauth қызмет көрсетушілері қосымшаларды жасаушыларға олардың бағдарламаларының қауіпсіздігін жеңу үшін көптеген себептер қалдырды. Іс жүзінде, оны орнату процесінде қате енгізілген бастапқы қорғалған Oauts қызметі зиянкестерге оңай нысанаға айналуы мүмкін. Мұндай иукклюкация пайдаланушылардың жеке деректерін ұрлауға әкеледі.

Әрі қарай, сіз пайдаланушыларға рұқсат беру үшін OAuth Protect бағдарламасын жүзеге асыратын үшінші тарап қосымшаларында кездесетін осалдықтарды қарастыруыңыз керек. Хаттаманың өзі қауіпсіз және сенімді екенін есте ұстаған жөн. Тек дұрыс емес іске асырылғаннан кейін, ол хакерлік шабуылдарға осал болады.

Телефон тақырыбын пайдаланып, oauth tockey ұрлығы

Егер қосымша OAuth серверіндегі пайдаланушының атынан авторизация сұраса, адам кейіннен кодты алады және оны кейіннен тексеру үшін серверге жібереді. Егер жұмыс барысында пайдаланушы басқа бетке бағытталса, код HTTP сұрауының «Талаптар» тақырыбында көрінеді. Осылайша, код сыртқы веб-сайтқа түседі, ол OAuth серверінде тіркелген пайдаланушы деректерін қорқытады.

ЕСКЕРТПЕ: Талапкер тақырыбы HTTP сұрау тақырыбы болып табылады, ол сұрау жіберілген URL хостын жібереді.

Бұл осалдықтың салдарын жұмсарту үшін, әзірлеуші ​​оның веб-қосымшасында HTML инъекциялары жоқ екеніне көз жеткізуі керек. Егер инъекция анықталса, шабуылдаушы кескін тегін өз веб-серверіне оңай орнатып, пайдаланушыны қайта бағыттаудың жолын таба алады. Осылайша, ол HTTP сұранысының «Талаптар» тақырыбынан кодты ұрлауға мүмкіндік алады.

Oauth tockey ofcey параметрі redirect_uri параметрін қолдана отырып

Бағдарлама авторизациялау процесін Oauth серверіне сұрау жіберу арқылы бастайды:

https://www.example.com/signin/authorize? vaz.

Сұрауда әрқашан OAuth сервері OAuth серверінде пайдаланушы өзінің келісімін бергеннен кейін қосымшаны жіберу үшін қолданатын «Redirect_uri» параметрі бар. Егер осы параметрдің мәні басқарылмаса немесе тексерілмеген болса, шабуылдаушы оны оңай өзгерте алады және сұрауды өз веб-сайтына бағыттай алады, онда ол таңбалауышты өңдеуге арналған арнайы бағдарлама қолданады және шектеулі ресурсқа қол жеткізе алады.

https://www.example.com/signin/authorize? «TeopleRect_uri=https://localhost.evil.com.

Кейде ұқсас URL мекенжайлары бұғатталған. Шабуылшы алынған деректерді осы сияқты ашық URL мекен-жайына бағыттай алады:

https://www.example.com/oauth20_authorize.srf? ANAWN.SRF ?. Қозы.

Немесе мыналар:

https://www.example.com/oauth2/authorize? [...]% iRECT_URI =% 3A% 2F% 2F 2F 2FPapps.fapbapps.com% 2F.

OAuth-ті іске асыру кезінде сіз ешқашан ақ тізімдегі домендерді ешқашан қамдай алмайсыз. «Redirect_uri» -ке бірнеше URL қосып қосылуы керек, қайта бағыттауды болдырмау үшін сұранысты қайта бағыттауға болмайды.

Айналым сызықтарын қолдану

Шабуыл жасаушы зардап шеккен адамды өзінің сілтемесін басқан кезде және оны шығармаған сұрау салу үшін пайда болған кезде қиылысқан сұранысты қолдануға болады. Кросс-жолдарды қолдан жасау, әдетте, пайдаланушы сеансымен байланысты CSRF таңбаларымен жұмсартылады. Бұл өтінішке өтінішті жіберген адамның адамын тексеруге көмектеседі. OAuth Protocol бағдарламасындағы «мемлекет» параметрі CSRF таңбалауышы болып табылады.

CSRF шабуылының OAuth-те қалай жүзеге асырылатынын және «күй» параметрін осалдық әсерін азайту үшін пайдалануға болады.

Хакер веб-қосымшаны ашады және OAuth көмегімен қызмет провайдеріне кіру үшін авторизация процесін іске қосады. Бағдарлама көрсетілетін қажеттіліктерге қол жеткізу үшін қызмет жеткізушісін сұрайды. Хакер провайдер веб-сайтына жіберіледі, онда сізге әдетте кіру үшін пайдаланушы аты мен парольді енгізу қажет. Оның орнына, хакер бұл сұранысты ұстап, алдын алады және оның URL мекенжайын сақтайды. Хакер зардап шеккен адамның осы URL мекенжайын ашуға әкеледі. Егер жәбірленуші қызмет провайдерінің жүйесіне оның шотын пайдаланып кірсе, онда оның тіркелгі деректері авторизация кодын шығару үшін пайдаланылады. Авторизация коды Access Token-ге қол жетімділік алмасады. Енді қосымшадағы хакердің шоты рұқсат етілген. Ол жәбірленушінің есебіне қол жеткізе алады.

Сонымен, бұл жағдайдың «күй» параметрін қалай болдырмауға болады?

Бағдарлама бастапқы есептік жазбаға негізделген мәнді жасауы керек (мысалы, пайдаланушы сеансының хэш кілтін қолданыңыз). Бұл өте маңызды емес, ең бастысы, мәні - бұл ерекше және бастапқы пайдаланушы туралы жеке ақпаратты пайдалана отырып жасалған. Ол «күй» параметріне тағайындалады.

Бұл мән қайта бағыттау кезінде қызмет провайдеріне беріледі. Енді хакер зардап шеккен адамды сақтап қалған URL мекенжайын ашуға шақырады.

Авторизация коды «Мемлекеттік» параметрімен бірге сессиядағы клиентке беріледі және жіберілді.

Клиент сеанс туралы ақпарат негізінде параметр мәнін жасайды және оны «күй» мәнімен салыстырады, ол Авторизация сұранысынан қызмет провайдеріне жіберілген. Бұл мән сұраудағы «күй» параметріне сәйкес келмейді, өйткені ол ағымдағы сессия туралы ақпарат негізінде жасалған. Нәтижесінде алынған құнды жүйе қабылдамайды.

Oauth-ті енгізген кезде анықталған басқа осалдықтар «Redirect_URI» параметрін қолдана отырып, xss (көлденең сценарий), OAuth Private Key параметрін қолдана отырып, OAUTER PREGENT параметрін және авторизация кодының ережелерін бұзған кезде (пернесін қашан алуға болады) Авторизация кодын бірнеше қол жетімділік таңбалауыштарын шығару үшін бірнеше рет пайдалануға болады). Бұл осалдықтар жоғарыда сипатталғаннан гөрі жиі кездеседі, бірақ бұл оларды қауіпті етпейді. Әзірлеуші ​​өзінің веб-қосымшасының сенімді жұмысын қамтамасыз ету үшін барлық қажетті тәжірибелерді білуі керек.

Аударылған мақаланың авторы: Саймон Салиба.

Маңызды! Тек академиялық мақсаттар үшін. Заңнаманы сақтаңыз және бұл ақпаратты заңсыз мақсаттар үшін қолданбаңыз.

Cisoclub.ru туралы қызықты материалдар. Бізге жазылу: Facebook | Vk | Twitter | Инстаграм | Телеграмма | Зен | Хабаршы | ICQ New | Youtube | Импульс.

Ары қарай оқу