Hack Korumalı Bir Uygulama Sağlamak İçin Mobil Uygulama Güvenliği En İyi Uygulamaları

Yayınlanan: 2018-11-27

Devrim niteliğinde bir mobil uygulama oluşturmak, mobil uygulama geliştirmenin yalnızca ilk adımıdır. Bir uygulama oluşturduktan sonra, uygulama geliştirmeyi takip eden binlerce zorunlu süreç vardır. Mobil uygulama güvenliğindeki bu çok önemli adımlardan biri.

Bu yazıda, geliştirme tamamlandıktan sonra uygulamanız gereken temel mobil uygulama güvenlik uygulamalarının neler olduğunu keşfedeceğiz .

Son on yılda, mobil uygulama geliştirme endüstrisinin nasıl büyüdüğüne, ancak siber suçların da büyüdüğüne hepimiz tanık olduk. Ve bu suçlar bizleri, bir uygulamanın güvenliğini sağlamak için belirli önlemler alınmadan Play Store veya App Store'a göndermenin mümkün olmadığı bir aşamaya getirdi.

Bununla birlikte, güvenlik önlemlerinin ne anlama geldiğine gelince, öncelikle bu eylemleri gerçekleştirmeye neden ihtiyaç duyulduğunu ve mobil uygulama geliştirme endüstrisini rahatsız eden potansiyel uygulama güvenliği sorunlarının neler olduğunu anlamamız gerekiyor. Gerçek hayattan bir tahmin için, gerçeklere bakalım:

Uygulamanın güvensiz olma olasılığı

Mobil uygulama güvenliğinde, onları kötü amaçlı yazılımlara ve tehditlere karşı korumaktan daha fazlası var. Güvenlik önlemlerini daha iyi anlamak için önce OWASP mobil uygulama güvenlik tehditlerinden bazılarını tanımlayalım .

Mobil Uygulama Güvenliğine Neden İhtiyacımız Var: Potansiyel Tehditler ve Çözümleri

Kötü niyetli olmalarına rağmen uygulama geliştirme dünyasında kendilerini gösteren tehditler, bir mobil uygulamanın güvenliğini sağlamak için basit adımlarla çözülebilir. En önemli mobil uygulama güvenlik sorunlarının neler olduğuna bir göz atalım.

1. Hatalı sunucu kontrolleri:

Uygulama ile kullanıcı arasında cep telefonu cihazı dışında gerçekleşen iletişim sunucular aracılığıyla gerçekleşir. Ve bu tür sunucular, dünyadaki bilgisayar korsanlarının birincil hedefleridir. Bir sunucunun güvenlik açığının arkasındaki ana neden, bazen geliştiricilerin gerekli sunucu tarafı güvenliğini hesaba katmamasıdır. Bu, mobil uygulamalar için güvenlik hususları, güvenlik amaçlı küçük bütçeler veya platformlar arası geliştirmeden kaynaklanan güvenlik açıkları hakkında bilgi eksikliğinden kaynaklanabilir.

Çözüm:

Sunucularınızı korumanın en önemli adımı, otomatik tarayıcıların yardımıyla uygulamalarınızı taramaktır. Aksi takdirde, bu tarayıcılar bilgisayar korsanları tarafından uygulamalarınızdaki güvenlik açıklarını ortaya çıkarmak ve bunlardan yararlanmak için kullanılabilir. Otomatik tarayıcılar, çözülmesi kolay genel sorunları ve hataları ortaya çıkaracaktır.

2. İkili korumanın olmaması:

Bu, aynı zamanda ele alınması gereken en önemli OWASP uygulama güvenliği sorunlarından biridir, çünkü bir mobil uygulama için İkili koruma eksikliği varsa, herhangi bir bilgisayar korsanı veya saldırgan, kötü amaçlı yazılım tanıtmak için uygulama kodunu kolayca tersine çevirebilir. Ayrıca aynısının korsan bir uygulamasını yeniden dağıtabilir ve ona bir tehdit de enjekte edebilirler. Tüm bunlar, veri hırsızlığı ve marka imajının zarar görmesi ve bunun sonucunda gelir kaybı gibi kritik sorunlara yol açabilir.

Çözüm:

İkili dosyaları korumak için ikili sağlamlaştırma prosedürlerini uygulamak önemlidir. Bu prosedürün bir parçası olarak, ikili dosyalar analiz edilir ve onları yaygın mobil uygulama güvenlik tehditlerine karşı korumak için buna göre değiştirilir. Bu prosedür, kaynak kodu hiç dahil etmeden eski kodu düzeltir. Mobil uygulama güvenlik süreçleri üzerinde çalışırken jailbreak'lerin tespiti, sağlama toplamı kontrolleri, hata ayıklayıcı tespit kontrolü ve sertifika sabitleme için güvenlik kodlamasının sağlanması çok önemlidir.

3. Veri Depolama Güvensizliği:

Mobil uygulama güvenliğinde yaygın olan bir diğer büyük boşluk, güvenli bir veri depolama sisteminin olmamasıdır. Aslında, mobil uygulama geliştiricilerinin dahili veriler için istemci depolamasına güvenmeleri yaygındır. Ancak bir mobil cihazın bir rakip tarafından ele geçirilmesi sırasında bu dahili verilere çok kolay bir şekilde erişilebilmekte ve bu veriler kullanılabilmekte veya manipüle edilebilmektedir. Bu, kimlik hırsızlığı veya PCI (dış politika ihlali) gibi çeşitli suçlara yol açabilir.

Çözüm:

Burada dikkate alınması gereken uygulama güvenlik önlemlerinden biri, işletim sisteminin temel düzey şifrelemesi üzerine ek bir şifreleme katmanı oluşturmaktır. Bu, veri güvenliğine muazzam bir destek sağlar.

4. Taşıma katmanı için yetersiz koruma:

Taşıma katmanı, istemci ile sunucu arasında veri aktarımının gerçekleştiği yoldur. Bu noktada doğru mobil uygulama güvenlik standartları getirilmezse, herhangi bir bilgisayar korsanı, çalmak veya değiştirmek için dahili verilere erişebilir. Bu, kimlik hırsızlığı ve dolandırıcılık gibi ciddi suçlara yol açar.

Çözüm:

Aktarım katmanı güvenliğini güçlendirmek için iOS ve Android uygulamalarına SSL Sabitlemeyi dahil etmelisiniz. Bununla birlikte, normal şifre takımları yerine endüstri standardı şifre takımlarını kullanabilirsiniz. Ek olarak, karışık SSL oturumları nedeniyle kullanıcının oturum kimliğinin açığa çıkmasını önlemek, geçersiz bir sertifika durumunda kullanıcıyı uyarmak, üçüncü taraf analizlerin SSL sürümlerini kullanmak, kullanıcıları tehlikeli bir güvenlik ihlalinden kurtarabilecek yaygın uygulamalardır.

5. İstenmeyen Veri Sızıntısı:

İstenmeyen veri sızıntısı, kritik mobil uygulamalar mobil cihazdaki savunmasız konumlarda depolandığında meydana gelir. Örneğin , bir uygulama, diğer uygulamalar veya cihazlar tarafından kolayca erişilebileceği bir yerde depolanır ve bu da sonuçta uygulamanızın veri ihlaline ve yetkisiz veri kullanımına neden olur.

Çözüm:

Günlüğe kaydetme, uygulama arka planı, önbelleğe alma, Tarayıcı tanımlama bilgisi nesneleri ve HTML5 veri depolama gibi yaygın veri sızıntı noktalarını izleme.

Bu 5 mobil geliştirme güvenlik tehdidinin yanı sıra, güvenli mobil uygulamalar oluşturma yolunda yaygın olarak ortaya çıkan bazı engeller vardır. İşte buradalar:

  • Çok faktörlü kimlik doğrulamanın olmaması – İşlem, bir kişinin uygulamaya girmesine izin vermeden önce birden fazla güvenlik katmanı sağlar. Kişisel bir soruyu, OTP'yi, SMS yapılandırmasını veya diğer önlemleri yanıtlıyor olabilir. Çok faktörlü kimlik doğrulamanın olmaması, çeşitli sorunlara yol açabilir ve bu da onu bir uygulamanın nasıl güvenli hale getirileceğini yanıtlamanın önemli bir parçası haline getirir.
  • Düzgün şifreleme yapamama – Mobil uygulama güvenliği en iyi uygulamalarının önemli bir unsuru, uygun şifrelemenin sağlanmasıdır. Yetersizliği, diğer birçok sorunun yanı sıra kod hırsızlığına, fikri mülkiyet hırsızlığına, gizlilik ihlaline yol açabilir.
  • Kötü amaçlı kod Enjeksiyonu – Formlar gibi kullanıcı tarafından oluşturulan içerik genellikle bir tehdit olarak göz ardı edilir. Bir kullanıcının kimliğini ve parolasını eklediğini varsayalım, uygulama daha sonra bilgilerin kimliğini doğrulamak için sunucu tarafı verileriyle iletişim kurdu. Artık bir kullanıcının girdiği karakteri kısıtlamayan uygulamalar, sunucuya erişmek için kod enjekte etme riskine açılıyor.
  • Tersine mühendislik - Her güvenli mobil uygulama geliştirme kabusu. Yaklaşım, bir uygulamanın arka uçta nasıl çalıştığını göstermek ve kaynak kodunu vb. değiştirirken şifreleme algoritmalarını ortaya çıkarmak için kullanılabilir.
  • Güvenli olmayan veri depolama – güvenli olmayan veri depolama, bir uygulamanın içinde birden fazla yerde olabilir – çerezler, ikili veri deposu, SQL veritabanı, vb. Bir bilgisayar korsanı veritabanına veya cihaza erişirse, makinelere bilgi almak için meşru uygulamaları değiştirebilir .

Tüm mobil uygulamaları rahatsız eden genel tehditleri ve bu sorunlardan kaçınmak için izlenecek En İyi mobil uygulama güvenlik uygulamalarından bazılarını gördükten sonra , Android ve iOS mobil uygulama güvenliği ile ilgili ayrıntılara geçelim.

Android Uygulamaları Nasıl Güvenli Hale Getirilir?

Seçilecek etkili Android uygulama güvenliği en iyi uygulamalarından bazıları şunlardır: -

Harici Depolamadaki verilerin şifrelenmesi –

Genel olarak, bir cihazın dahili depolama kapasitesi sınırlıdır. Ve bu dezavantaj, genellikle kullanıcıları, verilerin korunması için sabit disk ve flash sürücüler gibi harici aygıtları kullanmaya zorlar. Ve bu veriler zaman zaman hassas ve gizli verilerden de oluşur. Harici depolama cihazında saklanan verilere cihazın tüm uygulamaları tarafından kolayca erişilebildiğinden, verilerin şifreli bir biçimde kaydedilmesi çok önemlidir. Mobil uygulama geliştiricileri tarafından en yaygın kullanılan şifreleme algoritmalarından biri AES veya Gelişmiş Şifreleme Standardıdır.

Hassas Veriler için Dahili Depolamayı Kullanma –

Tüm Android Uygulamalarının dahili bir depolama dizini vardır. Ve bu dizinde depolanan dosyalar, dosya oluşturma için MODE_PRIVATE modunu kullandıkları için son derece güvenlidir. Basitçe söylemek gerekirse, bu mod, belirli bir uygulamanın dosyalarına, cihazda kayıtlı diğer uygulamalar tarafından erişilememesini sağlar. Bu nedenle, odaklanılması gereken en iyi mobil uygulama kimlik doğrulama uygulamalarından biridir.

HTTPS'yi kullanma –

Uygulama ve sunucu arasında gerçekleşen iletişim, bir HTTPS bağlantısı üzerinden olmalıdır. Çok sayıda Android Kullanıcısı genellikle ortak alanlarda birkaç açık WiFi ağına bağlıdır ve HTTPS yerine HTTP kullanmak, cihazı HTTP trafiğinin içeriğini kolayca değiştirebilen ve cihaz uygulamalarının beklenmedik şekilde davranmasına neden olabilecek birçok kötü amaçlı etkin noktaya karşı savunmasız bırakabilir.

SMS yerine GCM kullanmak –

Google Cloud Messaging veya GCM'nin olmadığı zamanlarda sunuculardan uygulamalara veri göndermek için SMS kullanılırken, günümüzde GCM daha çok kullanılıyor. Ancak hala SMS'den GCM'ye geçiş yapmadıysanız, yapmalısınız. Bunun nedeni, SMS protokolünün ne güvenli ne de şifreli olmasıdır. Üstelik, SMS'e kullanıcının cihazındaki diğer herhangi bir uygulama tarafından erişilebilir ve okunabilir. GCM iletişimlerinin kimliği, istemci tarafında düzenli olarak yenilenen kayıt belirteçleriyle doğrulanır ve sunucu tarafında benzersiz bir API anahtarı kullanılarak kimlikleri doğrulanır.

Diğer önemli mobil uygulama geliştirme güvenliği en iyi uygulamaları şunları içerebilir: Kullanıcı girişinin doğrulanması, Kişisel verilere duyulan ihtiyacın önlenmesi ve uygulamayı yayınlamadan önce ProGuard kullanımı. Fikir, uygulama kullanıcılarını mümkün olduğunca çok sayıda kötü amaçlı yazılımdan korumaktır.

iOS Uygulamaları Nasıl Güvenli Hale Getirilir?

İzlenecek iOS uygulama güvenliği en iyi uygulamalarından bazıları şunlardır: -

Verilerin Depolanması –

Uygulamanızın mimarisini büyük ölçüde basitleştirmek ve güvenliğini artırmak için en iyi yol, uygulama verilerini diske yazmak veya uzak bir sunucuya göndermek yerine bellekte depolamaktır. Verileri yerel olarak depolamak tek seçeneğiniz olsa da, gitmenin birden fazla yolu vardır: -

Anahtarlık:

Sık erişim gerektirmeyen küçük miktarlardaki hassas verileri depolamak için en iyi yer Anahtarlık'tır. Anahtar zincirlerinde depolanan veriler , işletim sistemi tarafından yönetilir ancak başka herhangi bir uygulama tarafından erişilemez. – Önbellekler: Verilerinizin iCloud veya iTunes'da yedeklenmesi gerekmiyorsa, verileri uygulama sanal alanının Önbellekler dizininde saklayabilirsiniz. – Varsayılanlar sistemi: Varsayılanlar sistemi, büyük miktarda veri depolamak için uygun bir yöntemdir.

Ağ güvenliği:

Güvenlik ve gizlilik politikalarıyla tanınan Apple, yıllardır bu seviyeye ulaşmak için çalışıyor. Birkaç yıl önce Apple, üçüncü taraf mobil uygulamaları daha güvenli bir bağlantı, yani HTTPS üzerinden ağ istekleri göndermeye zorlayan App Transport Security'yi tanıtmıştı.

Hassas Bilgilerin Güvenliği –

Mobil uygulamaların çoğu, adres defteri, konum vb. gibi hassas kullanıcı verilerini kullanır. Ancak bir geliştirici olarak, kullanıcıdan istediğiniz tüm bilgilerin aslında erişmek ve daha fazlası için gerekli olduğundan emin olmanız gerekir. önemli olan depolamak. Bu nedenle, ihtiyaç duyduğunuz bilgilere yerel bir çerçeve aracılığıyla erişilebiliyorsa, bu bilgileri çoğaltmak ve depolamak gereksizdir.

Artık Hack-Proof Uygulaması için hem Android hem de iOS mobil uygulama güvenlik Uygulamalarını gördük. Ancak hiçbir gelişme yazıldığı kadar kolay olamaz. Bir süreç sırasında her zaman karşılaşılan belirli zorluklar vardır. İlerlemeye devam edelim ve ABD'deki hemen hemen tüm en iyi uygulama geliştirme şirketlerinin karşılaştığı ve çözdüğü zorlukları öğrenelim.

Mobil Uygulama Güvenliğiyle İlişkili Zorluklar

Harici kötü amaçlı yazılımlara karşı güvenlikleri için yeterli önlem alınmadığında mobil uygulamaların ne kadar savunmasız olabileceğine dair kanıtlanmış bir kayıt var. Aşağıdakiler, mobil uygulama güvenlik testinin gereksinime göre tamamlanmaması durumunda her zaman ortaya çıkabilecek zorluklardır .

Cihaz Parçalanması –

Uygulama mağazalarında bir uygulama yayınlanmadan önce izlenmesi gereken temel süreçler vardır. Mobil uygulama test stratejilerinize farklı çözünürlükleri, işlevleri, özellikleri ve sınırlamaları kapsayan cihaz çeşitliliği eklemeniz gerekir . Cihaza özel güvenlik açıklarının tespiti, uygulama geliştiricilerini uygulama güvenlik önlemlerinde bir adım öne çıkarabilir. Yalnızca cihazlar değil, popüler işletim sistemlerinin farklı sürümleri, olası tüm boşlukları kapatmak için uygulama sürümünden önce ele alınması gereken önemli bir adımdır.

Zayıf Şifrelemeler –

Zayıf şifreleme durumunda , bir mobil cihaz, mevcut herhangi bir cihazdan veri kabul etmeye karşı savunmasızdır. Kötü amaçlı yazılımlara sahip saldırganlar, herkese açık mobil cihazlarda sürekli bir açık uç arayışındadır ve güçlü bir şifreleme süreci izlemezseniz uygulamanız bu açık uç olabilir. Bu nedenle, çabalarınızı güçlü şifrelemeye yatırmak, hacklenmeyen bir mobil uygulama yapmanın en iyi yollarından biridir.

Daha zayıf barındırma kontrolleri –

Çoğunlukla bir işletmenin ilk mobil uygulamasının geliştirilmesi sırasında gerçekleşir ve bu da genellikle verileri sunucu tarafı sistemlerine açık bırakır. Bu nedenle, uygulamanızı barındırmak için kullanılan sunucular, yetkisiz kullanıcıların önemli verilere erişmesini önlemek için yeterli uygulama güvenlik önlemlerine sahip olmalıdır.

Mobil Uygulama Güvenliği Yönergeleri için Kontrol Listesi

Her mobil uygulama geliştirme şirketinin, güvenli uygulamalar oluştururken izlediği birkaç şey vardır. İşte yaygın olarak uyguladığımız bir kontrol listesi –

  • Sunucu tarafı kimlik doğrulamasını kullanın
  • Kriptografik algoritmaları kullanın
  • Kullanıcı girdilerinin kontrol standartlarını karşıladığından emin olun
  • Verileri yedeklemek için tehdit algoritmaları oluşturun
  • Tersine mühendisliği durdurmak için engelleme

Bilinmeyen kaynaklardan gelen saldırılara karşı mobil uygulama güvenlik denetimi yaparak hack korumalı bir mobil uygulama yapmanın birçok yolu vardır ve hiçbir güvenlik önlemi asla yeterli olamaz. Mobil uygulama geliştirme güvenliği en iyi uygulamalarına bakmak, bunu yapmanın bir yoludur. Bugün dijital dünya herkesin kullanımına açıldı ve hiçbir kullanıcı kötü amaçlı yazılımlardan ve güvenlik ihlallerinden yeterince güvende değil, ancak bu önlemler kişisel verilerinizin dijital cihazlarınızda güvende olmasını sağlıyor.