iOS App Sandboxing Nedir?
iOS uygulaması kumboxing, her uygulamayı kendi kendine özgü bir konteynere kısıtlayan temel bir güvenlik mimarisidir, bu uygulama için benzersiz bir kum kutusu rehberi oluşturur ve tüm kodları, veriler, tercihler ve önbellekleri bu dizinin içine girmek için konteynerden kaçamaz veya sisteme ait dosyaları okumak veya yazmak için sistem kendi başına.Bu tasarım, uygulama kurulmuş olsa bile, hasarın tek bir boks kutusu olması sağlanır.
sandbox modeli, çekirdek seviyesinde uygulanır, bu, tüm uygulamalar için geçerlidir - App Store, kurumsal dağıtımlar ve hatta sistem uygulamaları büyük ölçüde diğer güvenlik korumaları gibi diğer güvenlik korumalarının üst kısmından sorumlu tutar.
Sandboxing'in arkasındaki Teknik Mimari
Sistem seviyesinde, iOS, Koltuklu kumbox çerçevesi tarafından uygulanan zorunlu erişim kontrollerini kullanır. Koltukbelt her uygulama işlemi için bir dizi kural tanımlar, hangi dosyaları, yönetmenleri, ağ uç noktaları belirtir ve sistem hizmetleri erişime olanak sağlar.Bu kurallar her uygulama başlatıldığında yüklenen bir sandbox profiline derlenir ve uygulamanın kendisi tarafından aşırı sağlanamaz.
Her uygulama kendi konteyner rehberi alır, genellikle kendi konteynerinde bulunur, ancak bu konteynerin dışındaki yollara erişmek için herhangi bir girişim, sistem kapları, sistem çerçeveleri veya donanım cihazları açıkça verilmez.
Sandbox profilleri ayrıca işlemsel iletişim (IPC) ile sınırlandırır ve belirli bir hak olmadan kayıt işlemleri başlatamaz. Bu, bir uygulamanın keyfi kodu yerine getirmesini sağlarsa, örneğin, arka planda veya başka bir uygulama sürecinde mesajların bir araya gelmesiyle başlar.
iOS'ta Core Security Measures
Sandboxing izolasyonda çalışmaz. Her seviyede kullanıcı verilerini ve sistemi bütünlüğü korumak için tasarlanmış birkaç tamamlayıcı önlem içeren bir tabakalı güvenlik modelinin parçasıdır.
App Permissions and User Control
iOS, hassas verilere veya donanıma erişmeden önce izin talep etmek için uygulamalar gerektirir. Bu, kamera, mikrofon, yer hizmetleri, fotoğraf kütüphanesi, kontakları, takvim, Bluetooth ve hareket sensörleri içerir. İzinler, ilk kez uygulamanın kaynağa erişmeye çalıştığı bir iş aracılığıyla verilir. Kullanıcılar daha sonra gözden geçirme ve geri dönüş iznini herhangi bir zamanda Ayarlar uygulama aracılığıyla geri alabilirler.
Apple, her iOS sürümü ile sürekli olarak izin kontrollerini sıkıştı. Örneğin, iOS 14 yaklaşık konum paylaşımını ekledi ve bir per-image temelinde fotoğraf erişimi sağlama yeteneği. iOS 15, her uygulamanın paylaşıldığı App oturumlar. iOS 16 ve 17 daha rafine klipler erişim, yüksek riskli kullanıcılar için makyaj modu.Bu mekanizmalar, bir uygulama iyi huylu olsa bile, kullanıcıların paylaşıldığı verileri kontrol altına almalarını sağlar.
Kod İşaret ve Uygulama Geçerliliği
iOS'ta çalışan her uygulama, Apple'ın kamu ana altyapısına verilen bir sertifika kullanarak dijital olarak imzalanmalıdır. Bu işlem, kod imza olarak bilinen kod imzası olarak kabul edilmez, imzalandığında, onaylanamaz.
Kod imzası uygulama kurulumunun ötesine uzanır. Sistem ayrıca Mac'in işletim sistemi için kod imzalarını dinamik olarak yüklenen kütüphaneler ve çerçeveler için de geçerlidir.Bu, başlangıçtaki çekleri atlamak için kullanılan bir uygulamadan bir uygulama yapılmasını engeller. Apple'ın notarizasyon servisine benzer bir amaç sunar, ancak iOS'ta uygulama Store'da bu uygulama mağazası aracılığıyla dağıtılır.
Data Encryption at Rest and in Transit
iOS cihazları, flash depolamada depolanan verileri korumak için donanım geri ödemeli şifreleme kullanır. Her cihaz, bir cihaza özgü anahtar kullanarak şifreler ve şifreler içeren bir AES motoruna sahiptir. Sistem farklı veri türleri için farklı şifreleme sınıfları uygular:
- [[Düzücü:0)Kırlık A (Complete Protection):) Veriler kullanıcı geçiş kodundan elde edilen bir anahtarla şifrelenir ve sadece cihazın kilidini açtığında erişilebilirdir.
- [[B:0)Class B (İlk Unlock'a kadar koruma): ), Data, cihazın yeniden başlatılıncaya kadar erişilebilir hale gelir ve erişilebilir kalır.
- [FONT:0)Kıfır C (Açık Değil Koruma):) Veriler, dosyanın açık olduğu sürece erişilebilir, cihaz kilitliyse bile.
- [FONT:0)Class D (No Protection):) Data şifrelenir ancak anahtar her zaman boot'den sonra kullanılabilir.
Güvenlik şifrelemesine ek olarak, iOS, sistem hizmetleri ve birçok uygulama tarafından yapılan tüm ağ bağlantıları için Ulaştırma Katmanı Güvenlik (TLS) uygular ve HTTPS'yi varsayılan olarak kullanmak için uygulama gerektirir ve zaman içinde hariç tutar.Bu, cihaz ve sunucular arasındaki verilerin geçiş sırasında şifrelendiğini sağlar ve trafikten kaçmak için zorlaşır.
Güvenli Parmak Zinciri ve Güven Kökleri
Bir iOS cihazı üzerinde güçlendiğinde, Apple'ın genel anahtarını kullanarak bir sonraki aşama boot yükleyicisinin imzasını doğrular. iBoot, işletim sistemi ve tüm sistem uzantıları ile yan yanar.
Herhangi bir bileşen imza doğrulamazsa, önyükleme süreci durur ve cihaz kurtarma modunda girer. Bu güven zinciri, yalnızca Apple-a yetkili yazılımların cihazı çalıştırabileceğini, ilk öğretimden itibaren yazılımları geri yüklemelerini önler ve her donanım nesli ile giderek daha zor hale getirir.
Sandboxing Common Attack Vectors
sandboxing pratik etkisini anlamak, iOS'un neden güvenli bir platform olarak kabul edilmesine yardımcı olur. Sandboxing aktif olarak çeşitli ortak saldırı teknikleri bloklar:
- [[GÖRÜ:0) Uygulamalar arasında veri filtreleme:[Dönder:[Dönder: 1 )Süreksiz bir uygulama, her uygulamadaki diğer her uygulamanın dosyalarını kullanabilir. Sandboxing bunu her uygulamanın kendi izole edilmiş dosya sistemini garanti ederek engelleyebilir.
- [FONT:0) Sistem dosyası modifikasyonu:[Dönemli kod, sistem biner, kütüphaneler veya yapılandırma dosyaları yazamaz, çünkü bu dosyalar uygulama konteyneri dışında kalır.
- [FONT:0)Keychain erişimi:[Dönetici:[Dönetici:0) iOS, hassas jetonları ve şifreleri depolamak için güvenli bir kokteyl sunar. Her uygulama sadece kendi kokteyl eşyalarını erişebilir ve sistem bunu çekirdek seviyesinde uygular.
- [FONT:0)Background process abuse:[Dönetici:[Dönetici:0)[Döntgenlik)[Dönemli işlemler olmadan arka plan daemon veya ajanlar tarafından açık hak edilenler olmadan, bu nadiren verilen yazılımları engeller.
- [FONT:0) Sertware kaynağı kaçırıyor:[Dönetici:[Dönetici:0) Bir uygulama kameraya veya mikrofona izin vermeden erişim sağlarsa bile, sandboxing, NFC kontrolörü veya Secure Enclave gibi diğer donanıma erişmesini engeller.
Bu korumalar, sıfır tıklamanın bile kullanılması anlamına gelir - herhangi bir kullanıcı etkileşimi gerektirmez - elde ettiklerinde ciddi şekilde sınırlıdır. Bir sandboxed uygulamasında kırılganlığı başarılı bir şekilde kullanan bir saldırgan, kumbox'tan anlamlı kalıcılığa veya verilere erişmeye kadar kaçmasına karşı mücadele eder.
Geliştiriciler için Implications
iOS geliştiricileri için, sandboxing, uygulamaları nasıl tasarlandığı ve test edildiğine dair kısıtlamalar getiriyor. Her uygulama, en fazla ihtiyaç duyduğu hak ve kabiliyetleri ve App Store onay sürecinde Apple yorumları bu bildirimleri kabul etmelidir. Geliştiriciler sadece uygulamalarının en az ayrıcalık olarak bilinen bir uygulama için talep etmelidir.
Anahtar gelişim sonuçları şunları içerir:
- [FONT:0]File sistemi erişim:[Döneticiler, tüm kullanıcı tarafından üretilen içerik, uygulamadaki [[Dönetici:[FONTD:0) dizide depolanmalıdır ve geçici dosyalar girilmelidir.
- [[Dönetici:0)Standart-app iletişimi:[Döneticileri Paylaşmak, UIActivityViewController, UIPasteboard, veya paylaşılan HDMI erişim grupları, tüm bunlar yapılandırma ve kullanıcı etkileşimi gerektirir.
- [FONT:0)Background execution:[Dönetici:[Dönetici:0)[Dön uygulama:[Dönetici:0)) Uygulamanın askıya alınmasıyla ilgili olarak yalnızca belirli kullanım vakaları için arka planda çalıştırılabilir.
- [[Dönetici:0)Entitlement management:[Dönetici:[Dönetici:[Dönetici:0)[Dönetici Yönetimi:[Dönetici:[Dönetici:[Dönetici:0))))) Cap tasks like push bildirimleri, Apple Pay, and iPad depolama, profil entitlements. Developers must configure these in Apple Developer portal ve sandbox profiliyle eşleşmelerini sağlamalıdır.
- [[Döneticileri: [Döneticiler, gerçek cihaz davranışını yansıtmadığı için fiziksel cihazlardaki uygulamalarını test etmelidirler.
Apple, geliştiricilerin kumbox kısıtlamaları içinde çalışmasına yardımcı olmak için kapsamlı bir belge ve araçlar sunar. Xcode, giriş ihlallerini içeren kumbox debugging özellikleri ve [[Dönt:0)App Sandbox)|Spaxbox), güvenli, sandbox-compliant uygulamaları tasarlamak için en iyi uygulamaları özetler.
Kullanıcılar için Implikasyonlar
Günlük kullanıcılar için, sandboxing sessiz bir şekilde arka planda çalışır, ancak mikrofona erişim konusunda bilgilendirilmiş kararlar ve cihaz davranışları hakkında bilgi sahibi olabilir.Bir uygulama kameraya, mikrofona veya yere eriştiğinde, kullanıcılar, istekin uygulama işlevi için anlamlı olup olmadığını düşünmelidir. Örneğin, mikrofona erişim için, muhtemelen mahremiyet beklentilerini ihlal eder.
Kullanıcılar ayrıca, tekerlek seviyesindeki uygulamaları güvenli bir şekilde engellemeye veya sistemden uzaklaştırmalarına karşı hassas bir şekilde koruma sağlamanın farkında olmalıdır. Kullanıcılar ayrıca, verileri çalmayı zorlayan yazılımlara karşı hassas hale getirmez ve sürekli sistem istikrarsızlığına neden olur. Apple, güvenli bir şekilde her iOS sürümünü zorlayarak her iOS sürümünü daha zorlaştırdı.
Kullanıcılar için en iyi uygulamalar şunları içerir:
- Uygulama izinleri düzenli olarak Ayarlar vegt; Privacy & Güvenlik.
- Sadece uygulamanın birincil işlevi için gerekli olan izinler verin.
- iOS'u en son güvenlik yamalarını ve kumbox geliştirmelerini almak için güncel tut.
- Güvenilir kaynaklardan gelen yükleme uygulamaları önlemek, çünkü bunlar Apple'ın kodu imza ve güvenlik incelemesi atabilir.
- Enable Face ID veya Touch ID, kum kutulu verileri koruyan şifreleme anahtarlarını korumak için.
iOS Güvenliğinin Evrimi
Apple, iOS'tan bu yana sürekli olarak kumboxing ve güvenlik önlemleri güçlendirdi, çünkü iOS ilk olarak iPhone OS 2.0. Erken sandbox profilleri nispeten basitti ve daha fazla esneklik sağladı, ancak iOS olgunlaşmış olarak, profiller daha kısıtlayıcı ve granular oldu.
Önemli kilometreler içerir:
- [FONT:0)iOS 6:[[Dönetici:0) Uygulama VPN'i tanıtmış ve veri koruma sınıflarını gelişmiştir.
- [[0)iOS 9:[Dönetici:[Dönetici:0) Enabled App Transport Security varsayılan olarak, HTTPS'yi kullanmaya zorlayın.
- [FONT:0]iOS 12:[Dönerge: 1] Safari Web Content için sıkıca kum kutuya eklenmiş ve USB Restricted Mode tanıtıldı.
- [FONT:0]iOS 14:[[Dönetici:[Döneticileri takip etmek için tüm uygulamalar ve web siteleri (App İzleme Transparency).
- [[0)iOS 16:[Döneticileri karmaşık tehditlerle karşı karşıya olan kullanıcılar için Lockdown Mode'i tanıtıyor, ciddi şekilde sınırlı saldırı yüzeyi.
- [FONT=0]iOS 17:[Dönemli Lockdown Mode genişletildi ve bağlantı izleme ve iletişim güvenliği özelliklerini geliştirdi.
Her iterasyon, güvenlik araştırmacıları tarafından keşfedilen veya vahşice sömürülmüş olan saldırı vektörleri yakınlaştırıyor. Apple ayrıca, sandbox kaçışları da dahil olmak üzere açıklanamayan bir otobüs programına sahip.Bu geri bildirim döngüsü Apple'ın zayıf yönleri ve yamalarını yaygın olarak kullanmasına yardımcı oluyor.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
iOS uygulaması kumboxing, her uygulamayı kendi konteynerine ayıran temel güvenlik mekanizmasıdır, sistem kaynaklarına ve diğer uygulama verilerine izin vermeden izin vermemektedir. Kod imzası ile birlikte, veri şifrelemesi, Güvenli Boot Chain ve granular kullanıcı izni, iOS'ı en güvenli mobil platformlarından birini sağlayan bir katmanız savunmadır. Geliştiriciler için, kumboxing, Apple'ın yönergelerine dikkat etmeyi gerektirir, ancak sonunda kullanıcıları korur ve ekosisteme güven sağlar.For users, understand sandboxing apps the important of the managing permissions and keep devices updateen.
iOS güvenlik mimarisi hakkında daha fazla bilgi edinmek için Apple'ın [[0)iOS Güvenlik Kılavuzu) ve [[Dönetici:2Secure Coding Guide[DDDD 3) atıfta bulunun.