Panduan guna mengurangi kerentanan saluran samping eksekusi mikro dan spekulatif berbasis silikon
Berlaku untuk: ✔️ Mesin virtual Linux ✔️ Mesin virtual Windows ✔️ Set skala fleksibel ✔️ Set skala seragam
Artikel ini memberikan panduan untuk kelas baru kerentanan sisi saluran sisi arsitektur serta eksekusi spekulatif berbasis silikon yang memengaruhi banyak prosesor modern dan sistem operasi. Hal ini termasuk Intel, AMD, dan ARM. Detail spesifik untuk kerentanan berbasis silikon ini dapat ditemukan di penasihat keamanan dan CVE berikut:
- ADV180002 - Panduan untuk memitigasi eksekusi spekulatif dari kerentanan saluran samping
- ADV180012 - Panduan Microsoft Guidance untuk Bypass Penyimpanan Spekulatif
- ADV180013 - Panduan Microsoft Guidance untuk Pembacaan Register Sistem Bermasalah
- ADV180016 - Panduan Microsoft Guidance untuk Pemulihan Status FP yang tidak berfungsi
- ADV180018 - Panduan Microsoft guna mengurangi varian L1TF
- ADV190013 - Panduan Microsoft guna mengurangi kerentanan Pengambilan Sampel Data Microarchitectural
- ADV220002 - Panduan Microsoft mengenai Kerentanan Data Intel Processor MMIO Stale
- CVE-2022-23816 - Kebingungan Jenis Cabang CPU AMD
- CVE-2022-21123 - Kebingungan Jenis Cabang CPU AMD
Pengungkapan kerentanan CPU ini menyebabkan pertanyaan dari pelanggan yang menginginkan kejelasan.
Microsoft telah menerapkan mitigasi di semua layanan cloud kami. Infrastruktur yang menjalankan Azure dan mengisolasi beban kerja pelanggan satu sama lain pun dilindungi. Ini berarti bahwa penyerang potensial yang menggunakan infrastruktur yang sama tidak dapat menyerang aplikasi Anda menggunakan kerentanan ini.
Azure sebisa mungkin menggunakan pemeliharaan pengawet memori, untuk meminimalkan dampak pelanggan dan menghilangkan kebutuhan untuk menjalankan reboot. Azure akan terus menggunakan metode ini saat melakukan pembaruan di seluruh sistem untuk tuan rumah dan melindungi pelanggan kami.
Informasi selengkapnya mengenai bagaimana keamanan diintegrasikan ke dalam setiap aspek Azure tersedia di situs Dokumentasi Keamanan Azure.
Catatan
Sejak dokumen ini pertama kali diterbitkan, beberapa varian kelas kerentanan ini telah diungkapkan. Microsoft terus banyak berinvestasi dalam melindungi pelanggan kami dan memberikan panduan. Halaman ini akan diperbarui saat kami terus merilis perbaikan lebih lanjut.
Pelanggan yang menjalankan kode tidak terpercaya di dalam komputer mesin mereka perlu mengambil tindakan untuk berlindung dari kerentanan ini dengan membaca informasi di bawah ini mengenai panduan semua kerentanan.
Pelanggan lain harus mengevaluasi kerentanan ini dari perspektif Pertahanan dalam Kedalaman dan mempertimbangkan implikasi keamanan dan performa dari konfigurasi yang mereka pilih.
Menjaga sistem operasi Anda tetap terkini
Meskipun pembaruan OS tidak diperlukan untuk mengisolasi aplikasi Anda yang berjalan di Azure dari pelanggan Azure lainnya, selalu merupakan praktik terbaik untuk menjaga perangkat lunak Anda tetap terbarui. Pembarauan Keamanan untuk Windows terkini berisi mitigasi terhadap kerentanan tersebut. Demikian pula, distribusi Linux telah merilis beberapa pembaruan untuk mengatasi kerentanan ini. Berikut adalah tindakan yang direkomendasikan kami untuk memperbarui sistem operasi Anda:
Penawaran | Tindakan yang Direkomendasikan |
---|---|
Layanan Cloud Azure | Aktifkan pembaruan otomatis atau pastikan Anda menjalankan OS Tamu terbaru. |
Azure Linux Virtual Machines | Pasang pembaruan dari penyedia sistem operasi Anda. Untuk informasi selengkapnya, lihat Linux nanti di dokumen ini. |
Azure Windows Virtual Machines | Pasang rollup keamanan terbaru. |
Layanan Azure PaaS Lainnya | Tidak ada tindakan yang diperlukan untuk pelanggan yang menggunakan layanan ini. Azure secara otomatis selalu memperbarui versi OS Anda. |
Panduan tambahan jika Anda menjalankan kode yang tidak tepercaya
Pelanggan yang mengizinkan pengguna yang tidak terpercaya untuk mengeksekusi kode yang bersifat arbitrer mungkin ingin menerapkan beberapa fitur keamanan tambahan pada Azure Virtual Machines atau Cloud Services mereka. Fitur-fitur ini melindungi terhadap vektor pengungkapan intra-proses yang digambarkan oleh beberapa kerentanan eksekusi spekulatif.
Contoh skenario yang terjadi saat fitur keamanan tambahan direkomendasikan:
- Anda mengizinkan kode yang tidak Anda percayai untuk dijalankan di dalam VM Anda.
- Misalnya, Anda mengizinkan salah satu pelanggan Anda untuk mengunggah biner atau skrip yang kemudian Anda eksekusi dalam aplikasi Anda.
- Anda mengizinkan pengguna yang tidak Anda percayai untuk masuk ke VM Anda menggunakan akun dengan hak istimewa rendah.
- Misalnya, Anda mengizinkan pengguna dengan izin terbatas untuk masuk ke salah satu komputer virtual Anda menggunakan desktop jarak jauh atau SSH.
- Anda mengizinkan pengguna yang tidak tepercaya mengakses komputer virtual yang diimplementasikan melalui virtualisasi bersarang.
- Misalnya, Anda mengontrol host Hyper-V, tetapi mengalokasikan komputer virtual ke pengguna yang tidak tepercaya.
Pelanggan yang tidak menerapkan skenario yang melibatkan kode yang tidak tepercaya tidak perlu mengaktifkan fitur keamanan tambahan ini.
Memfungsikan keamanan tambahan
Anda dapat mengaktifkan lebih banyak fitur keamanan di dalam mesin virtual atau Layanan Cloud Anda jika Anda menjalankan kode yang tidak tepercaya. Secara paralel, pastikan sistem operasi Anda sudah diperbarui untuk mengaktifkan fitur keamanan di dalam komputer virtual atau Cloud Service Anda
Windows
Sistem operasi target Anda perlu diperbarui untuk mengaktifkan fitur keamanan tambahan ini. Meski banyak mitigasi saluran sisi eksekusi spekulatif diaktifkan secara default, fitur tambahan yang dijelaskan di sini harus diaktifkan secara manual, serta mungkin dapat menyebabkan dampak terhadap performa.
Opsi 1
Langkah 1: Ikuti petunjuk di KB4072698 untuk memverifikasi perlindungan yng sudah diaktifkan menggunakan modul SpeculationControl PowerShell.
Catatan
Jika sebelumnya Anda mengunduh modul ini, Anda harus memasang versi terbaru terlebih dahulu.
Untuk memvalidasi perlindungan yang diaktifkan terhadap kerentanan tersebut, lihat Memahami output skrip PowerShell Get-SpeculationControlSettings.
Jika perlindungan tidak diaktifkan, hubungi Dukungan Azure untuk mengaktifkan kontrol tambahan di Azure VM Anda.
Langkah 2: Untuk mengaktifkan dukungan OS Kernel Virtual Address Shadowing (KVAS) serta Branch Target Injection (BTI), ikuti petunjuk di KB4072698 untuk mengaktifkan perlindungan menggunakan kunci registri Session Manager
. Proses reboot diperlukan.
Langkah 3: Untuk penyebaran yang menggunakan virtualisasi berlapis (khusus D3 dan E3): Petunjuk ini berlaku di dalam mesin virtual yang Anda gunakan sebagai host Hyper-V.
- Ikuti petunjuk di KB4072698 untuk mengaktifkan perlindungan menggunakan kunci registri
MinVmVersionForCpuBasedMitigations
. - Atur tipe penjadwal hypervisor ke
Core
dengan mengikuti petunjuk sini.
Opsi 2
Nonaktifkan hyper-threading pada komputer virtual - Pelanggan yang menjalankan kode tidak tepercaya pada komputer virtual yang mengaktifkan hyper-thread perlu menonaktifkan hyper-threading atau pindah ke ukuran komputer virtual non-hyper-threaded. Referensikan dokumen ini untuk daftar ukuran komputer virtual hyper-threaded (di mana rasio vCPU ke Core adalah 2:1). Untuk memeriksa apakah mesin virtual Anda mengaktifkan hyper-threading, silakan lihat skrip di bawah ini menggunakan baris perintah Windows dari dalam mesin virtual.
Ketik wmic
untuk memasukkan antarmuka interaktif. Kemudian ketik perintah di bawah ini untuk melihat jumlah prosesor fisik dan logis pada mesin virtual.
CPU Get NumberOfCores,NumberOfLogicalProcessors /Format:List
Jika jumlah prosesor logika lebih besar daripada prosesor fisik (core), maka hyper-threading diaktifkan. Jika Anda menjalankan mesin virtual hyper-threaded, hubungi Dukungan Azure untuk menonaktifkan hyper-threading. Setelah hyper-threading dinonaktifkan, dukungan akan memerlukan reboot komputer virtual penuh. Silakan lihat Jumlah inti untuk memahami mengapa jumlah inti mesin virtual Anda menurun.
Opsi 3
Untuk CVE-2022-23816 dan CVE-2022-21123 (Kebingungan Jenis Cabang CPU AMD), ikuti Opsi 1 dan Opsi 2 di atas.
Linux
Mengaktifkan serangkaian fitur keamanan tambahan di dalamnya mewajibkan sistem operasi yang menjadi target untuk sepenuhnya diperbarui. Beberapa mitigasi akan diaktifkan secara default. Bagian berikut menjelaskan fitur yang nonaktif secara default dan/atau bergantung pada dukungan perangkat keras (microcode). Mengaktifkan fitur ini mungkin dapat menyebabkan dampak performa. Mereferensikan dokumentasi penyedia sistem operasi Anda untuk instruksi lebih lanjut
Langkah 1: Nonaktifkan hyper-threading pada komputer virtual - Pelanggan yang menjalankan kode tidak tepercaya pada komputer virtual hyper-threaded perlu menonaktifkan hyper-threading atau pindah ke ukuran komputer virtual non-hyper-threaded. Referensikan dokumen ini untuk daftar ukuran komputer virtual hyper-threaded (di mana rasio vCPU ke Core adalah 2:1). Untuk memeriksa apakah Anda menjalankan mesin virtual hyper-threaded, jalankan perintah lscpu
di mesin virtual Linux.
Jika Thread(s) per core = 2
, maka hyper-threading telah diaktifkan.
Jika Thread(s) per core = 1
, maka hyper-threading telah dinonaktifkan.
Contoh output untuk komputer virtual dengan hyper-threading diaktifkan:
CPU Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Jika Anda menjalankan mesin virtual hyper-threaded, hubungi Dukungan Azure untuk menonaktifkan hyper-threading. Setelah hyper-threading dinonaktifkan, dukungan akan memerlukan reboot komputer virtual penuh. Silakan lihat Jumlah inti untuk memahami mengapa jumlah inti mesin virtual Anda menurun.
Langkah 2: Untuk mengurangi salah satu kerentanan memori berbasis CPU di bawah ini, lihat dokumentasi penyedia sistem operasi Anda:
Jumlah inti
Ketika komputer virtual hyper-threaded dibuat, Azure mengalokasikan 2 utas per inti - ini disebut vCUS. Saat hyper-threading dinonaktifkan, Azure menghapus utas dan menampilkan inti berulir tunggal (inti fisik). Rasio vCPU ke CPU adalah 2:1, jadi setelah hyper-threading dinonaktifkan, jumlah CPU di komputer virtual akan tampak menurun setengahnya. Misalnya, komputer virtual D8_v3 adalah komputer virtual hyper-threaded yang berjalan pada 8 vCCPUs (2 utas per inti x 4 inti). Ketika hyper-threading dinonaktifkan, CPU akan turun ke 4 inti fisik dengan 1 utas per inti.
Langkah berikutnya
Informasi selengkapnya mengenai bagaimana keamanan diintegrasikan ke dalam setiap aspek Azure tersedia pada situs Dokumentasi Keamanan Azure.