Masuk dengan Microsoft
Masuk atau buat akun.
Halo,
Pilih akun lain.
Anda memiliki beberapa akun
Pilih akun yang ingin Anda gunakan untuk masuk.

Ringkasan

Selain membiarkan pengguna memberikan keypairs SSH mereka sendiri untuk otentikasi, platform Microsoft Azure bergantung pada SSH keypairs untuk mengaktifkan fitur yang ditambahkan ke mesin virtual (VM) pada saat penyebaran. Kami baru saja menemukan bahwa, dalam beberapa skenario yang terbatas, kunci publik dari sertifikat Azure Platform ini dapat tiba-tiba ditambahkan ke berkas .ssh authorized_keys. Skenario ini scoped hanya untuk situasi di mana VM ditetapkan dengan menggunakan awan-init dan pengguna memilih fitur Azure tambahan yang mengandalkan sertifikat, seperti identitas Layanan sistem yang dikelola.

Perilaku tak terduga ini terjadi karena perubahan di logika penyediaan sistem operasi tertentu. Ini adalah sistem yang menggunakan awan-init dan yang tidak sengaja menginstal kunci publik dari semua sertifikat yang tersedia untuk VM ke berkas kunci ssh-resmi selama VM pembuatan. 

Untuk mempelajari lebih lanjut, buka CVE 2019 0816.

Informasi selengkapnya

Skenario rincian

Logika init awan yang disebutkan di bagian "Ringkasan" saat ini diketahui ada dalam gambar Azure untuk Ubuntu 18,04 selain 7.4/7.5/7.6 umum pratinjau RHEL dan CentOS 7,4 awan-init gambar. Mungkin juga ada dalam gambar kustom yang menggunakan sistem operasi tersebut.    Jika salah satu fitur berikut ini saat Anda menetapkan salah satu Linux gambar, Anda akan melihat tombol tambahan, tak terduga pada berkas .ssh authorized_keys, seperti salah satu dari berikut ini:

  • Identitas terkelola

  • Ekstensi dengan pengaturan yang dilindungi

  • Menyebarkan VM dengan kunci kubah kunci di VM

Mengidentifikasi dan memulihkan ada VM

Mengidentifikasi

Untuk memeriksa apakah Anda memiliki kunci tambahan, meninjau berkas resmi kunci (vi .ssh authorized_keys berkas) untuk menentukan apakah kunci tambahan apa pun yang Anda tidak bermaksud untuk menyertakan telah ditambahkan.

Cukup aman untuk secara manual menghapus setiap tambahan ssh umum kunci yang mungkin telah ditambahkan. Ini akan tidak mempengaruhi fitur yang digunakan bersama-sama dengan VM. Selain itu, tidak akan mempengaruhi pasangan utama SSH Anda ditetapkan untuk otentikasi.

Jika Anda tidak tahu atau tidak dapat membedakan kunci yang umum di .ssh authorized_keys file yang Anda tentukan untuk otentikasi, ikuti langkah-langkah berikut:

  1. Meninjau template penyebaran Anda:

    1. SSH kunci publik

    2. SSH kunci dalam konfigurasi cloud init

  2. Ambil disebarkan ssh tombol saat pembuatan dari di VM, jika Anda memiliki akses sudo akar. Untuk melakukannya, ikuti langkah-langkah berikut:

    1. Periksa konfigurasi init awan yang telah disahkan di CustomData: sudo cat /var/lib/waagent/ovf-env.xml | grep "<ns1:CustomData>"Gunakan nilai CustomData dan kemudian gunakan base64 dekode untuk mendapatkan kunci publik yang Anda menyebarkan: echo "<customData value>" | base64 -D

    2. Selain itu, periksa contoh Meta Data Layanan (IMDS) untuk melihat ssh kunci publik yang telah disahkan di ssh properti kunci publik VM membuat: curl -H Metadata:true "http://169.254.169.254/metadata/instance/compute/publicKeys?api-version=2018-04-02&format=json"

Memulihkan

Jika Anda telah mengidentifikasi tambahan sertifikat yang Anda tidak bermaksud untuk menyebarkan ke VM, Anda dapat menghapus ini dengan menghapus baris yang sesuai dari berkas authorized_keys.

Jalankan remediasi dengan menghubungkannya ke VM secara interaktif, atau menggunakan ekstensi Script kustom atau RunCommand di beberapa VM.

VM menggunakan ekstensi yang dilindungi pengaturan atau identitas terkelola

Gunakan skrip berikut ini untuk menghapus kunci publik dari sertifikat di mana VM disebarkan dengan ekstensi atau dikelola identitas. Ini akan tidak menghapus kunci yang telah ditentukan ketika Anda menyebarkan VM, atau jika VM disebarkan dengan kunci kubah kunci.

Penting

Kami sarankan agar Anda membuat cadangan berkas authorized_keys sebelum Anda menjalankan skrip ini.

 

#!/bin/bash
set -e

# /var/lib/waagent has *.crt files that include the crt files corresponding to 
# the user provided public keys and one additional .crt file from MSI.
# This script converts the content of the .crt file into the ssh public key and
# remove it from the authorized_keys file
readarray -t CRT_FILES < <(grep -l -E "(Microsoft.ManagedIdentity|Windows Azure)" /var/lib/waagent/*.crt)
for ((i=0; i < ${#CRT_FILES[@]}; i++))
do
    PUBKEY=$(openssl x509 -in "${CRT_FILES[$i]}" -pubkey -noout | ssh-keygen -f /dev/stdin -i -m PKCS8)
    sed -i -e "\@$PUBKEY@d" $HOME/.ssh/authorized_keys
Done 

Setelah skrip telah dijalankan, periksa berkas ssh/authorized_keys untuk memastikan bahwa hanya Key umum yang diketahui ada.

VM disebarkan dengan kunci kubah rahasia

Untuk mengidentifikasi apakah kunci ini ditambahkan saat digunakan dengan kunci kubah kunci, ikuti langkah-langkah berikut:

  1. Dapatkan nama kunci kubah sertifikat yang disebarkan dengan menggunakan VM, Tinjau penyebaran kode Az CLI atau ARM pola dasar, atau menjalankan CLI Az ini: az vm show --resource-group <resourceGroupName> --name <vmName> | grep certificateUrlRespons akan menampilkan nama sertifikat: "certificateUrl": "https://<keyVaultname>.vault.azure.net/secrets/<certName>/xxxxxxxxxxxxx"

  2. Download sertifikat: az keyvault certificate download --vault-name <keyVaultName> --name <certName> --encoding PEM --file public.pem

  3. Ekstrak kunci publik: openssl x509 -in public.pm -pubkey -noout | ssh-keygen -f /dev/stdin -i -m PKCS8

  4. Bandingkan output dari langkah sebelumnya untuk sertifikat yang tersisa di berkas ssh/authorized_keys. vi .ssh/authorized_keys file

Pemecahan Masalah

Gambar Azure MarketPlace

Perbaikan telah diterapkan ke cloud-init dalam gambar Azure diidentifikasi:

  • Canonical:UbuntuServer:18.04-LTS:18.04.201902190

  • Canonical:UbuntuServer:18.10-DAILY:18.10.201903200

  • RedHat:RHEL:7-RAW-CI:7.6.2019030421

  • OpenLogic:CentOS-CI:7-CI:7.6.20190306

Gambar kustom

Jika Anda menggunakan gambar kustom yang ditetapkan oleh awan-init untuk sistem operasi yang diketahui, Anda harus memperbarui gambar kustom sumber Anda.

Gambar 18,04 Ubuntu

Untuk memperbarui gambar kustom sumber, Anda harus membuat perubahan berikut ini:

  • Mengedit berkas berikut ini: /etc/Cloud/Cloud.cfg.d/90-Azure.cfg

  • Menambahkan kode berikut ke akhir berkas.

Penting

Kode harus ditambahkan persis seperti yang ditunjukkan, termasuk spasi.

datasource:
   Azure:
     agent_command: [service, walinuxagent, start]

RHEL 7.4/7.5/7.6 dan CentOS 7,6 gambar

Jika Anda telah membuat gambar RHEL CentOS dengan menggunakan langkah-langkah ini (atau metode yang sama), Anda harus memperbarui gambar sumber yang Anda buat VM. Berikut adalah langkah-langkah tambahan yang diperlukan untuk menambahkan sumber VM gambar konfigurasi Anda ada:

Langkah 1

Mengedit berkas berikut ini:

/etc/cloud/cloud.cfg.d/91-azure_datasource.cfg

Penting

Kode harus ditambahkan persis seperti yang ditunjukkan, termasuk spasi.

Tambahkan baris berikut ke akhir berkas:

datasource:
   Azure:
     agent_command: [systemctl, start, waagent, --no-block]

Langkah 2

Pemutakhiran agen konfigurasi sebagai berikut:

cp /lib/systemd/system/waagent.service /etc/systemd/system/waagent.service
sed -i 's/After=network-online.target/WantedBy=cloud-init.service\\nAfter=network.service systemd-networkd-wait-online.service/g' /etc/systemd/system/waagent.service
systemctl daemon-reload

awan-init paket

Semua paket init awan yang menyertakan perbaikan sedang diperbarui. Microsoft menyelidiki masalah ini dan akan mengirimkan informasi selengkapnya di artikel ini ketika informasi tersedia.

Pertanyaan umum

Q1: Telah Microsoft mendapatkan akses ke VM saya?

A1: Kunci enkripsi yang digunakan untuk mengelola identitas dan ekstensi tidak dirancang untuk akses oleh karyawan Microsoft. Kami telah proses di tempat untuk memantau, log, dan mencegah akses semacam ini. Sebagai tindakan pencegahan demi keselamatan, kami akan mengkaji semua log untuk memastikan bahwa tidak ada tombol pelanggan semestinya diakses. Untuk sertifikat yang disimpan di kunci kubah yang dirujuk dalam penyebaran VM atau VMSS, karyawan Microsoft tidak memiliki akses ke rahasia.

P2: Apakah semua awan-init disebarkan OS dan versi yang dipengaruhi?

A2: Nomor Kami telah masalah kunci asing ini hanya terjadi pada sistem operasi yang diidentifikasi. Kita tidak melihat hal itu terjadi dalam versi Ubuntu. Hal ini karena sistem tersebut menggunakan mekanisme yang berbeda untuk menetapkan kunci publik.

T3: Paket awan-init terpengaruh untuk distribusi Linux menyertakan perbaikan?

A3: Kami sedang berupaya menambahkan perbaikan untuk paket untuk versi yang dipengaruhi dan kami akan memperbarui artikel ini setelah selesai bekerja.

T4: Akan Microsoft update secara otomatis setiap VM terpengaruh?

A4: Nomor Microsoft tidak akan mengubah konten VM bahwa Anda telah ditetapkan.

P5: Kebijakan keamanan kami mencegah saya operasi Linux VM dengan konten asing di authorized_keys. Apa yang bisa saya lakukan tentang hal ini sekarang?

A5: Anda dapat menghapus baris dikirim dengan aman dari berkas authorized_keys. Hal ini tidak mempengaruhi keypair SSH yang dibuat dan kontrol atau identitas terkelola. Anda dapat melakukannya secara manual atau dengan menjalankan skrip kustom atau perintah kustom di seluruh armada terpengaruh apa pun.

Perlu bantuan lainnya?

Ingin opsi lainnya?

Jelajahi manfaat langganan, telusuri kursus pelatihan, pelajari cara mengamankan perangkat Anda, dan banyak lagi.

Komunitas membantu Anda bertanya dan menjawab pertanyaan, memberikan umpan balik, dan mendengar dari para ahli yang memiliki pengetahuan yang luas.

Apakah informasi ini berguna?

Seberapa puaskah Anda dengan kualitas bahasanya?
Apa yang memengaruhi pengalaman Anda?
Dengan menekan kirim, umpan balik Anda akan digunakan untuk meningkatkan produk dan layanan Microsoft. Admin TI Anda akan dapat mengumpulkan data ini. Pernyataan Privasi.

Terima kasih atas umpan balik Anda!

×