Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den,
Vyberte jiný účet.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.

Shrnutí

Nejen uživatelům poskytnout vlastní SSH keypairs pro ověření platformy Microsoft Azure spoléhá na SSH keypairs Chcete-li povolit některé funkce, které jsou přidány do virtuálního počítače (VM) v době nasazení. Nedávno odhalila, že v některých případech omezena veřejných klíčů z těchto certifikátů platformy Azure může neočekávaně doplňuje do souboru .ssh/authorized_keys. Tyto scénáře jsou zaměřen pouze na situace, ve které je zřízena modulu VM pomocí cloud-init a uživatel vybere další funkce Azure, které jsou závislé na certifikátech, například systémem spravované služby identity.

Toto neočekávané chování dochází z důvodu změny v logice poskytování určitých operačních systémů. Jedná se o systémy, které využívají cloud-init a který neúmyslně nainstalovat veřejný klíč od všech certifikátů, které jsou k dispozici pro modul VM do souboru ssh autorizovaného klíče při vytváření VM. 

Chcete-li získat další informace, přejděte na CVE-2019-0816.

Více informací

Podrobnosti o scénáře

Cloud-init logiku, která je uvedena v části "Souhrn" je aktuálně známé obrazy Azure pro 18.04 systémem Ubuntu 7.4/7.5/7.6 Public Preview RHEL a CentOS 7.4 cloud-init obrazy. Může také existovat ve vlastních bitových kopií pomocí těchto operačních systémů.    Pokud povolíte některou z následujících funkcí když zřizujete jeden z obrazů Linux, může zobrazit další neočekávané klíče do souboru .ssh/authorized_keys například některou z následujících akcí:

  • Spravované identity

  • Rozšíření pomocí chráněné nastavení

  • Nasazení virtuálního počítače s klíči k trezoru klíčů v virtuálního počítače

Identifikovat a napravovat existující VMs

Identifikovat

Chcete-li zkontrolovat, zda máte další klíče, zkontrolujte, zda soubor autorizovaného klíče (souboru .ssh/authorized_keys vi) k určení, zda byly přidány další klíče, které jste je nezamýšleli zahrnout.

Je bezpečné ručně odebrat každá další ssh veřejného klíče, které mohly být přidány. Tím nebude mít vliv na funkce, které jsou nasazeny a modulu VM. Neovlivní navíc zadaný SSH dvojici klíčů pro ověřování.

Pokud neznáte nebo nelze rozlišit které veřejné klíče v souboru .ssh/authorized_keys ověřování jste zadali, postupujte takto:

  1. Přečtěte si vaše nasazení šablony:

    1. SSH veřejných klíčů

    2. SSH klíče v konfiguraci cloud-init

  2. Načíst nasazeném ssh klíče při tvorbě z uvnitř VM, pokud máte přístup k sudo/root. Chcete-li to provést, postupujte takto:

    1. Zkontrolujte konfiguraci cloud-init, která byla předána CustomData: sudo cat /var/lib/waagent/ovf-env.xml | grep "<ns1:CustomData>"Použít hodnotu CustomData a potom pomocí base64 dekódování získat veřejné klíče, které jste nasadili: echo "<customData value>" | base64 -D

    2. Můžete také zkontrolovat Instance Meta datových služeb (IMDS) zobrazíte ssh veřejný klíč, který byl předán ssh veřejných klíčů vlastnost vytvořit VM: curl -H Metadata:true "http://169.254.169.254/metadata/instance/compute/publicKeys?api-version=2018-04-02&format=json"

Nápravě

Pokud zjistíte další certifikáty, které jste nechtěli nasazení modulu VM, můžete odebrat tyto smazáním odpovídajícího řádku ze souboru authorized_keys.

Spustit nápravu pomocí připojení k modulu VM interaktivně nebo přes více VMs pomocí rozšíření vlastních skriptů nebo SpustitPříkaz.

VMs, které jsou nasazeny pomocí rozšíření, které mají chránit nastavení nebo spravované identity

Použijte následující skript odebrat veřejné klíče z certifikátů, ve kterých byl zaveden pomocí rozšíření modulu VM, nebo spravované identity. To není odebrat klíče, které byly zadány při nasazení virtuálního počítače, nebo pokud modul VM byla zavedena s klíči k trezoru klíčů.

Důležité

Doporučujeme před spuštěním tohoto skriptu vytvořte záložní kopii souboru authorized_keys.

 

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

Poté, co byl skript spuštěn, zkontrolujte soubor ssh/authorized_keys zajistit, že jsou k dispozici pouze známých veřejných klíčů.

VMs nasazena s tajemství trezoru klíčů

Chcete-li zjistit, zda byl přidán klíč, při nasazení pomocí trezoru klíčů klíč, postupujte takto:

  1. Získat název trezor klíč certifikát, který jste nasadili pomocí modulu VM, zkontrolujte kód nasazení Az CLI nebo šablony ARM nebo spustit tuto Az CLI: az vm show --resource-group <resourceGroupName> --name <vmName> | grep certificateUrlOdpověď se zobrazí název certifikátu: "certificateUrl": "https://<keyVaultname>.vault.azure.net/secrets/<certName>/xxxxxxxxxxxxx"

  2. Stažení certifikátu: az keyvault certificate download --vault-name <keyVaultName> --name <certName> --encoding PEM --file public.pem

  3. Extrahuje veřejný klíč: openssl x509 -in public.pm -pubkey -noout | ssh-keygen -f /dev/stdin -i -m PKCS8

  4. Porovnáním výstupu z předchozího kroku na zbývající certifikáty v souboru ssh/authorized_keys. vi .ssh/authorized_keys file

Řešení

Obrázky na webu Azure MarketPlace

Cloud-init identifikované Azure obrazy byly použity opravy:

  • 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

Vlastní obrázky

Pokud používáte vlastní obrázky, které jsou zřízeny podle cloud-init pro známé operační systémy, bude nutné aktualizovat zdroj vlastní bitovou kopii.

Obrazy se systémem Ubuntu 18.04

Pokud chcete aktualizovat vlastní zdrojový obraz, musíte provést následující úpravy:

  • Upravte následující soubor: /ETC/cloud/cloud.cfg.d/90-Azure.cfg

  • Přidejte následující kód na konec souboru.

Důležité

Kód musí být přidán přesně podle návodu, včetně mezer.

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

RHEL 7.4/7.5/7.6 a CentOS 7.6 obrázky

Pokud jste dříve vytvořili RHEL/CentOS obrázky pomocí následujících kroků (nebo podobnou metodou), je nutné aktualizovat zdrojový obraz, ze kterého byl vytvořen VMs. Následují další kroky, které jsou potřebné k přidání existující konfigurace VM obraz zdroj:

Krok 1

Upravte následující soubor:

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

Důležité

Kód musí být přidán přesně podle návodu, včetně mezer.

Na konec souboru přidejte následující řádky:

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

Krok 2

Aktualizace konfigurace agenta následujícím způsobem:

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

cloud-init balíčky

Všechny cloud-init balíčky, které zahrnují opravu jsou právě aktualizovány. Microsoft tento problém zkoumá a zveřejní další informace v tomto článku, jakmile budou k dispozici.

Časté dotazy

Q1: Získal Microsoft přístup k mé VM?

A1: Šifrovací klíče jsou používány pro správu identit a rozšíření nejsou navrženy pro přístup zaměstnanci společnosti Microsoft. Máme na místě sledování, protokolování a zabránit tento druh přístupu procesů. V rámci bezpečnostních opatření revizi všech protokolů a ujistěte se, že byly nevhodně přístup bez klíče zákazníka. Zaměstnanci společnosti Microsoft pro certifikáty, které jsou odkazovány v nasazení VM nebo VMSS, uložených v trezoru klíčů, nemají přístup k tajemství.

Q2: Jsou všechny OSs nasazení cloud-init a ovlivněné verze?

A2: Ne. Jsme viděli tento cizí klíče problém dojít pouze v určených operačních systémech. Jsme ještě neviděli ho dojít ve starších verzích se systémem Ubuntu. Je to proto, že tyto systémy použít jiný mechanismus pro nastavení veřejného klíče.

Q3: Ohrožený cloud-init balíčků pro Linux distribuce obsahují opravu?

A3: Pracujeme na přidání balíčků pro postižené verze opravy a tento článek bude aktualizován po dokončení práce.

Q4: Microsoft automaticky aktualizuje všechny ovlivněné VMs?

A4: Ne. Microsoft se nezmění obsah VMs, které jsou již vytvořena.

Q5: Naše zásady zabezpečení zabránit me operačního systému Linux VM s cizí obsah v authorized_keys. Jak o tomto dnes?

A5: Můžete bezpečně odebrat problematický řádku ze souboru authorized_keys. Tento postup neovlivní keypair SSH, který jste vytvořili a ovládací prvek nebo spravované identity. To můžete provést ručně nebo spuštěním vlastního skriptu nebo vlastní příkaz přes všechny ovlivněné parku.

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?
Po stisknutí tlačítka pro odeslání se vaše zpětná vazba použije k vylepšování produktů a služeb Microsoftu. Váš správce IT bude moci tato data shromažďovat. Prohlášení o zásadách ochrany osobních údajů.

Děkujeme vám za zpětnou vazbu.

×