MOBİL GÜVENLİK VE AÇIKLARI
Merhaba arkadaşlar, bu yazımızda genel bir başlangıç olarak mobil ve mobil android zafiyetlerinden bahsedeceğim. Zafiyetlere geçmeden önce mobilin ne olduğuna bakalım. Mobil, taşınabilirlik ve hareketlilik özelliğine sahip olan anlamına gelir. Teknoloji dünyasında ise “mobil” terimi, genellikle taşınabilir elektronik cihazlar veya mobil cihazlar için kullanılır. Peki android nedir? Android, Google ve Open Headset Alliance tarafından geliştirilmiştir. Cep telefonları, tabletler ve televizyonlar için kullanılmaktadır. Linux tabanlı, özgür ve ücretsiz bir işletim sistemidir. Ayrıca Android, aygıtların fonksiyonelliğini genişleten uygulamalar yazan geniş bir geliştirici grubuna sahiptir.
Android, Linux çekirdeği üzerine inşa edilmiş bir mobil işletim sistemidir. Bu sistem ara katman yazılımı, kütüphaneler ve API, C diliyle yazılmıştır. Uygulama yazılımları, Apache harmony üzerine kurulu Java uyumlu kütüphaneleri içine alan uygulama iskeleti üzerinden çalışmaktadır. Android, derlenmiş Java kodunu çalıştırmak için dinamik çevirmeli Android Runtime (ART) kullanır. Ayrıca cihazların fonksiyonelliğini artıran uygulamaların geliştirilmesi için çalışan geniş bir programcı-geliştirici çevresine sahiptir. Peki neden böyle bir sistem açık veya zafiyetlere sahiptir? Bu yüzden gelin şimdi OWASP tarafından belirlenen 2023’teki en riskli mobil zafiyet/açıklarına bakalım. OWASP’a göre 2023’teki en büyük açıklar sırasıyla şunlardır;
OWASP 2023 MOBILE Vulnerabilities:
Güvensiz Kimlik Doğrulama/Yetkilendirme
Güvensiz İletişim
Yetersiz Tedarik Zinciri Güvenliği
Yetersiz Gizlilik Kontrolleri
Uygun Olmayan Kimlik Bilgisi Kullanımı
Yetersiz Giriş/Çıkış Doğrulama
Güvenlik Yapılandırma Hatası
Yetersiz Şifreleme
Bunlardan ilki olan güvensiz kimlik doğrulama/yetkilendirme zafiyetine bir göz atalım.
GÜVENSİZ KİMLİK DOĞRULAMA/YETKİLENDİRME ZAFİYETİ :
2016 yılında, OWASP tarafından uygulama güvenliğindeki güvenliksiz yetkilendirme, güvenlik açıklarının altıncı önde gelen nedeni olarak listelenmiştir.
Ancak 2023 yılında, Yetkilendirme açıklıkları güvenlik açıklarının listenin en üstüne çıkmıştır. Dolayısıyla uygulama güvenliğindeki güvenliksiz yetkilendirme anlaşılması gereken bir konu olmuştur. Mobil uygulama geliştiricilerinin ciddiye alması gereken bir konu olarak ön plana çıkmaktadır. Güvensiz kimlik doğrulama/yetkilendirmeyi, bu kullanıcıların aslında yapmamaları gereken işlemleri gerçekleştirmelerine izin veren bir uygulama içinde zayıf ayrıcalık yönetimi sonucunda ortaya çıkar. Bu, güvensiz kimlik doğrulamadan farklı olmalıdır. Güvensiz kimlik doğrulama, kullanıcıların girmemeleri gereken sistemlere girmelerine izin verir. Buna karşılık, güvensiz yetkilendirme doğrulanmış kullanıcılara ayrıcalıklar verir ki normalde bu ayrıcalıklara sahip olmamaları gerekmektedir. Mobil uygulama Yetkilendirme güvenlik açıklıklarını anlamak için, bir mobil uygulamada ayrıcalıkların nasıl çalıştığını bilmek önemlidir. Ayrıcalıklar, bir kullanıcının mobil uygulama içinde belirli görevleri gerçekleştirmesine izin veren bir dizi izindir.
Güvensiz yetkilendirmenin neden mobil uygulamalarda en çok güvenlik açığına yol açtığı, uygulamanın karmaşık hale geldikçe rol ve ayrıcalıkların karmaşıklığının artması nedeniyle uygulamanın uygulanmasının zorlaşmasıdır.
Yetkilendirme güvenlik açıklıkları, genellikle bir ayrıcalık yükselmesi biçimi olarak tanımlanır. Genellikle iki türe ayırlırlar. Bunlar;
Yatay Ayrıcalık Yükselmesi: Bu, bir kullanıcının benzer ayrıcalıklara sahip başka bir kullanıcının kaynaklarına erişebildiği durumlarda ortaya çıkar.
Dikey Ayrıcalık Yükselmesi: Bu, bir normal kullanıcının güvenlik hiyerarşisinde daha yüksek düzeyde olan başka bir kullanıcının ayrıcalıklarını kazandığı durumlarda meydana gelir. Bu durum sistem yöneticilerini de içerebilir.
Kimlik doğrulama ve yetkilendirme’nin farklı olduğunu hatırlamak önemlidir, ancak birbiriyle el ele giderler. Bir uygulama kullanıcıyı doğru bir şekilde kimlik doğrulayamazsa, uygulama otomatik olarak güvensiz yetkilendirmeden etkilenebilir. Eğer bir mobil uygulama, kaynak sahibini doğrulamadan kullanıcının işlem yapmasına izin veriyorsa, uygulama Güvensiz Doğrudan Nesne Başvurusu (IDOR) güvenlik açıklıklarından etkilenebilir.
Belirli kritik kaynaklar, uygun erişim kontrolü kimlik doğrulamasının eksikliği nedeniyle korunmuyorsa veya yetkisiz kullanıcıların belirli gizli işlevlere erişemeyecekleri varsayılıyorsa, bu güvensiz yetkilendirmeye yol açabilir.
Uygulama yetkilendirmeyi ve kimlik doğrulamayı sunucu tarafında değil, istemci tarafında uygularsa güvenlik açıklıklarına yol açabilir.
Eğer tasarım gereği bir mobil uygulama kullanıcı rollerini sistem isteğinin bir parçası olarak geri gönderiyorsa.
Güvensiz yetkilendirme, bir organizasyonu çeşitli açılardan savunmasız bırakabilir. Güvenlik açısından bakıldığında, iç tehditler, yetkilendirme güvenlik açıklarından önemli ölçüde yararlanabilir. Ayrıca, aşırı ayrıcalıklı bir kullanıcının istemeden kritik bir sızıntıya veya hassas veri kaybına yol açabilecek işlemleri gerçekleştirebileceği senaryolara yol açabilir.
İş açısından bakıldığında, geri dönüşü olmayan bir itibar kaybı ile karşı karşıya kalabilirler. Hassas kullanıcı verilerine izinsiz erişim, Kimlik Hırsızlığına ve dolandırıcılığa zemin hazırlayabilir ve potansiyel olarak masraflı davalara yol açabilir.
Peki biz nasıl örnekler verebiliriz buna? Şöyle bir örnek verebiliriz;
Bir uç noktanın ne olduğuyla başlayalım. Bir uç nokta genellikle sunucudaki bir kaynağın konumunu sağlayan Uniform Resource Locator (URL) olur.
Bir kullanıcı, arka planda yer alan REST API’ye bir uç nokta API isteği yaptığında, istek, Aktör Kimliği ve OAuth taşıyıcı belirteci içerir. Uygulama, yalnızca taşıyıcı belirteciyi doğrulayarak ve ilişkili Aktör Kimliği’ni doğrulamayarak tasarlanmışsa, bir tehdit ajanı, birden çok arka planda REST API isteği kullanarak kullanıcı kimliğini değiştirerek diğer kullanıcıların bilgilerine erişebilir.
Örneğin, Facebook Business Manager uç noktasında bir IDOR güvenlik açığı bulunduğu zaman tehlikeli kullanıcıların Facebook sayfalarına sınırlı izinleri değiştirmesine ve sayfa sahiplerinin iş sayfalarına yönetici erişimini kaybetmesine neden olmuştur.
Peki biz buna nasıl temel bir önlem alabiliriz?
Uygulama iş akışına temel kontroller ekleyerek önlenir. Kimlik doğrulaması yapılmış kullanıcı rolleriyle ilgili bilgilerin mobil uygulama tarafından sağlandığı bir tasarım biçimini kullanmamalısın.
Uygulama, tüm kullanıcı rolü ve izin bilgilerini sunucu (backend) tarafında depolamak üzere tasarlanmalıdır. Ayrıca kimlik doğrulanmış bir kullanıcının izinleri, sunucuda saklanan bilgilerle doğrulanmalıdır.
Bir işlemle ilişkilendirilen gelen tüm tanımlayıcılar, sunucuda saklanan roller ve izin tanımlayıcılarıyla bağımsız bir şekilde doğrulanmalıdır.
Gördüğünüz gibi bu yazımda arkadaşlar mobil açıkları/zafiyetleri ve mobil insecure authentication/authorization zafiyetinden bahsettim. Umarım faydalı olmuştur.
Siber güvenlik ile ilgili daha fazla yazı okumak için tıklayın
Başlık metninizi buraya ekleyin
HacktorX
HacktorX YazarıSilinmiş kullanıcıların yazıları bu kullanıcı hesabı ile yayına devam etmektedir.