Yazarlar:
(1) Zane Weissman, Worcester Politeknik Enstitüsü Worcester, MA, ABD {[email protected]};
(2) Thomas Eisenbarth, Lübeck Lübeck Üniversitesi, SH, Almanya {[email protected]};
(3) Thore Tiemann, Lübeck Lübeck Üniversitesi, SH, Almanya {[email protected]};
(4) Berk Sunar, Worcester Politeknik Enstitüsü Worcester, MA, ABD {[email protected]}.
Firecracker, Amazon Web Services (AWS) tarafından sunucusuz bulut platformları için özel olarak tasarlanmış bir sanal makine yöneticisidir (VMM). Bu hizmetler, son kullanıcılar için görev başına kod çalıştıran ve sunucu altyapısını otomatik olarak yöneten hizmetlerdir. Firecracker, hızlı ve hafif VM'ler sağlar ve genellikle küçük görevleri izole etmek için kullanılan konteynerlerin hızı ile performans maliyeti karşılığında daha fazla izolasyon sağlama eğiliminde olan VM'lerin güvenliğinin bir kombinasyonunu vaat eder. AWS, güvenlik ve verimliliğin bu kombinasyonunun, ana bilgisayar sisteminin aktif görevler arasında hızla ve sık sık geçiş yapmasıyla, farklı kullanıcılardan gelen binlerce kullanıcı görevinin aynı donanım üzerinde çalıştırılmasını hem mümkün hem de güvenli hale getirdiğini iddia ediyor. AWS, tehdit modellerine mikro mimari saldırıların da dahil olduğunu belirtse de, tıpkı sunucusuz bilişimin ölçeklenebilirliğinin eşi benzeri görülmemiş sayıda kullanıcı arasında donanım paylaşımına dayanması gibi, bu saldırı sınıfı da doğrudan paylaşılan donanıma dayanıyor.
Bu çalışmada Firecracker'ın mikro mimari saldırılara karşı ne kadar güvenli olduğunu araştırıyoruz. İlk olarak, Firecracker'ın belirtilen izolasyon modelini ve dağıtım için önerilen en iyi uygulamaları inceliyoruz, sunucusuz platformlar için potansiyel tehdit modellerini belirliyoruz ve potansiyel zayıf noktaları analiz ediyoruz. Daha sonra, Firecracker tarafından sağlanan izolasyonu test etmek için mikro mimari saldırı kavram kanıtlarını kullanıyoruz ve bunun Spectre veya MDS saldırılarına karşı çok az koruma sağladığını görüyoruz. Özellikle endişe verici iki durum keşfettik: 1) Firecracker VM'lerini tehdit eden ancak bunların dışında çalışan işlemleri tehdit etmeyen ve AWS tarafından önerilen savunmalar tarafından hafifletilmeyen bir Medusa varyantı ve 2) önerilen karşı önlemler uygulansa bile istismar edilebilir kalan bir Spectre-PHT varyantı yer ve SMT sistemde devre dışı bırakılır. Özetle, AWS'nin Firecracker VMM'nin doğasında olan güvenliği abarttığını ve Firecracker kullanan bulut sistemlerinin güvenliğini düzgün bir şekilde sağlamak için eksik rehberlik sağladığını gösteriyoruz.
CCS KAVRAMLARI
• Güvenlik ve gizlilik → Sanallaştırma ve güvenlik; Yan kanal analizi ve karşı önlemler.
ANAHTAR KELİMELER
sistem güvenliği, mikro mimari güvenlik, sanal makineler, hipervizör, sunucusuz, bulut sistemleri
Sunucusuz bilgi işlem, bulut hizmet sağlayıcılarının (CSP'ler) müşterilerine çalışma zamanı ortamları sunduğu, bulut bilişimde yeni ortaya çıkan bir trenddir. Bu şekilde müşteriler donanım, işletim sistemi (OS) ve bazen çalışma zamanı ile ilgili idari işleri CSP'lere bırakırken işlev kodlarını korumaya odaklanabilirler. Yaygın sunucusuz platform modelleri, hizmet olarak işlev (FaaS) ve hizmet olarak kapsayıcıyı (CaaS) içerir. Bireysel işlevler genellikle küçük olduğundan, ancak müşterilerin uygulamalarının her biri bir ila binlerce işlev arasında çalıştırılabildiğinden, CSP'ler boşta kalma sürelerini en aza indirmek ve dolayısıyla kârı en üst düzeye çıkarmak için tek bir sunucuya mümkün olduğu kadar çok işlevi sığdırmayı hedefler. Çalışma zamanı ortamlarına hizmet etmeye yönelik oldukça hafif bir yaklaşım, bir işlemi bağımlılıklarıyla birlikte kapsülleyen ve böylece her işlem için yalnızca gerekli dosyaların paylaşılan çekirdeğin üstündeki sanal dosya sistemlerine yüklendiği kapları çalıştırmaktır. Bu, kapsayıcılar arasındaki geçişi, işlemler arasındaki bağlam geçişinden biraz daha fazlasına indirir. Öte yandan, tam sanallaştırma, sanal makineler (VM'ler) arasında iyi bir izolasyon ve dolayısıyla kiracılar arasında güvenlik sağlarken, her VM kendi çekirdeğiyle birlikte geldiğinden oldukça ağırdır.
Konteyner veya VM olsun, bu yaklaşımların hiçbiri, ideal olarak birçok kullanıcının sahip olduğu kısa ömürlü işlevlerin aynı anda çalışacağı ve sık sık geçiş yapacağı sunucusuz ortamlarda kullanım için ideal değildir; bu nedenle, bu kullanım durumu için yeni izolasyon mekanizmaları geliştirilmiştir. Örneğin, süreç içi izolasyon mekanizmaları [38, 45, 49], çalışma zamanının ve temel çekirdeğin saldırı yüzeyini azaltarak konteynerlerin güvenliğini artırmayı amaçlamaktadır. Güvenliği ihlal edilmiş bir çekirdek doğrudan konteyner durumunda tamamen güvenliği ihlal edilmiş bir sisteme yol açtığından çekirdeğin korunması önemlidir. Ancak sistem çağrılarını sınırlamak gibi bazı güçlü korumalar aynı zamanda konteynerin kullanabileceği işlevselliği de sınırlar ve hatta bazı uygulamalarla uyumluluğu bozar. VM araştırmasında, geliştiriciler daha küçük ve daha verimli VM'ler yarattılar ve sonunda mikroVM'ler olarak adlandırılanlara yol açtılar. MikroVM'ler olağan sanal makinelerle aynı izolasyon garantilerini sağlar, ancak cihaz veya işletim sistemi desteği söz konusu olduğunda yetenekleri oldukça sınırlıdır; bu da onları normal VM'lere kıyasla daha hafif hale getirir ve dolayısıyla sunucusuz bilgi işlem için daha uygun hale getirir.
Firecracker [1], mikroVM'leri çalıştırırken aynı zamanda bellek yükü ve yaygın konteyner sistemleriyle karşılaştırılabilir başlangıç süreleri sağlamak üzere tasarlanmış bir sanal makine yöneticisidir (VMM). Firecracker, Amazon Web Services (AWS) tarafından aktif olarak geliştirilmekte ve 2018'den beri AWS Lambda [5] ve AWS Fargate [4] sunucusuz bilgi işlem hizmetlerinin üretiminde 2018'den beri kullanılmaktadır [1]. AWS'nin tasarım belgesi [1] Firecracker'ın özelliklerini, daha geleneksel sanal makinelerden nasıl farklılaştığını ve sağladığı amaçlanan izolasyon modelini açıklamaktadır: "aynı donanım üzerinde çalışan birden fazla işlev için güvenlik, ayrıcalık artışına karşı koruma, bilgi ifşa, gizli kanallar ve diğer riskler” [1]. Ayrıca AWS, Firecracker VM'nin etkileşime girdiği CPU ve çekirdek parçalarının güvenliğinin sağlanması için üretim ana bilgisayarı kurulum önerileri [8] sağlar. Bu yazıda, Firecracker'ın işlevleri mikroVM'ler boyunca gizli ve yan kanallardan koruduğu iddiasına karşı çıkıyoruz. Firecracker'ın kendisinin mikro mimari saldırılara karşı önlemlere katkıda bulunmadığını ancak ana bilgisayar ve konuk Linux çekirdeklerine ve CPU donanım yazılımı/mikro kod güncellemelerine tamamen güvendiğini gösteriyoruz.
Çeşitli Spectre [10, 13, 22, 30, 31, 33, 52] ve mikro mimari veri örnekleme (MDS) [14, 37, 46, 50] varyantları gibi mikro mimari saldırılar, genellikle çok kiracılı sistemler için bir tehdit oluşturur. VM'lerinkiler de dahil olmak üzere hem yazılım hem de mimari izolasyon sınırlarını aşabilir. Spectre ve MDS, şube tahmin birimi (BPU) veya hat doldurma arabelleği (LFB) gibi CPU çekirdek kaynaklarını paylaşan kiracıları tehdit ediyor. Daha geleneksel hizmetler sağlayan CSP'ler, uzun ömürlü VM kiracılarını ayrı CPU çekirdeklerine sabitleyerek paylaşılan donanım kaynakları sorununu azaltabilir; bu, kaynakları kiracılar arasında etkili bir şekilde böler ve mikro mimari durumun aynı anda yalnızca tek bir kiracı tarafından etkilenmesini sağlar. .
Ancak sunucusuz ortamlarda mikro mimari saldırı tehdidi daha fazladır. Bunun nedeni farklı kiracılar tarafından yürütülen fonksiyonların kısa ömürlü olmasıdır. Sunucusuz ortamlardaki sunucu kaynaklarının aşırı yüklenmiş olması beklenir, bu da kiracı işlevlerinin aynı donanım üzerindeki bilgi işlem kaynakları için rekabet etmesine yol açar. CPU kaynaklarının iki kardeş iş parçacığı tarafından eşzamanlı kullanımını devre dışı bırakacak olan eşzamanlı çoklu iş parçacığının (SMT) devre dışı bırakılması, CPU'nun hesaplama gücünü %30'a kadar azaltır [34]. Müşteriler belirli CPU çekirdeklerini kiralarsa bu performans cezası kabul edilebilir veya CPU çekirdeğindeki her iki iş parçacığı birlikte kiralanabilir. Ancak sunucusuz hizmetler için performans cezası, belirli bir süre içinde doğrudan %30 daha az müşteriye hizmet verilmesi anlamına geliyor. Bu nedenle çoğu sunucusuz CSP'nin, aksi belirtilmediği sürece sistemlerinde SMT'yi etkin tuttuğu varsayılmalıdır. Mikro mimari saldırı yüzeyi, SMT etkinleştirildiğinde ve kötü amaçlı iş parçacığının paylaşılan bir çekirdeğe eşzamanlı erişimi varsa en büyük olur. Ancak saldırgan iş parçacığının, CPU çekirdeğini kurban iş parçacığına vermeden önce mikro mimariyi hazırlaması veya kurban iş parçacığının yürütmeyi duraklatmasının hemen ardından yürütme yapması durumunda, aynı derecede iyi performans gösteren saldırı çeşitleri de vardır. SMT, CSP tarafından devre dışı bırakılsa bile (AWS Lambda'da olduğu gibi), kiracılar CPU'ları bu zaman dilimli şekilde birden fazla kişiyle paylaşmaya devam eder.
AWS, güncel mikro mimari savunmalara sahip bir sistem üzerinde çalışan Firecracker'ın mikro mimari saldırılara karşı yeterli sağlamlaştırma sağlayacağını iddia ediyor [1]. Firecracker belgeleri aynı zamanda etkinleştirilmesi gereken mikro mimari güvenlik önlemlerine ilişkin özel öneriler de içerir. Bu çalışmada, Firecracker'ın güvenlik iddialarını ve önerilerini inceliyoruz ve kılavuzundaki gözden kaçan noktaların yanı sıra tamamen giderilmemiş tehditleri ortaya çıkarıyoruz.
Özetle ana katkılarımız şunlardır:
• Firecracker VM'yi temel aldığında sunucusuz bilgi işlemin çapraz kiracı ve kiracı-hiper yönetici izolasyonuna ilişkin kapsamlı bir güvenlik analizi sağlıyoruz.
• Mikro mimari saldırı kavram kanıtlarına (PoC'ler) karşı Firecracker'ın savunma yeteneklerini, mikro kod güncellemeleri ve Linux çekirdeği aracılığıyla sağlanan korumaları kullanarak test ediyoruz. Sanal makinenin kendisinin büyük mikro mimari saldırı sınıflarına karşı ihmal edilebilir düzeyde koruma sağladığını gösterdik.
• Medusa MDS saldırısının, ana bilgisayarda mevcut olmasa bile Firecracker VM'leri içinden yararlanılabilir hale gelen bir çeşidini tespit ediyoruz. Bu istismara ve bilinen Medusa varyantlarının çoğuna karşı koruma sağlayan çekirdek azaltımı, AWS'nin Firecracker ana bilgisayar kurulum önerilerinde belirtilmemektedir. Ek olarak, SMT'nin devre dışı bırakılmasının, çekirdeğin hafifletilmesi ihtiyacını doğuran tanımlanmış Medusa varyantına karşı yetersiz koruma sağladığını gösterdik.
• Önerilen karşı önlemler uygulansa bile veri sızdıran Spectre-PHT ve Spectre-BTB varyantlarını tespit ediyoruz. Saldırganın ve kurbanın CPU çekirdeğini zaman dilimli bir şekilde paylaşması durumunda Spectre-PHT çeşitleri SMT devre dışı bırakıldığında bile sorun olmaya devam ediyor.
Bulgularımız hakkında AWS güvenlik ekibini bilgilendirdik ve teknik ayrıntıları tartıştık. AWS güvenlik ekibi, ek güvenlik önlemleri nedeniyle AWS hizmetlerinin bulgularımızdan etkilenmediğini iddia ediyor. AWS, Firecracker'ın mikro mimari güvenliği tek başına sağlamadığını, yalnızca mikro kod güncellemeleri ve güvenli ana bilgisayar ve konuk işletim sistemleriyle birlikte sağladığını ve Firecracker kurulumları için ana bilgisayar kurulum önerilerini güncellemeyi planladığını kabul etti.