Zəifliklər Oauth | Veb tətbiqinizdə təhlükəsiz icazəni necə həyata keçirmək olar

Anonim
Zəifliklər Oauth | Veb tətbiqinizdə təhlükəsiz icazəni necə həyata keçirmək olar 2740_1

Bu məqalə tanınmış OAuth zəiflikləri ilə məşğul olacaqdır. Oxucular veb tətbiqində təhlükəsiz və etibarlı bir icazə necə tətbiq etməyi də öyrənəcəkdir.

OAuth, etibarlı bir protokoldur, ancaq təhlükəsizlik dərəcəsi, icazə icrası həyata keçirərkən veb tərtibatçıların şüurundan çox asılıdır. Bu, bu mövzunu informasiya təhlükəsizliyi mütəxəssisləri üçün son dərəcə vacib edir. İstifadəçilərinin hesablarının yüksək səviyyədə qorunması təmin etməlidirlər. Zəif satmaq təhlükəsini azaltmağa kömək edəcək effektiv praktikantlarla tanış olmaq vaxtı gəldi.

Giriş

OAuth 2.0 Protokolu hazırda müxtəlif tətbiqlərdə geniş istifadə olunur. Onu istifadə edərək, istifadəçi adı və şifrənizi daxil etmək üçün ənənəvi metodlarla müqayisədə rahat bir istifadəçi interfeysi, daha asan identifikasiya və icazə alır. Düzgün və düşünülmüş bir tətbiq ilə, OAuth protokolu ənənəvi avtorizasiyadan daha təhlükəsiz olacaq, çünki istifadəçilərin mühasibat məlumatlarını müəyyən bir mənbəyə daxil olmaq üçün üçüncü tərəf tətbiqi ilə bölüşməyə ehtiyac yoxdur. İstifadəçilər tez-tez bəzi veb saytında qeydiyyatdan keçmək üçün hər dəfə yeni bir hesab yaratmaq əvəzinə, Google hesabları, Facebook və ya LinkedIn istifadə edərək daxil olmağa üstünlük verirlər. Beləliklə, OAuth protokolu həyatımızı çox asanlaşdırır.

Ümumiyyətlə, populyar OAuth xidmət təminatçıları çox etibarlıdırlar. Google və ya Facebook hesabı ilə daxil olun müəyyən bir təhlükəsizlik hissi ilham verir və düzgündür. Protokol mütəxəssislər tərəfindən diqqətlə sınaqdan keçirilir. Bütün mövcud olan zəifliklər həmişə geliştirici komandası tərəfindən düzəldilmişdir. Bununla birlikdə, tam təhlükəsizlik hissinin yalan ola biləcəyini qeyd etmək lazımdır.

OAuth Service Provayderlər tətbiqetmələrin təhlükəsizliyini göstərməyin bir çox səbəbini buraxdılar. Əslində, quraşdırılması prosesində yanlış tətbiq olunan əvvəlcə qorunan OAuth xidməti, təcavüzkarlar üçün asan bir hədəf ola bilər. Bu cür qayğıkeşlik istifadəçilərin şəxsi məlumatlarının oğurlanmasına səbəb olacaqdır.

Sonra, istifadəçilərinə icazə vermək üçün OAuth protokolunu həyata keçirən üçüncü tərəf tətbiqlərində qarşılaşan ən çox görülən ən görümələri nəzərə almalısınız. Protokolun özü təhlükəsiz və etibarlı olduğunu xatırlamaq lazımdır. Yalnız səhv tətbiq edildikdən sonra, haker hücumlarına həssas olur.

İstinad başlığı istifadə edərək OAuth Tockey Oğurluğu

Tətbiq istifadəçi adından istifadəçi adından OAuth serverində bir şəxs, bir şəxsin daxil olmaq üçün kodu, sonrakı çeki üçün serverə göndərmək üçün kodu alır. İş zamanı istifadəçi başqa bir səhifəyə yönləndiriləcəksə, kod HTTP tələbinin "İstinadçı" başlığında görünəcəkdir. Beləliklə, kod, OAuth serverində qeydiyyata alınan istifadəçi məlumatlarını təhdid edəcək xarici veb saytına düşəcəkdir.

Qeyd: İstinad başlığı HTTP sorğusu başlığıdır, tələbin göndərildiyi URL ev sahibini ötürür.

Bu həssaslığın nəticələrini yumşaltmaq üçün, geliştirici onun veb tətbiqinin heç bir HTML enjeksiyonunda olmadığına əmin olmalıdır. Enjeksiyonlar aşkar olunarsa, təcavüzkar görüntü etiketini veb serverinə asanlıqla təyin edə və istifadəçini ona yönləndirmə yolu tapır. Beləliklə, O, http tələbinin "İstinadçı" başlığından kodu oğurlamaq fürsətini alacaq.

Redirect_uri parametrindən istifadə edərək oauth tockey oğurluğu

Tətbiq OAuth serverinə sorğu göndərməklə icazə prosesini təşəbbüs edir:

https://www.example.com/signin/authorize ümidi isə ?...eMeirect_uri=httpps://demo.example.com/loginSuccelful.

Sorğu həmişə istifadəçi razılığını verdikdən sonra tətbiqə yenidən tətbiqə qayıtmaq üçün OAuth Server tərəfindən istifadə edilən "Redirect_uri" parametrini ehtiva edir. Bu parametrin dəyəri nəzarət edilmirsə və ya yoxlanılmırsa, təcavüzkar onu asanlıqla dəyişdirə və sorğunu veb saytına yönləndirə bilər, burada tokenin işlənməsi üçün xüsusi bir proqramdan istifadə və məhdud bir mənbəyə giriş əldə edə bilər.

https://www.example.com/signin/authorize ümidi isə ?...eREDIRECT_URI=HTTPPS://localhost.evil.com.

Bəzən oxşar URL-lər bloklanır. Təcavüzkar bu kimi Açıq URL-də alınan məlumatları yönləndirə bilər:

https://www.example.com/oauth20_Abhorize.srf ümidi isə.srf?.

Və ya bu:

https://www.example.com/oauth2/Authorize?

OAuth həyata keçirərkən, heç vaxt ağ siyahıda bütün domenləri daxil edə bilməzsiniz. "Redirect_uri" üçün yalnız bir neçə URL əlavə edilməlidir.

Xarici istəklərin saxtalaşdırılması

Təcavüzkar qurbanı onun linkini tıklamağa və beləliklə yaratmaq istəmədiyi bir istək yaratmaq üçün bir adamın saxtalaşdırılması baş verə bilər. Çarpazlı sorğuların saxtalaşdırılması, istifadəçi sessiyası ilə əlaqəli olan CSRF Token ilə yumşaldır. Bu müraciətin sorğunu göndərən şəxsin şəxsini yoxlamağa kömək edir. OAuth protokolundakı "Dövlət" parametri, CSRF token kimi xidmət edir.

KSRF hücumunun OAuth-da necə aparıldığını və "Dövlət" parametri, həssaslığın təsirini azaltmaq üçün istifadə edilə bilən "Dövlət" parametri istifadə edilə bilər.

Hacker veb tətbiqi açır və OAuth istifadə edərək xidmət təminatçisinə daxil olmaq üçün icazə prosesini işə salır. Tətbiq, təmin edilməsi lazım olan bir xidmət təminatçisini tələb edir. Hacker, xidmət təminatçının veb saytına yönləndiriləcək, burada ümumiyyətlə istifadəçi adınızı və şifrənizi giriş imkanı vermək üçün daxil etməlisiniz. Bunun əvəzinə, haker bu tələbi tutur və qarşısını alır və URL-i saxlayır. Hacker birtəhər qurbanın bu URL-i açmasına səbəb olur. Zərərçəkən hesabat provayderinin sisteminə daxil olubsa, onun etimadnaməsini icazəli kod vermək üçün istifadə ediləcəkdir. Avtorizasiya kodu giriş tokkeninə giriş imkanı verir. İndi tətbiqdəki hacker hesabı səlahiyyətlidir. Qurbanın hesabına daxil ola bilər.

Beləliklə, "Dövlət" parametrindən istifadə edərək bu vəziyyətin qarşısını necə ala bilərəm?

Tətbiq mənbə hesabına əsaslanan bir şey (məsələn, istifadəçi seansında istifadə istifadə et düyməsini istifadə edin) bir dəyəri yaratmalıdır. Bu o qədər də vacib deyil, əsas odur ki, dəyərin unikal və orijinal istifadəçi haqqında şəxsi məlumatlardan istifadə etməklə yaranmasıdır. "Dövlət" parametrinə təyin olunur.

Bu dəyər yönləndirərkən xidmət təminatçına ötürülür. İndi haker qurbanı saxladığı URL-i açmağa dəvət edir.

İcazə kodu verilir və "Dövlət" parametri ilə birlikdə iclasındakı müştəriyə göndərilir və geri göndərilir.

Müştəri bir seans məlumatına əsaslanan bir parametr dəyərini yaradır və icazə istəyindən xidmət təminatçisinə geri göndərilən "Dövlət" dəyəri ilə müqayisə edir. Bu dəyər sorğuda "Dövlət" parametri ilə uyğun gəlmir, çünki bu, yalnız cari seans haqqında məlumatlar əsasında yaradıldığı üçün. Nəticədə, əldə edilmiş dəyər sistem tərəfindən qəbul edilmir.

OAuth həyata keçirərkən aşkar edilmiş digər zəifliklər, "Redirect_uri" parametrindən istifadə edərək XSS (çarpaz skriptləmə), OAuth Şəxsi Açar parametrini (Bəzən mobil tətbiqetmədən yaranan açar) və icazə kodu qaydalarının pozulması zamanı əldə edilə bilər) daxildir Avtorizasiya kodu çoxsaylı giriş tokensini vermək üçün bir dəfədən çox istifadə edilə bilər). Bu zəifliklər yuxarıda təsvir olunanlardan daha az yaygındır, lakin bu, onları az təhlükəli hala gətirmir. Geliştirici, veb tətbiqinin etibarlı işləməsini təmin etmək üçün bütün lazımi təcrübələri bilməlidir.

Tərcümə edilmiş məqalənin müəllifi: Simon Saliba.

Vacibdir! Yalnız akademik məqsədlər üçün məlumat. Zəhmət olmasa qanunvericiliyə uyğun və bu məlumatı qanunsuz məqsədlər üçün tətbiq etməyin.

Cisoclub.ru-da daha maraqlı material. Bizə abunə olun: Facebook | Vk | Twitter | İnstagram | Telegram | Zen | Messenger | ICQ Yeni | YouTube | Nəbz.

Daha çox oxu