Android ve iOS Mobil Uygulamalarda Güvenlik

Android ve iOS mobil uygulamalar kullanıcıların hayatını kolaylaştırmaktadır. Ancak bu mobil uygulamalarda yapılabilecek tasarım ve kodlama hataları güvenlik açıklarına neden olabilmektedir. Bu güvenlik açıkları kullanıcıların ad, soyad, adres ve telefon bilgileri gibi kişisel bilgilerini ve kredi kartı bilgileri gibi mali bilgilerini tehlikeye atabilmektedir.

Mobil uygulamalarda yazlım geliştiriciler genellikle zaman baskısı altında kalırlar. Bu da mobil uygulamalarda güvenlik konularının arka plana atılmasına ve projelerde güvenlikten sorumlu bir personel bulundurulmamasına neden olur.

Güvenlik konusundaki bir diğer problem ise güvenlik ile performans ve kullanılabilirliğin birbirine düşman olmalıdır. Mobil uygulamalarda güvenlik tedbirleri artırıldıkça mobil uygulamanın performansı düşer, kullanıcıdan daha çok girdi alınır ve iş akış süreçleri uzar.

Bir mobil uygulama geliştirilirken yapılan en sık hatalar şunlardır:

  • Uygunsuz Platform Kullanımı: Android ve iOS işletim sistemlerinin uygulamalara sunduğu TouchID, Keychain gibi hizmetlerin hatalı kullanılması
  • Güvensiz Veri Saklamak: Parola, kredi kartı bilgileri, konum bilgileri gibi haşhaş bilgilerin açık olarak (şifrelenmemiş olarak) cihazda ya da hafıza kartında saklanması
  • Güvensiz İletişim Kurmak: TLS ya da SSL kullanmadan sunucu ile hassas bilgilerin değiş tokuş edilmesi
  • Güvensiz Kullanıcı Doğrulama: Kullanıcı yetkilendirmede ve oturum yönetmede eksik ve hatalı yönlerin bulunması. İki adımlı kullanıcı doğrulama gibi seçeneklerin göz ardı edilmesi.
  • Yetersiz Şifreleme: Yazılım geliştiricilerin kendi geliştirdikleri şifreleme algoritmalarını kullanmaları ve hassas bilgiler için yeteri kadar güçlü olmayan hazır şifreleme algoritmalarını kullanması
  • Güvensiz Kullanıcı Yetkilendirme: Kullanıcı yetkilendirmenin yetersiz veya yanlış yapılması
  • Kullanıcı Girdilerinin Kontrolünün Yapılmaması: Kullanıcıdan alınan girdilerin kontrol edilmeden işleme alınması. Kullanıcı girdileri hem kullanıcı cihazlarında (cep telefonu, tablet, akıllı saat, akıllı TV gibi) hem de sunucuda kontrol edilmelidir.
  • Obfuscation: Android veya iOS mobil uygulamanın Play Store ve App Store’a konulmadan önce obfuscation (kod karıştırması) yapmamak. Obfuscation yapılmaması mobil uygulamamızın ters mühendislik saldırılarına açık kalması demektir. Ters mühendislik ile uygulamanın kaynak kodlarına ulaşılabilir.
  • Kırılmış Cihazlar (Rooted/JailBreak): Kırılmış cihazlar üzerinde çalışan uygulamalar işletim sisteminin güvensiz olması nedeniyle güvensiz sayılmalıdır.

Mobil uygulamalarda güvenlik konusu, uygulama geliştirilme aşamasında iken ele alınmalıdır. Güvenlik projenin olmazsa olmaz bir parçası olarak düşünülmeli ve hangi güvenlik risklerinin alınıp alınamayacağına projenin başında karar verilmelidir.

Bir Yorum Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Mesajınız
Ad Soyad *
E-Postanız *
Website