Rezime

Pored dopustiti korisnicima pružaju svoje SSH keypairs za potvrdu identiteta, Microsoft Azure platforme se oslanja na SSH keypairs da biste omogućili neke funkcije koje se dodaju virtuelnu mašinu (VM) kod raspoređivanja vremena. Nedavno smo otkrili da, u nekim ograničenim slučajevima, javne ključeve od ove certifikate Azure platforme mogao biti neočekivano dodat .ssh/authorized_keys datoteku. Ovi scenariji su obuhvaćena samo situaciju u kojoj se VM nije obezbeđen pomoću oblak inicijalizacije i korisnik izabere dodatne azurno funkcije koje se oslanjaju na certifikate, kao što je usluga sistema upravljanjem identitet.

Ovaj neočekivano ponašanje se javlja zbog nastale promjene u određivanje logiku u određenim operativnim sistemima. Ovo su sistemi koji koriste oblak inicijalizacije i nehotice koje instalirate javni ključ od svih certifikata koji su dostupni na VM u ssh ovlašćenog ključeve datoteka tokom kreiranja VM. 

Da biste saznali više, idite na CVE-2019-0816.

Više informacija

Detalji o scenariju

Oblak inicijalizacije logika koja je pomenuta u odeljku „Rezime” je trenutno poznato da postoji u azurno slike za Ubuntu 18.04 pored 7.4/7.5/7.6 javni pregled RHEL i CentOS 7,4 oblak inicijalizacije slike. To može takođe postojati u prilagođene slike pomoću ovih operativnih sistema.    Ako omogućite jedan od sledećih karakteristika dok ti pocasti jednu sliku Linux, možete videti dodatne, neočekivane ključeve u datoteci .ssh/authorized_keys, kao što su neki od sledećih:

  • Upravljani identitet

  • Proširenja sa zaštićenim postavke

  • Rasporedi VM sa tasterima ključnih trezor u je VM

Identifikovanje i remediate postojeće VMs

Identifikovanje

Da biste proverili da li imate dodatne ključeve, pregledajte na ovlašćenim ključeve datoteku (datoteka Vaj .ssh/authorized_keys) da biste utvrdili da li su dodati neke dodatne tastere koji niste nameravali da uključite.

To je sigurno da ručno Ukloni sve dodatne ssh javnosti tastera mogu biti dodati. Ova oporuka ne utiču na funkcije koje su raspoređeni zajedno u VM. Osim toga, to neće uticati na tvoj navedeni SSH par ključeva za potvrdu identiteta.

Ako ne znaju ili ne mogu razlikovati koji javne ključeve u navedenu datoteku .ssh/authorized_keys za potvrdu identiteta, slijedite ove korake:

  1. Pregledajte svoje predloške za primenu:

    1. Ssh javne ključeve

    2. Ssh tasteri u oblak inicijalizacije konfiguracije

  2. Preuzimanje na raspoređenih ssh tastere na datum nastanka iz unutar VM, ako imate pristup sudo/koren. Da biste to učinili, slijedite ove korake:

    1. Proverite konfiguraciju inicijalizacije oblak koji je usvojen u CustomData: sudo cat /var/lib/waagent/ovf-env.xml | grep "<ns1:CustomData>"Koristite CustomData vrednost, a zatim koristi base64 dekodiram da se javne ključeve koji ste raspoređeni: echo "<customData value>" | base64 -D

    2. Alternativno, proverite na instancu Meta podataka usluga (IMDS) da vidim na ssh javni ključ koji je uveden u ssh javnog ključa vlasništvo VM kreirati: curl -H Metadata:true "http://169.254.169.254/metadata/instance/compute/publicKeys?api-version=2018-04-02&format=json"

Remediate

Ako ti je identifikovala dodatni certifikati koje niste nameravali da rasporedi u na VM, možete ukloniti do brisanja odgovarajuće linije iz datoteke authorized_keys.

Pokrenite do oporavka povezivanjem na VM interaktivno ili koristite oznaku prilagođena skripta ili na RunCommand preko više VMs.

VMs raspoređena pomoću oznake tipa datoteke koje su zaštićene postavke ili upravljani identitet

Koristite sledeću skriptu da biste uklonili javne ključeve certifikate u kojem se VM je raspoređene sa oznakama tipa datoteke ili upravljani identitet. Ovo će ne ukloni ključeve koji su naveli kada ste raspoređeni na VM, ili ako na VM raspoređene sa tasterima ključ trezora.

Važno

Preporučujemo da napravite rezervnu kopiju datoteka authorized_keys pre nego što pokrenete ovu skriptu.

 

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

Nakon scenario je pokrenete, proverite ssh/authorized_keys datoteku da biste bili sigurni da samo poznate javnosti taster(e) su prisutni.

VMs raspoređuju sa ključ tajni trezor

Da utvrdi da li ključ je dodat kad se raspoređuju sa ključ trezora ključeve, slijedite ove korake:

  1. Ime trezor ključ certifikata koji ste raspoređeni pomoću na VM, pregledajte koda za raspoređivanje Az HP ili ruku predložaka ili pokrenuti ovaj Az HP: az vm show --resource-group <resourceGroupName> --name <vmName> | grep certificateUrlOdgovor će prikazati ime certifikata: "certificateUrl": "https://<keyVaultname>.vault.azure.net/secrets/<certName>/xxxxxxxxxxxxx"

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

  3. Izdvojite javni ključ: openssl x509 -in public.pm -pubkey -noout | ssh-keygen -f /dev/stdin -i -m PKCS8

  4. Uporedite izlaz iz prethodnog koraka da preostale certifikate u datoteku ssh/authorized_keys. vi .ssh/authorized_keys file

Rešenje

Azurno MarketPlace slike

Ispravke su zatvorile oblak inicijalizacije u identifikovanih azurno slike:

  • 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

Prilagođene slike

Ako koristite prilagođeni slike koje su određene od strane oblak inicijalizacije za poznate operativne sisteme, morate ažurirati izvor prilagođenu sliku.

Ubuntu 18.04 slike

Da biste ažurirali izvor prilagođena slika, morate napraviti sledećih izmena:

  • Uredi sledeću datoteku: /etc/Cloud/Cloud.cfg.d/90-Azure.cfg

  • Dodajte sledeći kôd na kraj datoteke.

Važno

Šifra mora da se doda baš kao što je prikazano, uključujući razmake.

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

RHEL 7.4/7.5/7.6 i CentOS 7.6 slike

Ako ste prethodno kreirali RHEL/CentOS slike pomoću ove korake (ili sličan način), morate ažurirati izvorne slike iz koje ste kreirali u VMs. Dodatne korake koji su potrebni da biste dodali postojeći izvor VM slika konfiguraciji vašeg su:

1. korak

Uredi sledeću datoteku:

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

Važno

Šifra mora da se doda baš kao što je prikazano, uključujući razmake.

Dodajte sledeće linije na kraj datoteke:

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

2. korak

Ažurirajte konfiguraciju agenta na sledeći način:

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

oblak inicijalizacije paketi

Oblak inicijalizacije pakete koji uključuju fiks su u procesu ažuriranja. Microsoft istražuje ovaj problem i objaviće više informacija u ovom članku kada one postanu dostupne.

Najčešće postavljana pitanja

Q1: Da li je Microsoft dobio pristup mom VM?

A1: Ključevi za šifrovanje se koriste za Upravljanje identitetima i proširenja nisu dizajnirani za pristup do Microsoft zaposlenih. Imamo procese u mesto da nadzire, odjavi, i sprečiti ovu vrstu pristupa. Kao sigurnosnu Pregledavamo sve evidencije da uverite se da je kupac kljuceva neodgovarajući način pristupljeno. Za certifikate koji se nalaze u trezoru ključ koji se upućuje u VM ili VMSS za primenu, Microsoft zaposleni nemaju imao pristup tajnama.

Q2: Su sve oblak inicijalizacije raspoređena OSs i verzije pogođene?

A2: ne. Videli smo ovu suvišna ključno pitanje događaju isključivo identifikovanih operativne sisteme. Nismo videli je palo na pamet u starije verzije Ubuntu. Ovo je zato što te sisteme koriste različite mehanizam za postavljanje javne ključeve.

3: Pogođenim oblak inicijalizacije paketi za Linux distribucija uključuj fix?

A3: Radimo na dodavanju ispravke paketi za pogođene verzije i smo će ažurirati ovaj članak kad taj posao bude gotov.

Q4: Da će Microsoft automatski ažurirati svaki pogođenim VMs?

A4: ne. Microsoft neće promeniti sadržaj VMs koje ste već imaju dogovorli.

Q5: Nam bezbednosnih smernica sprečiti mi deluju na Linux VM sa suvišna sadržaja u authorized_keys. Šta ja tu mogu ovo danas?

A5: Sigurno možete ukloniti uvrede linije iz datoteke authorized_keys. Ovo neće uticati na SSH keypair koju ste kreirali i kontrolu ili upravljani identitet. Možete da učinite ručno ili tako što ćete pokrenuti prilagođenu skriptu ili prilagođenu komandu preko svakog pogođenim flotu.

Potrebna vam je dodatna pomoć?

Unapredite veštine
Istražite obuku
Prvi nabavite nove funkcije
Pridružite se Microsoft insajdere

Da li su vam ove informacije koristile?

Koliko ste zadovoljni kvalitetom jezika?
Šta je uticalo na vaše iskustvo?

Hvala vam na povratnim informacijama!

×