• Hakkımızda
  • Yazı Gönder
  • Sizden Gelenler
  • İletişim
Yazılım Karavanı | Bilim - Teknoloji - Mühendislik
  • Anasayfa
  • Genel
  • Programlama
    • Ruby
    • Flutter
    • Android
    • Java
    • MySQL
    • Oracle SQL
  • Yaşamdan
  • Algoritmalar
  • Yapay Zeka
  • Topluluklar
No Result
View All Result
  • Anasayfa
  • Genel
  • Programlama
    • Ruby
    • Flutter
    • Android
    • Java
    • MySQL
    • Oracle SQL
  • Yaşamdan
  • Algoritmalar
  • Yapay Zeka
  • Topluluklar
No Result
View All Result
Yazılım Karavanı | Bilim - Teknoloji - Mühendislik
No Result
View All Result
Home Flutter

Güvenli Mobil Uygulama Geliştirme İpuçları #Flutter

Ali Murat Çevik by Ali Murat Çevik
Haziran 27, 2021
in Flutter, Siber Güvenlik
8 min read
0
Güvenli Mobil Uygulama Geliştirme İpuçları #Flutter
WhatsApp'ta PaylaşTwitter'da PaylaşLinkedIn'de PaylaşTelegram'da Paylaş

Bir mobil uygulama geliştirilirken eğer bilgi güvenliği ekipleriyle işbirliğiniz yoksa, en büyük endişe kaynağınız güvenlik olacaktır. “Acaba uygulamam hacklenir mi? Ödeme ekranı koydum ama kart bilgileri çalınır mı? Kullanıcı şifrelerini nasıl koruyacağım?” gibi pek çok soru işareti aklınıza takılıyor olabilir. 

Özellikle içinde bulunduğumuz pandemi döneminde ekran süresi ortalaması her geçen gün daha fazla artmaktadır. Dünya’da yıllık mobil uygulama indirilme sayısı 200 milyarı aştı. İster iOS kullanın, isterse Android platforma sahip bir akıllı telefon kullanın. Güvenlik zaafiyetleri her zaman uygulamalarınızda bulunma eğilimindedir.


İstatistiksel olarak Android marketlerde yer alan uygulamaların güvenlik açıkları, iOS’a göre daha fazla. Bu durum zaten çoğumuz tarafından bilinen bir gerçek.

Mobil uygulamamız ne tür güvenlik zaafiyetlerine sahip olabilir?

– Yetkisiz Erişim
– Hassas Verilerin Sızdırılması
– Yetkisiz Kullanıcı Tarafından Yapılan Oturum Kimliği Saldırıları
– Kötü Amaçlı Kullanıcı Yoluyla Kod Enjeksiyonları
– Daha Küçük Uygulama Penceresinin Güvenliğini Sağlama
– Kullanıcı Hesaplarının Ele Geçirilebilmesi 
– Akıllı Cihazlarda Hassas Verilerin Açık Bir Şekilde Tutulması 
– Mobil Cihaz Loglarından Erişilebilen Hassas Veriler 

Ne tür önlemler alabiliriz?

– SSL Sertifikası Sabitleme (Videosu YouTube kanalında)
– Jailbreak Kontrolü 
– Root Kontrolü 
– Sahte Konum Tespiti 
– Hashleme 
– İki Faktörlü Kimlik Doğrulama 
– Önbellekteki Verilerin Güvenli Saklanması 
– Hata Kodlarının Gizlenmesi 
– Token İçin Süre Sınırı 
– Logcat’in Kapatılması 
– Dosya Yükleme Uzantı Kontrolü 

Flutter’da bu zaafiyetlerden bazılarını otomatik olarak kapatabileceğimiz paketler yer almakta. pub.dev üzerinde yayınlanan bu paketleri inceleyeceğiz. Bazı güvenlik açıkları herhangi bir yazılım geliştirme aracıyla ilişkili olmayabilir. Örneğin kullanıcıya gösterdiğiniz hata mesajlarının içeriği, login senaryosu gibi yanlış kurgulardan kaynaklı zaafiyetler oluşabilmektedir.

Öneriler

Hata Mesajlarını İçeriğini Düzenleyin

Bir login ekranında kullanıcıdan istenen kullanıcı ismi, e-posta veya telefon numarası ile ilişkilendirilmiş şifrenin olduğu senaryoyu inceleyelim. Kullanıcı şifresini yanlış girdiğinde hata parola uyarısı vermeniz kullanıcı adının doğru bir şekilde tahmin edildiği anlamına gelebilmektedir. Telefon numarasıyla giriş yapılabilen bir sistemde “Telefon numaranız sistemde kayıtlı değildir” gibi bir uyarı göstermek bu uygulamayı kullanan ve kullanmayan kişilerin bilgisini ifşalayacaktır. 

Hata mesajlarınızda mümkün oldukça detay vermekten kaçının. Örneğin, “Bilgilerinizi kontrol edin” uyarısı sisteminiz için yeterli ve güvenli bir uyarı mesajı olabilir.

JailBreak, Sahte Konum ve Rootlu Cihaz Kontrolü Sağlayın

Android platformunda bir telefonun rootlanması artık çok kolay bir işlem haline geldi. Rootlu cihazlarda özel izinler, ek olarak kullanılabilecek araçların yüklenmesine olanak sağlamaktadır. Rootlu bir cihazda uygulamanızın çalıştırılmaması güvenlik açısından size büyük bir artı sağlayacaktır. Flutter’da rootlu cihaz, jailbreak ve sahte konum tespiti için trust_fall paketi bulunmaktadır. 

Sahte konum tespiti için bu paketin Android platfomunda konum izninin verilmiş olması gerekiyor. Henüz bu  özellik ios için çalışmıyor. Bununla ilgili bildiğiniz daha iyi bir yöntem varsa yorumlarda belirtebilirsiniz.

Jailbreak kontrolünü yine aynı paket üzerinden iOS cihazlar için sağlayabilirsiniz. Jailbreak saptantığında uygulamayı direkt olarak kapatabilir, ekranda bir hata mesajı verebilir veya butonların tamamını pasif hale getirebilirsiniz. 

Sahte Konum Tespiti ise birçok alışveriş uygulamasında alınması gereken önlemlerin başında gelmektedir. trust_fall paketi de sahte konum tespiti ile ilgili bize yardımcı olmaktadır.

Link: https://pub.dev/packages/trust_fall

Önbellekte Sakladığınız Verileri Koruyun

Android ve iOS platformlarda önbelleğe kaydettiğiniz veriler local olarak cihazınıza yazılmaktadır. Örneğin shared_preferences kullandığınızı varsayalım:

Android: /data/data/UYGULAMAPAKETİSMİ/shared_prefs/FlutterSharedPreferences.xml
iOS: /private/var/mobile/Containers/Data/Application/42A253CE-4424-45EB-A175- CAC0CC1DD85C/Library/Preferences/UYGULAMAPAKETİSMİ.plist

dizinlerinde verileriniz okunabilir şekilde bulunacaktır. Buradaki önerim encrypted_shared_preferences paketinin kullanılmasıdır. Bu şekilde saklanan bilgilerin crypto işleminden geçmesini sağlayabilirsiniz. Mümkün mertebe kullanıcıya ait hassas verileri cihazda depolamayın. Buradaki paketler depolamak zorunda kaldığınız veriler için önerilmektedir.

Link: https://pub.dev/packages/encrypted_shared_preferences
Link 2: https://pub.dev/packages/flutter_secure_storage

Şifre Gibi Hassas Verileri Hashleyin

Hash, kriptografik bir fonksiyondur. Çeşitli uzunluktaki verilerin matematiksel algoritmalarla sabit uzunlukta benzersiz bir değer oluşturma işlemidir. Flutter için pub.dev üzerinde yer alan crypto paketi,

  • SHA-1
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/224
  • SHA-512/256
  • MD5
  • HMAC (i.e. HMAC-MD5, HMAC-SHA1, HMAC-SHA256)

algoritmalarını desteklemektedir. Kullanıcılara ait hassas verileri hashlemenizi öneririm.

Link: https://pub.dev/packages/crypto

SSL Sertifikasını Sabitleyin

İster web view bir uygulamanız olsun ister api yardımıyla post ve get işlemleri yaptığınız bir uygulamanız olsun. Aradaki insan saldırısına maruz kalabilirsiniz. SSL sertifikası bulunan bir url’e istek atarken SSL içerisinde bulunan parmak izini uygulamanız içerisine sabitleyerek isteğin doğru yere ulaşıp ulaşmadığını kontrol edebilirsiniz. Flutter için pub.dev üzerinde 

Link:  https://pub.dev/packages/ssl_pinning_plugin

Ek olarak, şifreli olarak gelen verilerinizi çözümleyebilmek, tokenınızın expire süresiyle ilgili işlemler de yapabileceğiniz jwt_decoder  paketi pub.dev üzerinde bulunuyor.

Link: https://pub.dev/packages/jwt_decoder

Yetkisiz Erişim

Kullanıcının kimlik doğrulamasını doğrulamadan uygulamaya erişim sağlamak en büyük güvenlik riskidir. Bu nedenle uygulama, kullanıcının gerçek bir kullanıcı olmasını sağlamalı ve birden fazla başarısız oturum açma girişimi olması durumunda erişimi geçici olarak kilitlemelidir.

Hassas Verilerin Sızdırılması

Bu günlerde, cep telefonunun aşırı kullanımıyla, mobil uygulamalarınız kullanıcı kimlikleriniz, şifreniz, PIN’iniz, finansal bilgileriniz, kişisel bilgileriniz ve daha pek çok hassas veriye sahip. Uygulama güvenlik kontrolleri uygulamada doğru şekilde uygulanmazsa, hassas verileriniz kolayca tehlikeye girebilir. Zayıf uygulama güvenliği, yetkisiz tarafların uygulamanızdaki tüm bilgilere erişmesine izin verebilir.

Flutter tabanlı bir uygulama kullanırken, arka plan moduna geçmek üzereyken her zaman bilgi sağlar. Kullanıcının izniyle önbelleğin düzenli olarak temizlenmesi için bir zamanlayıcı ayarlamak için bilgilere erişebilirsiniz.

Daha Küçük Uygulama Penceresinin Güvenliğini Sağlama

Uygulamanın daha küçük pencerelerine erişerek başka bir göreve geçmek yaygındır. Ancak ne yazık ki, uygulamanızın daha küçük pencereleri, içeriği küçültülmüş pencerede kullanıcıya göstermeye devam edebilir. Kötü niyetli kullanıcı, uygulamanızın Touch ID’ler veya yüz tarama gibi ek önlemlerden korunmasına rağmen bu küçük ekrandan bilgileri kolayca alabilir. Flutter uygulama geliştirme şirketleri , kullanıcıların acısını kolayca anlayabilir ve uygulamanızı kötü niyetli kullanıcılardan korumak için bu tür stratejileri uygulayabilir.

Örneğin Instagram, Exxen gibi uygulamaları ekranı ikiye bölerek kullanamazsınız.

Android için: Android, doğal olarak çok çeşitli pencere modlarını destekler. Belirli ekranların ekran görüntülerini devre dışı bırakmak için Flutter uygulamasının MainActivity içindeki WindowManager bayrağını kullanabilirsiniz.

İncelemenizi öneririm:

1) https://stackoverflow.com/questions/60006167/can-i-hide-flutter-app-contents-when-the-app-is-in-background
2) https://github.com/neckaros/flutter_windowmanager

Genel olarak Flutter ile mobil uygulamanızın güvenliği için belirli adımları anlatmaya çalıştım. Tabi ki güvenlik bunlarla sınırlı değildir. Her uygulamada ortaya çıkacak zaafiyetler birbirinden farklı olabilir.

Who Am I filminden bir alıntı ile yazımı tamamlamak istiyorum:

“Hiçbir sistem güvenli değildir.”

İyi çalışmalar dilerim.

alim cevik
SendTweet7Share2Share
Önceki Gönderi

DarkSide Çetesinin ve Kötü Amaçlı Fidye Yazılımlarının Analizi

Sonraki Gönderi

Makine Öğrenimi İçin Veri Artırımı (Data Augmentation)

İlgili Yazılar

Yeni Siber Güvenlik Kanunu: Yazılım Geliştiriciler İçin Neler Değişti?

Yeni Siber Güvenlik Kanunu: Yazılım Geliştiriciler İçin Neler Değişti?

by Yazılım Karavanı
Mart 19, 2025
0

Dijitalleşmenin hız kazandığı günümüzde siber tehditler de aynı ölçüde artıyor. Türkiye Cumhuriyeti, siber güvenliği güçlendirmek ve kritik altyapıları korumak amacıyla...

OneSignal Kullanarak Güvenli Push Notifications Oluşturma Rehberi

OneSignal Kullanarak Güvenli Push Notifications Oluşturma Rehberi

by Ali Murat Çevik
Aralık 14, 2024
0

Son günlerde ülkemizde bazı kurumların mobil uygulamalarından ard arda yetkisiz bildirimler gönderildiğine şahit olduk. Bu uygulamaların ortak yanının One Signal...

Flutter CI/CD Süreçleri (Azure DevOps Pipeline) – Part1/iOS

Flutter CI/CD Süreçleri (Azure DevOps Pipeline) – Part1/iOS

by Ali Murat Çevik
Mayıs 11, 2023
0

Herkese selamlar, bu yazıda yazılım geliştirme süreçlerinin verimliliğini ve çevikliğini artıracak bir konuyu ele almak istedim. Part1 olarak fazlandırdığım bu...

Risk Yönetimi ve Tehdit Modelleme

Risk Yönetimi ve Tehdit Modelleme

by Tunahan Tekeoğlu
Mayıs 5, 2023
0

Risk yönetimi ve tehdit modelleme, bilgi güvenliği alanında önemli bir konudur. Bu iki kavram, kurumların ve işletmelerin güvenlik açıklarını tespit...

SOC Sistemler Üzerine Faydalı Notlar

SOC Sistemler Üzerine Faydalı Notlar

by Tunahan Tekeoğlu
Eylül 2, 2022
0

SOC nedir? Özellikle günümüz teknoloji dünyasında büyük işletmeler için vazgeçilmez hale gelen birçok data barındıran ve dış dünyayla fazlaca etkileşim...

Next Post
Makine Öğrenimi İçin Veri Artırımı (Data Augmentation)

Makine Öğrenimi İçin Veri Artırımı (Data Augmentation)

Sıfırdan Yolo v4 Tiny Özelleşmiş Nesne Tespiti (Custom Object Detection)

Sıfırdan Yolo v4 Tiny Özelleşmiş Nesne Tespiti (Custom Object Detection)

  • Popüler
  • Yorumlar
  • En Yeniler
Sıfırdan Yolo v4 Tiny Özelleşmiş Nesne Tespiti (Custom Object Detection)

Sıfırdan Yolo v4 Tiny Özelleşmiş Nesne Tespiti (Custom Object Detection)

Temmuz 26, 2021
B Ağaçları (B Trees)

B Ağaçları (B Trees)

Ağustos 24, 2020
Gini Index Kullanılarak Karar Ağacının (Decision Tree)  Oluşturulması

Gini Index Kullanılarak Karar Ağacının (Decision Tree) Oluşturulması

Ağustos 20, 2020
Bubble Sort (Kabarcık Sıralama) Algoritması

Bubble Sort (Kabarcık Sıralama) Algoritması

Mayıs 18, 2018
2020 ‘nin En Güncel ve Tehlikeli Zararlı Yazılımları

2020 ‘nin En Güncel ve Tehlikeli Zararlı Yazılımları

6
Magento 2 Detaylı Kurulum & Hatalar

Magento 2 Detaylı Kurulum & Hatalar

5
Flutter’da TFLite Kullanımı

Flutter’da TFLite Kullanımı

4
Bubble Sort (Kabarcık Sıralama) Algoritması

Bubble Sort (Kabarcık Sıralama) Algoritması

2
Yeni Siber Güvenlik Kanunu: Yazılım Geliştiriciler İçin Neler Değişti?

Yeni Siber Güvenlik Kanunu: Yazılım Geliştiriciler İçin Neler Değişti?

Mart 19, 2025
Google Play Health Connect Politika Güncellemesi: Güncellenen Veri Koruma Kuralları

Google Play Health Connect Politika Güncellemesi: Güncellenen Veri Koruma Kuralları

Mart 10, 2025
Yapay Zeka Destekli Dijital Medya Takip Aracı: sentitracer.com

Yapay Zeka Destekli Dijital Medya Takip Aracı: sentitracer.com

Şubat 10, 2025
OneSignal Kullanarak Güvenli Push Notifications Oluşturma Rehberi

OneSignal Kullanarak Güvenli Push Notifications Oluşturma Rehberi

Aralık 14, 2024

Reklam

Yazılım Karavanı | Bilim – Teknoloji – Mühendislik

Bilgi Teknolojileri alanına meraklı herkesin buluşma noktası!

No Result
View All Result
  • Anasayfa
  • Genel
  • Programlama
    • Ruby
    • Flutter
    • Android
    • Java
    • MySQL
    • Oracle SQL
  • Yaşamdan
  • Algoritmalar
  • Yapay Zeka
  • Topluluklar

© 2020 Yazılım Karavanı Kaynak gösterilmesini rica ederiz.