Verilerinizin işlenmesi için güvenli bir çözüm: Intel SGX

Merve
3 min readJan 5, 2021

--

Günümüzde, Nesnelerin İnterneti (Internet of Things, IoT) cihazlarının oldukça popular bir hale gelmesiyle birlikte, bu cihazlardan toplanan verilerin işlenmesi için Bulut Bilişim (Cloud-Computing) effektif bir çözüm olarak öne çıkmaktadir. Peki ya hassas bilgilerimiz (sağlık kayıtları, kişisel bilgiler, biometrik datalar), bulut ortamında işlenirken nasıl korunabilir? Datamızın ve kodlarımızın başka bir bilgisayarın belleğinde işlenirken çalınmadığından nasıl emin olabiliriz? Özellikle bir işletim sisteminde zaten çesitli ayrıcalıklara sahip olan virtual machine(VMs), hypervisor ya da kernel, hassas datalara karşı büyük bir tehdittir. Özetle Cloud Computing sağlayıcılardan beklenen Güvenli Yürütme Ortamı (Trusted Execution Enviroments (TEE)) sağlamasıdır. Bunun için 2015 yılında Intel belirli uygulama kodlarını ve verilerini bellekte/CPU’da izole eden donanım tabanlı şifreleme olanağı sunan Intel Software Guard Extensionu(SGX) sunmuştur. Altinci nesil CPU Architecture, yeni Skylake microarchitecture olarak da bilinir. Oluşturulan güvenli ortamlar enclave olarak isimlendirilir. İşletim sistemi güvensiz olsa bile, Intel SGX datanın kimse tarafından ele geçirelemeyeceğini yani datanın “confidentiality” korunacağını garanti eder.

Enclave katmanı hiç bir katmana güvenmez. Geliştiriciye DRAM´de başkaları tarafından adreslenemeyen ve şifreli bir hafıza tahsisi imkani sunar. Yani geliştirici kendi uygulamasının güvenliğini kendi koruyabilir. Bu durumda uzaktan bir bilgisayarda/serverda hassas bilgilerimiz işlenirken çalınmadıklarından emin oluruz. Örnek bir SGX-memory layout aşağıdaki resimde görülebilir.

Attestation ozelligi enclaveler arasi local iletisim (local attestation)icin kullanilir. Ayni zamanda bir enclavenin degistirilmedigini ve guvenilir oldugunu gostermek icin remote attestation kullanilir.

Trusted Computing Base bir uygulamayi bir sistemde calistirabilmek icin en az nelere guvenilmesi gerektigini belirler. Enclave ile bu TCB kuculur.

Intel SGX kullanim alanlari olarak: Key management, blockchain, edge computing, digital cuzdanlar ornek gosterilebilir.

Graphene bir uygulamayi minimal host ihtiyaclari olacak sekilde kosturmak icin gelistirilmistir.

Enclave Teknik Özellikleri

  • Enclave ile bir uygulamanın yaşam döngüsü boyunca tüm kodları ve dataları korunur. Eger Enclavenin bir şekilde güvenliği ihlal edilip bozulursa, sistem kendini uykuya alırsa ya da application bozulursa enclave tüm içeriğiyle birlikte yok olur.
  • Enclaves iki modda çalıştırılır. Debug mode and Release Mode. Debug modda iken Intel-SGX Debugger bağlanabilir. Stateler gözlenebilir. Release modda ise CPU tarafından her türlü erişim engellenir ve hiç bir şekilde debug edilemez. Debug Mode Intel SGX application derlemek icin make SGX_DEBUG=1 olarak derlenemiz yeterli.
  • Her Intel SGX uygulaması iki parttan olusur: untrusted part ve trusted part. Hangi kısımların trusted parta kalacagına hassas datalara bakılarak karar verilir. Ancak unutulmamalıdır ki sistemde tüm enclaveler icin belirli bir memory hafızası vardır. Bu yüzden her enclave mümkün olduğunca küçük tutulmalıdır.
  • Saldırganlar da bu teknolojiyi kendi bilgilerini korumak için kullanabilir. Örneğin ransomware şifre anahtarları burda saklanabilir.
  • Var olan uygulamaları Intel SGX’de koşturmak için uygulama üzerinde önemli degişikler yapılması gerekir. Örneğin bir enclave içinden direk olarak sistem çagrısı yapılamaz. Bu yüzden TEE tabanlı kütüphaneler (libOS) enclave içinde saklanir. Bu libOS’lar aracılığıyla sistem çağrısı yapılır.
  • Intel SGX kendi bilgisayarınızda kullanmak için şu şartları yerine getirmelisiniz. CPU ve BIOS Intel SGX desteklemeli, Intel SGX BIOS’dan aktif edilmelidir, ve Intel SGX Platform Sofware(PSW) sisteme kurulmalıdır.
  • Yan kanal saldırıları; doğrudan işlemciden alınan güç durumları, emisyonlar ve bekleme süreleri gibi bilgiyi dolaylı olarak veri kullanım örüntülerini çıkarsama eylemlerine dayalıdır. Bu saldırıların yürütülmesi şirket veri merkezine fiziksel, ağ ve sistem olmak üzere çok sayıda düzeyde yetkisiz erişim gerektirebilir. Bu sebeple bu saldırılar oldukça karmaşık ve zordur. Intel SGX bunun icin bir çözüm degildir.
  • Cache Timing Attack icinde bir cozum degildir.
  • EDL: Enclave Definition Language:
  • Enclave arayüzü iki fonksıyon içerir ecall: untrusted app to enclave (public olarak tanımlamalıdır) o-Call: Enclave to untrusted application

Gelistiricilerin izlemesi gereken video:

Enclave Teknolojisine yeni baslayacaklar icin. Asagidaki repodalarda SampleCodelara bakabilirler. Ayni Zamanda bilgisayariniz Intel-SGX desteklemiyorsa, derlemeyi make SGX_MODE=SIM yapabilirsiniz.

Diger Teknolojiler:

Intel bu konuda tek degildir. Bu konuya cozum olarak bir cok teknoloji sunulmustur. Ornegin:

Secure Encrypted Virtualization (SEV)

--

--

No responses yet