Kopsavilkums

Papildus ļaujot lietotājiem nodrošina to pašu SSH keypairs autentifikācija, Microsoft Azure platforma paļaujas uz SSH keypairs iespējot daži līdzekļi, kas pievienoti virtuālās mašīnas (VM) izvietošanas laikā. Mēs nesen atklāts, tikai dažos gadījumos publiskās atslēgas no sertifikātiem Azure platforma programmas varētu neparedzēti pievienot. ssh/authorized_keys failu. Minētajās situācijās ir ietverti tikai situācija, kad VM tiek nodrošināta, izmantojot mākonis init un lietotājs izvēlas Azure papildu līdzekļi, kas paļaujas uz sertifikātos, piemēram, sistēmas pārvaldības pakalpojumu identitāte.

Šāda neparedzēta darbība izraisa izmaiņas nodrošināšanas loģikas konkrētu operētājsistēmu. Tās sistēmas, kas izmanto mākonis init un kas netīši instalēt publisko atslēgu no visus sertifikātus, kas ir pieejami VM ssh pilnvarotais atslēgas failu. VM izveides laikā 

Lai iegūtu papildinformāciju, dodieties uz CVE 2019-0816.

Papildinformācija

Gadījumā informācija

Mākoņa init loģika, kas ir minēti sadaļā "Kopsavilkums" pašlaik ir zināms, ka pastāv Azure attēlos Ubuntu 18.04 valsts Preview RHEL 7.4/7.5/7.6 un CentOS 7.4 init mākoņa attēlu. Tā arī var būt pielāgota attēlus, izmantojot šo operētājsistēmu.    Ja iespējojat kādu no šiem līdzekļiem laikā nodrošināšanas Linux attēlu, var tikt parādīts papildu, neparedzēti atslēgas. ssh/authorized_keys failā, piemēram, kādu no šīm darbībām:

  • Pārvaldīta identitāte

  • Izmantojot aizsargāto iestatījumus paplašinājumi

  • Izvietojiet VM atslēgas glabātavā atslēgas VM

Identificēt un mazinātu esošo VMs

Identificēt

Pārbaudiet, vai jums ir papildu atslēgu, pārskata pilnvarots atslēgas failu (vi. ssh/authorized_keys fails), lai noteiktu, vai ir pievienoti visi papildu atslēgu, kas nav paredzēts iekļaut.

Tas ir droši manuāli noņemt papildu ssh publiskās atslēgas, kas var būt pievienoti. Tas nav ietekmē izvietoti kopā ar VM līdzekļi. Turklāt tas neietekmēs jūsu norādītā SSH atslēgu pāra autentifikācijai.

Ja neesat pārliecināts, vai nevar atšķirt kurš publiskās atslēgas autentifikācija. ssh/authorized_keys failā norādīto rīkojieties šādi:

  1. Pārskatiet izvietošanas veidnes:

    1. SSH publiskās atslēgas

    2. ssh atslēgas mākonis inicializācijas konfigurēšana

  2. Izgūt izvietotam ssh atslēgas izveides laikā no iekšpusē VM, ja varat piekļūt sudo/saknes. Lai to izdarītu, izpildiet tālāk norādītās darbības.

    1. Pārbaudiet CustomData tika pieņemts mākonis init konfigurācijas: sudo cat /var/lib/waagent/ovf-env.xml | grep "<ns1:CustomData>"CustomData vērtības un pēc tam izmantojiet base64 dekodēt saņemt publiskās atslēgas, kas tiek izvietots: echo "<customData value>" | base64 -D

    2. Vai arī pārbaudiet instances Meta datu pakalpojums (IMDS), lai redzētu ssh publiskās atslēgas, kas tika pieņemts ssh publiskās atslēgas rekvizītu VM izveidot: curl -H Metadata:true "http://169.254.169.254/metadata/instance/compute/publicKeys?api-version=2018-04-02&format=json"

Mazinātu

Ja jūs esat noteicis papildu sertifikāti, ko nevēlējāties izvietot VM, varat noņemt, atbilstošās rindas no authorized_keys failu dzēšana.

Palaist koriģēšanas, izveidojot savienojumu ar VM interaktīvi vai izmantot pielāgotas skriptu paplašinājumu vai RunCommand visā vairākas VMs.

VMs izvietot, izmantojot paplašinājumus, kas ir aizsargāta iestatījumi vai pārvaldītā identitāte

Lai noņemtu publiskās atslēgas sertifikātu izvietošanas ar paplašinājumiem vai pārvaldīt identitātes VM izmantot šo skriptu. Tas nav noņemt atslēgas, kas norādītas VM izvietojot vai VM izvietošanas atslēgu glabātavā atslēgas.

Svarīgi!

Ieteicams dublēt authorized_keys failu pirms palaišanas šis skripts.

 

#!/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 

Pēc skripta palaišanas, pārbaudiet failu ssh/authorized_keys nodrošināt atrodas tikai zināmās publiskās taustiņi.

VMs izvietoti glabātavā noslēpumu atslēga

Lai noteiktu, vai atslēga tika pievienots izvietojot atslēgu glabātavā taustiņus, rīkojieties šādi:

  1. Iegūt sertifikāta atslēgas glabātavā ir izvietots, izmantojot VM nosaukumu, pārskatiet izvietošanas kods Az CLI vai ARM veidnes vai izpildīt šo Az CLI: az vm show --resource-group <resourceGroupName> --name <vmName> | grep certificateUrlAtbildes tiek parādītas sertifikāta nosaukums: "certificateUrl": "https://<keyVaultname>.vault.azure.net/secrets/<certName>/xxxxxxxxxxxxx"

  2. Lejupielādējiet sertifikātu: az keyvault certificate download --vault-name <keyVaultName> --name <certName> --encoding PEM --file public.pem

  3. Izvērst publiskās atslēgas: openssl x509 -in public.pm -pubkey -noout | ssh-keygen -f /dev/stdin -i -m PKCS8

  4. Salīdziniet šo iepriekšējo darbību un pārējās CERT ssh/authorized_keys failā. vi .ssh/authorized_keys file

Risinājums

Azure MarketPlace attēli

Labojumi tika lietota mākonis init noteiktās Azure attēlos:

  • 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

Pielāgota attēlus

Ja izmantojat pielāgotu attēlus, kas nodrošina mākonis init zināmajām operētājsistēmām, ir atjaunināt pielāgotu attēlu avots.

Ubuntu 18.04 attēli

Lai avota pielāgota attēla atjaunināšana ir jāveic šādas izmaiņas:

  • Rediģējiet šo failu: /etc/Cloud/Cloud.cfg.d/90-Azure.cfg

  • Pievienojiet šādu kodu faila beigās.

Svarīgi!

Kods ir jāpievieno tieši tā, kā norādīts, ieskaitot atstarpes.

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

RHEL 7.4/7.5/7.6 un CentOS 7,6 attēlos

Ja esat iepriekš izveidojis RHEL/CentOS attēlus, izmantojot tālāk norādītās darbības (vai līdzīgu metodi), ir jāatjaunina avota attēlu, no kuras izveidojāt VMs. Papildu darbības, kas nepieciešamas, lai pievienotu esošu avota VM attēla konfigurēšana ir šādi:

1. darbība

Rediģējiet šo failu:

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

Svarīgi!

Kods ir jāpievieno tieši tā, kā norādīts, ieskaitot atstarpes.

Faila beigās pievieno šādas rindas:

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

2. darbību

Atjauninājums aģenta konfigurēšana

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

mākoņa init pakotnes

Visi mākonis init paketes, kas ietver labojumu pašlaik tiek atjaunināts. Microsoft pēta šo problēmu un publicēs šajā rakstā plašāku informāciju, tiklīdz šāda informācija kļūs pieejama.

bieži uzdotie jautājumi

1. jautājums: Microsoft ieguvis piekļuvi manu VM?

A1: Šifrēšanas atslēgas tiek izmantoti, lai pārvaldītu identitātes un paplašinājumi nav paredzēts piekļūt ar Microsoft darbiniekiem. Mums ir procesus, lai pārraudzītu, atsakieties un novērstu šāda veida piekļuves. Drošības apsvērumu dēļ mēs pārskatīt visas žurnālus, lai pārliecinātos, vai nav klientu atslēgām ir neatbilstoši piekļūt. Par sertifikātiem, kas tiek glabāti atslēgu akreditācijas datu komplekts, kas ir minēta VM vai VMSS izvietošanas, Microsoft darbinieku nevar piekļūt visus noslēpumus.

2: Ir izvietots mākonis init OSs un ietekmēt versijas?

A2: nē. Mums ir redzams neatbilstošas atslēgas problēma rodas tikai noteiktas operētājsistēmas. Neesmu redzējis tas notiek Ubuntu vecākās versijās. Tas ir tādēļ, ka šīs sistēmas izmantot citu mehānismu, lai iestatītu publiskās atslēgas.

C3: Linux sadalījumu attiecīgajā mākonis init pakotnes iekļaujiet problēmu?

A3: Mēs strādājam, lai attiecīgajā versijas pakotnes pievienošana labojumus, un mēs atjaunināt šo rakstu, ka darbs pabeigts.

4. jautājums: Microsoft automātiski atjaunina visas ietekmētās VMs?

A4: nē. Microsoft nemaina saturu no virtuālajām, kas jums jau ir nodrošināta.

5: Mūsu drošības politika neļaut operētājsistēmu Linux VM ar neatbilstošas authorized_keys saturu. Kā man rīkoties par šo šodien?

A5: Problemātisko rindas var droši noņemt authorized_keys failā. Tas neietekmēs SSH keypair izveidoto un vadības vai pārvaldītā identitāte. To var izdarīt, palaižot pielāgotu skriptu vai pielāgotu komandu pāri visas ietekmētās parka vai manuāli.

Vai nepieciešama papildu palīdzība?

Paplašiniet savas prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Microsoft Insider

Vai šī informācija bija noderīga?

Cik lielā mērā esat apmierināts ar tulkojuma kvalitāti?
Kas ietekmēja jūsu pieredzi?

Paldies par jūsu atsauksmēm!

×