Web kodlama güvenlik şirketi SALT'taki araştırmacılar, nasıl bulduklarına dair büyüleyici bir açıklama yayınladılar. kimlik doğrulama hatası dublajlı CVE-2023-28131 Expo olarak bilinen popüler bir çevrimiçi uygulama oluşturma araç setinde.
İyi haber şu ki Expo yanıtladı SALT'ın sorumlu açıklamasından yalnızca birkaç saat sonra bir düzeltme ile gelen SALT'ın hata raporuna gerçekten hızlı bir şekilde.
Neyse ki, düzeltme müşterilerin herhangi bir şey indirmesine bağlı değildi, çünkü yama Expo'nun bulut hizmeti içinde uygulandı ve önceden yüklenmiş herhangi bir uygulama veya istemci tarafı kodu için yama gerektirmedi.
Expo'lar danışma sadece ne olduğunu ve şirketin sorunu nasıl düzelttiğini açıklamakla kalmadı, aynı zamanda müşterilerine diğer çevrimiçi hizmetlerde bu tür olası bir güvenlik açığından nasıl kaçınabileceklerine dair programlama tavsiyeleri de verdi.
SALT daha sonra raporunu yayınlamadan önce tanıtım amacıyla olabildiğince çabuk yayınlamak yerine üç ay bekledi ve böylece Expo kullanıcılarına Expo'nun yanıtını sindirme ve buna göre hareket etme şansı verdi.
Basit tutmak
Buggy kimlik doğrulama işlemi ayrıntılı olarak açıklanmaktadır. SALT'ın raporu, ancak burada Expo'nun OAUTH hizmetinde neyin yanlış gittiğine dair oldukça basitleştirilmiş bir açıklama sunacağız.
YEMİNiçin kısa Açık Yetkilendirme Çerçevesi, bir çevrimiçi hizmetteki özel verilere (çevrimiçi profilinizi düzenlemek, yeni bir blog makalesi eklemek veya sizin için sosyal medya gönderileri yapması için bir web hizmetini onaylamak gibi) herhangi bir şifre belirlemeden erişmenizi sağlayan bir işlemdir. veya doğrudan bu hizmette oturum açmak.
Size bir teklif sunan web servislerini gördüğünüzde Google veya Facebook ile giriş yapın seçeneği, örneğin, neredeyse her zaman arka planda OAUTH kullanıyorlar, böylece başka bir web sitesinde yeni bir kullanıcı adı ve yeni bir şifre oluşturmanıza veya telefon numaranızı başka bir çevrimiçi hizmete vermenize gerek kalmıyor.
Açıkça söylemek gerekirse, yalnızca Google veya Facebook kimlik bilgilerinizi bu sitelerden birine girerek dolaylı olarak kimlik doğrulaması yaparsınız.
Bazı kullanıcılar bundan hoşlanmaz, çünkü yalnızca kimliklerini ilgisiz diğer sitelere kanıtlamak için Google veya Facebook'ta kimlik doğrulaması yapmak istemezler. Diğerleri bunu beğeniyor çünkü Facebook ve Google gibi sitelerin kendi kriptografik güvenlik süreçlerini örmeye çalışan butik bir web sitesine göre oturum açma sürecini yönetme, şifre karmalarını güvenli bir şekilde depolama ve 2FA yapma konusunda daha fazla deneyime sahip olduğunu varsayıyorlar.
Dış kaynaklı kimlik doğrulama
Büyük ölçüde basitleştirilmiş, OAUTH tarzı bir giriş, Facebook hesabınız aracılığıyla adlı bir siteye example.com
, şöyle bir şey olur:
- yer
example.com
uygulamanıza veya tarayıcınıza şunu söyler: "Merhaba X, git ve Facebook'tan bu site için sihirli bir erişim belirteci al." - Henüz yapmadıysanız giriş yaparak özel bir Facebook URL'sini ziyaret edersiniz, ve "Bana bir sihirli erişim belirteci ver" deyin.
example.com
". - Facebook, iddia ettiğiniz kişi olduğunuzdan memnunsa, "Merhaba X, işte sihirli erişim jetonunuz."
- Erişim belirtecini şuraya verirsiniz:
example.com
, daha sonra belirteci doğrulamak için Facebook'un kendisiyle iletişime geçebilir.
Gerekirse, yalnızca Facebook'un Facebook şifrenizi ve 2FA kodunuzu gördüğünü unutmayın; bu nedenle Facebook hizmeti, sizinle aranızda bir kimlik doğrulama aracısı görevi görür. example.com
.
Perde arkasında, bunun gibi son bir doğrulama var:
- yer
example.com
Facebook'a diyor ki, "Bu belirteci siz mi verdiniz ve X kullanıcısını doğruluyor mu?" - Facebook kabul ederse, anlatır
example.com
, "Evet, bu kullanıcının kimliğinin doğrulanmış olduğunu düşünüyoruz."
Altüst edilebilir sekans
SALT araştırmacılarının Expo kodunda bulduğu hata, Expo'nun sizin "kimlik doğrulama komisyonculuğu" olarak adlandırabileceğiniz süreci işleme biçimini kötü niyetli bir şekilde alt üst ederek tetiklenebilir.
Kilit noktalar aşağıdaki gibidir:
- Expo'nun kendisi, doğrulama sürecinin etrafına bir sarmalayıcı ekler, böylece kimlik doğrulama ve doğrulama işlemlerini sizin için halleder ve sonuçta istenen web sitesi için sihirli bir erişim belirtecini iletir (
example.com
yukarıdaki değiş tokuşta) bağlandığınız uygulamaya veya web sitesine geri dönün. - Doğrulamanın işlenmesinde kullanılan parametreler Expo hizmetine gönderilen büyük bir URL'ye paketlenir.
- Bu parametrelerden biri geçici olarak bir web tanımlama bilgisinde saklanır erişimi etkinleştirmek için nihai sihirli güvenlik belirtecinin gönderileceği URL'yi belirtir.
- Güvenlik belirteci teslim edilmeden önce, Bir açılır pencere sizden yetkilendirilmek üzere olan URL'yi doğrulamanızı ister, böylece oturum açma işleminde sahte bir URL'yi değiştirmeye çalışan herkesi yakalayabilirsiniz.
- Açılır pencereyi onaylarsanız, Expo sizi Facebook doğrulama sürecine yönlendirir.
- Facebook doğrulamayı onaylarsa, Expo hizmetine sihirli bir erişim belirteci döndürür ve Expo bunu açılır pencerede az önce onayladığınız URL'ye iletir.
returnURL
. - Belirtilen saatte dinleyen uygulama veya web sitesi
returnURL
Expo'nun geri aramasını alır, erişim belirtecini alır ve bu nedenle sizin kimliğinizle doğrulanır.
Ne yazık ki SALT araştırmacıları, ilk Expo oturum açma URL'sine erişimi tetiklemek için JavaScript kodunu kullanarak oturum açma sürecini alt üst edebileceklerini keşfettiler, ancak daha sonra siz okumaya veya kendiniz onaylamaya zaman bulamadan doğrulama açılır penceresini kapattılar.
Ancak bu noktada, Expo'nun hizmeti zaten adında bir çerez kurmuştu. ru
(için kısa returnURL
) sonunda sihirli erişim belirtecinizle nereye geri arayacağınızı söylemek için.
Bu, bir siber suçlunun Expo'nun kodunu "hatırlaması" için kandırabileceği anlamına geliyordu. returnURL
gibi https://roguesite.example
, yanlışlıkla onaylamak bir yana, bir saldırının yolda olduğu konusunda sizi uyaran iletişim kutusunu bile görmeden.
Daha sonra araştırmacılar, Expo'nun Facebook'un doğrulama sürecine yönlendirmesini simüle etmek için ikinci bir JavaScript kodu yığını kullandılar;
Facebook'un doğrulaması, Expo giriş sürecini tekrar Expo'nun kendi JavaScript koduna yönlendirecektir…
...aslında doğrulanmayan bilgileri güvenilir ama hatalı bir şekilde alırdı returnURL
o sihirden geri araması için ru
onayınız veya bilginiz olmadan başlangıçta belirlediği çerez.
Arıza açık mı yoksa arıza kapalı mı?
Yukarıdaki açıklamadan da görebileceğiniz gibi, güvenlik açığı Expo'nun kodunun uygunsuz bir şekilde başarısız olmasından kaynaklanıyordu.
Kimlik doğrulama kodu genellikle başarısız kapalı, jargonda, bu, bir tür aktif onay sinyali verilmedikçe sürecin başarılı olmaması gerektiği anlamına gelir.
Expo'nun sistemin bunu amaçlamadığını tahmin ediyoruz. açılamama, SALT'ın raporunun açılır onay iletişim kutusunun şöyle göründüğünü gösterdiği göz önüne alındığında:
https://roguesite.example adresindeki uygulama, Facebook hesabınızda oturum açmanızı istiyor. https://roguesite.example'a tamamen güveniyor ve buna izin vermeyi kabul ediyor musunuz: [Hayır] [Evet]
Beklediğiniz gibi varsayılan yanıt şu şekilde ayarlandı: [No]
, ancak bu, yalnızca doğrulama sürecini kontrol etmek için Expo'nun kendi müşteri tarafı kodunu dini olarak kullandığınızda sistemin kapanmamasına neden olur.
Araştırmacılar, doğrulama istekleri dizisini çalıştırmak için kendi JavaScript'lerini sağlayarak, onay iletişim kutusunu sanki şöyleymiş gibi ele alabildiler:
https://roguesite.example'ın Facebook hesabınız aracılığıyla oturum açmasını engellememizi açıkça söylemezseniz, bunu yapmasına izin veririz: [İzin Ver] [Engelle]
Çözüm, diğer değişikliklerin yanı sıra, Expo'nun bu sihri ayarlamak için ilk oturum açma kodunun kullanılmasıydı. ru
kurabiye ancak sözde açıkça onayladıktan sonra returnURL
, böylece daha önce görmediğiniz veya onaylamadığınız bir URL'ye körü körüne güvenmek yerine, doğrulama açılır penceresi atlanırsa Expo'nun sonraki JavaScript oturum açma kodu başarısız olur.
Birçok yönden, bu hata şuna benzer: Belkin Wemo Akıllı Fiş Belkin'in durumundaki temel neden, hileli bir web geri araması değil, bir arabellek taşması olmasına rağmen, yaklaşık iki hafta önce yazdığımız bir hata.
Belkin'in kodu, sunucu tarafı kodunda 68 baytlık bir bellek arabelleği ayırdı, ancak istemci tarafı kodunda 68 bayttan fazlasını göndermeye çalışmadığınızı kontrol etmeye dayanıyordu, böylece sunucu, karar veren saldırganların insafına kaldı. doğrulama sürecini atlayan kendi istemci tarafı kodunu kullanarak sunucuyla konuşmak için.
Ne yapalım?
- Hataları bildirirken ve yazarken, SALT'ları takip etmeyi düşünün örnek. Sorumlu bir şekilde ifşa edin, satıcıya güvenlik açığını düzeltmesi için makul bir süre ve ayrıca başka birinin kendi istismarını oluşturmasına izin verecek ayrıntıları yayınlamadan önce kendi kullanıcılarına tavsiyede bulunması için makul bir süre tanıyın.
- Hata raporları alırken, Expo'ları takip etmeyi düşünün örnek. Hızlı bir şekilde yanıt verin, hatayı bildiren kişiyle iletişim halinde olun, güvenlik açığını mümkün olan en kısa sürede düzeltin, kullanıcılarınız için yararlı bir araştırma raporu sağlayın ve raporu tarafsız tutun. ("Güvenliği ciddiye aldığınız" için kendinizi övme veya konuyu önemsiz olarak görmeme konusunda pazarlama ekibinizin önerilerine direnin. Bu, yanıtınızın çabukluğuna, uygunluğuna ve kendi risk değerlendirmelerine göre karar verecek olan kullanıcılarınızdır.)
- Kimlik doğrulama kodunuzun kapatılmadığından emin olun. Yok sayarak veya iptal ederek etkisiz hale getirilebilecek doğrulama veya onay adımlarına sahip olmadığınızdan emin olun.
- Asla kendi müşteri tarafı kodunuzun doğrulama sürecinin kontrolünde olacağını varsaymayın. Saldırganların protokolünüze tersine mühendislik uygulayacaklarını ve ellerinden geldiğince çok kontrolü atlatmak için kendi istemci kodlarını oluşturacaklarını varsayalım.
- Aktif olarak kullanmadığınız zamanlarda web hesaplarının oturumunu kapatın. Birçok kişi Google, Amazon, Facebook, Apple ve diğerleri gibi hesaplarda oturum açar ve daha sonra uygun olduğu için süresiz olarak oturumda kalır. Oturumu kapatmak, pek çok işlemin (kimlik doğrulamaları, gönderiler, beğeniler, paylaşımlar ve çok daha fazlası dahil) beklemediğiniz zamanlarda gerçekleşmesini engeller; bunun yerine bir oturum açma istemi görürsünüz.
Mümkün olduğunca web hizmetlerinden çıkış yaparak ve tüm tarayıcı çerezlerinizi ve saklanan web verilerinizi sık sık temizleyerek, sitelerin siz gezinirken hakkınızda toplayabileceği izleme bilgileri miktarını da azaltacağınızı unutmayın.
Ne de olsa, oturum açmadıysanız ve önceden kalan herhangi bir izleme çereziniz yoksa, siteler artık tam olarak kim olduğunuzu veya en son ziyaretinizde ne yaptığınızı bilemez.
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- PlatoAiStream. Web3 Veri Zekası. Bilgi Genişletildi. Buradan Erişin.
- Adryenn Ashley ile Geleceği Basmak. Buradan Erişin.
- PREIPO® ile PRE-IPO Şirketlerinde Hisse Al ve Sat. Buradan Erişin.
- Kaynak: https://nakedsecurity.sophos.com/2023/05/30/serious-security-verification-is-vital-examining-an-oauth-login-bug/
- :vardır
- :dır-dir
- :olumsuzluk
- :Neresi
- $UP
- 1
- %15
- 2FA
- a
- Yapabilmek
- Hakkımızda
- yukarıdaki
- kesin
- erişim
- Hesap
- Hesaplar
- Aldı
- Hareket
- eylemler
- aktif
- aktif
- eylemler
- ekleme
- Ekler
- tavsiye
- öğüt vermek
- Sonra
- önce
- Türkiye
- tahsis
- izin vermek
- veriyor
- tek başına
- zaten
- Ayrıca
- her zaman
- Amazon
- arasında
- miktar
- an
- ve
- Başka
- cevap
- herhangi
- kimse
- bir şey
- uygulamayı yükleyeceğiz
- Apple
- onay
- onaylamak
- onaylı
- uygulamalar
- ARE
- etrafında
- göre
- AS
- değerlendirme
- At
- saldırı
- kimlik doğrulaması
- doğrulanmış
- Doğrulama
- yazar
- yetkili
- yetki
- Oto
- otomatik olarak
- önlemek
- Arka
- arka fon
- background-image
- merkezli
- BE
- Çünkü
- olmuştur
- önce
- arasında
- Büyük
- körü körüne
- Engellemek
- Blog
- sınır
- Alt
- komisyoncu
- tarayıcı
- tarayıcı çerezleri
- tampon
- arabellek taşması
- Böcek
- böcek
- fakat
- by
- çağrı
- denilen
- CAN
- dava
- Yakalamak
- Sebeb olmak
- neden
- Merkez
- şans
- değişiklikler
- denetleme
- Çekler
- iddia
- Takas
- müşteri
- kapalı
- bulut
- kod
- kodlama
- toplamak
- renk
- gelecek
- şirket
- bağlantı
- Düşünmek
- UAF ile
- kontrol
- Uygun
- kurabiye
- kurabiye
- olabilir
- kapak
- yaratmak
- Tanıtım
- kriptografik
- Müşteriler
- SİBER CEZA
- veri
- karar vermek
- karar
- Varsayılan
- teslim edilen
- tanım
- İstediğiniz
- ayrıntı
- ayrıntılar
- Diyalog
- DID
- özet
- direkt olarak
- ifşa
- ifşa
- reddetmek
- ekran
- do
- yok
- yapıyor
- don
- Dont
- dublajlı
- kurgu
- başka
- etkinleştirmek
- son
- Hatta
- hİÇ
- kesinlikle
- incelenmesi
- örnek
- takas
- beklemek
- deneyim
- açıkladı
- sömürmek
- Sergi
- FAIL
- başarısız
- başarısız
- büyüleyici
- az
- son
- sabit
- sabit
- takip etme
- şu
- İçin
- bulundu
- sık sık
- itibaren
- tamamen
- genellikle
- almak
- Vermek
- verilmiş
- Verilmesi
- Go
- Goes
- Tercih Etmenizin
- kapmak
- çok
- vardı
- el
- Kolları
- kullanma
- olmuş
- olay
- Var
- yükseklik
- faydalı
- okuyun
- SAAT
- duraksamak
- Ne kadar
- Nasıl Yapılır
- Ancak
- HTTPS
- Kimlik
- if
- uygulanan
- in
- Dahil olmak üzere
- dolaylı olarak
- bilgi
- ilk
- yerine
- niyetinde
- içine
- araştırmacı
- konu
- IT
- ONUN
- kendisi
- jargon
- JavaScript
- sadece
- tutmak
- anahtar
- örgü örmek
- Bilmek
- bilgi
- bilinen
- Soyad
- sonra
- ayrılma
- sol
- sevmek
- Dinleme
- ll
- giriş
- günlüğü
- giriş
- uzun
- baktı
- sihirli
- yapmak
- çok
- birçok insan
- Kenar
- Pazarlama
- maksimum genişlik
- anlam
- demek
- medya
- Bellek
- olabilir
- hata
- ay
- Daha
- çok
- adlı
- gerek
- gerekli
- asla
- yeni
- haber
- yok hayır
- normal
- numara
- oauth
- nesnel
- of
- kapalı
- teklif
- sunulan
- on
- ONE
- Online
- bir tek
- açık
- seçenek
- or
- Diğer
- Diğer
- dışarı
- tekrar
- kendi
- paketlenmiş
- parametreler
- geçer
- Geçen
- Şifre
- Patch
- Yamalar
- Paul
- İnsanlar
- telefon
- Platon
- Plato Veri Zekası
- PlatoVeri
- artı
- Nokta
- noktaları
- Popüler
- pozisyon
- mümkün
- Mesajlar
- mevcut
- önler
- özel
- süreç
- Süreçler
- Profil
- Programlama
- protokol
- Kanıtlamak
- sağlamak
- tanıtım
- yayınlanan
- Yayıncılık
- amaçlı
- koymak
- hızla
- daha doğrusu
- Okumak
- Gerçekten mi
- makul
- alır
- alma
- yönlendirme
- azaltmak
- güvenmek
- cevap
- rapor
- muhabir
- Raporlama
- Raporlar
- isteklerinizi
- gerektirir
- Araştırmacılar
- yanıt
- sorumlu
- İade
- krallar gibi yaşamaya
- Risk
- kök
- koşmak
- Adı geçen
- tuz
- memnun
- söylemek
- diyor
- Sahneler
- İkinci
- Güvenli
- güvenlik
- güvenlik belirteci
- görmek
- görme
- görüldü
- Gördükleri
- göndermek
- gönderdi
- Dizi
- ciddi
- hizmet
- Hizmetler
- set
- ayar
- Paylar
- kısa
- meli
- Gösteriler
- işaret
- benzer
- basitleştirilmiş
- sadece
- yer
- Yer
- akıllı
- So
- Sosyal Medya
- sosyal medya
- Sosyal Medya Gönderileri
- katı
- çözüm
- biraz
- bir şey
- Yakında
- konuşma
- özel
- Belirtilen
- başlama
- kalmak
- Basamaklar
- saklı
- gönderilen
- başarılı olmak
- böyle
- tedarik
- SVG
- sistem
- Konuşmak
- söylemek
- anlatır
- göre
- o
- The
- ve bazı Asya
- Onları
- sonra
- bu nedenle
- Bunlar
- onlar
- Re-Tweet
- Bu
- gerçi?
- üç
- zaman
- için
- simge
- araç
- üst
- Takip
- geçiş
- şeffaf
- tedavi etmek
- denenmiş
- tetikleyebilir
- tetiklenir
- Güven
- güvenen
- denemek
- DÖNÜŞ
- iki
- eninde sonunda
- altında
- üzerine
- URL
- us
- Kullanılmış
- kullanıcı
- kullanıcılar
- kullanma
- DOĞRULA
- onaylama
- satıcı
- Doğrulama
- doğrulamak
- üzerinden
- Türkiye Dental Sosyal Medya Hesaplarından bizi takip edebilirsiniz.
- ziyaret
- hayati
- güvenlik açığı
- istemek
- oldu
- Yol..
- yolları
- we
- ağ
- web hizmetleri
- Web sitesi
- Haftalar
- Kimler
- vardı
- Ne
- ne zaman
- her ne zaman
- hangi
- DSÖ
- irade
- ile
- içinde
- olmadan
- olur
- yazı yazıyor
- Yanlış
- X
- Evet
- henüz
- sen
- kendiniz
- zefirnet