IHS Blog

Sık Görülen 5 Mobil Uygulama Güvenliği Açığı

mobil-guvenlik-aciklari

Mobil uygulama güvenliği hala birçok açığın olduğu bir konu. Bu, 2016 Hewlett Packard Enterprise çalışmasından elde edilen sonuç. Çalışmaya göre 36.000 mobil uygulamanın %96’sı 10 güvenlik kontrolünün en az birinde başarısız oldu. HPE’nin üç yıl önce yaptığı benzer bir çalışmada da incelenen 2000 uygulamanın %97’sinde birçok güvensiz özel bilgi olduğu tespit edilmişti.

Mobil uygulama kullanımı hızla yaygınlaşırken, güvenliğe yönelik kaygılar da aynı şekilde artmakta.

Nissan geçtiğimiz ay içerisinde güvenlik uzmanlarının Leaf elektrikli arabasının uygulamasının güvensiz API’ları ile arabanın tüm fonksiyonlarının uzaktan kumanda edilebildiğini göstermesi üzerine uygulamayı kaldırarak mobil uygulama güvenliği açığından mağdur olan bir başka marka oldu.

Bu ve buna benzer örneklerden yola çıkarak en sık rastlanan güvenlik açıklarını ve bu açıkların nasıl giderilebileceğini şöyle listeleyebiliriz:

1- Sunucu Tarafı Bileşenler

Uygulamanın veri işleme ve çalışma mantığı oluşturma için sunucu uygulamalarıyla nasıl iletişime geçtiği mobil uygulama güvenliği için büyük önem taşıyor. Bu iletişim genellikle web hizmetleri veya API aramaları üzerinden gerçekleşiyor. Bu aramaların güvenli programlama pratikleriyle gerektiği şekilde güvenli bir hale getirilmemesi mobil uygulamalarda en sık rastlanan açıklardan biri.

Bu kategorideki açıklar arasında çapraz site betiklemesi, ya zayıf ya da hiç olmayan kimlik doğrulama süreçleri, sql injection tarzı saldırılar ve çapraz site talep sahteciliği bulunmaktadır.

Nasıl önlenir?

API’ları ve web hizmetlerini güvenli bir hale getirmek için genel web uygulama güvenliği konusunda bilgili olmak gerekiyor. Güvenli web programlama pratikleri sunucu tarafındaki riski azaltıyor veya tamamen ortadan kaldırıyor. Bu konudaki muhtemel açıkları ve riskleri ortadan kaldırma stratejilerini OWASP’ın sitesinden incelemek mümkün. Aynı sitede sık rastlanan güvenlik açıklarının tespit edilebileceği statik kod analizi araçları da bulunmakta ve bu araçlar geliştirme sürecine muhakkak dahil edilmeli.

2- Ağ Trafiğinin Korunması

Sunucunun kendisi güvende olsa bile, mobil uygulamalardan gönderilen kriptolanmamış ağ trafiğine her zaman müdahale edilebilir ve bu trafik oturum gaspı, çapraz site talep sahteciliği ve ‘man in the middle’ saldırıları için kullanılabilir. Bu tarz saldırılar kariyer ağlarından bir kafenin ücretsiz Wi-Fi’ına kadar mobil cihazların veri aktardığı herhangi bir yerde gerçekleştirilebilir. Saldırganların ihtiyacı olan tek şey uygulamanızdan veya uygulamanıza gönderilen paketlere müdahale edebileceği bir erişim noktası.

Nasıl önlenir?

Uygulamalar tasarlanırken ve programlanırken uygulamaya gelen ve uygulamadan giden tüm ağ trafiğine müdahale edilebileceği göz önünde bulundurulmalıdır. Genellikle TLS ve SSL olarak tabir edilen iletim katmanı güvenliği (Transport Layer Security) ve güvenli soket katmanı (Secure Sockets Layer) bilgisayar ağları üzerinden iletişim güvenliği sağlamak üzere tasarlanan kriptografik protokollerdir. SSL/TLS uygulamalarla sunucu uygulamaları arasında gidip gelen bilgileri korumak için kullanılabilir.

Ayrıca, SSL/TLS pratiklerine gerektiği şekilde uymak önemlidir. Ağ trafiğini güvence altına almak için SSL doğrulama talep edilmeli, güçlü şifre paketleri kullanılmalı ve geçersiz bir sertifikayla karşılaşılması durumunda ya kullanıcı uyarılmalı ya da uygulamanın çalışması durdurulmalı.

3- Veri Kaçağı

Mobil cihazların fiziksel olarak güvenli hale getirilmesi çok zor olduğundan, veri bir mobil cihazda saklandığında hassas bilgilerin korunmasına özen gösterilmelidir.

Verinin korunmaması gizlilik ihlali, kredi kartı ödeme standartlarının ihlali, kimlik hırsızlığı ve fraud gibi durumlara neden olabilir. Saklanmış veriye kötü amaçlı yazılımlar vasıtasıyla uzaktan veya internette bulunabilecek forensik araçlarla erişilebilir.

Nasıl önlenir?

Her cihaz veriyi farklı şekillerde saklar. Geliştiricilerin bu verinin sadece her cihazda değil, aynı zamanda her geliştirme çerçevesi kapsamında nasıl saklandığı, kaşelendiği ve bu veriye nasıl erişildiği konusunda bilgili olması gerekir. Veri kaçağına en sık rastlanan vektörler olay ve veri günlükleme, kopyala/yapıştır ara bellekleri, HTTP önbellekleme, HTML5 yerel ve oturum depolama ve çerezlerdir.

4- Çift Taraflı Korumanın Olmaması

Geliştiricinin kontrolü dışındaki bir cihaza yüklenen tüm güvenli uygulamalarda saldırganların şifre çözmesini, tersine mühendislik yapmasını veya uygulama kodunu değiştirmesini engelleyecek önlemler olmalı. Uygulamaları kod değiştirme işlemlerine karşı korumamak yetkisiz erişime, gizli verilerin ele geçirilmesine, hatta bizzat uygulamanın çalınmasına neden olabilir. Uygulama ikilisi bir kez ele geçirilirse en güçlü güvenlik önlemleri bile kolayca aşılabilir.

Nasıl önlenir?

Hedef platformların ikili korumayı nasıl desteklediğini iyice bilmek gerekir. Jailbreak/debugger tespiti, kod değişikliği tespiti, sertifika koruma ve kod gizleme uygulamaları yetkisiz değişikliklere karşı koruma yöntemlerinden bazılarıdır. Konuyla ilgili daha kapsamlı bilgiye OWASP’ın sitesinden ulaşılabilir.

5- Güvensiz Oturum Açma

Mobil uygulamaların sık sık çevrimdışıyken de çalışması gerekir. Bu olağan dışı gereksinim yüzünden oturum açma süreçleri genellikle sunucu tarafı veya web oturum açma işlemlerine nazaran daha güvensiz, örneğin cihazlarda dört haneli PIN kodları kullanılacak veya parolalar cihazda saklanacak şekilde tasarlanır. Kimi zaman, Nissan Leaf olayında da olduğu gibi, hiçbir oturum açma işlemi bile olmayabilir.

Nasıl önlenir?

Uygulamaların oturum açma işlemleri istemci veya sunucu tarafındaki bir saldırganın kontrolüne geçebileceği varsayımıyla tasarlanması gerekir. Kullanıcının oturum açma koşullarıyla ilgili hiçbir varsayımda bulunulmamalı, mobil uygulamanın sunucu adına herhangi bir oturum açma mantığı oluşturmasına izin verilmemelidir.

Dolayısıyla mobil uygulama güvenliği bakımından hassas olan ve kullanıcıya yetkiyi tamamen istemci tarafında (örneğin çevrimdışı kullanımlar için) veren uygulamalar için mutlaka ikili koruma sağlanmalıdır.

Exit mobile version