Aanmelden met Microsoft
Meld u aan of maak een account.
Hallo,
Selecteer een ander account.
U hebt meerdere accounts
Kies het account waarmee u zich wilt aanmelden.

Samenvatting

Naast zodat gebruikers hun eigen SSH-keypairs voor verificatie bevatten, is de Microsoft Azure-platform gebaseerd op SSH keypairs zodat sommige functies die worden toegevoegd aan de virtuele machine (VM) bij de implementatie. Onlangs heeft gevonden, dat in sommige gevallen beperkt de openbare sleutels van deze certificaten Azure-Platform onverwacht aan het bestand .ssh/authorized_keys toevoegen kunnen. Deze scenario's worden binnen het bereik van slechts een situatie waarin de VM is ingericht met cloud init en extra Azure functies die van certificaten, zoals een systeem beheerde service-identiteit gebruikmaken van de gebruiker.

Dit onverwachte gedrag treedt op door een wijziging in de provisioning logica van specifieke besturingssystemen. Dit zijn systemen die gebruikmaken van cloud-init en die per ongeluk de openbare sleutel installeren vanaf alle certificaten die beschikbaar voor de VM in sleutels ssh-geautoriseerd bestand tijdens het maken van VM. zijn 

Voor meer informatie, Ga naar CVE-2019-0816.

Meer informatie

Scenario details

De wolk init logica die wordt vermeld in de sectie 'Overzicht' bekende voor Ubuntu 18.04 in Azure afbeeldingen bestaan naast de 7.4/7.5/7.6 Public Preview RHEL en CentOS 7.4 wolk init afbeeldingen. Het kan ook bestaan in aangepaste installatiekopieën met behulp van deze besturingssystemen.    Als u een van de volgende functies inschakelt terwijl u een van de afbeeldingen Linux inrichten, ziet u aanvullende, onverwachte sleutels in een .ssh/authorized_keys bestand, zoals de volgende:

  • Beheerde identiteit

  • Extensies met beveiligde instellingen

  • Een VM met sleutel kluis sleutels in een VM implementeren

Identificeren en verhelpen van bestaande VMs

Identificeren

Als u wilt controleren of er extra toetsen, bekijk de geautoriseerde sleutels (bestand vi .ssh/authorized_keys) om te bepalen of de toetsen die u wilt opnemen niet wilde zijn toegevoegd.

Is het veilig om handmatig verwijderen van eventuele aanvullende ssh publieke sleutels die zijn toegevoegd. Dit zal geen invloed op de functies die worden geïmplementeerd met de VM. Bovendien wordt uw opgegeven SSH-sleutelpaar voor verificatie niet worden gewijzigd.

Als u niet weet of niet kan onderscheiden welke openbare sleutels in de .ssh/authorized_keys bestand opgegeven voor verificatie, gaat u als volgt te werk:

  1. Bekijk de sjablonen voor uw implementatie:

    1. SSH openbare sleutels

    2. SSH sleutels in de configuratie van de wolk-init

  2. Ophalen van de geïmplementeerde sleutels ssh bij het maken van binnen de VM, hebt u toegang tot de sudo/hoofdmap. Ga hiervoor als volgt te werk:

    1. Controleer de configuratie van de wolk init die is doorgegeven in CustomData: sudo cat /var/lib/waagent/ovf-env.xml | grep "<ns1:CustomData>"Gebruik de waarde CustomData en vervolgens gebruik base64 decoderen als u de openbare sleutels die u hebt geïmplementeerd: echo "<customData value>" | base64 -D

    2. Controleer ook de instantie Meta Data Service (IMDS) voor een overzicht van de ssh openbare sleutel die is doorgegeven in de ssh openbare belangrijke eigenschap van de VM maken: curl -H Metadata:true "http://169.254.169.254/metadata/instance/compute/publicKeys?api-version=2018-04-02&format=json"

Verhelpen

Als u extra certificaten die u van plan bent om te implementeren op de VM hebt geïdentificeerd, kunt u verwijderen door de bijbehorende regel van het bestand authorized_keys te wissen.

De oplossing door verbinding te maken met de VM interactief uitvoeren of het aangepaste Script extensie of de OpdrachtUitvoeren (RunCommand) gebruiken in meerdere VMs.

VMs geïmplementeerd met extensies die instellingen of een beheerde identiteit hebt beveiligd

Het volgende script gebruiken voor het verwijderen van openbare sleutels van certificaten waarin de VM is geïmplementeerd met extensies of beheerde identiteit. Dit zal geen sleutels verwijderen die zijn opgegeven wanneer u een VM geïmplementeerd of als de VM met sleutel kluis sleutels is geïmplementeerd.

Belangrijk

Het is raadzaam back-up van het bestand authorized_keys voordat u dit script uitvoert.

 

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

Nadat het script is uitgevoerd, controleren de ssh/authorized_keys bestand, zodat alleen de bekende openbare sleutel (s) aanwezig zijn.

VMs geïmplementeerd met sleutel kluis geheimen

Als u wilt vaststellen of de sleutel wanneer geïmplementeerd met sleutel kluis sleutels is toegevoegd, als volgt te werk:

  1. De naam van het certificaat sleutel kluis die u met behulp van de VM hebt geïmplementeerd, implementatie code Az CLI of ARM sjablonen bekijken of deze Az CLI uitvoeren: az vm show --resource-group <resourceGroupName> --name <vmName> | grep certificateUrlHet antwoord wordt de certificaatnaam weergegeven: "certificateUrl": "https://<keyVaultname>.vault.azure.net/secrets/<certName>/xxxxxxxxxxxxx"

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

  3. De openbare sleutel ophalen: openssl x509 -in public.pm -pubkey -noout | ssh-keygen -f /dev/stdin -i -m PKCS8

  4. De uitvoer van de vorige stap om de resterende certificaten in het ssh/authorized_keys bestand te vergelijken. vi .ssh/authorized_keys file

Oplossing

Afbeeldingen op MarketPlace Azure

Correcties zijn toegepast op cloud-init in de geïdentificeerde Azure afbeeldingen:

  • 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

Aangepaste afbeeldingen

Als u aangepaste installatiekopieën die zijn ingericht door cloud-init voor de bekende besturingssystemen, moet u de aangepaste installatiekopie bron bijwerken.

Ubuntu 18.04 afbeeldingen

Een aangepaste bronafbeelding bijwerken, moet u de volgende wijzigingen aanbrengen:

  • Bewerk het volgende bestand: /etc/cloud/cloud.cfg.d/90-Azure.cfg

  • De volgende code toevoegen aan het einde van het bestand.

Belangrijk

De code moet exact weergegeven, inclusief spaties worden toegevoegd.

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

7.4/7.5/7.6 RHEL en CentOS 7.6 afbeeldingen

Als u afbeeldingen met behulp van deze stappen RHEL/CentOS (of een vergelijkbare methode) hebt gemaakt, moet u de bronafbeelding waaruit u de VMs hebt gemaakt bijwerken. Er zijn extra stappen die nodig zijn om toe te voegen aan een bestaande bron VM image-configuratie:

Stap 1

Bewerk het volgende bestand:

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

Belangrijk

De code moet exact weergegeven, inclusief spaties worden toegevoegd.

De volgende regels toevoegen aan het einde van het bestand:

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

Stap 2

De configuratie van de Agent als volgt bijwerken:

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 pakketten

Alle cloud init-pakketten die met een correctie zijn worden bijgewerkt. Microsoft is dit probleem aan het onderzoeken en meer informatie zal worden weergegeven in dit artikel als de informatie beschikbaar is.

Veelgestelde vragen

Q1: Heeft Microsoft die toegang tot mijn VM?

A1: Sleutels voor gegevenscodering worden gebruikt voor het beheer van identiteiten en uitbreidingen zijn niet ontworpen voor toegang door medewerkers van Microsoft. We beschikken over processen bewaken, melden en voorkomen dat dit soort toegang. Voorzorg bekijkt we alle logboeken om ervoor te zorgen dat er geen sleutels klant wel zijn geopend. Microsoft-werknemers doen voor certificaten die zijn opgeslagen in een kluis met sleutel waarnaar in een VM- of VMSS-implementatie, geen geen toegang hebben tot de geheimen.

Q2: Zijn alle cloud-init geïmplementeerd OSs en de versies waarin dit probleem optreedt?

A2: Nr. Wij hebben dit vreemde sleutel probleem zich alleen in de aangegeven besturingssystemen. We hebben niet gezien deze treedt in oudere versies van Ubuntu. Dit is omdat deze systemen een ander mechanisme gebruiken voor het instellen van openbare sleutels.

Q3: Neem de betreffende wolk initiatie-pakketten voor de Linux-distributies de oplossing?

A3: Wij werken aan de correcties toe te voegen aan de pakketten voor de versies waarin dit probleem optreedt en in dit artikel wordt bijgewerkt zodra dat werk is voltooid.

Q4: Automatisch werkt Microsoft een VMs waarin dit probleem optreedt?

A4: Nr. Microsoft verandert niet de inhoud van VMs die u al hebt ingericht.

Vraag 5: Ons beveiligingsbeleid dat mij een Linux VM met irrelevante inhoud in een authorized_keys werkzaam. Wat kan ik hierover vandaag?

A5: U kunt de afwijkende regel veilig verwijderen uit het bestand authorized_keys. Dit geen invloed op de SSH-sleutelpaar dat u hebt gemaakt en een besturingselement of de beheerde identiteit. U kunt dit handmatig of via een aangepast script of een aangepaste opdracht die over de betrokken vloot doen.

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?
Als u op Verzenden klikt, wordt uw feedback gebruikt om producten en services van Microsoft te verbeteren. Uw IT-beheerder kan deze gegevens verzamelen. Privacyverklaring.

Hartelijk dank voor uw feedback.

×