Güvenlik açıkları oauth | Web uygulamanızda güvenli yetkilendirme nasıl uygulanır

Anonim
Güvenlik açıkları oauth | Web uygulamanızda güvenli yetkilendirme nasıl uygulanır 2740_1

Bu makale tanınmış OAuth güvenlik açıkları ile ilgilenecektir. Okuyucular ayrıca web uygulamasında güvenli ve güvenli bir yetki vermeyi de öğreneceklerdir.

OAUTH güvenilir bir protokoldür, ancak güvenlik derecesi büyük ölçüde yetki uygularken web geliştiricilerinin farkındalığına bağlıdır. Bu, bu konuyu bilgi güvenliği profesyonelleri için son derece önemli kılar. Kullanıcılarının hesaplarının yüksek düzeyde korunması sağlamaları gerekir. OAuth'u fakir satış tehlikesini azaltmaya yardımcı olacak etkili uygulayıcılarla tanışmanın zamanı geldi.

Giriş

OAUTH 2.0 protokolü şu anda çeşitli uygulamalarda yaygın olarak kullanılmaktadır. Kullanımı, kullanışlı bir kullanıcı arayüzü kullanılabilir hale gelir, kullanıcı adını ve şifreyi girme için geleneksel yöntemlere kıyasla daha kolay kimlik doğrulama ve yetkilendirme. Uygun ve düşünceli bir uygulama ile, OAuth Protokolü, geleneksel yetkilendirmeden daha güvenli olacaktır, çünkü kullanıcıların muhasebe verilerini belirli bir kaynağa erişmek için üçüncü taraf bir uygulamayla paylaşmaları gerekmez. Kullanıcılar, bazı Web sitelerine kaydolmanız gerektiğinde yeni bir hesap oluşturmak yerine, Google Hesaplarını, Facebook veya LinkedIn'lerini kullanarak oturum açmayı tercih eder. Böylece, OAuth protokolü hayatımızı büyük ölçüde kolaylaştırır.

Genel olarak, popüler OAUTH servis sağlayıcıları çok güvenilirdir. Google veya Facebook hesabıyla giriş yapın, belirli bir güvenlik duygusuyla ilham verir ve doğrudur. Protokol, uzmanlar tarafından dikkatlice test edilir. Mevcut tüm güvenlik açıkları, geliştirici ekibi tarafından her zaman hızlı bir şekilde düzeltilir. Ancak, tam güvenlik duygusunun yanlış olabileceğini söylemeye değer.

OAUTH Servis Sağlayıcıları, uygulama geliştiricileri, programlarının güvenliğini sağlamak için birçok nedenden ötürü bıraktı. Aslında, başlangıçta korumalı OAuth hizmeti, kurulumu sürecinde yanlış uygulanan, davetsiz misafirler için kolay bir hedef haline gelebilir. Bu tür bir meşguliyet, kullanıcıların kişisel verilerinin çalınmasına yol açacaktır.

Daha sonra, kullanıcılarına yetkilendirmek için OAuth protokolünü uygulayan üçüncü taraf uygulamalarında karşılaşılan en yaygın güvenlik açıklarını göz önünde bulundurmalısınız. Protokolün kendisinin güvenli ve güvenilir olduğu unutulmamalıdır. Yalnızca yanlış uygulamadan sonra, hacker saldırılarına karşı savunmasız hale gelir.

Referans başlığını kullanarak oauth tockey hırsızlığı

Uygulama, OAUTH sunucusundaki kullanıcı adına yetkilendirmeyi talep ettiğinde, bir kişi sonraki kontrolü için sunucuya geri dönmek ve göndermek için kodu alır. Çalışma sırasında kullanıcı başka bir sayfaya yönlendirilirse, kod HTTP isteğinin "referans" başlığında görülecektir. Böylece, kod, OAUTH sunucusunda kayıtlı kullanıcı verilerini tehdit edecek harici web sitesine düşecektir.

NOT: Referans başlığı bir HTTP sorgu başlığıdır, isteğin gönderildiği URL ana bilgisayarını iletir.

Bu güvenlik açığının sonuçlarını yumuşatmak için, geliştirici web uygulamasının herhangi bir HTML enjeksiyonu içermediğinden emin olmalıdır. Enjeksiyonlar tespit edildi ise, saldırgan görüntü etiketini web sunucusuna kolayca ayarlayabilir ve kullanıcıyı yönlendirmenin bir yolunu bulabilir. Böylece, kodu "referans" başlığından, HTTP isteğinin "referans" başlığından çalma fırsatı bulacak.

Redirect_uri parametresini kullanarak oauth tockey hırsızlığı

Uygulama, OAUTH sunucusuna bir istek göndererek yetkilendirme sürecini başlatır:

https://www.example.com/signin/authorize?Г... Sex&redirect_uri=httpps://demo.example.com/loginsuccessful.

Sorgu, kullanıcı onayı verdikten sonra, OAuth Server tarafından belirteçleri geri göndermek için kullanılan "Redirect_uri" parametresini içerir. Bu parametrenin değeri kontrol edilmezse veya kontrol edilmezse, saldırgan kolayca değiştirebilir ve isteği web sitesine yönlendirebilir, burada belirteci işlemek için özel bir program kullandığı ve sınırlı bir kaynağa erişim kazandırır.

https://www.example.com/signin/authorize?Г... Sex&redirect_uri=httpps://localhost.evil.com.

Bazen benzer URL'ler engellenir. Saldırgan, alınan verileri açık URL'deki gibi yönlendirebilir:

https://www.example.com/oauth20_authorize.srf?г...Г.Г&redirect_uri=httpps://accounts.google.com/backtoouthsubtarget?next=httpsetsubtarget?next=httpsets://evil.com.

Veya bu:

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

OAUTH'yi uygularken, beyaz listedeki bütün alanları asla içeremezsiniz. Yönlendirmeyi açmak için bir talebi yönlendirilmeyen "REDIRECT_URI" için sadece birkaç URL eklenmelidir.

Çapraz hat isteklerinin sahteciliği

Bir intersion talebinin sahteciliği, saldırgan mağdurun bağlantısını tıklamasını ve dolayısıyla oluşturmayacağını bir talepte bulunmayı başarırken ortaya çıktığında ortaya çıkabilir. Çapraz hat taleplerinin sahteciliği genellikle Kullanıcı Oturumu ile ilişkili olan CSRF belirteci ile yumuşatılır. Uygulamanın isteği gönderen bir kişinin kişisini kontrol etmesine yardımcı olur. OAUTH protokolündeki "Devlet" parametresi CSRF belirteci olarak hizmet vermektedir.

CSRF saldırısının OAuth'da nasıl yapıldığını ve "devlet" parametresi, kırılganlığın etkilerini azaltmak için kullanılabilecek şekilde görülmeye değer.

Hacker, bir web uygulamasını açar ve OAUTH kullanarak servis sağlayıcısına erişmek için yetkilendirme sürecini başlatır. Uygulama, sağlanması gerekenlere erişmek için bir servis sağlayıcısını ister. Hacker, erişimi yetkilendirmek için genellikle kullanıcı adınızı ve şifrenizi girmeniz gereken servis sağlayıcı web sitesine yönlendirilecektir. Bunun yerine, hacker bu talebi yakalar ve önler ve URL'sini kaydeder. Hacker bir şekilde kurbanın bu URL'yi açmasına neden olur. Mağdur, Servis Sağlayıcının Sistemini hesabını kullanarak girdiyse, kimlik bilgileri bir yetkilendirme kodu vermek için kullanılacaktır. Yetkilendirme kodu, erişim belirteci'ne erişimi değiştirir. Şimdi başvurudaki hacker hesabı yetkilendirildi. Kurbanın hesabına erişebilir.

Peki, bu durumu "Durum" parametresini kullanarak nasıl önleyebilirim?

Uygulama, kaynak hesabına dayanarak bir şekilde bir değer oluşturmalıdır (örneğin, Kullanıcı oturumu karma anahtarını kullanın). Olduğu bu kadar önemli değil, asıl şey, değerin özgün olması ve orijinal kullanıcı hakkında özel bilgiler kullanılarak oluşturulmasıdır. "Devlet" parametresine atanır.

Bu değer, yönlendirildiğinde servis sağlayıcıya iletilir. Şimdi hacker, kurbanı koruduğu URL'yi açmaya davet ediyor.

Yetkilendirme kodu, "Eyalet" parametresi ile birlikte oturumdaki müşteriye geri gönderilir.

Müşteri, bir oturum bilgisine dayanan bir parametre değeri oluşturur ve yetkilendirme isteğinden servis sağlayıcısına geri gönderilen "Durum" değeri ile karşılaştırır. Bu değer, sorgudaki "durum" parametresiyle eşleşmiyor, çünkü mevcut oturumla ilgili bilgiler temelinde üretildi. Sonuç olarak, elde edilen değer sistem tarafından kabul edilmez.

OAuth'u uygularken algılanan diğer güvenlik açıkları, "REDIRECT_URI" parametresini kullanarak XSS (site komut dosyası yapılması) gerçekleştirme yeteneğini, OAUTH özel anahtar ayarı (bir mobil uygulamayı çizerken bazen elde edilebilir) ve yetkilendirme kodu kural ihlali (ne zaman) Yetkilendirme kodu, birden fazla erişim belirteçleri vermek için bir kereden fazla kullanılabilir). Bu güvenlik açıkları yukarıda açıklananlardan daha az yaygındır, ancak onları daha az tehlikeli hale getirmez. Geliştirici, web uygulamasının güvenilir bir şekilde çalışmasını sağlamak için gerekli tüm uygulamaları bilmelidir.

Tercüme edilmiş makalenin yazarı: Simon Saliba.

Önemli! Sadece akademik amaçlar için bilgi. Lütfen mevzuata uyun ve bu bilgileri yasadışı amaçlar için uygulamayın.

Cisoclub.ru üzerinde daha ilginç malzeme. Bize abone olun: Facebook | Vk | Twitter | Instagram | Telgraf | Zen | Messenger | ICQ Yeni | Youtube | Nabız.

Devamını oku