Mobil Uygulama Güvenliği ve Gizliliği

Mobil cihazların kullanımı son yıllarda büyük bir artış göstermektedir. Her işletme dünya çapında daha fazla kullanıcıya ulaşmak için mobil uygulama geliştirme fırsatı arıyor. Bu nedenle mobil uygulama geliştirmeye olan talep zirvede. Kuruluşlar, rakipleri hızla ele geçirmek için yüksek düzeyde işlevsel uygulamalar ve geliştirilebilecek en iyi özellikleri arıyor.
Uygulamalara olan yoğun talep nedeniyle çoğu şirket, uygulama geliştirme ve bakım güvenliği protokollerini uygulamayı göz ardı ediyor. Bu belge mobil uygulama geliştirmeyi, güvenlik tehditlerini ve en iyi uygulamaları kapsar.
Mobil Uygulama Geliştirme
Mobil uygulama geliştirme, C, C++, JavaScript gibi temel yazılım dillerini kullanarak mobil uygulamaların tasarlanmasını ve kodlanmasını içeren bir süreçtir. Bilgisayarlardaki geleneksel yazılım geliştirme sürecine benzer. Mobil uygulamalar Android (Google) ve iOS (Apple) gibi iki büyük mobil platform için geliştirilmiştir. Uygulama mağazasında yemek dağıtımı, internet bankacılığı, video yayını, taksi rezervasyonu vb. gibi çeşitli amaçlara yönelik milyonlarca uygulama mevcuttur.
Uygulamalar dört tür yaklaşım kullanılarak geliştirilmektedir:
Yerel Uygulamalar
Android ve iOS gibi platformların programlama dili ve çerçevesi kullanılarak tasarlanmıştır.
Çapraz Platform Uygulamaları
Farklı programlama dilleri ve çerçevelerinden oluşur ancak cihazın işletim sisteminde çalışabilen yerel bir uygulama oluşturacak şekilde oluşturulmuştur.
Hibrit Uygulamalar
JavaScript, CSS (basamaklı stil sayfaları, HTML) kullanılarak tasarlanmış web uygulamalarıdır. Native uygulamalara göre uygun maliyetlidirler.
Progresif Web Uygulamaları
Bir uygulama gibi davranan bir web sayfasıdır. Uygulama mağazası teslimatı ve kurulumları gerektirmez.
Mobil Uygulama Güvenliği İhtiyacı
Güvenli ve emniyetli bir uygulama geliştirmek de önemlidir. Daha önce bilgisayar korsanlarının kötü amaçlı yazılım saldırılarına karşı savunmasız bilgisayarlarda, dizüstü bilgisayarlarda ve diğer ağ cihazlarında siber güvenlik tercih ediliyordu. Ancak son yıllarda siber saldırılarda geleneksel bilgisayar yazılımlarından mobil uygulamalara doğru bir paradigma değişimi yaşanıyor. Bunun temel nedeni mobil cihazların günlük yaşamda kullanımının artmasıdır.
Mobil cihazları çeşitli olumsuz etkilerden korumak için mobil uygulama güvenliği vazgeçilmezdir.
Veri Hırsızlığı
Zayıf mobil uygulama güvenliği, müşteri bilgileri, oturum açma kimlik bilgileri, finansal ayrıntılar vb. gibi hassas verilerin kaybolmasına neden olabilir. Bilgisayar korsanları, önemli bilgilere erişim sağlamak için uygulamalardaki mevcut güvenlik açıklarını kullanacak. Bu hem müşteriyi hem de şirketi etkiliyor.
Finansal Kayıp
Mobil bankacılık uygulamalarında bulunan veriler, kredi kartı ve banka kartı numaraları, CVV vb. finansal ayrıntıları içerebilir. Bir bankacılık uygulamasının güvenliği ihlal edilirse, bilgisayar korsanlarının cep telefonunun tamamını ele geçirmesi kolaylaşır. Mobil uygulama güvenliğinin olmaması aynı zamanda para cezaları, tazminat, restorasyon vb. yoluyla şirketin mali kayıplara uğramasına neden olur.
Fikri Mülkiyet Soygunu
Fikri mülkiyet aynı zamanda telif hakları, patentler vb. gibi insan zekasını da içeren bir mülkiyettir. Tüm mobil uygulamaların, uygulamanın tasarlandığı temel kodu vardır. Genellikle bilgisayar korsanları, başarılı uygulamaların temel kodunu soyutlayarak kendi klonlarını oluşturmaya çalışır. Bu tür klonlama uygulamaları, kullanıcıları orijinal uygulamanın izlenimi altında sahte uygulamayı indirmeleri için kandırmak için yaratılmıştır.
İtibar Hasarı
Mobil uygulamadaki güvenlik ihlalleri şirketin itibarına zarar verebilir. Kullanıcı verileri açığa çıktığında müşterinin uygulama şirketine olan güveni zedelenir. Güven ve itibar kaybolursa bunları yeniden inşa etmek kolay değildir.
Mobil Uygulamalardaki Güvenlik Tehditlerinin Nedenleri
Uygulama Platformundan Yararlanma
Mobil uygulama platformu, tüm uygulamaların indirilebildiği yerdir. Örnekler Google Play Store ve Apple Store'dur. Bu platformların uygulama güvenliğine yönelik android niyetleri, platform izinleri, anahtarlıklar vb. gibi belirli yönergeleri vardır. Platformun işletim sisteminin uygunsuz kullanımı, android iletişimi sırasında veri sızıntısına neden olabilir.
Güvenli Olmayan Veri Depolama
Burada güvenlik tehdidi, verilerin güvenli olmayan bir şekilde saklanmasından kaynaklanmaktadır. Bu güvenlik açığının temel nedeni, güvenliği ihlal edilmiş işletim sistemi, jailbreakli cihazlar, veri önbelleğinin hatalı işlenmesi ve çerçevedeki güvenlik açıklarıdır. İkili veri depoları, çerez depoları, SQL veritabanları vb. gibi çeşitli yerlerde meydana gelir.
Güvenli Olmayan İletişim
Mobil uygulamalarda veri aktarımı tipik bir istemci-sunucu modelinde gerçekleşir. Bu tür veri aktarımı internet ve cihaz taşıyıcı ağı üzerinden yapılır. Bilgisayar korsanlarının hassas bilgilere erişmek için bu güvenlik açığından yararlanma olasılığı vardır. Bu, verilerin çalınmasına, Ortadaki Adam (MITM) saldırısına vb. yol açar.
Uygunsuz Kimlik Doğrulama
Kimlik doğrulama sürecinin yanlış uygulanması mobil uygulamada güvenlik tehditlerine yol açmaktadır. Yetersiz kimlik doğrulama nedeniyle, bilgisayar korsanı normal kimlik belirleme sürecini atlamaya çalışır. Mobil uygulama kimlik doğrulaması, her zaman çevrimiçi kimlik doğrulama gerektirmediği için geleneksel web uygulamasıyla karşılaştırıldığında daha savunmasızdır.
Veri Şifreleme Eksikliği
Kriptografik teknoloji, verilerin şifreleme ve şifre çözme yöntemleriyle güvenli bir şekilde aktarılması için kullanılır. Zayıf veri şifreleme yöntemi, bilgilerin bütünlüğünü tehlikeye atabilir. Bilgisayar korsanları, orijinal verileri yorumlamak, çalmak veya tahrif etmek için bu güvenlik açığından yararlanabilir.
Zayıf Kodlama Uygulaması
Uçucu kodlama uygulamasından kaynaklanan sağlam bir tehdittir. Her kişinin farklı bir kodlama prosedürünü izlediği kodlama grubunun üyeleri arasındaki yönelim bozukluğunun sonucudur. Uygulamanın kodlama dışı programında tutarsızlığa neden olur. Bilgisayar korsanının böyle bir boşluk tespit etmesi depolama sızıntılarına, arabellek taşmalarına ve güvenliği ihlal edilmiş varsayılan kitaplıklara neden olabilir.
Tersine Mühendislik
Tersine mühendislik tehdidi, JavaScript kodlarının yazıldığı Android uygulamalarında ortaya çıkar. Tersine mühendislik araçları ve teknikleri uygulanarak android uygulamalarının kodlama deseni ortaya çıkarılabilir. Tehdit, temel kodun açığa çıkması değil, kullanıcı bilgilerini çalmak için orijinal uygulamanın nasıl kopyalanacağıdır.
Mobil Uygulama Güvenliği En İyi Uygulamaları
Uygulama tasarımı ve bakımında uygulanabilecek çeşitli mobil uygulama güvenliği uygulamaları vardır. Bunlardan bazıları aşağıdaki gibidir.
Açık Kaynak Kod Değerlendirmesi
Çoğu mobil uygulama, yeniden kullanılabilir kaynak kodları içeren açık kaynak kodunu veya üçüncü taraf kitaplıklarını kullanır. Bu tür kodlar mobil uygulamaların geliştirilmesini ve dağıtılmasını kolaylaştırsa da herkesin kullanımına açıktır ve bu da onları kullanan android uygulamaları için bir tehdit oluşturmaktadır.
Üstelik uygulama geliştirme sürecinde üçüncü taraf kütüphanelerdeki açık kaynak kodlar yazılı kodla birleşiyor ve uygulama testi sırasında fark edilmiyor. Bu nedenle, uygulama koduna eklemeden önce herhangi bir güvenlik açığına karşı açık kodlarda kapsamlı bir test yapılması zorunludur.
Kriptografinin Sağlam Kullanımı
Kriptografi, başlangıçta mesajı üçüncü tarafa ifşa etmeden verileri aktarmak için kullanıldı. Bu, aktarım sırasında verilerin şifrelenmesi ve şifresinin çözülmesiyle yapılabilir. Güçlü bir veri şifreleme tekniği kullanılarak kaynak kodu, kullanıcı bilgileri, oturum açma kimlik bilgileri, uygulama depolama alanı gibi uygulama verileri bilgisayar korsanlarından korunabilir.
Kod İmzalama Sertifikasını Kullanma
Mobil uygulamayı siber saldırılardan korumak ve kullanıcının güvenini kazanmak için kod imzalamak çok önemlidir. Kod imzalama sertifikası, geliştiricinin kimliğiyle birlikte CA'nın dijital imzasını (Sertifikayı Veren Yetkili) içeren dijital bir sertifikadır. Uygulamayı imzaladıktan sonra kodun yorumlanmamasını veya değiştirilmemesini sağlar.
Veri Önbelleğini Geliştirme
Önbelleğe alınan veriler, daha hızlı yeniden açılmaya yardımcı olmak ve böylece uygulamanın performansını artırmak için uygulamadan alınan bilgileri içerir. Bu veri önbelleği genellikle kullanıcı cihazında güvenli olmayan bir şekilde depolanır. Dolayısıyla uygulamayı kilitlemek için bir şifre oluşturmak her zaman güvenlidir, bu da önbellek verilerine erişimi zorlaştırır. Önbellek verilerini sık sık temizlemek ve güvenli bir ağ bağlantısı kullanarak oturum açmak da iyi bir uygulamadır.
Güvenli Veri Depolama
Her uygulama, siber suçluların kötü amaçlı faaliyetlerde bulunmak için kullanabileceği çok sayıda veri içerir. Bu nedenle, uygulama verilerinin hem uygulamanın hem de cihazın güncel olduğu bir yerde güvenli bir şekilde saklanması önemlidir. Geliştirici her zaman uygulama verilerinin yerel bir mağazada saklanmamasını önerir. Güvenli bulut depolama bu amaçla kullanılabilir.
Kimlik Doğrulama ve Yetkilendirme Teknikleri
Kimlik doğrulama ve yetkilendirme süreci, mobil uygulama güvenliğinin iki güçlü ayağını oluşturur. Kimlik doğrulama süreci, kullanıcıların uygulamadaki verileri açmak ve verilere erişmek için oturum açma kimlik bilgileri gibi gerekli bilgileri sağlamasını sağlar. Veri hırsızlığını önlemek için çok faktörlü kimlik doğrulamaya sahip olmak önemlidir.
İhtiyaçlara göre sınırlı yetki verilmesi de esastır. Normal kullanıcıya yönetici gibi üst düzey yetki vermek, veri hırsızlığına ve uygulamanın tamamına müdahale edilmesine neden olabilir. Kimliği doğrulanmış kullanıcıların rolünü ve izinlerini doğrulamak için yetkilendirme her zaman sunucu tarafında gerçekleştirilmelidir.
Veri Silme ve Cihaz Kilitleme
Bu özellik çoğunlukla kişisel, finansal, sağlık bilgileri gibi gizli verileri içeren uygulamalarda kullanılmaktadır. Kullanıcı tarafından yapılan birkaç başarısız giriş denemesinden sonra uzak verilerin silindiği ve uygulamanın kilitlendiği bir güvenlik katmanıdır.
Kuruluşlar üç tür veri silme çözümü kullanıyor: fabrika ayarlarına sıfırlama silme, tam cihaz silme ve kurumsal cihaz silme.
Tersine Mühendislikle Mücadele
Bilgisayar korsanlarının uygulamanın işleyişini bozmak için kullandıkları tersine mühendislik yöntemi, mobil uygulama güvenliği açısından ciddi bir tehdit oluşturuyor. Bilgisayar korsanı, uygulamanın kaynak koduna erişim sağlayarak kimlik doğrulama sürecini atlatabilir, sahte konum belirleyebilir ve uygulama verilerini çalabilir. Tersine mühendislikle mücadelede çalışma zamanı güvenliğinin güçlendirilmesi çok önemlidir.
Pro Tip
Mobil uygulamayı siber saldırılara karşı korumak için güvenlik önlemlerine uymak şarttır. Uygun bir güvenlik çerçevesiyle geliştirilen mobil uygulama, gelecekte siber suçlulardan gelebilecek tehditlerin önlenmesine yardımcı olarak kullanıcıların güvenini kazanabilir. İş söz konusu olduğunda, her şey kullanıcıların güveni ve güveniyle ilgilidir ve bu, sağlam bir güvenlik çerçevesine sahip yüksek özellikli bir uygulamanın dağıtılmasıyla kazanılabilir.
Yiğit Can H.
Full-Stack Developer @ Varien. 10 yılı aşkın süredir Engineering alanında projeler geliştiriyor.

